From 6b1b3533489ce10b183c9df6333ea57e4640743c Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Mon, 2 Aug 2021 02:46:57 -0700 Subject: [PATCH 01/59] aes and argon2 --- code/package.json | 2 ++ code/yarn.lock | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/code/package.json b/code/package.json index 3fad3c75..483bb746 100644 --- a/code/package.json +++ b/code/package.json @@ -14,6 +14,8 @@ "@harmony-js/account": "^0.1.57", "@openzeppelin/contracts": "^4.2.0", "@truffle/hdwallet-provider": "^1.4.0", + "aes-js": "^3.1.2", + "argon2-browser": "git+https://github.com/polymorpher/argon2-browser#1.21.0-hpc", "axios": "^0.21.1", "dotenv": "^10.0.0", "ethjs-unit": "^0.1.6", diff --git a/code/yarn.lock b/code/yarn.lock index 30fd56ac..fcb27e0b 100644 --- a/code/yarn.lock +++ b/code/yarn.lock @@ -2462,6 +2462,10 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" +"argon2-browser@git+https://github.com/polymorpher/argon2-browser#1.21.0-hpc": + version "1.21.0-hpc" + resolved "git+https://github.com/polymorpher/argon2-browser#609a1518d4158c3732fe1e9a7f7b466ef41b76b4" + argparse@^1.0.7: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" From 8d32fe869f4a71ecd95052cc548344e5b2a2042b Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Mon, 2 Aug 2021 02:47:39 -0700 Subject: [PATCH 02/59] batch hash functions; genOTP - do not compute report interval inside --- code/lib/util.js | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/code/lib/util.js b/code/lib/util.js index 28c6e916..d502654d 100644 --- a/code/lib/util.js +++ b/code/lib/util.js @@ -3,6 +3,8 @@ const createKeccakHash = require('keccak') const Conversion = require('ethjs-unit') const sha256 = require('fast-sha256') const BN = require('bn.js') +const argon2 = require('argon2-browser') +const base32 = require('hi-base32') const STANDARD_DECIMAL = 18 const utils = { @@ -16,6 +18,19 @@ const utils = { sha256, + // batched sha256 + sha256b: (input, { progressObserver, batchSize = 32 }) => { + const n = input.length / batchSize + const output = new Uint8Array(n * 32) + for (let i = 0; i < input.length; i += batchSize) { + output.set(sha256(input.subarray(i * batchSize, i * batchSize + batchSize)), i * 32) + if (progressObserver) { + progressObserver(i, n) + } + } + return output + }, + hexToBytes: (hex, length, padRight) => { if (!hex) { return @@ -65,9 +80,19 @@ const utils = { return indexWithNonce }, - genOTP: ({ seed, interval = 30000, counter = Math.floor(Date.now() / interval), n = 1, progressObserver }) => { - const reportInterval = Math.floor(n / 100) + processOtpSeed: (seed) => { + if (seed.constructor.name !== 'Uint8Array') { + if (typeof seed !== 'string') { + throw new Error('otpSeed must be either string (Base32 encoded) or Uint8Array') + } + const bn = base32.decode.asBytes(seed) + seed = new Uint8Array(bn) + } + seed = seed.slice(0, 20) + return seed + }, + genOTP: ({ seed, interval = 30000, counter = Math.floor(Date.now() / interval), n = 1, progressObserver }) => { const codes = new Uint8Array(n * 4) const v = new DataView(codes.buffer) const b = new DataView(new ArrayBuffer(8)) @@ -88,9 +113,7 @@ const utils = { const r = c % 1000000 v.setUint32(i * 4, r, false) if (progressObserver) { - if (i % reportInterval === 0) { - progressObserver(i, n, 0) - } + progressObserver(i, n) } } return codes @@ -124,5 +147,10 @@ const utils = { } }, + argon2: async (input, { salt = new Uint8Array(8), progressObserver, batchSize = 32 } = {}) => { + const { result } = await argon2.hash({ pass: input, batchSize, salt, progressObserver }) + return result + } + } module.exports = utils From 3a68c25176ecdcfea705a8da2b8ab8c9b0c9c7da Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Mon, 2 Aug 2021 02:50:46 -0700 Subject: [PATCH 03/59] double otp and controlled randomness support; argon2 support; function for recover randomness --- code/lib/onewallet.js | 120 +++++++++++++++++++++++++++++++----------- 1 file changed, 88 insertions(+), 32 deletions(-) diff --git a/code/lib/onewallet.js b/code/lib/onewallet.js index 7b81a5f5..97c215f6 100644 --- a/code/lib/onewallet.js +++ b/code/lib/onewallet.js @@ -1,50 +1,76 @@ -const fastSHA256 = require('fast-sha256') -const base32 = require('hi-base32') +const { sha256: fastSHA256, sha256b, processOtpSeed } = require('./util') // eslint-disable-next-line no-unused-vars const { hexView, genOTP, hexStringToBytes, keccak, bytesEqual } = require('./util') const BN = require('bn.js') +const AES = require('aes-js') -const computeMerkleTree = ({ otpSeed, effectiveTime = Date.now(), duration = 3600 * 1000 * 24 * 365, progressObserver, otpInterval = 30000, maxOperationsPerInterval = 1 }) => { +const computeMerkleTree = ({ + otpSeed, + otpSeed2, // can be null + effectiveTime = Date.now(), + duration = 3600 * 1000 * 24 * 365, + progressObserver, otpInterval = 30000, + maxOperationsPerInterval = 1, + randomness = 0, // number of bits for Controlled Randomness. 17 bits is recommended for the best balance between user experience and security. It maps to 2^17 = 131072 possibilities. + hasher = sha256b // must be a batch hasher + +}) => { maxOperationsPerInterval = 2 ** Math.ceil(Math.log2(maxOperationsPerInterval)) maxOperationsPerInterval = Math.min(16, maxOperationsPerInterval) const height = Math.ceil(Math.log2(duration / otpInterval * maxOperationsPerInterval)) + 1 const n = Math.pow(2, height - 1) const reportInterval = Math.floor(n / 100) const counter = Math.floor(effectiveTime / otpInterval) - let seed = otpSeed - if (seed.constructor.name !== 'Uint8Array') { - if (typeof seed !== 'string') { - throw new Error('otpSeed must be either string (Base32 encoded) or Uint8Array') - } - const bn = base32.decode.asBytes(seed) - seed = new Uint8Array(bn) - } - seed = seed.slice(0, 20) + const seed = processOtpSeed(otpSeed) + const seed2 = otpSeed2 && processOtpSeed(otpSeed2) // console.log('Generating Wallet with parameters', { seed, height, otpInterval, effectiveTime }) - const otps = genOTP({ seed, counter, n, progressObserver }) - // 4 bytes for OTP, 2 bytes for nonce, 26 bytes for seed hash - const hseed = fastSHA256(seed).slice(0, 26) - const leaves = new Uint8Array(n * 32) - const buffer = new Uint8Array(32) + const buildProgressObserver = (max) => (i, n) => i % reportInterval === 0 && progressObserver(i, max || n, 0) + const otps = genOTP({ seed, counter, n, progressObserver: buildProgressObserver(seed2 ? n * 2 : n) }) + const otps2 = seed2 && genOTP({ seed: seed2, counter, n, progressObserver: buildProgressObserver(seed2 ? n * 2 : n) }) + // legacy mode: no randomness, no seed2: 26 bytes for seed hash, 2 bytes for nonce, 4 bytes for OTP + // single otp mode: 22 bytes for seed hash, 2 bytes for nonce, 4 bytes for OTP, 4 bytes for randomness + // double otp mode: 18 bytes for seed hash, 2 bytes for nonce, 4 bytes for OTP, 4 bytes for second OTP, 4 bytes for randomness + const hseedLength = otpSeed2 ? 18 : (randomness > 0 ? 22 : 26) + const hseed = new Uint8Array(hseedLength) + if (seed2) { + hseed.set(fastSHA256(seed).slice(0, hseedLength / 2)) + hseed.set(fastSHA256(seed2).slice(0, hseedLength / 2)) + } else { + hseed.set(fastSHA256(seed).slice(0, hseedLength)) + } + let aes, aesInput, rbuffer, rview + if (randomness > 0) { + // eslint-disable-next-line new-cap + aes = new AES.ModeOfOperation.ctr(seed.slice(0, 16)) + aesInput = new Uint8Array(new Uint32Array([counter]).buffer) + rbuffer = new Uint8Array(4) + rview = new DataView(rbuffer.buffer) + } + + const input = new Uint8Array(n * 32) const nonceBuffer = new Uint16Array(1) - const layers = [] - // TODO: parallelize this for (let i = 0; i < n * maxOperationsPerInterval; i++) { + const offset = i * 32 + input.set(hseed, offset) const nonce = i % maxOperationsPerInterval nonceBuffer[0] = nonce - buffer.set(hseed) - buffer.set(nonceBuffer, hseed.length) + input.set(nonceBuffer, offset + hseedLength) const otp = otps.subarray(i * 4, i * 4 + 4) - buffer.set(otp, hseed.length + 2) - const h = fastSHA256(buffer) - const hh = fastSHA256(h) - leaves.set(hh, i * 32) - if (progressObserver) { - if (i % reportInterval === 0) { - progressObserver(i, n, 1) - } + input.set(otp, offset + hseedLength + 2) + if (otps2) { + input.set(otp, offset + hseedLength + 6) + } + if (randomness > 0) { + const r = aes.encrypt(aesInput) + const z = (r[0] << 24 | r[1] << 16 | r[2] << 8 | r[3]) >>> (32 - randomness) + rview.setUint32(0, z, false) + input.set(rbuffer, 28) } } + // TODO: parallelize this + const eotps = hasher(input, { progressObserver: buildProgressObserver() }) + const leaves = sha256b(eotps, { progressObserver: buildProgressObserver() }) + const layers = [] layers.push(leaves) for (let j = 1; j < height; j += 1) { const layer = new Uint8Array(n / (2 ** j) * 32) @@ -65,8 +91,8 @@ const computeMerkleTree = ({ otpSeed, effectiveTime = Date.now(), duration = 360 return { seed, hseed, - leaves, // =layers[0] - root, // =layers[height - 1] + leaves, // = layers[0] + root, // = layers[height - 1] layers, maxOperationsPerInterval, } @@ -166,6 +192,34 @@ const bruteforceEOTP = ({ hseed, nonce = 0, leaf }) => { return { } } +const recoverRandomness = ({ hseed, otp, otp2, nonce = 0, leaf, randomness = 17, hasher = sha256b }) => { + const nonceBuffer = new Uint16Array([nonce]) + const ub = 2 ** randomness + const buffer = new Uint8Array(ub * 32) + const rb = new Uint8Array(4) + const rv = new DataView(rb) + for (let i = 0; i < ub; i++) { + const offset = i * 32 + buffer.set(hseed, offset) + buffer.set(nonceBuffer, offset + hseed.length) + buffer.set(otp, offset + hseed.length + 2) + if (otp2) { + buffer.set(otp2, offset + hseed.length + 6) + } + rv.setUint32(0, i, false) + buffer.set(rb, offset + 28) + } + const eotps = hasher(buffer) + const output = sha256b(eotps) + for (let i = 0; i < ub; i++) { + const b = output.subarray(i * 32, i * 32 + 32) + if (bytesEqual(b, leaf)) { + return i + } + } + return null +} + const computeTokenKey = ({ tokenType, contractAddress, tokenId }) => { const buf = new Uint8Array(96) const s1 = new BN(tokenType, 10).toArrayLike(Uint8Array, 'be', 32) @@ -223,5 +277,7 @@ module.exports = { bruteforceEOTP, computeTokenKey, computeTokenOperationHash, - computeVerificationHash + computeVerificationHash, + + recoverRandomness } From 78ff5629cabe6c07cc6752ad400c445cbf16cd05 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Mon, 2 Aug 2021 03:10:01 -0700 Subject: [PATCH 04/59] store randomnessResults and return in merkle tree computation --- code/lib/onewallet.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/lib/onewallet.js b/code/lib/onewallet.js index 97c215f6..59ee15de 100644 --- a/code/lib/onewallet.js +++ b/code/lib/onewallet.js @@ -38,7 +38,7 @@ const computeMerkleTree = ({ } else { hseed.set(fastSHA256(seed).slice(0, hseedLength)) } - let aes, aesInput, rbuffer, rview + let aes; let aesInput; let rbuffer; let rview; let randomnessResults = [] if (randomness > 0) { // eslint-disable-next-line new-cap aes = new AES.ModeOfOperation.ctr(seed.slice(0, 16)) @@ -63,6 +63,7 @@ const computeMerkleTree = ({ if (randomness > 0) { const r = aes.encrypt(aesInput) const z = (r[0] << 24 | r[1] << 16 | r[2] << 8 | r[3]) >>> (32 - randomness) + randomnessResults.push(z) rview.setUint32(0, z, false) input.set(rbuffer, 28) } @@ -89,7 +90,9 @@ const computeMerkleTree = ({ } // console.log(`root: 0x${hexView(root)} tree height: ${layers.length}; leaves length: ${leaves.length}`) return { - seed, + seed, // discard + seed2, // discard + randomnessResults, // discard hseed, leaves, // = layers[0] root, // = layers[height - 1] From 993b66b9332c0445152168e8799cebc1b33cea2c Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Mon, 2 Aug 2021 03:10:10 -0700 Subject: [PATCH 05/59] fix bug with sha256b --- code/lib/util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/lib/util.js b/code/lib/util.js index d502654d..ca1d8e0b 100644 --- a/code/lib/util.js +++ b/code/lib/util.js @@ -22,7 +22,7 @@ const utils = { sha256b: (input, { progressObserver, batchSize = 32 }) => { const n = input.length / batchSize const output = new Uint8Array(n * 32) - for (let i = 0; i < input.length; i += batchSize) { + for (let i = 0; i < n; i += 1) { output.set(sha256(input.subarray(i * batchSize, i * batchSize + batchSize)), i * 32) if (progressObserver) { progressObserver(i, n) From c68b9dbb65a36c1972348ccd4f4e3657b7451529 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Mon, 2 Aug 2021 03:10:21 -0700 Subject: [PATCH 06/59] fix deprecated method in wallet test --- code/test/wallet.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/test/wallet.js b/code/test/wallet.js index de0688e5..ca2eac6f 100644 --- a/code/test/wallet.js +++ b/code/test/wallet.js @@ -115,7 +115,7 @@ contract('ONEWallet', (accounts) => { Logger.debug(`Committed`) const neighborsEncoded = neighbors.map(ONEUtil.hexString) Debugger.debugProof({ neighbors, height: layers.length, index, eotp, root }) - const commits = await wallet.getCommits() + const commits = await wallet.getAllCommits() const hash = commits[0][0] const paramHash = commits[0][1] const verificationHashCommitted = commits[0][2] From e4225ef1979e0d2de8ef2d26b9bb810d2d3d09ac Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Mon, 2 Aug 2021 03:10:35 -0700 Subject: [PATCH 07/59] expand test util for createWallet --- code/test/util.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/code/test/util.js b/code/test/util.js index 8a9318ec..d3488c89 100644 --- a/code/test/util.js +++ b/code/test/util.js @@ -12,11 +12,16 @@ const Logger = { } } -const createWallet = async ({ effectiveTime, duration, maxOperationsPerInterval, lastResortAddress, dailyLimit }) => { +const createWallet = async ({ effectiveTime, duration, maxOperationsPerInterval, lastResortAddress, dailyLimit, doubleOtp, randomness = 0, hasher = ONEWalletUtil.sha256b }) => { const otpSeed = base32.encode('0xdeadbeef1234567890') + let otpSeed2 + if (doubleOtp) { + otpSeed2 = base32.encode('0x1234567890deadbeef') + } effectiveTime = Math.floor(effectiveTime / INTERVAL) * INTERVAL - const { seed, hseed, root, leaves, layers, maxOperationsPerInterval: slotSize } = ONEWalletLib.computeMerkleTree({ - otpSeed, effectiveTime, maxOperationsPerInterval, duration }) + const { seed, seed2, hseed, root, leaves, layers, maxOperationsPerInterval: slotSize, randomnessResults } = ONEWalletLib.computeMerkleTree({ + otpSeed, otpSeed2, effectiveTime, maxOperationsPerInterval, duration, randomness, hasher + }) const height = layers.length const t0 = effectiveTime / INTERVAL const lifespan = duration / INTERVAL @@ -32,7 +37,9 @@ const createWallet = async ({ effectiveTime, duration, maxOperationsPerInterval, return { seed, + seed2, hseed, + randomnessResults, wallet, // smart contract root, // uint8array client: { From f77b7b74376c79ae38c91238aaf1e075e580102f Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Mon, 2 Aug 2021 05:05:11 -0700 Subject: [PATCH 08/59] make computeMerkleTree and recoverRandomness async --- code/lib/onewallet.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/code/lib/onewallet.js b/code/lib/onewallet.js index 59ee15de..bf8b5203 100644 --- a/code/lib/onewallet.js +++ b/code/lib/onewallet.js @@ -4,7 +4,7 @@ const { hexView, genOTP, hexStringToBytes, keccak, bytesEqual } = require('./uti const BN = require('bn.js') const AES = require('aes-js') -const computeMerkleTree = ({ +const computeMerkleTree = async ({ otpSeed, otpSeed2, // can be null effectiveTime = Date.now(), @@ -58,19 +58,20 @@ const computeMerkleTree = ({ const otp = otps.subarray(i * 4, i * 4 + 4) input.set(otp, offset + hseedLength + 2) if (otps2) { - input.set(otp, offset + hseedLength + 6) + const otp2 = otps2.subarray(i * 4, i * 4 + 4) + input.set(otp2, offset + hseedLength + 6) } if (randomness > 0) { const r = aes.encrypt(aesInput) const z = (r[0] << 24 | r[1] << 16 | r[2] << 8 | r[3]) >>> (32 - randomness) randomnessResults.push(z) rview.setUint32(0, z, false) - input.set(rbuffer, 28) + input.set(rbuffer, offset + 28) } } // TODO: parallelize this - const eotps = hasher(input, { progressObserver: buildProgressObserver() }) - const leaves = sha256b(eotps, { progressObserver: buildProgressObserver() }) + const eotps = await hasher(input, { progressObserver: buildProgressObserver() }) + const leaves = await sha256b(eotps, { progressObserver: buildProgressObserver() }) const layers = [] layers.push(leaves) for (let j = 1; j < height; j += 1) { @@ -94,6 +95,7 @@ const computeMerkleTree = ({ seed2, // discard randomnessResults, // discard hseed, + counter, // base time leaves, // = layers[0] root, // = layers[height - 1] layers, @@ -195,12 +197,12 @@ const bruteforceEOTP = ({ hseed, nonce = 0, leaf }) => { return { } } -const recoverRandomness = ({ hseed, otp, otp2, nonce = 0, leaf, randomness = 17, hasher = sha256b }) => { +const recoverRandomness = async ({ hseed, otp, otp2, nonce = 0, leaf, randomness = 17, hasher = sha256b }) => { const nonceBuffer = new Uint16Array([nonce]) const ub = 2 ** randomness const buffer = new Uint8Array(ub * 32) const rb = new Uint8Array(4) - const rv = new DataView(rb) + const rv = new DataView(rb.buffer) for (let i = 0; i < ub; i++) { const offset = i * 32 buffer.set(hseed, offset) @@ -212,8 +214,8 @@ const recoverRandomness = ({ hseed, otp, otp2, nonce = 0, leaf, randomness = 17, rv.setUint32(0, i, false) buffer.set(rb, offset + 28) } - const eotps = hasher(buffer) - const output = sha256b(eotps) + const eotps = await hasher(buffer) + const output = await sha256b(eotps) for (let i = 0; i < ub; i++) { const b = output.subarray(i * 32, i * 32 + 32) if (bytesEqual(b, leaf)) { From ec451ddf9422744103564fa1ba7c0c1c70b26721 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Mon, 2 Aug 2021 05:05:23 -0700 Subject: [PATCH 09/59] sha256b async --- code/lib/util.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/lib/util.js b/code/lib/util.js index ca1d8e0b..b42ba35e 100644 --- a/code/lib/util.js +++ b/code/lib/util.js @@ -19,7 +19,7 @@ const utils = { sha256, // batched sha256 - sha256b: (input, { progressObserver, batchSize = 32 }) => { + sha256b: async (input, { progressObserver, batchSize = 32 } = {}) => { const n = input.length / batchSize const output = new Uint8Array(n * 32) for (let i = 0; i < n; i += 1) { From dac8df1842a1816d14079aa10a5a135df75babce Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Mon, 2 Aug 2021 05:05:37 -0700 Subject: [PATCH 10/59] make worker onmessagelisteners async --- code/cli/src/ONEWalletWorker.js | 4 ++-- code/client/src/worker/ONEWalletWorker.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/cli/src/ONEWalletWorker.js b/code/cli/src/ONEWalletWorker.js index 32b5448d..24008926 100644 --- a/code/cli/src/ONEWalletWorker.js +++ b/code/cli/src/ONEWalletWorker.js @@ -1,7 +1,7 @@ import ONE from '../../lib/onewallet' import { parentPort } from 'worker_threads' -parentPort.once('message', ({ seed, effectiveTime, duration, slotSize, interval } = {}) => { +parentPort.once('message', async ({ seed, effectiveTime, duration, slotSize, interval } = {}) => { if (!seed) { console.log('Worker: received event but it has no valid data') return @@ -14,7 +14,7 @@ parentPort.once('message', ({ seed, effectiveTime, duration, slotSize, interval root, layers, maxOperationsPerInterval, - } = ONE.computeMerkleTree({ + } = await ONE.computeMerkleTree({ otpSeed: seed, effectiveTime, duration, diff --git a/code/client/src/worker/ONEWalletWorker.js b/code/client/src/worker/ONEWalletWorker.js index 6407c81f..2f082faa 100644 --- a/code/client/src/worker/ONEWalletWorker.js +++ b/code/client/src/worker/ONEWalletWorker.js @@ -1,6 +1,6 @@ const ONE = require('../../../lib/onewallet') -onmessage = function (event) { +onmessage = async function (event) { const { seed, effectiveTime, duration, slotSize, interval } = event.data if (!seed) { // console.log('worker: received event but it has no valid data', event) @@ -14,7 +14,7 @@ onmessage = function (event) { root, layers, maxOperationsPerInterval, - } = ONE.computeMerkleTree({ + } = await ONE.computeMerkleTree({ otpSeed: seed, effectiveTime, duration, From 12dd2b76929c62d65c839ad3430023f193710f44 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Mon, 2 Aug 2021 05:06:01 -0700 Subject: [PATCH 11/59] return counter on test util createwallet --- code/test/util.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/test/util.js b/code/test/util.js index d3488c89..44e843ef 100644 --- a/code/test/util.js +++ b/code/test/util.js @@ -19,7 +19,7 @@ const createWallet = async ({ effectiveTime, duration, maxOperationsPerInterval, otpSeed2 = base32.encode('0x1234567890deadbeef') } effectiveTime = Math.floor(effectiveTime / INTERVAL) * INTERVAL - const { seed, seed2, hseed, root, leaves, layers, maxOperationsPerInterval: slotSize, randomnessResults } = ONEWalletLib.computeMerkleTree({ + const { seed, seed2, hseed, root, leaves, layers, maxOperationsPerInterval: slotSize, randomnessResults, counter } = await ONEWalletLib.computeMerkleTree({ otpSeed, otpSeed2, effectiveTime, maxOperationsPerInterval, duration, randomness, hasher }) const height = layers.length @@ -40,6 +40,7 @@ const createWallet = async ({ effectiveTime, duration, maxOperationsPerInterval, seed2, hseed, randomnessResults, + counter, wallet, // smart contract root, // uint8array client: { From 7119e60f8bd8cc7660a9084e2b0831519611ee6f Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Mon, 2 Aug 2021 05:06:19 -0700 Subject: [PATCH 12/59] client security test --- code/test/client.js | 201 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 code/test/client.js diff --git a/code/test/client.js b/code/test/client.js new file mode 100644 index 00000000..36aeb881 --- /dev/null +++ b/code/test/client.js @@ -0,0 +1,201 @@ +const ONEUtil = require('../lib/util') +const ONE = require('../lib/onewallet') +const INTERVAL = 30000 +const DURATION = INTERVAL * 8 +const { Logger, createWallet } = require('./util') +const ONEConstants = require('../lib/constants') +const unit = require('ethjs-unit') + +const ONE_ETH = unit.toWei('1', 'ether') +const SLOT_SIZE = 1 + +contract('ONEWallet', (accounts) => { + // 2021-06-13T03:55:00.000Z + + const EFFECTIVE_TIME = Math.floor(1623556500000 / INTERVAL) * INTERVAL - DURATION / 2 + it('must generate consistent, recoverable randomness', async () => { + const { + seed, + hseed, + counter, + randomnessResults, + wallet, + root, + client: { + leaves, + layers, + }, + contract: { + slotSize, + t0, + lifespan, + interval + } } = await createWallet({ + effectiveTime: EFFECTIVE_TIME, + duration: DURATION, + maxOperationsPerInterval: SLOT_SIZE, + lastResortAddress: ONEConstants.EmptyAddress, + dailyLimit: ONE_ETH, + randomness: 16, + }) + Logger.debug({ + seed, + hseed, + randomnessResults, + wallet: wallet.toString(), + root, + client: { + leaves, + layers, + }, + contract: { + slotSize, + t0, + lifespan, + interval + } }) + const { randomnessResults: randomnessResults2 } = await createWallet({ + effectiveTime: EFFECTIVE_TIME, + duration: DURATION, + maxOperationsPerInterval: SLOT_SIZE, + lastResortAddress: ONEConstants.EmptyAddress, + dailyLimit: ONE_ETH, + randomness: 16, + }) + for (let i = 0; i < randomnessResults.length; i++) { + assert.equal(randomnessResults[i], randomnessResults2[i], 'Randomness must be consistent when the same seed is given') + } + const recoveredList = [] + for (let i = 0; i < leaves.length / 32; i++) { + const otp = ONEUtil.genOTP({ seed, counter: counter + i }) + const recovered = await ONE.recoverRandomness({ hseed, otp, randomness: 16, hasher: ONEUtil.sha256b, leaf: leaves.subarray(i * 32, i * 32 + 32) }) + recoveredList.push(recovered) + } + assert.deepEqual(recoveredList, randomnessResults, 'Controlled Randomness must be recovered') + }) + + it('must generate consistent, recoverable randomness with double OTP', async () => { + const { + seed, + seed2, + hseed, + counter, + randomnessResults, + wallet, + root, + client: { + leaves, + layers, + }, + contract: { + slotSize, + t0, + lifespan, + interval + } } = await createWallet({ + effectiveTime: EFFECTIVE_TIME, + duration: DURATION, + maxOperationsPerInterval: SLOT_SIZE, + lastResortAddress: ONEConstants.EmptyAddress, + dailyLimit: ONE_ETH, + randomness: 16, + doubleOtp: true, + }) + Logger.debug({ + seed, + seed2, + hseed, + randomnessResults, + wallet: wallet.toString(), + root, + client: { + leaves, + layers, + }, + contract: { + slotSize, + t0, + lifespan, + interval + } }) + const { randomnessResults: randomnessResults2 } = await createWallet({ + effectiveTime: EFFECTIVE_TIME, + duration: DURATION, + maxOperationsPerInterval: SLOT_SIZE, + lastResortAddress: ONEConstants.EmptyAddress, + dailyLimit: ONE_ETH, + randomness: 16, + }) + for (let i = 0; i < randomnessResults.length; i++) { + assert.equal(randomnessResults[i], randomnessResults2[i], 'Randomness must be consistent when the same seed is given') + } + const recoveredList = [] + for (let i = 0; i < leaves.length / 32; i++) { + const otp = ONEUtil.genOTP({ seed, counter: counter + i }) + const otp2 = ONEUtil.genOTP({ seed: seed2, counter: counter + i }) + const recovered = await ONE.recoverRandomness({ hseed, otp, otp2, randomness: 16, hasher: ONEUtil.sha256b, leaf: leaves.subarray(i * 32, i * 32 + 32) }) + recoveredList.push(recovered) + } + assert.deepEqual(recoveredList, randomnessResults, 'Controlled Randomness must be recovered') + }) + + it('must generate consistent, recoverable randomness with argon2', async () => { + const { + seed, + hseed, + counter, + randomnessResults, + wallet, + root, + client: { + leaves, + layers, + }, + contract: { + slotSize, + t0, + lifespan, + interval + } } = await createWallet({ + effectiveTime: EFFECTIVE_TIME, + duration: DURATION, + maxOperationsPerInterval: SLOT_SIZE, + lastResortAddress: ONEConstants.EmptyAddress, + dailyLimit: ONE_ETH, + randomness: 16, + hasher: ONEUtil.argon2 + }) + Logger.debug({ + seed, + hseed, + randomnessResults, + wallet: wallet.toString(), + root, + client: { + leaves, + layers, + }, + contract: { + slotSize, + t0, + lifespan, + interval + } }) + const { randomnessResults: randomnessResults2 } = await createWallet({ + effectiveTime: EFFECTIVE_TIME, + duration: DURATION, + maxOperationsPerInterval: SLOT_SIZE, + lastResortAddress: ONEConstants.EmptyAddress, + dailyLimit: ONE_ETH, + randomness: 16, + hasher: ONEUtil.argon2 + }) + for (let i = 0; i < randomnessResults.length; i++) { + assert.equal(randomnessResults[i], randomnessResults2[i], 'Randomness must be consistent when the same seed is given') + } + const otp = ONEUtil.genOTP({ seed, counter: counter }) + const recovered = await ONE.recoverRandomness({ hseed, otp, randomness: 16, hasher: ONEUtil.argon2, leaf: leaves.subarray(0, 32) }) + + assert.equal(recovered, randomnessResults[0], 'Controlled Randomness must be recovered') + }) +}) From 658f052dbe6ba81eee928ead2393b2ef11cda469 Mon Sep 17 00:00:00 2001 From: Haolin Jiang Date: Tue, 3 Aug 2021 23:07:02 +1000 Subject: [PATCH 13/59] Add use two otp options on create wallet --- code/client/src/pages/Create.jsx | 106 ++++++++++++++++++---- code/client/src/worker/ONEWalletWorker.js | 3 +- 2 files changed, 89 insertions(+), 20 deletions(-) diff --git a/code/client/src/pages/Create.jsx b/code/client/src/pages/Create.jsx index cd462008..0b46d9b5 100644 --- a/code/client/src/pages/Create.jsx +++ b/code/client/src/pages/Create.jsx @@ -6,7 +6,7 @@ import api from '../api' import ONEUtil from '../../../lib/util' import ONENames from '../../../lib/names' // import { uniqueNamesGenerator, colors, animals } from 'unique-names-generator' -import { Button, Row, Space, Typography, Slider, Image, message, Progress, Timeline, Select } from 'antd' +import { Button, Row, Space, Typography, Slider, Image, message, Progress, Timeline, Select, Checkbox } from 'antd' import { RedoOutlined, LoadingOutlined, SearchOutlined } from '@ant-design/icons' import humanizeDuration from 'humanize-duration' import AnimatedSection from '../components/AnimatedSection' @@ -37,16 +37,32 @@ const genName = (existingNames) => { return name } +const generateOtpSeed = () => { + const otpSeedBuffer = new Uint8Array(20) + return window.crypto.getRandomValues(otpSeedBuffer) +} + +const sectionViews = { + setupWalletDetails: 1, + setupOtp: 2, + setupSecondOtp: 3, + prepareWallet: 4, + walletSetupDone: 5 +} + const Create = () => { + const generateNewOtpName = () => genName(Object.keys(wallets).map(k => wallets[k].name)) + const { isMobile } = useWindowDimensions() const dispatch = useDispatch() const history = useHistory() const network = useSelector(state => state.wallet.network) const wallets = useSelector(state => state.wallet.wallets) - const [name, setName] = useState(genName(Object.keys(wallets).map(k => wallets[k].name))) - const otpSeedBuffer = new Uint8Array(20) + const [name, setName] = useState(generateNewOtpName()) + // eslint-disable-next-line no-unused-vars + const [seed, setSeed] = useState(generateOtpSeed()) // eslint-disable-next-line no-unused-vars - const [seed, setSeed] = useState(window.crypto.getRandomValues(otpSeedBuffer)) + const [seed2, setSeed2] = useState(generateOtpSeed()) const [duration, setDuration] = useState(WalletConstants.defaultDuration) const [lastResortAddress, setLastResortAddress] = useState() const [dailyLimit] = useState(WalletConstants.defaultDailyLimit) @@ -60,9 +76,10 @@ const Create = () => { const [progressStage, setProgressStage] = useState(0) const [address, setAddress] = useState() // '0x12345678901234567890' const [effectiveTime, setEffectiveTime] = useState() + const [doubleOtp, setDoubleOtp] = useState(false) const [durationVisible, setDurationVisible] = useState(false) - const [section, setSection] = useState(2) + const [section, setSection] = useState(sectionViews.setupOtp) const [qrCodeData, setQRCodeData] = useState() const [otp, setOtp] = useState('') @@ -70,42 +87,61 @@ const Create = () => { const otpRef = useRef() - const getQRCodeUri = () => { + const getQRCodeUri = (otpSeed) => { // otpauth://TYPE/LABEL?PARAMETERS - return `otpauth://totp/${name}?secret=${b32.encode(seed)}&issuer=Harmony` + return `otpauth://totp/${name}?secret=${b32.encode(otpSeed)}&issuer=Harmony` } + useEffect(() => { (async function () { - const uri = getQRCodeUri() + const otpSeed = section === sectionViews.setupSecondOtp ? seed2 : seed + + const uri = getQRCodeUri(otpSeed) + const data = await qrcode.toDataURL(uri, { errorCorrectionLevel: 'low', width: isMobile ? 192 : 256 }) + setQRCodeData(data) })() }, [name]) useEffect(() => { - if (section === 2 && worker) { + if (section === sectionViews.setupOtp && worker) { console.log('posting to worker') const t = Math.floor(Date.now() / WalletConstants.interval) * WalletConstants.interval setEffectiveTime(t) worker && worker.postMessage({ - seed, effectiveTime: t, duration, slotSize, interval: WalletConstants.interval + seed, seed2, effectiveTime: t, duration, slotSize, interval: WalletConstants.interval }) } }, [section, worker]) useEffect(() => { + const settingUpSecondOtp = section === sectionViews.setupSecondOtp + if (otp.length !== 6) { return } - const expected = ONEUtil.genOTP({ seed }) + + const currentSeed = settingUpSecondOtp ? seed2 : seed + + const expected = ONEUtil.genOTP({ seed: currentSeed }) + const code = new DataView(expected.buffer).getUint32(0, false).toString() + + setOtp('') + if (code.padStart(6, '0') !== otp.padStart(6, '0')) { - console.log(`Expected: ${code}. Got: ${otp}`) message.error('Code is incorrect. Please try again.') - setOtp('') + + otpRef?.current?.focusInput(0) + } else if (doubleOtp && !settingUpSecondOtp) { + setSection(sectionViews.setupSecondOtp) + + setName(generateNewOtpName()) + otpRef?.current?.focusInput(0) } else { - setSection(3) + setSection(sectionViews.prepareWallet) } }, [otp]) @@ -124,6 +160,7 @@ const Create = () => { } let normalizedAddress = '' + if (lastResortAddress !== '') { // Ensure valid address for both 0x and one1 formats normalizedAddress = util.safeExec(util.normalizedAddress, [lastResortAddress], handleAddressError) @@ -131,7 +168,9 @@ const Create = () => { return } } + setDeploying(true) + try { const { address } = await api.relayer.create({ root: ONEUtil.hexString(root), @@ -155,6 +194,7 @@ const Create = () => { dailyLimit: ONEUtil.toFraction(dailyLimit).toString(), hseed: ONEUtil.hexView(hseed), network, + doubleOtp, } await storeLayers() dispatch(walletActions.updateWallet(wallet)) @@ -193,7 +233,7 @@ const Create = () => { return ( <> - + What do you want to call your wallet? This is only stored on your computer to distinguish your wallets. @@ -203,7 +243,7 @@ const Create = () => { value={name} onChange={({ target: { value } }) => setName(value)} style={{ padding: 0 }} /> - + @@ -221,7 +261,7 @@ const Create = () => { } - + {/* Now, scan the QR code with your Google Authenticator */} @@ -232,6 +272,34 @@ const Create = () => { + + setDoubleOtp(!doubleOtp)}> + Use two One Time Passwords for enhanced security + + + + + After you are done, type in the 6-digit code from Google authenticator. + + + + + + + + {/* Now, scan the QR code with your Google Authenticator */} + Setup Second One Time Password + Use two One Time Password for enhanced security + + {qrCodeData && } + + + After you are done, type in the 6-digit code from Google authenticator. @@ -244,7 +312,7 @@ const Create = () => { - + Prepare Your ONE Wallet @@ -317,7 +385,7 @@ const Create = () => { - + You are all set! diff --git a/code/client/src/worker/ONEWalletWorker.js b/code/client/src/worker/ONEWalletWorker.js index 2f082faa..5c1d2d15 100644 --- a/code/client/src/worker/ONEWalletWorker.js +++ b/code/client/src/worker/ONEWalletWorker.js @@ -1,7 +1,7 @@ const ONE = require('../../../lib/onewallet') onmessage = async function (event) { - const { seed, effectiveTime, duration, slotSize, interval } = event.data + const { seed, seed2, effectiveTime, duration, slotSize, interval } = event.data if (!seed) { // console.log('worker: received event but it has no valid data', event) return @@ -16,6 +16,7 @@ onmessage = async function (event) { maxOperationsPerInterval, } = await ONE.computeMerkleTree({ otpSeed: seed, + otpSeed2: seed2, effectiveTime, duration, maxOperationsPerInterval: slotSize, From 0d7ce6b619d618e01c8ab7195e48bf3861ab96da Mon Sep 17 00:00:00 2001 From: Haolin Jiang Date: Wed, 4 Aug 2021 10:43:29 +1000 Subject: [PATCH 14/59] Use same name for second otp with suffix and adjust the instruction text --- code/client/src/pages/Create.jsx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/code/client/src/pages/Create.jsx b/code/client/src/pages/Create.jsx index 0b46d9b5..2153ff4d 100644 --- a/code/client/src/pages/Create.jsx +++ b/code/client/src/pages/Create.jsx @@ -137,7 +137,7 @@ const Create = () => { } else if (doubleOtp && !settingUpSecondOtp) { setSection(sectionViews.setupSecondOtp) - setName(generateNewOtpName()) + setName(`${name} (2nd)`) otpRef?.current?.focusInput(0) } else { @@ -272,11 +272,6 @@ const Create = () => { - - setDoubleOtp(!doubleOtp)}> - Use two One Time Passwords for enhanced security - - After you are done, type in the 6-digit code from Google authenticator. @@ -288,6 +283,13 @@ const Create = () => { /> + + setDoubleOtp(!doubleOtp)}> + Setup second One Time Password for enhanced security +
+ You will need to scan the QR code again in next step +
+
From 0f497a4d6d45fa84b66b07e3fcaa05dd1bd7c540 Mon Sep 17 00:00:00 2001 From: Haolin Jiang Date: Wed, 4 Aug 2021 15:25:23 +1000 Subject: [PATCH 15/59] Preset second otp qr data and not overriding otp name in the state --- code/client/src/pages/Create.jsx | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/code/client/src/pages/Create.jsx b/code/client/src/pages/Create.jsx index 2153ff4d..4a4f5eca 100644 --- a/code/client/src/pages/Create.jsx +++ b/code/client/src/pages/Create.jsx @@ -81,26 +81,31 @@ const Create = () => { const [durationVisible, setDurationVisible] = useState(false) const [section, setSection] = useState(sectionViews.setupOtp) const [qrCodeData, setQRCodeData] = useState() + const [secondOtpQrCodeData, setSecondOtpQrCodeData] = useState() const [otp, setOtp] = useState('') const [deploying, setDeploying] = useState() const otpRef = useRef() - const getQRCodeUri = (otpSeed) => { + const getQRCodeUri = (otpSeed, otpDisplayName) => { // otpauth://TYPE/LABEL?PARAMETERS - return `otpauth://totp/${name}?secret=${b32.encode(otpSeed)}&issuer=Harmony` + return `otpauth://totp/${otpDisplayName}?secret=${b32.encode(otpSeed)}&issuer=Harmony` } useEffect(() => { (async function () { - const otpSeed = section === sectionViews.setupSecondOtp ? seed2 : seed + const otpUri = getQRCodeUri(seed, name) - const uri = getQRCodeUri(otpSeed) + const secondOtpUri = getQRCodeUri(seed2, `${name} (2nd)`) - const data = await qrcode.toDataURL(uri, { errorCorrectionLevel: 'low', width: isMobile ? 192 : 256 }) + const otpQrCodeData = await qrcode.toDataURL(otpUri, { errorCorrectionLevel: 'low', width: isMobile ? 192 : 256 }) - setQRCodeData(data) + const secondOtpQrCodeData = await qrcode.toDataURL(secondOtpUri, { errorCorrectionLevel: 'low', width: isMobile ? 192 : 256 }) + + setQRCodeData(otpQrCodeData) + + setSecondOtpQrCodeData(secondOtpQrCodeData) })() }, [name]) @@ -137,8 +142,6 @@ const Create = () => { } else if (doubleOtp && !settingUpSecondOtp) { setSection(sectionViews.setupSecondOtp) - setName(`${name} (2nd)`) - otpRef?.current?.focusInput(0) } else { setSection(sectionViews.prepareWallet) @@ -298,7 +301,7 @@ const Create = () => { Setup Second One Time Password Use two One Time Password for enhanced security - {qrCodeData && } + {secondOtpQrCodeData && } From 7a845aee2d64abece1503e17f57e2e878ba8ae26 Mon Sep 17 00:00:00 2001 From: Haolin Jiang Date: Wed, 4 Aug 2021 21:53:22 +1000 Subject: [PATCH 16/59] Add otp2 for transfer and potentially restore wallet --- code/client/src/pages/Show.jsx | 73 ++++++++++++++++++++++++++++------ code/lib/api/flow.js | 9 +++-- 2 files changed, 65 insertions(+), 17 deletions(-) diff --git a/code/client/src/pages/Show.jsx b/code/client/src/pages/Show.jsx index 1d951c19..c7826285 100644 --- a/code/client/src/pages/Show.jsx +++ b/code/client/src/pages/Show.jsx @@ -116,7 +116,9 @@ const Show = () => { const [transferTo, setTransferTo] = useState('') const [inputAmount, setInputAmount] = useState('') const [otpInput, setOtpInput] = useState('') + const [otp2Input, setOtp2Input] = useState('') const otpRef = useRef() + const otp2Ref = useRef() const { balance: transferAmount, @@ -134,10 +136,13 @@ const Show = () => { setInputAmount(formatted) } } + const resetOtp = () => { setOtpInput('') + setOtp2Input('') otpRef?.current?.focusInput(0) } + const restart = () => { setStage(0) resetOtp() @@ -150,12 +155,23 @@ const Show = () => { // beforeReveal const prepareValidation = ({ checkAmount = true, checkDest = true, checkOtp = true } = {}) => { + let rawAmount + + const otp = util.parseOtp(otpInput) + + const otp2 = util.parseOtp(otp2Input) + + const invalidOtp = !otp + + const invalidOtp2 = wallet.doubleOtp && !otp2 + // Ensure valid address for both 0x and one1 formats const dest = util.safeExec(util.normalizedAddress, [transferTo], handleAddressError) + if (checkDest && !dest) { return } - let rawAmount + if (checkAmount) { if (selectedToken && util.isNFT(selectedToken)) { try { @@ -172,17 +188,23 @@ const Show = () => { return message.error('Transfer amount is invalid') } } - const otp = util.parseOtp(otpInput) - if (checkOtp && !otp) { - message.error(`Google Authenticator code [${otp}] is not valid`, 10) + + if (checkOtp && (invalidOtp || invalidOtp2)) { + message.error('Google Authenticator code is not valid', 10) resetOtp() return } - if (selectedToken && util.isNFT(selectedToken)) { - return { otp, dest, amount: rawAmount.toString() } + + return { + otp, + otp2, + dest, + invalidOtp, + invalidOtp2, + amount: selectedToken && util.isNFT(selectedToken) ? rawAmount.toString() : transferAmount.toString() } - return { otp, dest, amount: transferAmount.toString() } } + const onCommitError = (ex) => { Sentry.captureException(ex) console.error(ex) @@ -190,22 +212,26 @@ const Show = () => { setStage(0) resetOtp() } + const onCommitFailure = (error) => { message.error(`Cannot commit transaction. Reason: ${error}`) setStage(0) resetOtp() } + const onRevealFailure = (error) => { message.error(`Transaction Failed: ${error}`) setStage(0) resetOtp() } + const onRevealError = (ex) => { Sentry.captureException(ex) message.error(`Failed to finalize transaction. Error: ${ex.toString()}`) setStage(0) resetOtp() } + const onRevealAttemptFailed = (numAttemptsRemaining) => { message.error(`Failed to finalize transaction. Trying ${numAttemptsRemaining} more time`) } @@ -222,13 +248,15 @@ const Show = () => { } const doSend = async () => { - const { otp, dest, amount } = prepareValidation() || {} - if (!otp || !dest) return + const { otp, otp2, invalidOtp2, invalidOtp, dest, amount } = prepareValidation() || {} + + if (invalidOtp || !dest || invalidOtp2) return if (selectedToken.key === 'one') { SmartFlows.commitReveal({ wallet, otp, + otp2, commitHashGenerator: ONE.computeTransferHash, commitHashArgs: { dest, amount }, beforeCommit: () => setStage(1), @@ -249,6 +277,7 @@ const Show = () => { SmartFlows.commitReveal({ wallet, otp, + otp2, commitHashGenerator: ONE.computeTokenOperationHash, commitHashArgs: { dest, amount, operationType: ONEConstants.OperationType.TRANSFER_TOKEN, tokenType: selectedToken.tokenType, contractAddress: selectedToken.contractAddress, tokenId: selectedToken.tokenId }, beforeCommit: () => setStage(1), @@ -286,12 +315,13 @@ const Show = () => { } const doSetRecoveryAddress = async () => { - const { otp, dest } = prepareValidation({ checkAmount: false }) || {} - if (!otp || !dest) return + const { otp, otp2, invalidOtp2, invalidOtp, dest } = prepareValidation({ checkAmount: false }) || {} + if (invalidOtp || !dest || invalidOtp2) return SmartFlows.commitReveal({ wallet, otp, + otp2, commitHashGenerator: ONE.computeSetRecoveryAddressHash, commitHashArgs: { address: dest }, beforeCommit: () => setStage(1), @@ -484,16 +514,33 @@ const Show = () => { USD } - + - + + { + wallet.doubleOtp + ? ( + + + + + + + + ) + : <> + } diff --git a/code/lib/api/flow.js b/code/lib/api/flow.js index 7f601516..dd243ddd 100644 --- a/code/lib/api/flow.js +++ b/code/lib/api/flow.js @@ -7,10 +7,11 @@ const { api } = require('./index') const BN = require('bn.js') const EotpBuilders = { - fromOtp: ({ otp, wallet }) => { + fromOtp: ({ otp, otp2, wallet }) => { const { hseed } = wallet const encodedOtp = ONEUtil.encodeNumericalOtp(otp) - return ONE.computeEOTP({ otp: encodedOtp, hseed: ONEUtil.hexToBytes(hseed) }) + const encodedOtp2 = otp2 ? ONEUtil.encodeNumericalOtp(otp2) : undefined + return ONE.computeEOTP({ otp: encodedOtp, otp2: encodedOtp2, hseed: ONEUtil.hexToBytes(hseed) }) }, recovery: ({ wallet, layers }) => { const { hseed, effectiveTime } = wallet @@ -49,7 +50,7 @@ const Committer = { const Flows = { commitReveal: async ({ - otp, eotpBuilder = EotpBuilders.fromOtp, + otp, otp2, eotpBuilder = EotpBuilders.fromOtp, committer = Committer.legacy, wallet, layers, commitHashGenerator, commitHashArgs, beforeCommit, afterCommit, onCommitError, onCommitFailure, @@ -66,7 +67,7 @@ const Flows = { return } } - const eotp = eotpBuilder({ otp, wallet, layers }) + const eotp = eotpBuilder({ otp, otp2, wallet, layers }) if (!eotp) { message.error('Local state verification failed.') return From e1bff30b25df94409dce5da4f8add75f43078652 Mon Sep 17 00:00:00 2001 From: Haolin Jiang Date: Wed, 4 Aug 2021 23:03:25 +1000 Subject: [PATCH 17/59] Auto focus otp2 input box when otp1 input box is filled --- code/client/src/pages/Show.jsx | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/code/client/src/pages/Show.jsx b/code/client/src/pages/Show.jsx index c7826285..8e160aa6 100644 --- a/code/client/src/pages/Show.jsx +++ b/code/client/src/pages/Show.jsx @@ -120,6 +120,18 @@ const Show = () => { const otpRef = useRef() const otp2Ref = useRef() + useEffect(() => { + // Focus on OTP 2 input box when first OTP input box is filled. + if (otpInput.length === 6 && wallet.doubleOtp) { + // For some reason if the OTP input never been focused or touched by user before, it cannot be focused + // to index 0 programmatically, however focus to index 1 is fine. So as a workaround we focus on next input first then focus to + // index 0 box. Adding setTimeout 0 to make focus on index 0 run asynchronously, which gives browser just enough + // time to react the previous focus before we set the focus on index 0. + otp2Ref?.current?.focusNextInput() + setTimeout(() => otp2Ref?.current?.focusInput(0), 0) + } + }, [otpInput]) + const { balance: transferAmount, fiatFormatted: transferFiatAmountFormatted From f606270caa9a74d757a95da5218f35172824a43e Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Wed, 4 Aug 2021 18:11:57 -0700 Subject: [PATCH 18/59] fix issues with wasm in webpack compilation --- code/client/package.json | 1 + code/client/webpack.config.js | 13 ++++++++++++- code/client/yarn.lock | 5 +++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/code/client/package.json b/code/client/package.json index 6c8562da..1cfec210 100644 --- a/code/client/package.json +++ b/code/client/package.json @@ -26,6 +26,7 @@ "babel-loader": "^8.2.2", "babel-plugin-transform-react-remove-prop-types": "^0.4.24", "babel-preset-react": "^6.24.1", + "base64-loader": "^1.0.0", "copy-webpack-plugin": "^5.0.5", "core-js": "^3.13.0", "css-loader": "^5.2.6", diff --git a/code/client/webpack.config.js b/code/client/webpack.config.js index 2ac583f3..54e4f65d 100644 --- a/code/client/webpack.config.js +++ b/code/client/webpack.config.js @@ -11,6 +11,7 @@ module.exports = { historyApiFallback: true, }, module: { + noParse: /\.wasm$/, rules: [ { test: /\.(js|jsx)$/, @@ -56,7 +57,12 @@ module.exports = { } } ] - } + }, + { + test: /\.wasm$/, + loader: 'base64-loader', + type: 'javascript/auto', + }, ], }, entry: { @@ -71,6 +77,10 @@ module.exports = { publicPath: '/' }, + externals: { + path: 'path', + fs: 'fs', + }, resolve: { modules: [path.resolve(__dirname, 'node_modules'), 'node_modules'], extensions: ['.jsx', '.js'], @@ -78,6 +88,7 @@ module.exports = { stream: require.resolve('stream-browserify'), // TODO: remove later, after web3 is removed from dependency (for ethereum compatibility) http: require.resolve('stream-http'), + fs: false, os: require.resolve('os-browserify/browser'), https: require.resolve('https-browserify'), crypto: require.resolve('crypto-browserify') diff --git a/code/client/yarn.lock b/code/client/yarn.lock index 88b99f7a..3805b92d 100644 --- a/code/client/yarn.lock +++ b/code/client/yarn.lock @@ -2811,6 +2811,11 @@ base64-js@^1.0.2, base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +base64-loader@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64-loader/-/base64-loader-1.0.0.tgz#e530bad88e906dd2a1fad0af2d9e683fa8bd92a8" + integrity sha1-5TC62I6QbdKh+tCvLZ5oP6i9kqg= + base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" From 73deab000233937c1cf653177c5b12ca7466ed31 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Wed, 4 Aug 2021 19:21:43 -0700 Subject: [PATCH 19/59] improve Create screen texts, positioning, and user experience --- code/client/src/pages/Create.jsx | 41 ++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/code/client/src/pages/Create.jsx b/code/client/src/pages/Create.jsx index 4a4f5eca..316af974 100644 --- a/code/client/src/pages/Create.jsx +++ b/code/client/src/pages/Create.jsx @@ -6,8 +6,21 @@ import api from '../api' import ONEUtil from '../../../lib/util' import ONENames from '../../../lib/names' // import { uniqueNamesGenerator, colors, animals } from 'unique-names-generator' -import { Button, Row, Space, Typography, Slider, Image, message, Progress, Timeline, Select, Checkbox } from 'antd' -import { RedoOutlined, LoadingOutlined, SearchOutlined } from '@ant-design/icons' +import { + Button, + Row, + Space, + Typography, + Slider, + Image, + message, + Progress, + Timeline, + Select, + Checkbox, + Tooltip +} from 'antd' +import { RedoOutlined, LoadingOutlined, SearchOutlined, QuestionCircleOutlined } from '@ant-design/icons' import humanizeDuration from 'humanize-duration' import AnimatedSection from '../components/AnimatedSection' import b32 from 'hi-base32' @@ -284,22 +297,24 @@ const Create = () => { value={otp} onChange={setOtp} /> + setDoubleOtp(!doubleOtp)}> + + + Use two codes to enhance security + + You will need to scan another QR-code on the next page. Each time you make a transaction, you will need to type in two 6-digit codes, which are shown simultaneously next to each other on your Google authenticator.

This is advisable if you intend to make larger transactions with this wallet}> + +
+
+
- - setDoubleOtp(!doubleOtp)}> - Setup second One Time Password for enhanced security -
- You will need to scan the QR code again in next step -
-
- {/* Now, scan the QR code with your Google Authenticator */} - Setup Second One Time Password - Use two One Time Password for enhanced security + Create Your ONE Wallet + Scan using your Google Authenticator to setup the second code {secondOtpQrCodeData && } @@ -307,7 +322,7 @@ const Create = () => { - After you are done, type in the 6-digit code from Google authenticator. + Type in the second 6-digit code from Google authenticator. Date: Wed, 4 Aug 2021 19:23:17 -0700 Subject: [PATCH 20/59] remove redundant new lines --- code/client/src/pages/Create.jsx | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/code/client/src/pages/Create.jsx b/code/client/src/pages/Create.jsx index 316af974..294b4277 100644 --- a/code/client/src/pages/Create.jsx +++ b/code/client/src/pages/Create.jsx @@ -109,15 +109,10 @@ const Create = () => { useEffect(() => { (async function () { const otpUri = getQRCodeUri(seed, name) - const secondOtpUri = getQRCodeUri(seed2, `${name} (2nd)`) - const otpQrCodeData = await qrcode.toDataURL(otpUri, { errorCorrectionLevel: 'low', width: isMobile ? 192 : 256 }) - const secondOtpQrCodeData = await qrcode.toDataURL(secondOtpUri, { errorCorrectionLevel: 'low', width: isMobile ? 192 : 256 }) - setQRCodeData(otpQrCodeData) - setSecondOtpQrCodeData(secondOtpQrCodeData) })() }, [name]) @@ -135,26 +130,18 @@ const Create = () => { useEffect(() => { const settingUpSecondOtp = section === sectionViews.setupSecondOtp - if (otp.length !== 6) { return } - const currentSeed = settingUpSecondOtp ? seed2 : seed - const expected = ONEUtil.genOTP({ seed: currentSeed }) - const code = new DataView(expected.buffer).getUint32(0, false).toString() - setOtp('') - if (code.padStart(6, '0') !== otp.padStart(6, '0')) { message.error('Code is incorrect. Please try again.') - otpRef?.current?.focusInput(0) } else if (doubleOtp && !settingUpSecondOtp) { setSection(sectionViews.setupSecondOtp) - otpRef?.current?.focusInput(0) } else { setSection(sectionViews.prepareWallet) @@ -174,9 +161,7 @@ const Create = () => { message.error('Cannot deploy wallet. Error: root is not set.') return } - let normalizedAddress = '' - if (lastResortAddress !== '') { // Ensure valid address for both 0x and one1 formats normalizedAddress = util.safeExec(util.normalizedAddress, [lastResortAddress], handleAddressError) @@ -184,9 +169,7 @@ const Create = () => { return } } - setDeploying(true) - try { const { address } = await api.relayer.create({ root: ONEUtil.hexString(root), @@ -262,7 +245,6 @@ const Create = () => { - Next, we will set up a ONE Wallet that expires in a year. When the wallet expires, you may create a new wallet and transfer the funds. The funds can also be recovered to an address you set later. setDurationVisible(true)}>Need more time? From 3294346eece01811a3fe369395f88b5db0f0d1f2 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Wed, 4 Aug 2021 22:51:31 -0700 Subject: [PATCH 21/59] decodeOtp util --- code/lib/util.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/lib/util.js b/code/lib/util.js index b42ba35e..f61690a0 100644 --- a/code/lib/util.js +++ b/code/lib/util.js @@ -125,6 +125,10 @@ const utils = { return new Uint8Array(b.buffer) }, + decodeOtp: (otp) => { + return new DataView(otp.buffer).getUint32(0, false) + }, + toFraction: (ones, unit, decimals) => { const v = Conversion.toWei(ones, unit || 'ether') const diff = STANDARD_DECIMAL - (decimals || STANDARD_DECIMAL) From 7b0748d715f01b7ad2ee6c99b4b49db1d7867efd Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Wed, 4 Aug 2021 22:51:54 -0700 Subject: [PATCH 22/59] fix bug with hseed setter --- code/lib/onewallet.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/lib/onewallet.js b/code/lib/onewallet.js index bf8b5203..10d382ee 100644 --- a/code/lib/onewallet.js +++ b/code/lib/onewallet.js @@ -34,7 +34,7 @@ const computeMerkleTree = async ({ const hseed = new Uint8Array(hseedLength) if (seed2) { hseed.set(fastSHA256(seed).slice(0, hseedLength / 2)) - hseed.set(fastSHA256(seed2).slice(0, hseedLength / 2)) + hseed.set(fastSHA256(seed2).slice(0, hseedLength / 2), hseedLength / 2) } else { hseed.set(fastSHA256(seed).slice(0, hseedLength)) } From 9d166f8bee08fe7dae6de145f7314ca373ab4ceb Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Wed, 4 Aug 2021 23:03:03 -0700 Subject: [PATCH 23/59] fix progress observer --- code/lib/onewallet.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/lib/onewallet.js b/code/lib/onewallet.js index 10d382ee..d82d8ab1 100644 --- a/code/lib/onewallet.js +++ b/code/lib/onewallet.js @@ -24,9 +24,9 @@ const computeMerkleTree = async ({ const seed = processOtpSeed(otpSeed) const seed2 = otpSeed2 && processOtpSeed(otpSeed2) // console.log('Generating Wallet with parameters', { seed, height, otpInterval, effectiveTime }) - const buildProgressObserver = (max) => (i, n) => i % reportInterval === 0 && progressObserver(i, max || n, 0) + const buildProgressObserver = (max, j) => (i, n) => (i + (j || 0)) % reportInterval === 0 && progressObserver(i + (j || 0), max || n, 0) const otps = genOTP({ seed, counter, n, progressObserver: buildProgressObserver(seed2 ? n * 2 : n) }) - const otps2 = seed2 && genOTP({ seed: seed2, counter, n, progressObserver: buildProgressObserver(seed2 ? n * 2 : n) }) + const otps2 = seed2 && genOTP({ seed: seed2, counter, n, progressObserver: buildProgressObserver(n * 2, n) }) // legacy mode: no randomness, no seed2: 26 bytes for seed hash, 2 bytes for nonce, 4 bytes for OTP // single otp mode: 22 bytes for seed hash, 2 bytes for nonce, 4 bytes for OTP, 4 bytes for randomness // double otp mode: 18 bytes for seed hash, 2 bytes for nonce, 4 bytes for OTP, 4 bytes for second OTP, 4 bytes for randomness From eff7ca2bb4175f151cd756507483ca1941c4974a Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Wed, 4 Aug 2021 23:28:25 -0700 Subject: [PATCH 24/59] computeEOTP with async, hasher, double OTP, and randomness --- code/lib/onewallet.js | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/code/lib/onewallet.js b/code/lib/onewallet.js index d82d8ab1..e70a20a7 100644 --- a/code/lib/onewallet.js +++ b/code/lib/onewallet.js @@ -24,9 +24,9 @@ const computeMerkleTree = async ({ const seed = processOtpSeed(otpSeed) const seed2 = otpSeed2 && processOtpSeed(otpSeed2) // console.log('Generating Wallet with parameters', { seed, height, otpInterval, effectiveTime }) - const buildProgressObserver = (max, j) => (i, n) => (i + (j || 0)) % reportInterval === 0 && progressObserver(i + (j || 0), max || n, 0) - const otps = genOTP({ seed, counter, n, progressObserver: buildProgressObserver(seed2 ? n * 2 : n) }) - const otps2 = seed2 && genOTP({ seed: seed2, counter, n, progressObserver: buildProgressObserver(n * 2, n) }) + const buildProgressObserver = (max, stage, offset) => (i, n) => (i + (offset || 0)) % reportInterval === 0 && progressObserver(i + (offset || 0), max || n, stage || 0) + const otps = genOTP({ seed, counter, n, progressObserver: buildProgressObserver(seed2 ? n * 2 : n, 0, 0) }) + const otps2 = seed2 && genOTP({ seed: seed2, counter, n, progressObserver: buildProgressObserver(n * 2, 0, n) }) // legacy mode: no randomness, no seed2: 26 bytes for seed hash, 2 bytes for nonce, 4 bytes for OTP // single otp mode: 22 bytes for seed hash, 2 bytes for nonce, 4 bytes for OTP, 4 bytes for randomness // double otp mode: 18 bytes for seed hash, 2 bytes for nonce, 4 bytes for OTP, 4 bytes for second OTP, 4 bytes for randomness @@ -70,8 +70,8 @@ const computeMerkleTree = async ({ } } // TODO: parallelize this - const eotps = await hasher(input, { progressObserver: buildProgressObserver() }) - const leaves = await sha256b(eotps, { progressObserver: buildProgressObserver() }) + const eotps = await hasher(input, { progressObserver: buildProgressObserver(n * maxOperationsPerInterval * 2, 1) }) + const leaves = await sha256b(eotps, { progressObserver: buildProgressObserver(n * maxOperationsPerInterval * 2, 1, n * maxOperationsPerInterval) }) const layers = [] layers.push(leaves) for (let j = 1; j < height; j += 1) { @@ -155,16 +155,31 @@ const computeSetRecoveryAddressHash = ({ address }) => { return { hash: keccak(input), bytes: input } } -// otp, uint8array, 4 +// otp, uint8array[4] +// otp2, uint8array[4], optional +// rand, integer, optional // hseed, uint8array, 26, sha256 hash of the otp seed // nonce, positive integer (within 15-bit) -const computeEOTP = ({ otp, hseed, nonce = 0 }) => { +const computeEOTP = async ({ otp, otp2, rand = null, hseed, nonce = 0, hasher = sha256b }) => { const buffer = new Uint8Array(32) const nb = new Uint16Array([nonce]) - buffer.set(hseed.slice(0, 26)) - buffer.set(nb, 26) - buffer.set(otp, 28) - return fastSHA256(buffer) + buffer.set(hseed) + buffer.set(nb, hseed.length) + buffer.set(otp, hseed.length + 2) + if (otp2) { + buffer.set(otp2, hseed.length + 6) + } + console.log('otp', otp, hexView(otp)) + console.log('otp2', otp2, hexView(otp2)) + console.log('buffer', buffer, hexView(buffer)) + if (rand !== null) { + const rb = new Uint8Array(4) + const rv = new DataView(rb.buffer) + rv.setUint32(0, rand, false) + console.log('rb', rb) + buffer.set(rb, 28) + } + return hasher(buffer) } const computeRecoveryHash = () => { From 01081a3e12c3395c4246147caba94c457b8c5a3c Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Wed, 4 Aug 2021 23:28:52 -0700 Subject: [PATCH 25/59] transfer test with double otp, randomness, argon2 and sha256 --- code/test/client.js | 102 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 98 insertions(+), 4 deletions(-) diff --git a/code/test/client.js b/code/test/client.js index 36aeb881..048ce0ab 100644 --- a/code/test/client.js +++ b/code/test/client.js @@ -7,6 +7,7 @@ const ONEConstants = require('../lib/constants') const unit = require('ethjs-unit') const ONE_ETH = unit.toWei('1', 'ether') +const ONE_CENT = unit.toWei('0.01', 'ether') const SLOT_SIZE = 1 contract('ONEWallet', (accounts) => { @@ -172,7 +173,7 @@ contract('ONEWallet', (accounts) => { wallet: wallet.toString(), root, client: { - leaves, + leaves: ONEUtil.hexString(leaves), layers, }, contract: { @@ -193,9 +194,102 @@ contract('ONEWallet', (accounts) => { for (let i = 0; i < randomnessResults.length; i++) { assert.equal(randomnessResults[i], randomnessResults2[i], 'Randomness must be consistent when the same seed is given') } - const otp = ONEUtil.genOTP({ seed, counter: counter }) - const recovered = await ONE.recoverRandomness({ hseed, otp, randomness: 16, hasher: ONEUtil.argon2, leaf: leaves.subarray(0, 32) }) + const counterOffset = 3 + const otp = ONEUtil.genOTP({ seed, counter: counter + counterOffset }) + const recovered = await ONE.recoverRandomness({ hseed, otp, randomness: 16, hasher: ONEUtil.argon2, leaf: leaves.subarray(counterOffset * 32, counterOffset * 32 + 32) }) + // console.log(recovered, randomnessResults[counterOffset]) + assert.equal(recovered, randomnessResults[counterOffset], 'Controlled Randomness must be recovered') + }) + + const transferTest = async ({ hasher = ONEUtil.sha256b }) => { + const effectiveTime = Math.floor(Date.now() / INTERVAL) * INTERVAL - DURATION / 2 + const purse = web3.eth.accounts.create() + + const { + seed, + seed2, + hseed, + randomnessResults, + wallet, + root, + client: { + leaves, + layers, + }, + contract: { + slotSize, + t0, + lifespan, + interval + } } = await createWallet({ + effectiveTime, + duration: DURATION, + maxOperationsPerInterval: SLOT_SIZE, + lastResortAddress: ONEConstants.EmptyAddress, + dailyLimit: ONE_ETH, + randomness: 16, + hasher, + doubleOtp: true, + }) + Logger.debug({ + seed, + seed2, + hseed, + randomnessResults, + wallet: wallet.toString(), + root, + client: { + leaves, + layers, + }, + contract: { + slotSize, + t0, + lifespan, + interval + } }) + + const otp = ONEUtil.genOTP({ seed }) + const otp2 = ONEUtil.genOTP({ seed: seed2 }) + const index = ONEUtil.timeToIndex({ effectiveTime }) + const leaf = leaves.subarray(index * 32, index * 32 + 32) + Logger.debug(`otp=${ONEUtil.decodeOtp(otp)} otp2=${ONEUtil.decodeOtp(otp2)} index=${index}. Recovering rand...`) + const rand = await ONE.recoverRandomness({ hseed, otp, otp2, randomness: 16, hasher, leaf }) + Logger.debug(`rand=${rand} recovered`) + assert.ok(rand !== null, 'Recover randomness must succeed') + const neighbors = ONE.selectMerkleNeighbors({ layers, index }) + const neighbor = neighbors[0] + const eotp = await ONE.computeEOTP({ otp, otp2, rand, hseed, hasher }) + Logger.debug(`eotp=${ONEUtil.hexString(eotp)} SHA256(eotp)=${ONEUtil.hexString(ONEUtil.sha256(eotp))} leaf=${ONEUtil.hexString(leaf)}`) + assert.ok(ONEUtil.bytesEqual(ONEUtil.sha256(eotp), leaf), 'SHA256(EOTP) must be leaf') + const { hash: commitHash } = ONE.computeCommitHash({ neighbor, index, eotp }) + const { hash: paramsHash } = ONE.computeTransferHash({ dest: purse.address, amount: ONE_CENT.divn(2) }) + const { hash: verificationHash } = ONE.computeVerificationHash({ paramsHash, eotp }) + const neighborsEncoded = neighbors.map(ONEUtil.hexString) + await web3.eth.sendTransaction({ + from: accounts[0], + to: wallet.address, + value: ONE_CENT + }) + Logger.debug(`Deposited ${ONE_CENT.toString()} wei`) + await wallet.commit(ONEUtil.hexString(commitHash), ONEUtil.hexString(paramsHash), ONEUtil.hexString(verificationHash)) + const tx = await wallet.reveal( + neighborsEncoded, index, ONEUtil.hexString(eotp), + ONEConstants.OperationType.TRANSFER, ONEConstants.TokenType.NONE, ONEConstants.EmptyAddress, 0, purse.address, ONE_CENT.divn(2), '0x' + ) + Logger.debug('tx=', tx) + assert.ok(tx.tx, 'Transaction must succeed') + const walletBalance = await web3.eth.getBalance(wallet.address) + const purseBalance = await web3.eth.getBalance(purse.address) + assert.equal(ONE_CENT.divn(2).toString(), walletBalance, `Wallet must have correct balance: ${ONE_CENT.divn(2)}`) + assert.equal(ONE_CENT.divn(2).toString(), purseBalance, `Purse must have correct balance: ${ONE_CENT.divn(2)}`) + } + + it('Client_Transfer: must compute EOTP correctly and complete transfer, using double OTP + argon2', async () => { + await transferTest({ hasher: ONEUtil.sha256b }) + }) - assert.equal(recovered, randomnessResults[0], 'Controlled Randomness must be recovered') + it('Client_Transfer: must compute EOTP correctly and complete transfer, using double OTP + sha256b', async () => { + await transferTest({ hasher: ONEUtil.argon2 }) }) }) From 97a36a06f2fcf496cd672f889eb93d9199cda548 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Wed, 4 Aug 2021 23:31:28 -0700 Subject: [PATCH 26/59] await eotp in all tests; make all tests pass --- code/test/wallet.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/test/wallet.js b/code/test/wallet.js index ca2eac6f..2c9bd20a 100644 --- a/code/test/wallet.js +++ b/code/test/wallet.js @@ -99,7 +99,7 @@ contract('ONEWallet', (accounts) => { const otp = ONEUtil.genOTP({ seed }) const index = ONEUtil.timeToIndex({ effectiveTime: EFFECTIVE_TIME }) - const eotp = ONE.computeEOTP({ otp, hseed }) + const eotp = await ONE.computeEOTP({ otp, hseed }) Logger.debug(`To compute neighbors`, { otp: new DataView(otp.buffer).getUint32(0, false), eotp: ONEUtil.hexString(eotp), @@ -160,7 +160,7 @@ contract('ONEWallet', (accounts) => { }) const otp = ONEUtil.genOTP({ seed }) const index = ONEUtil.timeToIndex({ effectiveTime: EFFECTIVE_TIME }) - const eotp = ONE.computeEOTP({ otp, hseed }) + const eotp = await ONE.computeEOTP({ otp, hseed }) const neighbors = ONE.selectMerkleNeighbors({ layers, index }) const neighbor = neighbors[0] const { hash: commitHash } = ONE.computeCommitHash({ neighbor, index, eotp }) @@ -196,7 +196,7 @@ contract('ONEWallet', (accounts) => { }) const otp = ONEUtil.genOTP({ seed }) const index = ONEUtil.timeToIndex({ effectiveTime: EFFECTIVE_TIME }) - const eotp = ONE.computeEOTP({ otp, hseed }) + const eotp = await ONE.computeEOTP({ otp, hseed }) const neighbors = ONE.selectMerkleNeighbors({ layers, index }) const neighbor = neighbors[0] const { hash: commitHash } = ONE.computeCommitHash({ neighbor, index, eotp }) From eb497c97ff83f90c12108e9ee7fc4b084e5252c8 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Wed, 4 Aug 2021 23:42:27 -0700 Subject: [PATCH 27/59] await EOTP everywhere --- code/cli/src/make.js | 4 ++-- code/lib/api/flow.js | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/code/cli/src/make.js b/code/cli/src/make.js index 7972dd2d..ae9e4656 100644 --- a/code/cli/src/make.js +++ b/code/cli/src/make.js @@ -28,7 +28,7 @@ const MakeWallet = ({ lastResortAddress, otpInput }) => { return setError('Authenticator code is invalid: ' + otpInput) } const otp = ONEUtil.encodeNumericalOtp(otpNum) - const eotp = ONE.computeEOTP({ hseed: ONEUtil.hexToBytes(hseed), otp }) + const eotp = await ONE.computeEOTP({ hseed: ONEUtil.hexToBytes(hseed), otp }) const computedLeaf = ONEUtil.sha256(eotp) if (!ONEUtil.bytesEqual(computedLeaf, leaf)) { setError(`The OTP code you provided [${otpInput}] is incorrect.`) @@ -86,7 +86,7 @@ const MakeWallet = ({ lastResortAddress, otpInput }) => { {wallet && <> - Wallet deployed: + Wallet deployed: } diff --git a/code/lib/api/flow.js b/code/lib/api/flow.js index 7f601516..9cc65278 100644 --- a/code/lib/api/flow.js +++ b/code/lib/api/flow.js @@ -7,12 +7,12 @@ const { api } = require('./index') const BN = require('bn.js') const EotpBuilders = { - fromOtp: ({ otp, wallet }) => { + fromOtp: async ({ otp, wallet }) => { const { hseed } = wallet const encodedOtp = ONEUtil.encodeNumericalOtp(otp) return ONE.computeEOTP({ otp: encodedOtp, hseed: ONEUtil.hexToBytes(hseed) }) }, - recovery: ({ wallet, layers }) => { + recovery: async ({ wallet, layers }) => { const { hseed, effectiveTime } = wallet const index = ONEUtil.timeToIndex({ effectiveTime }) const leaf = layers[0].subarray(index * 32, index * 32 + 32).slice() @@ -66,7 +66,7 @@ const Flows = { return } } - const eotp = eotpBuilder({ otp, wallet, layers }) + const eotp = await eotpBuilder({ otp, wallet, layers }) if (!eotp) { message.error('Local state verification failed.') return From d3253c23a1a4c9953a0844ebec9b4c9f9f47231b Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 00:03:26 -0700 Subject: [PATCH 28/59] more parameters in eotpbuilder.fromOtp --- code/lib/api/flow.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/lib/api/flow.js b/code/lib/api/flow.js index 9cc65278..4d8efbf2 100644 --- a/code/lib/api/flow.js +++ b/code/lib/api/flow.js @@ -7,10 +7,10 @@ const { api } = require('./index') const BN = require('bn.js') const EotpBuilders = { - fromOtp: async ({ otp, wallet }) => { + fromOtp: async ({ otp, otp2, rand, nonce, wallet }) => { const { hseed } = wallet const encodedOtp = ONEUtil.encodeNumericalOtp(otp) - return ONE.computeEOTP({ otp: encodedOtp, hseed: ONEUtil.hexToBytes(hseed) }) + return ONE.computeEOTP({ otp: encodedOtp, otp2, rand, nonce, hseed: ONEUtil.hexToBytes(hseed) }) }, recovery: async ({ wallet, layers }) => { const { hseed, effectiveTime } = wallet From b549b6ec72b3f97420dc3ff58cb0d2a75b5585c1 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 00:53:29 -0700 Subject: [PATCH 29/59] sync flow.js from frontend branch --- code/lib/api/flow.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/lib/api/flow.js b/code/lib/api/flow.js index 4d8efbf2..a8f81701 100644 --- a/code/lib/api/flow.js +++ b/code/lib/api/flow.js @@ -10,7 +10,8 @@ const EotpBuilders = { fromOtp: async ({ otp, otp2, rand, nonce, wallet }) => { const { hseed } = wallet const encodedOtp = ONEUtil.encodeNumericalOtp(otp) - return ONE.computeEOTP({ otp: encodedOtp, otp2, rand, nonce, hseed: ONEUtil.hexToBytes(hseed) }) + const encodedOtp2 = otp2 ? ONEUtil.encodeNumericalOtp(otp2) : undefined + return ONE.computeEOTP({ otp: encodedOtp, otp2: encodedOtp2, rand, nonce, hseed: ONEUtil.hexToBytes(hseed) }) }, recovery: async ({ wallet, layers }) => { const { hseed, effectiveTime } = wallet @@ -49,7 +50,7 @@ const Committer = { const Flows = { commitReveal: async ({ - otp, eotpBuilder = EotpBuilders.fromOtp, + otp, otp2, eotpBuilder = EotpBuilders.fromOtp, committer = Committer.legacy, wallet, layers, commitHashGenerator, commitHashArgs, beforeCommit, afterCommit, onCommitError, onCommitFailure, @@ -66,7 +67,7 @@ const Flows = { return } } - const eotp = await eotpBuilder({ otp, wallet, layers }) + const eotp = await eotpBuilder({ otp, otp2, wallet, layers }) if (!eotp) { message.error('Local state verification failed.') return From 106cbeff7866a33941f69a1d46db041754956c94 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 01:04:45 -0700 Subject: [PATCH 30/59] rand, hasher, nonce, otp2 in commitReveal flow --- code/lib/api/flow.js | 12 +++++++++--- code/lib/util.js | 7 +++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/code/lib/api/flow.js b/code/lib/api/flow.js index a8f81701..f1c7fa41 100644 --- a/code/lib/api/flow.js +++ b/code/lib/api/flow.js @@ -59,7 +59,7 @@ const Flows = { maxTransferAttempts = 3, checkCommitInterval = 5000, message = messager }) => { - const { effectiveTime, root, address } = wallet + const { effectiveTime, root, address, randomness, hseed, hasher } = wallet if (!layers) { layers = await storage.getItem(root) if (!layers) { @@ -67,13 +67,19 @@ const Flows = { return } } - const eotp = await eotpBuilder({ otp, otp2, wallet, layers }) + const index = ONEUtil.timeToIndex({ effectiveTime }) + let nonce // should get from blockchain, but omitted for now because all wallets have maxOperationsPerInterval set to 1. + let rand + if (randomness > 0) { + rand = await ONE.recoverRandomness({ hseed, otp, otp2, nonce, leaf: layers[0][index], hasher: ONEUtil.getHasher(hasher) }) + } + const eotp = await eotpBuilder({ otp, otp2, rand, wallet, layers }) if (!eotp) { message.error('Local state verification failed.') return } beforeCommit && await beforeCommit() - const index = ONEUtil.timeToIndex({ effectiveTime }) + const neighbors = ONE.selectMerkleNeighbors({ layers, index }) const neighbor = neighbors[0] diff --git a/code/lib/util.js b/code/lib/util.js index f61690a0..dc2a0de3 100644 --- a/code/lib/util.js +++ b/code/lib/util.js @@ -154,6 +154,13 @@ const utils = { argon2: async (input, { salt = new Uint8Array(8), progressObserver, batchSize = 32 } = {}) => { const { result } = await argon2.hash({ pass: input, batchSize, salt, progressObserver }) return result + }, + + getHasher: (hasher) => { + if (hasher === 'argon2') { + return utils.argon2 + } + return utils.sha256b } } From 76d6e482167e697723a50fe657e0552465afdad7 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 02:45:12 -0700 Subject: [PATCH 31/59] allow arbitrary paramsHash in recover; use last leaf as recover EOTP --- code/contracts/ONEWallet.sol | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/code/contracts/ONEWallet.sol b/code/contracts/ONEWallet.sol index 658e6209..c1318c28 100644 --- a/code/contracts/ONEWallet.sol +++ b/code/contracts/ONEWallet.sol @@ -21,6 +21,7 @@ contract ONEWallet is TokenTracker { uint32 immutable t0; // starting time block (effectiveTime (in ms) / interval) uint32 immutable lifespan; // in number of block (e.g. 1 block per [interval] seconds) uint8 immutable maxOperationsPerInterval; // number of transactions permitted per OTP interval. Each transaction shall have a unique nonce. The nonce is auto-incremented within each interval + uint32 immutable _numLeaves; // 2 ** (height - 1) /// global mutable variables address payable lastResortAddress; // where money will be sent during a recovery process (or when the wallet is beyond its lifespan) @@ -39,10 +40,11 @@ contract ONEWallet is TokenTracker { uint32 constant MAX_COMMIT_SIZE = 120; uint32 constant majorVersion = 0x7; // a change would require client to migrate - uint32 constant minorVersion = 0x2; // a change would not require the client to migrate + uint32 constant minorVersion = 0x3; // a change would not require the client to migrate enum OperationType { - TRACK, UNTRACK, TRANSFER_TOKEN, OVERRIDE_TRACK, TRANSFER, SET_RECOVERY_ADDRESS, RECOVER + TRACK, UNTRACK, TRANSFER_TOKEN, OVERRIDE_TRACK, TRANSFER, SET_RECOVERY_ADDRESS, RECOVER, + REPLACE // reserved, not implemented yet. This is for replacing the root and set up new parameters (t0, lifespan) } /// commit management struct Commit { @@ -68,6 +70,7 @@ contract ONEWallet is TokenTracker { lastResortAddress = lastResortAddress_; dailyLimit = dailyLimit_; maxOperationsPerInterval = maxOperationsPerInterval_; + _numLeaves = uint32(2 ** (height_ - 1)); } receive() external payable { @@ -273,7 +276,7 @@ contract ONEWallet is TokenTracker { if (operationType == OperationType.TRANSFER) { paramsHash = keccak256(bytes.concat(bytes32(bytes20(address(dest))), bytes32(amount))); } else if (operationType == OperationType.RECOVER) { - paramsHash = bytes32(0); + paramsHash = keccak256(data); } else if (operationType == OperationType.SET_RECOVERY_ADDRESS) { paramsHash = keccak256(bytes.concat(bytes32(bytes20(address(dest))))); } else { @@ -296,6 +299,9 @@ contract ONEWallet is TokenTracker { OperationType operationType, TokenType tokenType, address contractAddress, uint256 tokenId, address payable dest, uint256 amount, bytes calldata data) external { _isCorrectProof(neighbors, indexWithNonce, eotp); + if (indexWithNonce == _numLeaves - 1) { + require(operationType == OperationType.RECOVER, "Last operation reserved for recover"); + } (bytes32 commitHash, bytes32 paramsHash) = _getRevealHash(neighbors[0], indexWithNonce, eotp, operationType, tokenType, contractAddress, tokenId, dest, amount, data); uint32 commitIndex = _verifyReveal(commitHash, indexWithNonce, paramsHash, eotp); @@ -330,6 +336,10 @@ contract ONEWallet is TokenTracker { function _isCorrectProof(bytes32[] calldata neighbors, uint32 position, bytes32 eotp) view internal { require(neighbors.length == height - 1, "Not enough neighbors provided"); bytes32 h = sha256(bytes.concat(eotp)); + if (position == _numLeaves - 1) { + // special case: recover only + h = eotp; + } for (uint8 i = 0; i < height - 1; i++) { if ((position & 0x01) == 0x01) { h = sha256(bytes.concat(neighbors[i], h)); From 54a78a84ca38b72a53c5cee54f67c9f1167a89e1 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 02:45:37 -0700 Subject: [PATCH 32/59] compile contracts --- code/build/contracts/ONEWallet.json | 32388 ++++++++++++----------- code/build/contracts/TokenTracker.json | 13776 +++++----- 2 files changed, 24500 insertions(+), 21664 deletions(-) diff --git a/code/build/contracts/ONEWallet.json b/code/build/contracts/ONEWallet.json index 7c81bd40..53493895 100644 --- a/code/build/contracts/ONEWallet.json +++ b/code/build/contracts/ONEWallet.json @@ -904,35 +904,35 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root_\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"height_\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"interval_\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"t0_\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"lifespan_\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"maxOperationsPerInterval_\",\"type\":\"uint8\"},{\"internalType\":\"address payable\",\"name\":\"lastResortAddress_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"dailyLimit_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"AutoRecoveryTriggered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"current\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"ExceedDailyLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"InsufficientFund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"LastResortAddressNotSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"PaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"PaymentSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ReceivedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"RecoveryFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenNotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenTracked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"TokenTransferError\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenUntracked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"UnknownTransferError\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"verificationHash\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"findCommit\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllCommits\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCommits\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentSpending\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInfo\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrackedTokens\",\"outputs\":[{\"internalType\":\"enum TokenTracker.TokenType[]\",\"name\":\"\",\"type\":\"uint8[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVersion\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"lookupCommit\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"retire\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"neighbors\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32\",\"name\":\"indexWithNonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"eotp\",\"type\":\"bytes32\"},{\"internalType\":\"enum ONEWallet.OperationType\",\"name\":\"operationType\",\"type\":\"uint8\"},{\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"dest\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"reveal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/polymorpher/git/one-wallet/code/contracts/ONEWallet.sol\":\"ONEWallet\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/polymorpher/git/one-wallet/code/contracts/ONEWallet.sol\":{\"keccak256\":\"0x7e6c50faefdd6893386817494463343344b794c6a26d5937a32b2b169150b9bb\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://a65b77abbd894e9995e79cb6268836de7e82532796ab345975720108d3245f07\",\"dweb:/ipfs/QmfEzEJgUmWdvHwkFFLYZu7LnyBi6jxc8dyTSt7Fousz38\"]},\"/Users/polymorpher/git/one-wallet/code/contracts/TokenTracker.sol\":{\"keccak256\":\"0x153e8bd4263b7b071e5c4e9e44f5da2afb16c74207e8a6a071c837721de1747b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5550ad4a2929a9216432939182544a355ccfa1fdc04566497d4215d08171d115\",\"dweb:/ipfs/QmRkCR7qmJP6oLqFs7FbAZNgQUV9PNRLweP4Kkv3L81AW7\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xfce1eb6398eae0e2b50251140866a70a3106193f101972c878bba1dbf44929ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f0709c3f462b28b400f57db181254ad970967c3b49a8948ef5e05929b106ffe\",\"dweb:/ipfs/QmNe3sRmPKw1T7q7m733tk7tFKpi3jo9PCisDPMbjeg3kJ\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x7de6e64d4a8075e803a972cc77c4c91463e0c3777e4110eacfb5d4a71759b2fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b3b09ef36374c1c104ee896797dadf2e81466d2143b481d3f1ddc7d9f3873\",\"dweb:/ipfs/QmSWtqs28RHDezRWBbmEfqiPYwsGTKj44NRbuxvZ96cqMU\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\",\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf101e8720213560fab41104d53b3cc7ba0456ef3a98455aa7f022391783144a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e7820bcf567e6892d937c3cb10db263a4042e446799bca602535868d822384e\",\"dweb:/ipfs/QmPG2oeDjKncqsEeyYGjAN7CwAJmMgHterXGGnpzhha4z7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xd9517254724276e2e8de3769183c1f738f445f0095c26fd9b86d3c6687e887b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e604bcdcd5e5b2fb299ad09769cde6db19d5aa1929d1b5e939234a0f10d7eb8\",\"dweb:/ipfs/Qmd8hXE3GZfBHuWx3RNiYgFW2ci7KvHtib8DiwzJ2dgo9V\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xa28007762d9da9db878dd421960c8cb9a10471f47ab5c1b3309bfe48e9e79ff4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://796ab6e88af7bf0e78def0f059310c903af6a312b565344e0ff524a0f26e81c6\",\"dweb:/ipfs/QmcsVgLgzWdor3UnAztUkXKNGcysm1MPneWksF72AvnwBx\"]}},\"version\":1}", - "bytecode": "0x6101406040523480156200001257600080fd5b5060405162005281380380620052818339810160408190526200003591620000ed565b6080979097527fff0000000000000000000000000000000000000000000000000000000000000060f896871b811660a05294861b851660c0526001600160e01b031960e094851b811685529290931b90911661010052600280546001600160a01b039093166001600160a01b03199093169290921790915560039390935591901b166101205262000191565b805163ffffffff81168114620000d657600080fd5b919050565b805160ff81168114620000d657600080fd5b600080600080600080600080610100898b0312156200010a578384fd5b885197506200011c60208a01620000db565b96506200012c60408a01620000db565b95506200013c60608a01620000c1565b94506200014c60808a01620000c1565b93506200015c60a08a01620000db565b60c08a01519093506001600160a01b038116811462000179578283fd5b8092505060e089015190509295985092959890939650565b60805160a05160f81c60c05160f81c60e05160e01c6101005160e01c6101205160f81c61501a62000267600039600081816103b2015281816120ef01526121200152600081816103900152610e6101526000818161036e01528181610e83015281816113170152818161228b015281816125f101528181613b610152613b9801526000818161034c01528181610ea90152818161133d015281816122b3015281816126190152613b3501526000818161032a01528181611bdd0152611ccf0152600081816103080152611e7b015261501a6000f3fe6080604052600436106100f75760003560e01c8063a17027e11161008a578063d087d28811610059578063d087d288146104d5578063d87458a3146104fc578063e4e5b2581461051c578063f23a6e611461053c57600080fd5b8063a17027e11461045a578063a4874d7714610480578063bc197c8114610495578063c34a6dad146104b557600080fd5b80632293d3fb116100c65780632293d3fb1461029e5780632f1f7520146102cb5780635a9b0b89146102f0578063695def4c1461043657600080fd5b806301ffc9a7146101c05780630d8e6e2c146101f5578063150b7a02146102175780631cf4ea051461025057600080fd5b366101bb57604080513481523360208201527fa26ab80e902f2055a125714fc6f2eb15df2a09c7fe39c7fc71204ffba72109db910160405180910390a1670de0b6b3a7640000341461014557005b6002546001600160a01b0316331461015957005b6002546001600160a01b031661016b57005b3330141561017557005b6040513381527f0cbe1fea4becf04af2176bbef0c9c53d439d30a05a197aacc38bb4a2873222e39060200160405180910390a16101b061055c565b6101b957600080fd5b005b600080fd5b3480156101cc57600080fd5b506101e06101db366004614792565b6105bb565b60405190151581526020015b60405180910390f35b34801561020157600080fd5b50604080516007815260016020820152016101ec565b34801561022357600080fd5b50610237610232366004614542565b61060d565b6040516001600160e01b031990911681526020016101ec565b34801561025c57600080fd5b5061027061026b366004614737565b610673565b6040516101ec9493929190938452602084019290925263ffffffff1660408301521515606082015260800190565b3480156102aa57600080fd5b506004546005546040805192835263ffffffff9091166020830152016101ec565b3480156102d757600080fd5b506102e06106b9565b6040516101ec9493929190614a64565b3480156102fc57600080fd5b506103e06002546003547f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0390911691565b6040805198895260ff97881660208a01529587169588019590955263ffffffff9384166060880152919092166080860152921660a08401526001600160a01b0390911660c083015260e0820152610100016101ec565b34801561044257600080fd5b5061044b6106f6565b6040516101ec93929190614ab1565b34801561046657600080fd5b5061046f6109e4565b6040516101ec959493929190614a03565b34801561048c57600080fd5b506101e0610e58565b3480156104a157600080fd5b506102376104b0366004614488565b610fc6565b3480156104c157600080fd5b506101b96104d036600461462b565b6110d8565b3480156104e157600080fd5b506104ea611312565b60405160ff90911681526020016101ec565b34801561050857600080fd5b5061046f610517366004614737565b61138b565b34801561052857600080fd5b506101b9610537366004614767565b6116fd565b34801561054857600080fd5b506102376105573660046145b2565b61181e565b60025460405160009182916001600160a01b039091169047908381818185875af1925050503d80600081146105ad576040519150601f19603f3d011682016040523d82523d6000602084013e6105b2565b606091505b50909392505050565b60006001600160e01b031982166301ffc9a760e01b14806105ec57506001600160e01b0319821663f23a6e6160e01b145b8061060757506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161064d989796959493929190614c34565b60405180910390a161066160013386611885565b50630a85bd0160e11b95945050505050565b60008060008060405162461bcd60e51b81526004016106b0906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b60405180910390fd5b60608060608060405162461bcd60e51b81526004016106b0906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b606080606060006001805490506001600160401b0381111561072857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610751578160200160208202803683370190505b506001549091506000906001600160401b0381111561078057634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156107a9578160200160208202803683370190505b506001549091506000906001600160401b038111156107d857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610801578160200160208202803683370190505b50905060005b60015463ffffffff821610156109d75760018163ffffffff168154811061083e57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061087d57634e487b7160e01b600052603260045260246000fd5b602002602001019060038111156108a457634e487b7160e01b600052602160045260246000fd5b908160038111156108c557634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106108f057634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff168151811061093b57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061098257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff16815181106109ba57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806109cf81614e85565b915050610807565b5091959094509092509050565b60608060608060606000805b60085463ffffffff82161015610a6e5760006009600060088463ffffffff1681548110610a2d57634e487b7160e01b600052603260045260246000fd5b906000526020600020015481526020019081526020016000209050808054905083610a589190614d16565b9250508080610a6690614e85565b9150506109f0565b5060008163ffffffff166001600160401b03811115610a9d57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610ac6578160200160208202803683370190505b50905060008263ffffffff166001600160401b03811115610af757634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b20578160200160208202803683370190505b50905060008363ffffffff166001600160401b03811115610b5157634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b7a578160200160208202803683370190505b50905060008463ffffffff166001600160401b03811115610bab57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610bd4578160200160208202803683370190505b50905060008563ffffffff166001600160401b03811115610c0557634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c2e578160200160208202803683370190505b5090506000805b60085463ffffffff82161015610e455760006009600060088463ffffffff1681548110610c7257634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020905060005b815463ffffffff82161015610e30576000828263ffffffff1681548110610cc757634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201905080600001548a8663ffffffff1681518110610d0257634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154898663ffffffff1681518110610d3957634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154888663ffffffff1681518110610d7057634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154875163ffffffff918216918991908816908110610dad57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16868663ffffffff1681518110610dff57634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015284610e1981614e85565b955050508080610e2890614e85565b915050610c90565b50508080610e3d90614e85565b915050610c35565b50949b939a509198509650945092505050565b600063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000610ecf60ff7f00000000000000000000000000000000000000000000000000000000000000001642614d3e565b610ed99190614dd7565b63ffffffff1611610f225760405162461bcd60e51b8152602060048201526013602482015272546f6f206561726c7920746f2072657469726560681b60448201526064016106b0565b6002546001600160a01b0316610f7a5760405162461bcd60e51b815260206004820152601e60248201527f4c617374207265736f72742061646472657373206973206e6f7420736574000060448201526064016106b0565b610f8261055c565b610fc05760405162461bcd60e51b815260206004820152600f60248201526e149958dbdd995c9e4819985a5b1959608a1b60448201526064016106b0565b50600190565b6000805b63ffffffff81168711156110c2573063f23a6e618b8b8b8b63ffffffff871681811061100657634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061103357634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161105d96959493929190614977565b602060405180830381600087803b15801561107757600080fd5b505af115801561108b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110af91906147ae565b50806110ba81614e85565b915050610fca565b5063bc197c8160e01b9998505050505050505050565b6110e48c8c8c8c611bd6565b6000806111218e8e600081811061110b57634e487b7160e01b600052603260045260246000fd5b905060200201358d8d8d8d8d8d8d8d8d8d611ee4565b915091506000611133838e848f6120e5565b905061113f83826124b7565b60008b600681111561116157634e487b7160e01b600052602160045260246000fd5b141561118757831561117c57611177858561267e565b611301565b6111778a8a8a611885565b60018b60068111156111a957634e487b7160e01b600052602160045260246000fd5b14156111ca5783156111c0576111778a8a8a61280e565b6111778585612e5c565b60028b60068111156111ec57634e487b7160e01b600052602160045260246000fd5b1415611236576111778a8a8a8a8a8a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f3292505050565b60038b600681111561125857634e487b7160e01b600052602160045260246000fd5b14156112685761117785856132ae565b60048b600681111561128a57634e487b7160e01b600052602160045260246000fd5b14156112a05761129a8787613476565b50611301565b60068b60068111156112c257634e487b7160e01b600052602160045260246000fd5b14156112d05761129a613683565b60058b60068111156112f257634e487b7160e01b600052602160045260246000fd5b14156113015761130187613700565b505050505050505050505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000061136360ff7f00000000000000000000000000000000000000000000000000000000000000001642614d52565b61136d9190614dd7565b63ffffffff1660009081526006602052604090205460ff1692915050565b600081815260096020526040812080546060928392839283928392916001600160401b038111156113cc57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156113f5578160200160208202803683370190505b5082549091506000906001600160401b0381111561142357634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561144c578160200160208202803683370190505b5083549091506000906001600160401b0381111561147a57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114a3578160200160208202803683370190505b5084549091506000906001600160401b038111156114d157634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114fa578160200160208202803683370190505b5085549091506000906001600160401b0381111561152857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611551578160200160208202803683370190505b50905060005b865463ffffffff821610156116e9576000878263ffffffff168154811061158e57634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060000154878363ffffffff16815181106115c957634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154868363ffffffff168151811061160057634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154858363ffffffff168151811061163757634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154845163ffffffff91821691869190851690811061167457634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16838363ffffffff16815181106116c657634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015250806116e181614e85565b915050611557565b50939b929a50909850965090945092505050565b611705613786565b6040805160a0810182528481526020810184905290810182905263ffffffff42166060820152600060808201526008546078116117775760405162461bcd60e51b815260206004820152601060248201526f546f6f206d616e7920636f6d6d69747360801b60448201526064016106b0565b6008805460018181019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018590556000948552600960209081526040808720805480850182559088529682902084516004909802019687559083015191860191909155810151600285015560608101516003909401805460809092015115156401000000000264ffffffffff1990921663ffffffff90951694909417179092555050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a898960405161185e989796959493929190614c34565b60405180910390a161187260023387611885565b5063f23a6e6160e01b9695505050505050565b60008360038111156118a757634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915015611a8c5760005b60008281526020819052604090205463ffffffff82161015611a8a576000828152602081905260408120805463ffffffff841690811061195057634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905085600381111561197d57634e487b7160e01b600052602160045260246000fd5b6001828154811061199e57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff1660038111156119d157634e487b7160e01b600052602160045260246000fd5b146119dc5750611a78565b83600182815481106119fe57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414611a1b5750611a78565b846001600160a01b031660018281548110611a4657634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614611a705750611a78565b505050505050565b80611a8281614e85565b915050611900565b505b60006040518060600160405280866003811115611ab957634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff191690836003811115611b5e57634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a290611bc790879087908790614b42565b60405180910390a15050505050565b611c0160017f0000000000000000000000000000000000000000000000000000000000000000614dfc565b60ff168314611c525760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420656e6f756768206e65696768626f72732070726f766964656400000060448201526064016106b0565b6000600282604051602001611c6991815260200190565b60408051601f1981840301815290829052611c839161491e565b602060405180830381855afa158015611ca0573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611cc3919061474f565b905060005b611cf360017f0000000000000000000000000000000000000000000000000000000000000000614dfc565b60ff168160ff161015611e775760018085161415611db357600286868360ff16818110611d3057634e487b7160e01b600052603260045260246000fd5b9050602002013583604051602001611d52929190918252602082015260400190565b60408051601f1981840301815290829052611d6c9161491e565b602060405180830381855afa158015611d89573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611dac919061474f565b9150611e57565b60028287878460ff16818110611dd957634e487b7160e01b600052603260045260246000fd5b90506020020135604051602001611dfa929190918252602082015260400190565b60408051601f1981840301815290829052611e149161491e565b602060405180830381855afa158015611e31573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611e54919061474f565b91505b60018463ffffffff16901c93508080611e6f90614ea9565b915050611cc8565b50807f000000000000000000000000000000000000000000000000000000000000000014611edc5760405162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81a5b98dbdc9c9958dd60721b60448201526064016106b0565b505b50505050565b60008060008d8d60e01b6001600160e01b0319168d604051602001611f1c939291909283526020830191909152604082015260600190565b60408051601f1981840301815291905280516020909101209050600060048c6006811115611f5a57634e487b7160e01b600052602160045260246000fd5b1415611f9d576040805160608a811b6001600160601b0319166020830152918101899052015b6040516020818303038152906040528051906020012090506120d1565b60068c6006811115611fbf57634e487b7160e01b600052602160045260246000fd5b1415611fcd575060006120d1565b60058c6006811115611fef57634e487b7160e01b600052602160045260246000fd5b141561201357604080516001600160601b031960608b901b16602082015201611f80565b60008c600681111561203557634e487b7160e01b600052602160045260246000fd5b8c600381111561205557634e487b7160e01b600052602160045260246000fd5b60001b8c60601b6001600160601b0319168c60001b8c60601b6001600160601b0319168c60001b8c8c6040516020016120959897969594939291906148e1565b6040516020818303038152906040529050806040516020016120b7919061491e565b604051602081830303815290604052805190602001209150505b909e909d509b505050505050505050505050565b60008061211560ff7f00000000000000000000000000000000000000000000000000000000000000001686614d52565b9050600061214660ff7f00000000000000000000000000000000000000000000000000000000000000001687614ec9565b60008881526009602052604090208054919250906121985760405162461bcd60e51b815260206004820152600f60248201526e139bc818dbdb5b5a5d08199bdd5b99608a1b60448201526064016106b0565b60005b815463ffffffff82161015612474576000828263ffffffff16815481106121d257634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190506000816001015488604051602001612204929190918252602082015260400190565b6040516020818303038152906040528051906020012090508082600201541461222e575050612462565b888260010154146122815760405162461bcd60e51b815260206004820152601760248201527f506172616d657465722068617368206d69736d6174636800000000000000000060448201526064016106b0565b60038201546000907f0000000000000000000000000000000000000000000000000000000000000000906122df9060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614d52565b6122e99190614dd7565b90508663ffffffff168163ffffffff16146123465760405162461bcd60e51b815260206004820152601a60248201527f496e646578202d2074696d657374616d70206d69736d6174636800000000000060448201526064016106b0565b63ffffffff811660009081526006602052604090205460ff9081169087168111156123a35760405162461bcd60e51b815260206004820152600d60248201526c4e6f6e636520746f6f206c6f7760981b60448201526064016106b0565b6003840154640100000000900460ff16156124005760405162461bcd60e51b815260206004820152601860248201527f436f6d6d697420616c726561647920636f6d706c65746564000000000000000060448201526064016106b0565b60038401546124149063ffffffff16613a61565b6124525760405162461bcd60e51b815260206004820152600f60248201526e52657665616c20746f6f206c61746560881b60448201526064016106b0565b84985050505050505050506124af565b8061246c81614e85565b91505061219b565b5060405162461bcd60e51b815260206004820152600f60248201526e139bc81d985b1a590818dbdb5b5a5d608a1b60448201526064016106b0565b949350505050565b600082815260096020526040902080546125095760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e840d0c2e6d606b1b60448201526064016106b0565b805463ffffffff8316106125555760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e892dcc8caf606b1b60448201526064016106b0565b6000818363ffffffff168154811061257d57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600490910201600381015490915063ffffffff166125e75760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420636f6d6d69742074696d657374616d70000000000000000060448201526064016106b0565b60038101546000907f0000000000000000000000000000000000000000000000000000000000000000906126459060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614d52565b61264f9190614dd7565b905061265a81613a7c565b612662613b1d565b50600301805464ff000000001916640100000000179055505050565b600061268b606083614d3e565b905081612699826060614d94565b63ffffffff16146126bc5760405162461bcd60e51b81526004016106b090614c92565b60005b8163ffffffff168163ffffffff161015611ede57600061274f85856126e5856060614d94565b63ffffffff16906126f7866060614d94565b612702906020614d16565b63ffffffff169261271593929190614cd6565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613df892505050565b600381111561276e57634e487b7160e01b600052602160045260246000fd5b905060006127aa8686612782866060614d94565b61278d906020614d16565b63ffffffff169061279f876060614d94565b612702906034614d16565b60601c905060006127eb87878660606127c39190614d94565b6127ce906040614d16565b63ffffffff16906127e0886060614d94565b612702906060614d16565b90506127f8838383611885565b505050808061280690614e85565b9150506126bf565b600083600381111561283057634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915061288b5750505050565b60005b60008281526020819052604090205463ffffffff82161015612e1a576000828152602081905260408120805463ffffffff84169081106128de57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905085600381111561290b57634e487b7160e01b600052602160045260246000fd5b6001828154811061292c57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff16600381111561295f57634e487b7160e01b600052602160045260246000fd5b1461296a5750612e08565b836001828154811061298c57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154146129a95750612e08565b846001600160a01b0316600182815481106129d457634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b0316146129fe5750612e08565b60018054600091612a0e91614dc0565b905060018181548110612a3157634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160018381548110612a6057634e487b7160e01b600052603260045260246000fd5b6000918252602090912082546002909202018054909160ff1690829060ff19166001836003811115612aa257634e487b7160e01b600052602160045260246000fd5b021790555081548154610100600160a81b031916610100918290046001600160a01b03169091021781556001918201549082015580546000919084908110612afa57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612b2d57634e487b7160e01b600052602160045260246000fd5b6001805485908110612b4f57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b031660601b6001600160601b03191660018581548110612ba257634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015460001b604051602001612bda939291909283526020830191909152604082015260600190565b6040516020818303038152906040528051906020012090506001805480612c1157634e487b7160e01b600052603160045260246000fd5b60008281526020812060026000199093019283020180546001600160a81b031916815560010181905591555b60008281526020819052604090205463ffffffff82161015612cf957826000808481526020019081526020016000208263ffffffff1681548110612c9157634e487b7160e01b600052603260045260246000fd5b90600052602060002001541415612ce757836000808481526020019081526020016000208263ffffffff1681548110612cda57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b80612cf181614e85565b915050612c3d565b5060008581526020819052604090208054612d1690600190614dc0565b81548110612d3457634e487b7160e01b600052603260045260246000fd5b90600052602060002001546000808781526020019081526020016000208481548110612d7057634e487b7160e01b600052603260045260246000fd5b9060005260206000200181905550600080868152602001908152602001600020805480612dad57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590557f166bc904e3b7f8699e175923a2635944dd9ac0dc817927aac60d854d23a82b9b888888604051612df693929190614b42565b60405180910390a15050505050505050565b80612e1281614e85565b91505061288e565b507ffc773cf3883ef83133327fbc62fe0a7c3c96add34a1781cae66ba5de7efa3f5f848484604051612e4e93929190614b42565b60405180910390a150505050565b6000612e69606083614d3e565b905081612e77826060614d94565b63ffffffff1614612e9a5760405162461bcd60e51b81526004016106b090614c92565b60005b8163ffffffff168163ffffffff161015611ede576000612ec385856126e5856060614d94565b6003811115612ee257634e487b7160e01b600052602160045260246000fd5b90506000612ef68686612782866060614d94565b60601c90506000612f0f87878660606127c39190614d94565b9050612f1c83838361280e565b5050508080612f2a90614e85565b915050612e9d565b6000866003811115612f5457634e487b7160e01b600052602160045260246000fd5b141561310c5760405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905286169063a9059cbb90604401602060405180830381600087803b158015612fa457600080fd5b505af1925050508015612fd4575060408051601f3d908101601f19168201909252612fd191810190614710565b60015b61308d57612fe0614f18565b806308c379a014156130475750612ff5614f30565b806130005750613049565b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba87878787878660405161303996959493929190614ba5565b60405180910390a150611a70565b505b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba8686868686604051613080959493929190614bec565b60405180910390a1611a70565b80156130d55761309e878787611885565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b318787878787604051613039959493929190614b6a565b7f75a36803468aca74d964b22522480470a7a3f2121daa5994c2a937aec85d23298787878787604051613039959493929190614b6a565b600186600381111561312e57634e487b7160e01b600052602160045260246000fd5b14156131d457604051635c46a7ef60e11b81526001600160a01b0386169063b88d4fde9061316690309087908990879060040161493a565b600060405180830381600087803b15801561318057600080fd5b505af1925050508015613191575060015b61319d57612fe0614f18565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b318686868686604051613080959493929190614b6a565b60028660038111156131f657634e487b7160e01b600052602160045260246000fd5b1415611a7057604051637921219560e11b81526001600160a01b0386169063f242432a9061323090309087908990889088906004016149be565b600060405180830381600087803b15801561324a57600080fd5b505af192505050801561325b575060015b61326757612fe0614f18565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b31868686868660405161329e959493929190614b6a565b60405180910390a1505050505050565b60006132bb606083614d3e565b9050816132c9826060614d94565b63ffffffff16146132ec5760405162461bcd60e51b81526004016106b090614c92565b60008163ffffffff166001600160401b0381111561331a57634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561336557816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816133385790505b50905060005b8263ffffffff168163ffffffff16101561346c57600061339186866126e5856060614d94565b60038111156133b057634e487b7160e01b600052602160045260246000fd5b905060006133c48787612782866060614d94565b60601c905060006133dd88888660606127c39190614d94565b60001c9050604051806060016040528084600381111561340d57634e487b7160e01b600052602160045260246000fd5b8152602001836001600160a01b0316815260200182815250858563ffffffff168151811061344b57634e487b7160e01b600052603260045260246000fd5b6020026020010181905250505050808061346490614e85565b91505061336b565b50611ede81613e84565b6000806134866201518042614d3e565b60055490915063ffffffff90811690821611156134b85760006004556005805463ffffffff191663ffffffff83161790555b600354836004546134c99190614cfe565b111561352e576003546004546040805186815260208101939093528201526001600160a01b03851660608201527f705f289c5579ebb63d8c90ed39a42a76ded07641efe4f445a9a97d1e95c75c68906080015b60405180910390a16000915050610607565b8247101561357e57604080518481524760208201526001600160a01b038616918101919091527fd90084f259c3c1dbd378c6c23cff1383005852e0d9829773e15afdbaf15fb7d89060600161351c565b6000846001600160a01b03168460405160006040518083038185875af1925050503d80600081146135cb576040519150601f19603f3d011682016040523d82523d6000602084013e6135d0565b606091505b5050905080613620576040516001600160a01b03861681527f2c7068ca7f82b1436494678e109b299bc751ccbb88d560f7c011b48dfdb2117b9060200160405180910390a1600092505050610607565b83600460008282546136329190614cfe565b9091555050604080518581526001600160a01b03871660208201527f8f4636f285a9a17fe3479ab47bb7a5deadaf9b2295a16c3965f55fa48e542d1f910160405180910390a1506001949350505050565b6002546000906001600160a01b03166136c5576040517fc27dbdcf29e2a161f0420d399444129801e578bafe157fef0370098459e082bf90600090a150600090565b6136cd61055c565b610fc0576040517fa3a244603d968c02ebd2017f990d4e077cf0381929976be2a0cb07076147a56f90600090a150600090565b6002546001600160a01b0316156137645760405162461bcd60e51b815260206004820152602260248201527f4c617374207265736f7274206164647265737320697320616c72656164792073604482015261195d60f21b60648201526084016106b0565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000425b60085463ffffffff8316101561385c57600060088363ffffffff16815481106137c357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260409091208054919250906137ef57505061384a565b60008160008154811061381257634e487b7160e01b600052603260045260246000fd5b6000918252602090912060036004909202019081015490915063ffffffff603b19860181169116106138465750505061385c565b5050505b8161385481614e85565b92505061378a565b63ffffffff821661386b575050565b60005b8263ffffffff168163ffffffff16101561396e57600060088263ffffffff16815481106138ab57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260408220909250905b815463ffffffff8216101561394157818163ffffffff16815481106138ff57634e487b7160e01b600052603260045260246000fd5b600091825260208220600490910201818155600181018290556002810191909155600301805464ffffffffff191690558061393981614e85565b9150506138ca565b5060008281526009602052604081206139599161423f565b5050808061396690614e85565b91505061386e565b50600854825b8163ffffffff168163ffffffff161015613a015760088163ffffffff16815481106139af57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154600885830363ffffffff16815481106139e357634e487b7160e01b600052603260045260246000fd5b600091825260209091200155806139f981614e85565b915050613974565b5060005b8363ffffffff168163ffffffff161015611ede576008805480613a3857634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558080613a5990614e85565b915050613a05565b6000603c613a6f8342614dd7565b63ffffffff161092915050565b63ffffffff811660009081526006602052604090205460ff1680613af0576007805460018101825560008290527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68860088204018054919092166004026101000a63ffffffff81810219909216918516021790555b63ffffffff919091166000908152600660205260409020805460ff1916600190920160ff16919091179055565b6000613b2a603c42614dd7565b90506000613b5b60ff7f00000000000000000000000000000000000000000000000000000000000000001683614d52565b905060007f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff161115613bc057613bbd7f000000000000000000000000000000000000000000000000000000000000000083614dd7565b90505b6007546000906001600160401b03811115613beb57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613c14578160200160208202803683370190505b5090506000805b60075460ff82161015613cf757600060078260ff1681548110613c4e57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060088204015460079091166004026101000a900463ffffffff90811691508516811015613ca15763ffffffff81166000908152600660205260409020805460ff19169055613ce4565b80848463ffffffff1681518110613cc857634e487b7160e01b600052603260045260246000fd5b63ffffffff909216602092830291909101909101526001909201915b5080613cef81614ea9565b915050613c1b565b5060008163ffffffff166001600160401b03811115613d2657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613d4f578160200160208202803683370190505b50905060005b8263ffffffff168160ff161015613ddb57838160ff1681518110613d8957634e487b7160e01b600052603260045260246000fd5b6020026020010151828260ff1681518110613db457634e487b7160e01b600052603260045260246000fd5b63ffffffff9092166020928302919091019091015280613dd381614ea9565b915050613d55565b508051613def906007906020840190614263565b50505050505050565b6000815160001415613e0c57506000919050565b602082511115613e555760405162461bcd60e51b8152602060048201526014602482015273696e70757420627974657320746f6f206c6f6e6760601b60448201526064016106b0565b60008083516020613e669190614dc0565b613e71906008614d75565b60209490940151841c90931b9392505050565b60005b60015463ffffffff82161015613ff757600060018263ffffffff1681548110613ec057634e487b7160e01b600052603260045260246000fd5b600091825260208220600290910201546001805460ff90921693509063ffffffff8516908110613f0057634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b03169050600060018463ffffffff1681548110613f5057634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015490506000836003811115613f8657634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f198184030181529181528151602092830120600081815292839052908220909250613fe091614312565b505050508080613fef90614e85565b915050613e87565b5061400460016000614330565b60005b81518163ffffffff16101561423b576000828263ffffffff168151811061403e57634e487b7160e01b600052603260045260246000fd5b60200260200101516000015190506000838363ffffffff168151811061407457634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000848463ffffffff16815181106140aa57634e487b7160e01b600052603260045260246000fd5b602002602001015160400151905060008360038111156140da57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b0319169183019190915281018390526080016040516020818303038152906040528051906020012090506000604051806060016040528086600381111561414957634e487b7160e01b600052602160045260246000fd5b81526001600160a01b03861660208201526040018490526001805480820182556000829052825160029091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805493945084939092839160ff1916908360038111156141c757634e487b7160e01b600052602160045260246000fd5b021790555060208281015182546001600160a01b0390911661010002610100600160a81b03199091161782556040928301516001928301556000948552848152918420805491820181558452922063ffffffff8716920191909155508392506142339150829050614e85565b915050614007565b5050565b50805460008255600402906000526020600020908101906142609190614351565b50565b828054828255906000526020600020906007016008900481019282156143025791602002820160005b838211156142d057835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261428c565b80156143005782816101000a81549063ffffffff02191690556004016020816003010492830192600103026142d0565b505b5061430e929150614383565b5090565b50805460008255906000526020600020908101906142609190614383565b50805460008255600202906000526020600020908101906142609190614398565b5b8082111561430e57600080825560018201819055600282015560038101805464ffffffffff19169055600401614352565b5b8082111561430e5760008155600101614384565b5b8082111561430e5780546001600160a81b031916815560006001820155600201614399565b80356143c981614fb9565b919050565b60008083601f8401126143df578182fd5b5081356001600160401b038111156143f5578182fd5b6020830191508360208260051b850101111561441057600080fd5b9250929050565b60008083601f840112614428578182fd5b5081356001600160401b0381111561443e578182fd5b60208301915083602082850101111561441057600080fd5b8035600781106143c957600080fd5b8035600481106143c957600080fd5b803563ffffffff811681146143c957600080fd5b60008060008060008060008060a0898b0312156144a3578384fd5b88356144ae81614fb9565b975060208901356144be81614fb9565b965060408901356001600160401b03808211156144d9578586fd5b6144e58c838d016143ce565b909850965060608b01359150808211156144fd578586fd5b6145098c838d016143ce565b909650945060808b0135915080821115614521578384fd5b5061452e8b828c01614417565b999c989b5096995094979396929594505050565b600080600080600060808688031215614559578081fd5b853561456481614fb9565b9450602086013561457481614fb9565b93506040860135925060608601356001600160401b03811115614595578182fd5b6145a188828901614417565b969995985093965092949392505050565b60008060008060008060a087890312156145ca578182fd5b86356145d581614fb9565b955060208701356145e581614fb9565b9450604087013593506060870135925060808701356001600160401b0381111561460d578283fd5b61461989828a01614417565b979a9699509497509295939492505050565b6000806000806000806000806000806000806101408d8f03121561464d578384fd5b6001600160401b038d351115614661578384fd5b61466e8e8e358f016143ce565b909c509a5061467f60208e01614474565b995060408d0135985061469460608e01614456565b97506146a260808e01614465565b96506146b060a08e016143be565b955060c08d013594506146c560e08e016143be565b93506101008d013592506001600160401b036101208e013511156146e7578081fd5b6146f88e6101208f01358f01614417565b81935080925050509295989b509295989b509295989b565b600060208284031215614721578081fd5b81518015158114614730578182fd5b9392505050565b600060208284031215614748578081fd5b5035919050565b600060208284031215614760578081fd5b5051919050565b60008060006060848603121561477b578081fd5b505081359360208301359350604090920135919050565b6000602082840312156147a3578081fd5b813561473081614fce565b6000602082840312156147bf578081fd5b815161473081614fce565b6000815180845260208085019450808401835b838110156147fb5781511515875295820195908201906001016147dd565b509495945050505050565b6000815180845260208085019450808401835b838110156147fb57815187529582019590820190600101614819565b6000815180845260208085019450808401835b838110156147fb57815163ffffffff1687529582019590820190600101614848565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600081518084526148ab816020860160208601614e1f565b601f01601f19169290920160200192915050565b600481106148dd57634e487b7160e01b600052602160045260246000fd5b9052565b8881528760208201528660408201528560608201528460808201528360a0820152818360c08301376000910160c001908152979650505050505050565b60008251614930818460208701614e1f565b9190910192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061496d90830184614893565b9695505050505050565b6001600160a01b03878116825286166020820152604081018590526060810184905260a0608082018190526000906149b2908301848661486a565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906149f890830184614893565b979650505050505050565b60a081526000614a1660a0830188614806565b8281036020840152614a288188614806565b90508281036040840152614a3c8187614806565b90508281036060840152614a508186614835565b905082810360808401526149b281856147ca565b608081526000614a776080830187614806565b8281036020840152614a898187614806565b90508281036040840152614a9d8186614835565b905082810360608401526149f881856147ca565b606080825284519082018190526000906020906080840190828801845b82811015614af157614ae18483516148bf565b9284019290840190600101614ace565b50505083810382850152855180825286830191830190845b81811015614b2e5783516001600160a01b031683529284019291840191600101614b09565b505084810360408601526149b28187614806565b60608101614b5082866148bf565b6001600160a01b0393909316602082015260400152919050565b60a08101614b7882886148bf565b6001600160a01b039586166020830152604082019490945291909316606082015260800191909152919050565b614baf81886148bf565b6001600160a01b03868116602083015260408201869052841660608201526080810183905260c060a082018190526000906149b290830184614893565b614bf681876148bf565b6001600160a01b039485166020820152604081019390935292166060820152608081019190915260c060a0820181905260009082015260e001919050565b614c3e818a6148bf565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090614c84908301848661486a565b9a9950505050505050505050565b60208082526024908201527f64617461206d7573742068617665206c656e677468206d756c7469706c65207460408201526337901c9b60e11b606082015260800190565b60008085851115614ce5578182fd5b83861115614cf1578182fd5b5050820193919092039150565b60008219821115614d1157614d11614eec565b500190565b600063ffffffff808316818516808303821115614d3557614d35614eec565b01949350505050565b600082614d4d57614d4d614f02565b500490565b600063ffffffff80841680614d6957614d69614f02565b92169190910492915050565b6000816000190483118215151615614d8f57614d8f614eec565b500290565b600063ffffffff80831681851681830481118215151615614db757614db7614eec565b02949350505050565b600082821015614dd257614dd2614eec565b500390565b600063ffffffff83811690831681811015614df457614df4614eec565b039392505050565b600060ff821660ff841680821015614e1657614e16614eec565b90039392505050565b60005b83811015614e3a578181015183820152602001614e22565b83811115611ede5750506000910152565b601f8201601f191681016001600160401b0381118282101715614e7e57634e487b7160e01b600052604160045260246000fd5b6040525050565b600063ffffffff80831681811415614e9f57614e9f614eec565b6001019392505050565b600060ff821660ff811415614ec057614ec0614eec565b60010192915050565b600063ffffffff80841680614ee057614ee0614f02565b92169190910692915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600060033d1115614f2d57600481823e5160e01c5b90565b600060443d1015614f3e5790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715614f6d57505050505090565b8285019150815181811115614f855750505050505090565b843d8701016020828501011115614f9f5750505050505090565b614fae60208286010187614e4b565b509095945050505050565b6001600160a01b038116811461426057600080fd5b6001600160e01b03198116811461426057600080fdfea2646970667358221220c777f06df2de3565f2b0d2a9ddb59ef0024689f036397f254d64fe01e91d6bb664736f6c63430008040033", - "deployedBytecode": "0x6080604052600436106100f75760003560e01c8063a17027e11161008a578063d087d28811610059578063d087d288146104d5578063d87458a3146104fc578063e4e5b2581461051c578063f23a6e611461053c57600080fd5b8063a17027e11461045a578063a4874d7714610480578063bc197c8114610495578063c34a6dad146104b557600080fd5b80632293d3fb116100c65780632293d3fb1461029e5780632f1f7520146102cb5780635a9b0b89146102f0578063695def4c1461043657600080fd5b806301ffc9a7146101c05780630d8e6e2c146101f5578063150b7a02146102175780631cf4ea051461025057600080fd5b366101bb57604080513481523360208201527fa26ab80e902f2055a125714fc6f2eb15df2a09c7fe39c7fc71204ffba72109db910160405180910390a1670de0b6b3a7640000341461014557005b6002546001600160a01b0316331461015957005b6002546001600160a01b031661016b57005b3330141561017557005b6040513381527f0cbe1fea4becf04af2176bbef0c9c53d439d30a05a197aacc38bb4a2873222e39060200160405180910390a16101b061055c565b6101b957600080fd5b005b600080fd5b3480156101cc57600080fd5b506101e06101db366004614792565b6105bb565b60405190151581526020015b60405180910390f35b34801561020157600080fd5b50604080516007815260016020820152016101ec565b34801561022357600080fd5b50610237610232366004614542565b61060d565b6040516001600160e01b031990911681526020016101ec565b34801561025c57600080fd5b5061027061026b366004614737565b610673565b6040516101ec9493929190938452602084019290925263ffffffff1660408301521515606082015260800190565b3480156102aa57600080fd5b506004546005546040805192835263ffffffff9091166020830152016101ec565b3480156102d757600080fd5b506102e06106b9565b6040516101ec9493929190614a64565b3480156102fc57600080fd5b506103e06002546003547f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0390911691565b6040805198895260ff97881660208a01529587169588019590955263ffffffff9384166060880152919092166080860152921660a08401526001600160a01b0390911660c083015260e0820152610100016101ec565b34801561044257600080fd5b5061044b6106f6565b6040516101ec93929190614ab1565b34801561046657600080fd5b5061046f6109e4565b6040516101ec959493929190614a03565b34801561048c57600080fd5b506101e0610e58565b3480156104a157600080fd5b506102376104b0366004614488565b610fc6565b3480156104c157600080fd5b506101b96104d036600461462b565b6110d8565b3480156104e157600080fd5b506104ea611312565b60405160ff90911681526020016101ec565b34801561050857600080fd5b5061046f610517366004614737565b61138b565b34801561052857600080fd5b506101b9610537366004614767565b6116fd565b34801561054857600080fd5b506102376105573660046145b2565b61181e565b60025460405160009182916001600160a01b039091169047908381818185875af1925050503d80600081146105ad576040519150601f19603f3d011682016040523d82523d6000602084013e6105b2565b606091505b50909392505050565b60006001600160e01b031982166301ffc9a760e01b14806105ec57506001600160e01b0319821663f23a6e6160e01b145b8061060757506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161064d989796959493929190614c34565b60405180910390a161066160013386611885565b50630a85bd0160e11b95945050505050565b60008060008060405162461bcd60e51b81526004016106b0906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b60405180910390fd5b60608060608060405162461bcd60e51b81526004016106b0906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b606080606060006001805490506001600160401b0381111561072857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610751578160200160208202803683370190505b506001549091506000906001600160401b0381111561078057634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156107a9578160200160208202803683370190505b506001549091506000906001600160401b038111156107d857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610801578160200160208202803683370190505b50905060005b60015463ffffffff821610156109d75760018163ffffffff168154811061083e57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061087d57634e487b7160e01b600052603260045260246000fd5b602002602001019060038111156108a457634e487b7160e01b600052602160045260246000fd5b908160038111156108c557634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106108f057634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff168151811061093b57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061098257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff16815181106109ba57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806109cf81614e85565b915050610807565b5091959094509092509050565b60608060608060606000805b60085463ffffffff82161015610a6e5760006009600060088463ffffffff1681548110610a2d57634e487b7160e01b600052603260045260246000fd5b906000526020600020015481526020019081526020016000209050808054905083610a589190614d16565b9250508080610a6690614e85565b9150506109f0565b5060008163ffffffff166001600160401b03811115610a9d57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610ac6578160200160208202803683370190505b50905060008263ffffffff166001600160401b03811115610af757634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b20578160200160208202803683370190505b50905060008363ffffffff166001600160401b03811115610b5157634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b7a578160200160208202803683370190505b50905060008463ffffffff166001600160401b03811115610bab57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610bd4578160200160208202803683370190505b50905060008563ffffffff166001600160401b03811115610c0557634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c2e578160200160208202803683370190505b5090506000805b60085463ffffffff82161015610e455760006009600060088463ffffffff1681548110610c7257634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020905060005b815463ffffffff82161015610e30576000828263ffffffff1681548110610cc757634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201905080600001548a8663ffffffff1681518110610d0257634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154898663ffffffff1681518110610d3957634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154888663ffffffff1681518110610d7057634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154875163ffffffff918216918991908816908110610dad57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16868663ffffffff1681518110610dff57634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015284610e1981614e85565b955050508080610e2890614e85565b915050610c90565b50508080610e3d90614e85565b915050610c35565b50949b939a509198509650945092505050565b600063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000610ecf60ff7f00000000000000000000000000000000000000000000000000000000000000001642614d3e565b610ed99190614dd7565b63ffffffff1611610f225760405162461bcd60e51b8152602060048201526013602482015272546f6f206561726c7920746f2072657469726560681b60448201526064016106b0565b6002546001600160a01b0316610f7a5760405162461bcd60e51b815260206004820152601e60248201527f4c617374207265736f72742061646472657373206973206e6f7420736574000060448201526064016106b0565b610f8261055c565b610fc05760405162461bcd60e51b815260206004820152600f60248201526e149958dbdd995c9e4819985a5b1959608a1b60448201526064016106b0565b50600190565b6000805b63ffffffff81168711156110c2573063f23a6e618b8b8b8b63ffffffff871681811061100657634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061103357634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161105d96959493929190614977565b602060405180830381600087803b15801561107757600080fd5b505af115801561108b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110af91906147ae565b50806110ba81614e85565b915050610fca565b5063bc197c8160e01b9998505050505050505050565b6110e48c8c8c8c611bd6565b6000806111218e8e600081811061110b57634e487b7160e01b600052603260045260246000fd5b905060200201358d8d8d8d8d8d8d8d8d8d611ee4565b915091506000611133838e848f6120e5565b905061113f83826124b7565b60008b600681111561116157634e487b7160e01b600052602160045260246000fd5b141561118757831561117c57611177858561267e565b611301565b6111778a8a8a611885565b60018b60068111156111a957634e487b7160e01b600052602160045260246000fd5b14156111ca5783156111c0576111778a8a8a61280e565b6111778585612e5c565b60028b60068111156111ec57634e487b7160e01b600052602160045260246000fd5b1415611236576111778a8a8a8a8a8a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f3292505050565b60038b600681111561125857634e487b7160e01b600052602160045260246000fd5b14156112685761117785856132ae565b60048b600681111561128a57634e487b7160e01b600052602160045260246000fd5b14156112a05761129a8787613476565b50611301565b60068b60068111156112c257634e487b7160e01b600052602160045260246000fd5b14156112d05761129a613683565b60058b60068111156112f257634e487b7160e01b600052602160045260246000fd5b14156113015761130187613700565b505050505050505050505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000061136360ff7f00000000000000000000000000000000000000000000000000000000000000001642614d52565b61136d9190614dd7565b63ffffffff1660009081526006602052604090205460ff1692915050565b600081815260096020526040812080546060928392839283928392916001600160401b038111156113cc57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156113f5578160200160208202803683370190505b5082549091506000906001600160401b0381111561142357634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561144c578160200160208202803683370190505b5083549091506000906001600160401b0381111561147a57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114a3578160200160208202803683370190505b5084549091506000906001600160401b038111156114d157634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114fa578160200160208202803683370190505b5085549091506000906001600160401b0381111561152857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611551578160200160208202803683370190505b50905060005b865463ffffffff821610156116e9576000878263ffffffff168154811061158e57634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060000154878363ffffffff16815181106115c957634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154868363ffffffff168151811061160057634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154858363ffffffff168151811061163757634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154845163ffffffff91821691869190851690811061167457634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16838363ffffffff16815181106116c657634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015250806116e181614e85565b915050611557565b50939b929a50909850965090945092505050565b611705613786565b6040805160a0810182528481526020810184905290810182905263ffffffff42166060820152600060808201526008546078116117775760405162461bcd60e51b815260206004820152601060248201526f546f6f206d616e7920636f6d6d69747360801b60448201526064016106b0565b6008805460018181019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018590556000948552600960209081526040808720805480850182559088529682902084516004909802019687559083015191860191909155810151600285015560608101516003909401805460809092015115156401000000000264ffffffffff1990921663ffffffff90951694909417179092555050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a898960405161185e989796959493929190614c34565b60405180910390a161187260023387611885565b5063f23a6e6160e01b9695505050505050565b60008360038111156118a757634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915015611a8c5760005b60008281526020819052604090205463ffffffff82161015611a8a576000828152602081905260408120805463ffffffff841690811061195057634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905085600381111561197d57634e487b7160e01b600052602160045260246000fd5b6001828154811061199e57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff1660038111156119d157634e487b7160e01b600052602160045260246000fd5b146119dc5750611a78565b83600182815481106119fe57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414611a1b5750611a78565b846001600160a01b031660018281548110611a4657634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614611a705750611a78565b505050505050565b80611a8281614e85565b915050611900565b505b60006040518060600160405280866003811115611ab957634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff191690836003811115611b5e57634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a290611bc790879087908790614b42565b60405180910390a15050505050565b611c0160017f0000000000000000000000000000000000000000000000000000000000000000614dfc565b60ff168314611c525760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420656e6f756768206e65696768626f72732070726f766964656400000060448201526064016106b0565b6000600282604051602001611c6991815260200190565b60408051601f1981840301815290829052611c839161491e565b602060405180830381855afa158015611ca0573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611cc3919061474f565b905060005b611cf360017f0000000000000000000000000000000000000000000000000000000000000000614dfc565b60ff168160ff161015611e775760018085161415611db357600286868360ff16818110611d3057634e487b7160e01b600052603260045260246000fd5b9050602002013583604051602001611d52929190918252602082015260400190565b60408051601f1981840301815290829052611d6c9161491e565b602060405180830381855afa158015611d89573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611dac919061474f565b9150611e57565b60028287878460ff16818110611dd957634e487b7160e01b600052603260045260246000fd5b90506020020135604051602001611dfa929190918252602082015260400190565b60408051601f1981840301815290829052611e149161491e565b602060405180830381855afa158015611e31573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611e54919061474f565b91505b60018463ffffffff16901c93508080611e6f90614ea9565b915050611cc8565b50807f000000000000000000000000000000000000000000000000000000000000000014611edc5760405162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81a5b98dbdc9c9958dd60721b60448201526064016106b0565b505b50505050565b60008060008d8d60e01b6001600160e01b0319168d604051602001611f1c939291909283526020830191909152604082015260600190565b60408051601f1981840301815291905280516020909101209050600060048c6006811115611f5a57634e487b7160e01b600052602160045260246000fd5b1415611f9d576040805160608a811b6001600160601b0319166020830152918101899052015b6040516020818303038152906040528051906020012090506120d1565b60068c6006811115611fbf57634e487b7160e01b600052602160045260246000fd5b1415611fcd575060006120d1565b60058c6006811115611fef57634e487b7160e01b600052602160045260246000fd5b141561201357604080516001600160601b031960608b901b16602082015201611f80565b60008c600681111561203557634e487b7160e01b600052602160045260246000fd5b8c600381111561205557634e487b7160e01b600052602160045260246000fd5b60001b8c60601b6001600160601b0319168c60001b8c60601b6001600160601b0319168c60001b8c8c6040516020016120959897969594939291906148e1565b6040516020818303038152906040529050806040516020016120b7919061491e565b604051602081830303815290604052805190602001209150505b909e909d509b505050505050505050505050565b60008061211560ff7f00000000000000000000000000000000000000000000000000000000000000001686614d52565b9050600061214660ff7f00000000000000000000000000000000000000000000000000000000000000001687614ec9565b60008881526009602052604090208054919250906121985760405162461bcd60e51b815260206004820152600f60248201526e139bc818dbdb5b5a5d08199bdd5b99608a1b60448201526064016106b0565b60005b815463ffffffff82161015612474576000828263ffffffff16815481106121d257634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190506000816001015488604051602001612204929190918252602082015260400190565b6040516020818303038152906040528051906020012090508082600201541461222e575050612462565b888260010154146122815760405162461bcd60e51b815260206004820152601760248201527f506172616d657465722068617368206d69736d6174636800000000000000000060448201526064016106b0565b60038201546000907f0000000000000000000000000000000000000000000000000000000000000000906122df9060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614d52565b6122e99190614dd7565b90508663ffffffff168163ffffffff16146123465760405162461bcd60e51b815260206004820152601a60248201527f496e646578202d2074696d657374616d70206d69736d6174636800000000000060448201526064016106b0565b63ffffffff811660009081526006602052604090205460ff9081169087168111156123a35760405162461bcd60e51b815260206004820152600d60248201526c4e6f6e636520746f6f206c6f7760981b60448201526064016106b0565b6003840154640100000000900460ff16156124005760405162461bcd60e51b815260206004820152601860248201527f436f6d6d697420616c726561647920636f6d706c65746564000000000000000060448201526064016106b0565b60038401546124149063ffffffff16613a61565b6124525760405162461bcd60e51b815260206004820152600f60248201526e52657665616c20746f6f206c61746560881b60448201526064016106b0565b84985050505050505050506124af565b8061246c81614e85565b91505061219b565b5060405162461bcd60e51b815260206004820152600f60248201526e139bc81d985b1a590818dbdb5b5a5d608a1b60448201526064016106b0565b949350505050565b600082815260096020526040902080546125095760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e840d0c2e6d606b1b60448201526064016106b0565b805463ffffffff8316106125555760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e892dcc8caf606b1b60448201526064016106b0565b6000818363ffffffff168154811061257d57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600490910201600381015490915063ffffffff166125e75760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420636f6d6d69742074696d657374616d70000000000000000060448201526064016106b0565b60038101546000907f0000000000000000000000000000000000000000000000000000000000000000906126459060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614d52565b61264f9190614dd7565b905061265a81613a7c565b612662613b1d565b50600301805464ff000000001916640100000000179055505050565b600061268b606083614d3e565b905081612699826060614d94565b63ffffffff16146126bc5760405162461bcd60e51b81526004016106b090614c92565b60005b8163ffffffff168163ffffffff161015611ede57600061274f85856126e5856060614d94565b63ffffffff16906126f7866060614d94565b612702906020614d16565b63ffffffff169261271593929190614cd6565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613df892505050565b600381111561276e57634e487b7160e01b600052602160045260246000fd5b905060006127aa8686612782866060614d94565b61278d906020614d16565b63ffffffff169061279f876060614d94565b612702906034614d16565b60601c905060006127eb87878660606127c39190614d94565b6127ce906040614d16565b63ffffffff16906127e0886060614d94565b612702906060614d16565b90506127f8838383611885565b505050808061280690614e85565b9150506126bf565b600083600381111561283057634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915061288b5750505050565b60005b60008281526020819052604090205463ffffffff82161015612e1a576000828152602081905260408120805463ffffffff84169081106128de57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905085600381111561290b57634e487b7160e01b600052602160045260246000fd5b6001828154811061292c57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff16600381111561295f57634e487b7160e01b600052602160045260246000fd5b1461296a5750612e08565b836001828154811061298c57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154146129a95750612e08565b846001600160a01b0316600182815481106129d457634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b0316146129fe5750612e08565b60018054600091612a0e91614dc0565b905060018181548110612a3157634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160018381548110612a6057634e487b7160e01b600052603260045260246000fd5b6000918252602090912082546002909202018054909160ff1690829060ff19166001836003811115612aa257634e487b7160e01b600052602160045260246000fd5b021790555081548154610100600160a81b031916610100918290046001600160a01b03169091021781556001918201549082015580546000919084908110612afa57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612b2d57634e487b7160e01b600052602160045260246000fd5b6001805485908110612b4f57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b031660601b6001600160601b03191660018581548110612ba257634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015460001b604051602001612bda939291909283526020830191909152604082015260600190565b6040516020818303038152906040528051906020012090506001805480612c1157634e487b7160e01b600052603160045260246000fd5b60008281526020812060026000199093019283020180546001600160a81b031916815560010181905591555b60008281526020819052604090205463ffffffff82161015612cf957826000808481526020019081526020016000208263ffffffff1681548110612c9157634e487b7160e01b600052603260045260246000fd5b90600052602060002001541415612ce757836000808481526020019081526020016000208263ffffffff1681548110612cda57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b80612cf181614e85565b915050612c3d565b5060008581526020819052604090208054612d1690600190614dc0565b81548110612d3457634e487b7160e01b600052603260045260246000fd5b90600052602060002001546000808781526020019081526020016000208481548110612d7057634e487b7160e01b600052603260045260246000fd5b9060005260206000200181905550600080868152602001908152602001600020805480612dad57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590557f166bc904e3b7f8699e175923a2635944dd9ac0dc817927aac60d854d23a82b9b888888604051612df693929190614b42565b60405180910390a15050505050505050565b80612e1281614e85565b91505061288e565b507ffc773cf3883ef83133327fbc62fe0a7c3c96add34a1781cae66ba5de7efa3f5f848484604051612e4e93929190614b42565b60405180910390a150505050565b6000612e69606083614d3e565b905081612e77826060614d94565b63ffffffff1614612e9a5760405162461bcd60e51b81526004016106b090614c92565b60005b8163ffffffff168163ffffffff161015611ede576000612ec385856126e5856060614d94565b6003811115612ee257634e487b7160e01b600052602160045260246000fd5b90506000612ef68686612782866060614d94565b60601c90506000612f0f87878660606127c39190614d94565b9050612f1c83838361280e565b5050508080612f2a90614e85565b915050612e9d565b6000866003811115612f5457634e487b7160e01b600052602160045260246000fd5b141561310c5760405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905286169063a9059cbb90604401602060405180830381600087803b158015612fa457600080fd5b505af1925050508015612fd4575060408051601f3d908101601f19168201909252612fd191810190614710565b60015b61308d57612fe0614f18565b806308c379a014156130475750612ff5614f30565b806130005750613049565b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba87878787878660405161303996959493929190614ba5565b60405180910390a150611a70565b505b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba8686868686604051613080959493929190614bec565b60405180910390a1611a70565b80156130d55761309e878787611885565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b318787878787604051613039959493929190614b6a565b7f75a36803468aca74d964b22522480470a7a3f2121daa5994c2a937aec85d23298787878787604051613039959493929190614b6a565b600186600381111561312e57634e487b7160e01b600052602160045260246000fd5b14156131d457604051635c46a7ef60e11b81526001600160a01b0386169063b88d4fde9061316690309087908990879060040161493a565b600060405180830381600087803b15801561318057600080fd5b505af1925050508015613191575060015b61319d57612fe0614f18565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b318686868686604051613080959493929190614b6a565b60028660038111156131f657634e487b7160e01b600052602160045260246000fd5b1415611a7057604051637921219560e11b81526001600160a01b0386169063f242432a9061323090309087908990889088906004016149be565b600060405180830381600087803b15801561324a57600080fd5b505af192505050801561325b575060015b61326757612fe0614f18565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b31868686868660405161329e959493929190614b6a565b60405180910390a1505050505050565b60006132bb606083614d3e565b9050816132c9826060614d94565b63ffffffff16146132ec5760405162461bcd60e51b81526004016106b090614c92565b60008163ffffffff166001600160401b0381111561331a57634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561336557816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816133385790505b50905060005b8263ffffffff168163ffffffff16101561346c57600061339186866126e5856060614d94565b60038111156133b057634e487b7160e01b600052602160045260246000fd5b905060006133c48787612782866060614d94565b60601c905060006133dd88888660606127c39190614d94565b60001c9050604051806060016040528084600381111561340d57634e487b7160e01b600052602160045260246000fd5b8152602001836001600160a01b0316815260200182815250858563ffffffff168151811061344b57634e487b7160e01b600052603260045260246000fd5b6020026020010181905250505050808061346490614e85565b91505061336b565b50611ede81613e84565b6000806134866201518042614d3e565b60055490915063ffffffff90811690821611156134b85760006004556005805463ffffffff191663ffffffff83161790555b600354836004546134c99190614cfe565b111561352e576003546004546040805186815260208101939093528201526001600160a01b03851660608201527f705f289c5579ebb63d8c90ed39a42a76ded07641efe4f445a9a97d1e95c75c68906080015b60405180910390a16000915050610607565b8247101561357e57604080518481524760208201526001600160a01b038616918101919091527fd90084f259c3c1dbd378c6c23cff1383005852e0d9829773e15afdbaf15fb7d89060600161351c565b6000846001600160a01b03168460405160006040518083038185875af1925050503d80600081146135cb576040519150601f19603f3d011682016040523d82523d6000602084013e6135d0565b606091505b5050905080613620576040516001600160a01b03861681527f2c7068ca7f82b1436494678e109b299bc751ccbb88d560f7c011b48dfdb2117b9060200160405180910390a1600092505050610607565b83600460008282546136329190614cfe565b9091555050604080518581526001600160a01b03871660208201527f8f4636f285a9a17fe3479ab47bb7a5deadaf9b2295a16c3965f55fa48e542d1f910160405180910390a1506001949350505050565b6002546000906001600160a01b03166136c5576040517fc27dbdcf29e2a161f0420d399444129801e578bafe157fef0370098459e082bf90600090a150600090565b6136cd61055c565b610fc0576040517fa3a244603d968c02ebd2017f990d4e077cf0381929976be2a0cb07076147a56f90600090a150600090565b6002546001600160a01b0316156137645760405162461bcd60e51b815260206004820152602260248201527f4c617374207265736f7274206164647265737320697320616c72656164792073604482015261195d60f21b60648201526084016106b0565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000425b60085463ffffffff8316101561385c57600060088363ffffffff16815481106137c357634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260409091208054919250906137ef57505061384a565b60008160008154811061381257634e487b7160e01b600052603260045260246000fd5b6000918252602090912060036004909202019081015490915063ffffffff603b19860181169116106138465750505061385c565b5050505b8161385481614e85565b92505061378a565b63ffffffff821661386b575050565b60005b8263ffffffff168163ffffffff16101561396e57600060088263ffffffff16815481106138ab57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260408220909250905b815463ffffffff8216101561394157818163ffffffff16815481106138ff57634e487b7160e01b600052603260045260246000fd5b600091825260208220600490910201818155600181018290556002810191909155600301805464ffffffffff191690558061393981614e85565b9150506138ca565b5060008281526009602052604081206139599161423f565b5050808061396690614e85565b91505061386e565b50600854825b8163ffffffff168163ffffffff161015613a015760088163ffffffff16815481106139af57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154600885830363ffffffff16815481106139e357634e487b7160e01b600052603260045260246000fd5b600091825260209091200155806139f981614e85565b915050613974565b5060005b8363ffffffff168163ffffffff161015611ede576008805480613a3857634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558080613a5990614e85565b915050613a05565b6000603c613a6f8342614dd7565b63ffffffff161092915050565b63ffffffff811660009081526006602052604090205460ff1680613af0576007805460018101825560008290527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68860088204018054919092166004026101000a63ffffffff81810219909216918516021790555b63ffffffff919091166000908152600660205260409020805460ff1916600190920160ff16919091179055565b6000613b2a603c42614dd7565b90506000613b5b60ff7f00000000000000000000000000000000000000000000000000000000000000001683614d52565b905060007f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff161115613bc057613bbd7f000000000000000000000000000000000000000000000000000000000000000083614dd7565b90505b6007546000906001600160401b03811115613beb57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613c14578160200160208202803683370190505b5090506000805b60075460ff82161015613cf757600060078260ff1681548110613c4e57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060088204015460079091166004026101000a900463ffffffff90811691508516811015613ca15763ffffffff81166000908152600660205260409020805460ff19169055613ce4565b80848463ffffffff1681518110613cc857634e487b7160e01b600052603260045260246000fd5b63ffffffff909216602092830291909101909101526001909201915b5080613cef81614ea9565b915050613c1b565b5060008163ffffffff166001600160401b03811115613d2657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613d4f578160200160208202803683370190505b50905060005b8263ffffffff168160ff161015613ddb57838160ff1681518110613d8957634e487b7160e01b600052603260045260246000fd5b6020026020010151828260ff1681518110613db457634e487b7160e01b600052603260045260246000fd5b63ffffffff9092166020928302919091019091015280613dd381614ea9565b915050613d55565b508051613def906007906020840190614263565b50505050505050565b6000815160001415613e0c57506000919050565b602082511115613e555760405162461bcd60e51b8152602060048201526014602482015273696e70757420627974657320746f6f206c6f6e6760601b60448201526064016106b0565b60008083516020613e669190614dc0565b613e71906008614d75565b60209490940151841c90931b9392505050565b60005b60015463ffffffff82161015613ff757600060018263ffffffff1681548110613ec057634e487b7160e01b600052603260045260246000fd5b600091825260208220600290910201546001805460ff90921693509063ffffffff8516908110613f0057634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b03169050600060018463ffffffff1681548110613f5057634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015490506000836003811115613f8657634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f198184030181529181528151602092830120600081815292839052908220909250613fe091614312565b505050508080613fef90614e85565b915050613e87565b5061400460016000614330565b60005b81518163ffffffff16101561423b576000828263ffffffff168151811061403e57634e487b7160e01b600052603260045260246000fd5b60200260200101516000015190506000838363ffffffff168151811061407457634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000848463ffffffff16815181106140aa57634e487b7160e01b600052603260045260246000fd5b602002602001015160400151905060008360038111156140da57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b0319169183019190915281018390526080016040516020818303038152906040528051906020012090506000604051806060016040528086600381111561414957634e487b7160e01b600052602160045260246000fd5b81526001600160a01b03861660208201526040018490526001805480820182556000829052825160029091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805493945084939092839160ff1916908360038111156141c757634e487b7160e01b600052602160045260246000fd5b021790555060208281015182546001600160a01b0390911661010002610100600160a81b03199091161782556040928301516001928301556000948552848152918420805491820181558452922063ffffffff8716920191909155508392506142339150829050614e85565b915050614007565b5050565b50805460008255600402906000526020600020908101906142609190614351565b50565b828054828255906000526020600020906007016008900481019282156143025791602002820160005b838211156142d057835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261428c565b80156143005782816101000a81549063ffffffff02191690556004016020816003010492830192600103026142d0565b505b5061430e929150614383565b5090565b50805460008255906000526020600020908101906142609190614383565b50805460008255600202906000526020600020908101906142609190614398565b5b8082111561430e57600080825560018201819055600282015560038101805464ffffffffff19169055600401614352565b5b8082111561430e5760008155600101614384565b5b8082111561430e5780546001600160a81b031916815560006001820155600201614399565b80356143c981614fb9565b919050565b60008083601f8401126143df578182fd5b5081356001600160401b038111156143f5578182fd5b6020830191508360208260051b850101111561441057600080fd5b9250929050565b60008083601f840112614428578182fd5b5081356001600160401b0381111561443e578182fd5b60208301915083602082850101111561441057600080fd5b8035600781106143c957600080fd5b8035600481106143c957600080fd5b803563ffffffff811681146143c957600080fd5b60008060008060008060008060a0898b0312156144a3578384fd5b88356144ae81614fb9565b975060208901356144be81614fb9565b965060408901356001600160401b03808211156144d9578586fd5b6144e58c838d016143ce565b909850965060608b01359150808211156144fd578586fd5b6145098c838d016143ce565b909650945060808b0135915080821115614521578384fd5b5061452e8b828c01614417565b999c989b5096995094979396929594505050565b600080600080600060808688031215614559578081fd5b853561456481614fb9565b9450602086013561457481614fb9565b93506040860135925060608601356001600160401b03811115614595578182fd5b6145a188828901614417565b969995985093965092949392505050565b60008060008060008060a087890312156145ca578182fd5b86356145d581614fb9565b955060208701356145e581614fb9565b9450604087013593506060870135925060808701356001600160401b0381111561460d578283fd5b61461989828a01614417565b979a9699509497509295939492505050565b6000806000806000806000806000806000806101408d8f03121561464d578384fd5b6001600160401b038d351115614661578384fd5b61466e8e8e358f016143ce565b909c509a5061467f60208e01614474565b995060408d0135985061469460608e01614456565b97506146a260808e01614465565b96506146b060a08e016143be565b955060c08d013594506146c560e08e016143be565b93506101008d013592506001600160401b036101208e013511156146e7578081fd5b6146f88e6101208f01358f01614417565b81935080925050509295989b509295989b509295989b565b600060208284031215614721578081fd5b81518015158114614730578182fd5b9392505050565b600060208284031215614748578081fd5b5035919050565b600060208284031215614760578081fd5b5051919050565b60008060006060848603121561477b578081fd5b505081359360208301359350604090920135919050565b6000602082840312156147a3578081fd5b813561473081614fce565b6000602082840312156147bf578081fd5b815161473081614fce565b6000815180845260208085019450808401835b838110156147fb5781511515875295820195908201906001016147dd565b509495945050505050565b6000815180845260208085019450808401835b838110156147fb57815187529582019590820190600101614819565b6000815180845260208085019450808401835b838110156147fb57815163ffffffff1687529582019590820190600101614848565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600081518084526148ab816020860160208601614e1f565b601f01601f19169290920160200192915050565b600481106148dd57634e487b7160e01b600052602160045260246000fd5b9052565b8881528760208201528660408201528560608201528460808201528360a0820152818360c08301376000910160c001908152979650505050505050565b60008251614930818460208701614e1f565b9190910192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061496d90830184614893565b9695505050505050565b6001600160a01b03878116825286166020820152604081018590526060810184905260a0608082018190526000906149b2908301848661486a565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906149f890830184614893565b979650505050505050565b60a081526000614a1660a0830188614806565b8281036020840152614a288188614806565b90508281036040840152614a3c8187614806565b90508281036060840152614a508186614835565b905082810360808401526149b281856147ca565b608081526000614a776080830187614806565b8281036020840152614a898187614806565b90508281036040840152614a9d8186614835565b905082810360608401526149f881856147ca565b606080825284519082018190526000906020906080840190828801845b82811015614af157614ae18483516148bf565b9284019290840190600101614ace565b50505083810382850152855180825286830191830190845b81811015614b2e5783516001600160a01b031683529284019291840191600101614b09565b505084810360408601526149b28187614806565b60608101614b5082866148bf565b6001600160a01b0393909316602082015260400152919050565b60a08101614b7882886148bf565b6001600160a01b039586166020830152604082019490945291909316606082015260800191909152919050565b614baf81886148bf565b6001600160a01b03868116602083015260408201869052841660608201526080810183905260c060a082018190526000906149b290830184614893565b614bf681876148bf565b6001600160a01b039485166020820152604081019390935292166060820152608081019190915260c060a0820181905260009082015260e001919050565b614c3e818a6148bf565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090614c84908301848661486a565b9a9950505050505050505050565b60208082526024908201527f64617461206d7573742068617665206c656e677468206d756c7469706c65207460408201526337901c9b60e11b606082015260800190565b60008085851115614ce5578182fd5b83861115614cf1578182fd5b5050820193919092039150565b60008219821115614d1157614d11614eec565b500190565b600063ffffffff808316818516808303821115614d3557614d35614eec565b01949350505050565b600082614d4d57614d4d614f02565b500490565b600063ffffffff80841680614d6957614d69614f02565b92169190910492915050565b6000816000190483118215151615614d8f57614d8f614eec565b500290565b600063ffffffff80831681851681830481118215151615614db757614db7614eec565b02949350505050565b600082821015614dd257614dd2614eec565b500390565b600063ffffffff83811690831681811015614df457614df4614eec565b039392505050565b600060ff821660ff841680821015614e1657614e16614eec565b90039392505050565b60005b83811015614e3a578181015183820152602001614e22565b83811115611ede5750506000910152565b601f8201601f191681016001600160401b0381118282101715614e7e57634e487b7160e01b600052604160045260246000fd5b6040525050565b600063ffffffff80831681811415614e9f57614e9f614eec565b6001019392505050565b600060ff821660ff811415614ec057614ec0614eec565b60010192915050565b600063ffffffff80841680614ee057614ee0614f02565b92169190910692915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600060033d1115614f2d57600481823e5160e01c5b90565b600060443d1015614f3e5790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715614f6d57505050505090565b8285019150815181811115614f855750505050505090565b843d8701016020828501011115614f9f5750505050505090565b614fae60208286010187614e4b565b509095945050505050565b6001600160a01b038116811461426057600080fd5b6001600160e01b03198116811461426057600080fdfea2646970667358221220c777f06df2de3565f2b0d2a9ddb59ef0024689f036397f254d64fe01e91d6bb664736f6c63430008040033", + "metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root_\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"height_\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"interval_\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"t0_\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"lifespan_\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"maxOperationsPerInterval_\",\"type\":\"uint8\"},{\"internalType\":\"address payable\",\"name\":\"lastResortAddress_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"dailyLimit_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"AutoRecoveryTriggered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"current\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"ExceedDailyLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"InsufficientFund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"LastResortAddressNotSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"PaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"PaymentSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ReceivedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"RecoveryFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenNotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenTracked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"TokenTransferError\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenUntracked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"UnknownTransferError\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"verificationHash\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"findCommit\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllCommits\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCommits\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentSpending\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInfo\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrackedTokens\",\"outputs\":[{\"internalType\":\"enum TokenTracker.TokenType[]\",\"name\":\"\",\"type\":\"uint8[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVersion\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"lookupCommit\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"retire\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"neighbors\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32\",\"name\":\"indexWithNonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"eotp\",\"type\":\"bytes32\"},{\"internalType\":\"enum ONEWallet.OperationType\",\"name\":\"operationType\",\"type\":\"uint8\"},{\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"dest\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"reveal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/ONEWallet.sol\":\"ONEWallet\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xfce1eb6398eae0e2b50251140866a70a3106193f101972c878bba1dbf44929ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f0709c3f462b28b400f57db181254ad970967c3b49a8948ef5e05929b106ffe\",\"dweb:/ipfs/QmNe3sRmPKw1T7q7m733tk7tFKpi3jo9PCisDPMbjeg3kJ\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x7de6e64d4a8075e803a972cc77c4c91463e0c3777e4110eacfb5d4a71759b2fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b3b09ef36374c1c104ee896797dadf2e81466d2143b481d3f1ddc7d9f3873\",\"dweb:/ipfs/QmSWtqs28RHDezRWBbmEfqiPYwsGTKj44NRbuxvZ96cqMU\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\",\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf101e8720213560fab41104d53b3cc7ba0456ef3a98455aa7f022391783144a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e7820bcf567e6892d937c3cb10db263a4042e446799bca602535868d822384e\",\"dweb:/ipfs/QmPG2oeDjKncqsEeyYGjAN7CwAJmMgHterXGGnpzhha4z7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xd9517254724276e2e8de3769183c1f738f445f0095c26fd9b86d3c6687e887b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e604bcdcd5e5b2fb299ad09769cde6db19d5aa1929d1b5e939234a0f10d7eb8\",\"dweb:/ipfs/Qmd8hXE3GZfBHuWx3RNiYgFW2ci7KvHtib8DiwzJ2dgo9V\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xa28007762d9da9db878dd421960c8cb9a10471f47ab5c1b3309bfe48e9e79ff4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://796ab6e88af7bf0e78def0f059310c903af6a312b565344e0ff524a0f26e81c6\",\"dweb:/ipfs/QmcsVgLgzWdor3UnAztUkXKNGcysm1MPneWksF72AvnwBx\"]},\"project:/contracts/ONEWallet.sol\":{\"keccak256\":\"0x3c460e524aa8f0f382ba1b2664859e44fee3eb4e981cc4afce3bb88a4a6ed7c2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5529453131bc55a1ccbdb48f9443b7c6b1ac3dfa3fc6fa3dc2866cc6839e9db3\",\"dweb:/ipfs/QmeZVpS7mAgCPJyq1iPSjWwj3XbieqssMjxTLieMT4Gy3X\"]},\"project:/contracts/TokenTracker.sol\":{\"keccak256\":\"0x153e8bd4263b7b071e5c4e9e44f5da2afb16c74207e8a6a071c837721de1747b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5550ad4a2929a9216432939182544a355ccfa1fdc04566497d4215d08171d115\",\"dweb:/ipfs/QmRkCR7qmJP6oLqFs7FbAZNgQUV9PNRLweP4Kkv3L81AW7\"]}},\"version\":1}", + "bytecode": "0x6101606040523480156200001257600080fd5b506040516200554938038062005549833981016040819052620000359162000117565b60808890527fff0000000000000000000000000000000000000000000000000000000000000060f888811b821660a05287811b821660c0526001600160e01b031960e088811b8216815287901b1661010052600280546001600160a01b0386166001600160a01b0319909116179055600383905584901b1661012052620000be600188620002d2565b620000cb90600262000204565b60e01b6001600160e01b03191661014052506200030e9650505050505050565b805163ffffffff811681146200010057600080fd5b919050565b805160ff811681146200010057600080fd5b600080600080600080600080610100898b03121562000134578384fd5b885197506200014660208a0162000105565b96506200015660408a0162000105565b95506200016660608a01620000eb565b94506200017660808a01620000eb565b93506200018660a08a0162000105565b60c08a01519093506001600160a01b0381168114620001a3578283fd5b8092505060e089015190509295985092959890939650565b600181815b80851115620001fc578160001904821115620001e057620001e0620002f8565b80851615620001ee57918102915b93841c9390800290620001c0565b509250929050565b60006200021560ff8416836200021c565b9392505050565b6000826200022d57506001620002cc565b816200023c57506000620002cc565b8160018114620002555760028114620002605762000280565b6001915050620002cc565b60ff841115620002745762000274620002f8565b50506001821b620002cc565b5060208310610133831016604e8410600b8410161715620002a5575081810a620002cc565b620002b18383620001bb565b8060001904821115620002c857620002c8620002f8565b0290505b92915050565b600060ff821660ff841680821015620002ef57620002ef620002f8565b90039392505050565b634e487b7160e01b600052601160045260246000fd5b60805160a05160f81c60c05160f81c60e05160e01c6101005160e01c6101205160f81c6101405160e01c615150620003f9600039600081816110eb0152611d850152600081816103b20152818161220001526122310152600081816103900152610e6101526000818161036e01528181610e83015281816113d00152818161239c0152818161270201528181613c870152613cbe01526000818161034c01528181610ea9015281816113f6015281816123c40152818161272a0152613c5b01526000818161032a01528181611c960152611dc90152600081816103080152611f7501526151506000f3fe6080604052600436106100f75760003560e01c8063a17027e11161008a578063d087d28811610059578063d087d288146104d5578063d87458a3146104fc578063e4e5b2581461051c578063f23a6e611461053c57600080fd5b8063a17027e11461045a578063a4874d7714610480578063bc197c8114610495578063c34a6dad146104b557600080fd5b80632293d3fb116100c65780632293d3fb1461029e5780632f1f7520146102cb5780635a9b0b89146102f0578063695def4c1461043657600080fd5b806301ffc9a7146101c05780630d8e6e2c146101f5578063150b7a02146102175780631cf4ea051461025057600080fd5b366101bb57604080513481523360208201527fa26ab80e902f2055a125714fc6f2eb15df2a09c7fe39c7fc71204ffba72109db910160405180910390a1670de0b6b3a7640000341461014557005b6002546001600160a01b0316331461015957005b6002546001600160a01b031661016b57005b3330141561017557005b6040513381527f0cbe1fea4becf04af2176bbef0c9c53d439d30a05a197aacc38bb4a2873222e39060200160405180910390a16101b061055c565b6101b957600080fd5b005b600080fd5b3480156101cc57600080fd5b506101e06101db3660046148b8565b6105bb565b60405190151581526020015b60405180910390f35b34801561020157600080fd5b50604080516007815260036020820152016101ec565b34801561022357600080fd5b50610237610232366004614668565b61060d565b6040516001600160e01b031990911681526020016101ec565b34801561025c57600080fd5b5061027061026b36600461485d565b610673565b6040516101ec9493929190938452602084019290925263ffffffff1660408301521515606082015260800190565b3480156102aa57600080fd5b506004546005546040805192835263ffffffff9091166020830152016101ec565b3480156102d757600080fd5b506102e06106b9565b6040516101ec9493929190614b9a565b3480156102fc57600080fd5b506103e06002546003547f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0390911691565b6040805198895260ff97881660208a01529587169588019590955263ffffffff9384166060880152919092166080860152921660a08401526001600160a01b0390911660c083015260e0820152610100016101ec565b34801561044257600080fd5b5061044b6106f6565b6040516101ec93929190614be7565b34801561046657600080fd5b5061046f6109e4565b6040516101ec959493929190614b39565b34801561048c57600080fd5b506101e0610e58565b3480156104a157600080fd5b506102376104b03660046145ae565b610fc6565b3480156104c157600080fd5b506101b96104d0366004614751565b6110d8565b3480156104e157600080fd5b506104ea6113cb565b60405160ff90911681526020016101ec565b34801561050857600080fd5b5061046f61051736600461485d565b611444565b34801561052857600080fd5b506101b961053736600461488d565b6117b6565b34801561054857600080fd5b506102376105573660046146d8565b6118d7565b60025460405160009182916001600160a01b039091169047908381818185875af1925050503d80600081146105ad576040519150601f19603f3d011682016040523d82523d6000602084013e6105b2565b606091505b50909392505050565b60006001600160e01b031982166301ffc9a760e01b14806105ec57506001600160e01b0319821663f23a6e6160e01b145b8061060757506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161064d989796959493929190614d6a565b60405180910390a16106616001338661193e565b50630a85bd0160e11b95945050505050565b60008060008060405162461bcd60e51b81526004016106b0906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b60405180910390fd5b60608060608060405162461bcd60e51b81526004016106b0906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b606080606060006001805490506001600160401b0381111561072857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610751578160200160208202803683370190505b506001549091506000906001600160401b0381111561078057634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156107a9578160200160208202803683370190505b506001549091506000906001600160401b038111156107d857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610801578160200160208202803683370190505b50905060005b60015463ffffffff821610156109d75760018163ffffffff168154811061083e57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061087d57634e487b7160e01b600052603260045260246000fd5b602002602001019060038111156108a457634e487b7160e01b600052602160045260246000fd5b908160038111156108c557634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106108f057634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff168151811061093b57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061098257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff16815181106109ba57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806109cf81614fbb565b915050610807565b5091959094509092509050565b60608060608060606000805b60085463ffffffff82161015610a6e5760006009600060088463ffffffff1681548110610a2d57634e487b7160e01b600052603260045260246000fd5b906000526020600020015481526020019081526020016000209050808054905083610a589190614e4c565b9250508080610a6690614fbb565b9150506109f0565b5060008163ffffffff166001600160401b03811115610a9d57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610ac6578160200160208202803683370190505b50905060008263ffffffff166001600160401b03811115610af757634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b20578160200160208202803683370190505b50905060008363ffffffff166001600160401b03811115610b5157634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b7a578160200160208202803683370190505b50905060008463ffffffff166001600160401b03811115610bab57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610bd4578160200160208202803683370190505b50905060008563ffffffff166001600160401b03811115610c0557634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c2e578160200160208202803683370190505b5090506000805b60085463ffffffff82161015610e455760006009600060088463ffffffff1681548110610c7257634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020905060005b815463ffffffff82161015610e30576000828263ffffffff1681548110610cc757634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201905080600001548a8663ffffffff1681518110610d0257634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154898663ffffffff1681518110610d3957634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154888663ffffffff1681518110610d7057634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154875163ffffffff918216918991908816908110610dad57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16868663ffffffff1681518110610dff57634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015284610e1981614fbb565b955050508080610e2890614fbb565b915050610c90565b50508080610e3d90614fbb565b915050610c35565b50949b939a509198509650945092505050565b600063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000610ecf60ff7f00000000000000000000000000000000000000000000000000000000000000001642614e74565b610ed99190614f0d565b63ffffffff1611610f225760405162461bcd60e51b8152602060048201526013602482015272546f6f206561726c7920746f2072657469726560681b60448201526064016106b0565b6002546001600160a01b0316610f7a5760405162461bcd60e51b815260206004820152601e60248201527f4c617374207265736f72742061646472657373206973206e6f7420736574000060448201526064016106b0565b610f8261055c565b610fc05760405162461bcd60e51b815260206004820152600f60248201526e149958dbdd995c9e4819985a5b1959608a1b60448201526064016106b0565b50600190565b6000805b63ffffffff81168711156110c2573063f23a6e618b8b8b8b63ffffffff871681811061100657634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061103357634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161105d96959493929190614aad565b602060405180830381600087803b15801561107757600080fd5b505af115801561108b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110af91906148d4565b50806110ba81614fbb565b915050610fca565b5063bc197c8160e01b9998505050505050505050565b6110e48c8c8c8c611c8f565b61110f60017f0000000000000000000000000000000000000000000000000000000000000000614f0d565b63ffffffff168a63ffffffff16141561119d57600688600781111561114457634e487b7160e01b600052602160045260246000fd5b1461119d5760405162461bcd60e51b815260206004820152602360248201527f4c617374206f7065726174696f6e20726573657276656420666f72207265636f6044820152623b32b960e91b60648201526084016106b0565b6000806111da8e8e60008181106111c457634e487b7160e01b600052603260045260246000fd5b905060200201358d8d8d8d8d8d8d8d8d8d611fde565b9150915060006111ec838e848f6121f6565b90506111f883826125c8565b60008b600781111561121a57634e487b7160e01b600052602160045260246000fd5b141561124057831561123557611230858561278f565b6113ba565b6112308a8a8a61193e565b60018b600781111561126257634e487b7160e01b600052602160045260246000fd5b1415611283578315611279576112308a8a8a61291f565b6112308585612f6d565b60028b60078111156112a557634e487b7160e01b600052602160045260246000fd5b14156112ef576112308a8a8a8a8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061304392505050565b60038b600781111561131157634e487b7160e01b600052602160045260246000fd5b14156113215761123085856133bf565b60048b600781111561134357634e487b7160e01b600052602160045260246000fd5b1415611359576113538787613587565b506113ba565b60068b600781111561137b57634e487b7160e01b600052602160045260246000fd5b1415611389576113536137a9565b60058b60078111156113ab57634e487b7160e01b600052602160045260246000fd5b14156113ba576113ba87613826565b505050505050505050505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000061141c60ff7f00000000000000000000000000000000000000000000000000000000000000001642614e88565b6114269190614f0d565b63ffffffff1660009081526006602052604090205460ff1692915050565b600081815260096020526040812080546060928392839283928392916001600160401b0381111561148557634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114ae578160200160208202803683370190505b5082549091506000906001600160401b038111156114dc57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611505578160200160208202803683370190505b5083549091506000906001600160401b0381111561153357634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561155c578160200160208202803683370190505b5084549091506000906001600160401b0381111561158a57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156115b3578160200160208202803683370190505b5085549091506000906001600160401b038111156115e157634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561160a578160200160208202803683370190505b50905060005b865463ffffffff821610156117a2576000878263ffffffff168154811061164757634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060000154878363ffffffff168151811061168257634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154868363ffffffff16815181106116b957634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154858363ffffffff16815181106116f057634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154845163ffffffff91821691869190851690811061172d57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16838363ffffffff168151811061177f57634e487b7160e01b600052603260045260246000fd5b91151560209283029190910190910152508061179a81614fbb565b915050611610565b50939b929a50909850965090945092505050565b6117be6138ac565b6040805160a0810182528481526020810184905290810182905263ffffffff42166060820152600060808201526008546078116118305760405162461bcd60e51b815260206004820152601060248201526f546f6f206d616e7920636f6d6d69747360801b60448201526064016106b0565b6008805460018181019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018590556000948552600960209081526040808720805480850182559088529682902084516004909802019687559083015191860191909155810151600285015560608101516003909401805460809092015115156401000000000264ffffffffff1990921663ffffffff90951694909417179092555050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a8989604051611917989796959493929190614d6a565b60405180910390a161192b6002338761193e565b5063f23a6e6160e01b9695505050505050565b600083600381111561196057634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915015611b455760005b60008281526020819052604090205463ffffffff82161015611b43576000828152602081905260408120805463ffffffff8416908110611a0957634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115611a3657634e487b7160e01b600052602160045260246000fd5b60018281548110611a5757634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115611a8a57634e487b7160e01b600052602160045260246000fd5b14611a955750611b31565b8360018281548110611ab757634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414611ad45750611b31565b846001600160a01b031660018281548110611aff57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614611b295750611b31565b505050505050565b80611b3b81614fbb565b9150506119b9565b505b60006040518060600160405280866003811115611b7257634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff191690836003811115611c1757634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a290611c8090879087908790614c78565b60405180910390a15050505050565b611cba60017f0000000000000000000000000000000000000000000000000000000000000000614f32565b60ff168314611d0b5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420656e6f756768206e65696768626f72732070726f766964656400000060448201526064016106b0565b6000600282604051602001611d2291815260200190565b60408051601f1981840301815290829052611d3c91614a54565b602060405180830381855afa158015611d59573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611d7c9190614875565b9050611da960017f0000000000000000000000000000000000000000000000000000000000000000614f0d565b63ffffffff168363ffffffff161415611dbf5750805b60005b611ded60017f0000000000000000000000000000000000000000000000000000000000000000614f32565b60ff168160ff161015611f715760018085161415611ead57600286868360ff16818110611e2a57634e487b7160e01b600052603260045260246000fd5b9050602002013583604051602001611e4c929190918252602082015260400190565b60408051601f1981840301815290829052611e6691614a54565b602060405180830381855afa158015611e83573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ea69190614875565b9150611f51565b60028287878460ff16818110611ed357634e487b7160e01b600052603260045260246000fd5b90506020020135604051602001611ef4929190918252602082015260400190565b60408051601f1981840301815290829052611f0e91614a54565b602060405180830381855afa158015611f2b573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611f4e9190614875565b91505b60018463ffffffff16901c93508080611f6990614fdf565b915050611dc2565b50807f000000000000000000000000000000000000000000000000000000000000000014611fd65760405162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81a5b98dbdc9c9958dd60721b60448201526064016106b0565b505b50505050565b60008060008d8d60e01b6001600160e01b0319168d604051602001612016939291909283526020830191909152604082015260600190565b60408051601f1981840301815291905280516020909101209050600060048c600781111561205457634e487b7160e01b600052602160045260246000fd5b1415612097576040805160608a811b6001600160601b0319166020830152918101899052015b6040516020818303038152906040528051906020012090506121e2565b60068c60078111156120b957634e487b7160e01b600052602160045260246000fd5b14156120de5785856040516120cf929190614a44565b604051809103902090506121e2565b60058c600781111561210057634e487b7160e01b600052602160045260246000fd5b141561212457604080516001600160601b031960608b901b1660208201520161207a565b60008c600781111561214657634e487b7160e01b600052602160045260246000fd5b8c600381111561216657634e487b7160e01b600052602160045260246000fd5b60001b8c60601b6001600160601b0319168c60001b8c60601b6001600160601b0319168c60001b8c8c6040516020016121a6989796959493929190614a07565b6040516020818303038152906040529050806040516020016121c89190614a54565b604051602081830303815290604052805190602001209150505b909e909d509b505050505050505050505050565b60008061222660ff7f00000000000000000000000000000000000000000000000000000000000000001686614e88565b9050600061225760ff7f00000000000000000000000000000000000000000000000000000000000000001687614fff565b60008881526009602052604090208054919250906122a95760405162461bcd60e51b815260206004820152600f60248201526e139bc818dbdb5b5a5d08199bdd5b99608a1b60448201526064016106b0565b60005b815463ffffffff82161015612585576000828263ffffffff16815481106122e357634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190506000816001015488604051602001612315929190918252602082015260400190565b6040516020818303038152906040528051906020012090508082600201541461233f575050612573565b888260010154146123925760405162461bcd60e51b815260206004820152601760248201527f506172616d657465722068617368206d69736d6174636800000000000000000060448201526064016106b0565b60038201546000907f0000000000000000000000000000000000000000000000000000000000000000906123f09060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614e88565b6123fa9190614f0d565b90508663ffffffff168163ffffffff16146124575760405162461bcd60e51b815260206004820152601a60248201527f496e646578202d2074696d657374616d70206d69736d6174636800000000000060448201526064016106b0565b63ffffffff811660009081526006602052604090205460ff9081169087168111156124b45760405162461bcd60e51b815260206004820152600d60248201526c4e6f6e636520746f6f206c6f7760981b60448201526064016106b0565b6003840154640100000000900460ff16156125115760405162461bcd60e51b815260206004820152601860248201527f436f6d6d697420616c726561647920636f6d706c65746564000000000000000060448201526064016106b0565b60038401546125259063ffffffff16613b87565b6125635760405162461bcd60e51b815260206004820152600f60248201526e52657665616c20746f6f206c61746560881b60448201526064016106b0565b84985050505050505050506125c0565b8061257d81614fbb565b9150506122ac565b5060405162461bcd60e51b815260206004820152600f60248201526e139bc81d985b1a590818dbdb5b5a5d608a1b60448201526064016106b0565b949350505050565b6000828152600960205260409020805461261a5760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e840d0c2e6d606b1b60448201526064016106b0565b805463ffffffff8316106126665760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e892dcc8caf606b1b60448201526064016106b0565b6000818363ffffffff168154811061268e57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600490910201600381015490915063ffffffff166126f85760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420636f6d6d69742074696d657374616d70000000000000000060448201526064016106b0565b60038101546000907f0000000000000000000000000000000000000000000000000000000000000000906127569060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614e88565b6127609190614f0d565b905061276b81613ba2565b612773613c43565b50600301805464ff000000001916640100000000179055505050565b600061279c606083614e74565b9050816127aa826060614eca565b63ffffffff16146127cd5760405162461bcd60e51b81526004016106b090614dc8565b60005b8163ffffffff168163ffffffff161015611fd857600061286085856127f6856060614eca565b63ffffffff1690612808866060614eca565b612813906020614e4c565b63ffffffff169261282693929190614e0c565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f1e92505050565b600381111561287f57634e487b7160e01b600052602160045260246000fd5b905060006128bb8686612893866060614eca565b61289e906020614e4c565b63ffffffff16906128b0876060614eca565b612813906034614e4c565b60601c905060006128fc87878660606128d49190614eca565b6128df906040614e4c565b63ffffffff16906128f1886060614eca565b612813906060614e4c565b905061290983838361193e565b505050808061291790614fbb565b9150506127d0565b600083600381111561294157634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915061299c5750505050565b60005b60008281526020819052604090205463ffffffff82161015612f2b576000828152602081905260408120805463ffffffff84169081106129ef57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115612a1c57634e487b7160e01b600052602160045260246000fd5b60018281548110612a3d57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612a7057634e487b7160e01b600052602160045260246000fd5b14612a7b5750612f19565b8360018281548110612a9d57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414612aba5750612f19565b846001600160a01b031660018281548110612ae557634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614612b0f5750612f19565b60018054600091612b1f91614ef6565b905060018181548110612b4257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160018381548110612b7157634e487b7160e01b600052603260045260246000fd5b6000918252602090912082546002909202018054909160ff1690829060ff19166001836003811115612bb357634e487b7160e01b600052602160045260246000fd5b021790555081548154610100600160a81b031916610100918290046001600160a01b03169091021781556001918201549082015580546000919084908110612c0b57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612c3e57634e487b7160e01b600052602160045260246000fd5b6001805485908110612c6057634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b031660601b6001600160601b03191660018581548110612cb357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015460001b604051602001612ceb939291909283526020830191909152604082015260600190565b6040516020818303038152906040528051906020012090506001805480612d2257634e487b7160e01b600052603160045260246000fd5b60008281526020812060026000199093019283020180546001600160a81b031916815560010181905591555b60008281526020819052604090205463ffffffff82161015612e0a57826000808481526020019081526020016000208263ffffffff1681548110612da257634e487b7160e01b600052603260045260246000fd5b90600052602060002001541415612df857836000808481526020019081526020016000208263ffffffff1681548110612deb57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b80612e0281614fbb565b915050612d4e565b5060008581526020819052604090208054612e2790600190614ef6565b81548110612e4557634e487b7160e01b600052603260045260246000fd5b90600052602060002001546000808781526020019081526020016000208481548110612e8157634e487b7160e01b600052603260045260246000fd5b9060005260206000200181905550600080868152602001908152602001600020805480612ebe57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590557f166bc904e3b7f8699e175923a2635944dd9ac0dc817927aac60d854d23a82b9b888888604051612f0793929190614c78565b60405180910390a15050505050505050565b80612f2381614fbb565b91505061299f565b507ffc773cf3883ef83133327fbc62fe0a7c3c96add34a1781cae66ba5de7efa3f5f848484604051612f5f93929190614c78565b60405180910390a150505050565b6000612f7a606083614e74565b905081612f88826060614eca565b63ffffffff1614612fab5760405162461bcd60e51b81526004016106b090614dc8565b60005b8163ffffffff168163ffffffff161015611fd8576000612fd485856127f6856060614eca565b6003811115612ff357634e487b7160e01b600052602160045260246000fd5b905060006130078686612893866060614eca565b60601c9050600061302087878660606128d49190614eca565b905061302d83838361291f565b505050808061303b90614fbb565b915050612fae565b600086600381111561306557634e487b7160e01b600052602160045260246000fd5b141561321d5760405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905286169063a9059cbb90604401602060405180830381600087803b1580156130b557600080fd5b505af19250505080156130e5575060408051601f3d908101601f191682019092526130e291810190614836565b60015b61319e576130f161504e565b806308c379a014156131585750613106615066565b80613111575061315a565b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba87878787878660405161314a96959493929190614cdb565b60405180910390a150611b29565b505b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba8686868686604051613191959493929190614d22565b60405180910390a1611b29565b80156131e6576131af87878761193e565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b31878787878760405161314a959493929190614ca0565b7f75a36803468aca74d964b22522480470a7a3f2121daa5994c2a937aec85d2329878787878760405161314a959493929190614ca0565b600186600381111561323f57634e487b7160e01b600052602160045260246000fd5b14156132e557604051635c46a7ef60e11b81526001600160a01b0386169063b88d4fde90613277903090879089908790600401614a70565b600060405180830381600087803b15801561329157600080fd5b505af19250505080156132a2575060015b6132ae576130f161504e565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b318686868686604051613191959493929190614ca0565b600286600381111561330757634e487b7160e01b600052602160045260246000fd5b1415611b2957604051637921219560e11b81526001600160a01b0386169063f242432a906133419030908790899088908890600401614af4565b600060405180830381600087803b15801561335b57600080fd5b505af192505050801561336c575060015b613378576130f161504e565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516133af959493929190614ca0565b60405180910390a1505050505050565b60006133cc606083614e74565b9050816133da826060614eca565b63ffffffff16146133fd5760405162461bcd60e51b81526004016106b090614dc8565b60008163ffffffff166001600160401b0381111561342b57634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561347657816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816134495790505b50905060005b8263ffffffff168163ffffffff16101561357d5760006134a286866127f6856060614eca565b60038111156134c157634e487b7160e01b600052602160045260246000fd5b905060006134d58787612893866060614eca565b60601c905060006134ee88888660606128d49190614eca565b60001c9050604051806060016040528084600381111561351e57634e487b7160e01b600052602160045260246000fd5b8152602001836001600160a01b0316815260200182815250858563ffffffff168151811061355c57634e487b7160e01b600052603260045260246000fd5b6020026020010181905250505050808061357590614fbb565b91505061347c565b50611fd881613faa565b6000806135976201518042614e74565b60055490915063ffffffff90811690821611156135c95760006004556005805463ffffffff191663ffffffff83161790555b600354836004546135da9190614e34565b111561363f576003546004546040805186815260208101939093528201526001600160a01b03851660608201527f705f289c5579ebb63d8c90ed39a42a76ded07641efe4f445a9a97d1e95c75c68906080015b60405180910390a16000915050610607565b8247101561368f57604080518481524760208201526001600160a01b038616918101919091527fd90084f259c3c1dbd378c6c23cff1383005852e0d9829773e15afdbaf15fb7d89060600161362d565b82600460008282546136a19190614e34565b90915550506040516000906001600160a01b0386169085908381818185875af1925050503d80600081146136f1576040519150601f19603f3d011682016040523d82523d6000602084013e6136f6565b606091505b505090508061375d5783600460008282546137119190614ef6565b90915550506040516001600160a01b03861681527f2c7068ca7f82b1436494678e109b299bc751ccbb88d560f7c011b48dfdb2117b9060200160405180910390a1600092505050610607565b604080518581526001600160a01b03871660208201527f8f4636f285a9a17fe3479ab47bb7a5deadaf9b2295a16c3965f55fa48e542d1f910160405180910390a1506001949350505050565b6002546000906001600160a01b03166137eb576040517fc27dbdcf29e2a161f0420d399444129801e578bafe157fef0370098459e082bf90600090a150600090565b6137f361055c565b610fc0576040517fa3a244603d968c02ebd2017f990d4e077cf0381929976be2a0cb07076147a56f90600090a150600090565b6002546001600160a01b03161561388a5760405162461bcd60e51b815260206004820152602260248201527f4c617374207265736f7274206164647265737320697320616c72656164792073604482015261195d60f21b60648201526084016106b0565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000425b60085463ffffffff8316101561398257600060088363ffffffff16815481106138e957634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015480835260099091526040909120805491925090613915575050613970565b60008160008154811061393857634e487b7160e01b600052603260045260246000fd5b6000918252602090912060036004909202019081015490915063ffffffff603b198601811691161061396c57505050613982565b5050505b8161397a81614fbb565b9250506138b0565b63ffffffff8216613991575050565b60005b8263ffffffff168163ffffffff161015613a9457600060088263ffffffff16815481106139d157634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260408220909250905b815463ffffffff82161015613a6757818163ffffffff1681548110613a2557634e487b7160e01b600052603260045260246000fd5b600091825260208220600490910201818155600181018290556002810191909155600301805464ffffffffff1916905580613a5f81614fbb565b9150506139f0565b506000828152600960205260408120613a7f91614365565b50508080613a8c90614fbb565b915050613994565b50600854825b8163ffffffff168163ffffffff161015613b275760088163ffffffff1681548110613ad557634e487b7160e01b600052603260045260246000fd5b9060005260206000200154600885830363ffffffff1681548110613b0957634e487b7160e01b600052603260045260246000fd5b60009182526020909120015580613b1f81614fbb565b915050613a9a565b5060005b8363ffffffff168163ffffffff161015611fd8576008805480613b5e57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558080613b7f90614fbb565b915050613b2b565b6000603c613b958342614f0d565b63ffffffff161092915050565b63ffffffff811660009081526006602052604090205460ff1680613c16576007805460018101825560008290527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68860088204018054919092166004026101000a63ffffffff81810219909216918516021790555b63ffffffff919091166000908152600660205260409020805460ff1916600190920160ff16919091179055565b6000613c50603c42614f0d565b90506000613c8160ff7f00000000000000000000000000000000000000000000000000000000000000001683614e88565b905060007f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff161115613ce657613ce37f000000000000000000000000000000000000000000000000000000000000000083614f0d565b90505b6007546000906001600160401b03811115613d1157634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613d3a578160200160208202803683370190505b5090506000805b60075460ff82161015613e1d57600060078260ff1681548110613d7457634e487b7160e01b600052603260045260246000fd5b6000918252602090912060088204015460079091166004026101000a900463ffffffff90811691508516811015613dc75763ffffffff81166000908152600660205260409020805460ff19169055613e0a565b80848463ffffffff1681518110613dee57634e487b7160e01b600052603260045260246000fd5b63ffffffff909216602092830291909101909101526001909201915b5080613e1581614fdf565b915050613d41565b5060008163ffffffff166001600160401b03811115613e4c57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613e75578160200160208202803683370190505b50905060005b8263ffffffff168160ff161015613f0157838160ff1681518110613eaf57634e487b7160e01b600052603260045260246000fd5b6020026020010151828260ff1681518110613eda57634e487b7160e01b600052603260045260246000fd5b63ffffffff9092166020928302919091019091015280613ef981614fdf565b915050613e7b565b508051613f15906007906020840190614389565b50505050505050565b6000815160001415613f3257506000919050565b602082511115613f7b5760405162461bcd60e51b8152602060048201526014602482015273696e70757420627974657320746f6f206c6f6e6760601b60448201526064016106b0565b60008083516020613f8c9190614ef6565b613f97906008614eab565b60209490940151841c90931b9392505050565b60005b60015463ffffffff8216101561411d57600060018263ffffffff1681548110613fe657634e487b7160e01b600052603260045260246000fd5b600091825260208220600290910201546001805460ff90921693509063ffffffff851690811061402657634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b03169050600060018463ffffffff168154811061407657634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154905060008360038111156140ac57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905290822090925061410691614438565b50505050808061411590614fbb565b915050613fad565b5061412a60016000614456565b60005b81518163ffffffff161015614361576000828263ffffffff168151811061416457634e487b7160e01b600052603260045260246000fd5b60200260200101516000015190506000838363ffffffff168151811061419a57634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000848463ffffffff16815181106141d057634e487b7160e01b600052603260045260246000fd5b6020026020010151604001519050600083600381111561420057634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b0319169183019190915281018390526080016040516020818303038152906040528051906020012090506000604051806060016040528086600381111561426f57634e487b7160e01b600052602160045260246000fd5b81526001600160a01b03861660208201526040018490526001805480820182556000829052825160029091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805493945084939092839160ff1916908360038111156142ed57634e487b7160e01b600052602160045260246000fd5b021790555060208281015182546001600160a01b0390911661010002610100600160a81b03199091161782556040928301516001928301556000948552848152918420805491820181558452922063ffffffff8716920191909155508392506143599150829050614fbb565b91505061412d565b5050565b50805460008255600402906000526020600020908101906143869190614477565b50565b828054828255906000526020600020906007016008900481019282156144285791602002820160005b838211156143f657835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026143b2565b80156144265782816101000a81549063ffffffff02191690556004016020816003010492830192600103026143f6565b505b506144349291506144a9565b5090565b508054600082559060005260206000209081019061438691906144a9565b508054600082556002029060005260206000209081019061438691906144be565b5b8082111561443457600080825560018201819055600282015560038101805464ffffffffff19169055600401614478565b5b8082111561443457600081556001016144aa565b5b808211156144345780546001600160a81b0319168155600060018201556002016144bf565b80356144ef816150ef565b919050565b60008083601f840112614505578182fd5b5081356001600160401b0381111561451b578182fd5b6020830191508360208260051b850101111561453657600080fd5b9250929050565b60008083601f84011261454e578182fd5b5081356001600160401b03811115614564578182fd5b60208301915083602082850101111561453657600080fd5b8035600881106144ef57600080fd5b8035600481106144ef57600080fd5b803563ffffffff811681146144ef57600080fd5b60008060008060008060008060a0898b0312156145c9578384fd5b88356145d4816150ef565b975060208901356145e4816150ef565b965060408901356001600160401b03808211156145ff578586fd5b61460b8c838d016144f4565b909850965060608b0135915080821115614623578586fd5b61462f8c838d016144f4565b909650945060808b0135915080821115614647578384fd5b506146548b828c0161453d565b999c989b5096995094979396929594505050565b60008060008060006080868803121561467f578081fd5b853561468a816150ef565b9450602086013561469a816150ef565b93506040860135925060608601356001600160401b038111156146bb578182fd5b6146c78882890161453d565b969995985093965092949392505050565b60008060008060008060a087890312156146f0578182fd5b86356146fb816150ef565b9550602087013561470b816150ef565b9450604087013593506060870135925060808701356001600160401b03811115614733578283fd5b61473f89828a0161453d565b979a9699509497509295939492505050565b6000806000806000806000806000806000806101408d8f031215614773578384fd5b6001600160401b038d351115614787578384fd5b6147948e8e358f016144f4565b909c509a506147a560208e0161459a565b995060408d013598506147ba60608e0161457c565b97506147c860808e0161458b565b96506147d660a08e016144e4565b955060c08d013594506147eb60e08e016144e4565b93506101008d013592506001600160401b036101208e0135111561480d578081fd5b61481e8e6101208f01358f0161453d565b81935080925050509295989b509295989b509295989b565b600060208284031215614847578081fd5b81518015158114614856578182fd5b9392505050565b60006020828403121561486e578081fd5b5035919050565b600060208284031215614886578081fd5b5051919050565b6000806000606084860312156148a1578081fd5b505081359360208301359350604090920135919050565b6000602082840312156148c9578081fd5b813561485681615104565b6000602082840312156148e5578081fd5b815161485681615104565b6000815180845260208085019450808401835b83811015614921578151151587529582019590820190600101614903565b509495945050505050565b6000815180845260208085019450808401835b838110156149215781518752958201959082019060010161493f565b6000815180845260208085019450808401835b8381101561492157815163ffffffff168752958201959082019060010161496e565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600081518084526149d1816020860160208601614f55565b601f01601f19169290920160200192915050565b60048110614a0357634e487b7160e01b600052602160045260246000fd5b9052565b8881528760208201528660408201528560608201528460808201528360a0820152818360c08301376000910160c001908152979650505050505050565b8183823760009101908152919050565b60008251614a66818460208701614f55565b9190910192915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614aa3908301846149b9565b9695505050505050565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090614ae89083018486614990565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614b2e908301846149b9565b979650505050505050565b60a081526000614b4c60a083018861492c565b8281036020840152614b5e818861492c565b90508281036040840152614b72818761492c565b90508281036060840152614b86818661495b565b90508281036080840152614ae881856148f0565b608081526000614bad608083018761492c565b8281036020840152614bbf818761492c565b90508281036040840152614bd3818661495b565b90508281036060840152614b2e81856148f0565b606080825284519082018190526000906020906080840190828801845b82811015614c2757614c178483516149e5565b9284019290840190600101614c04565b50505083810382850152855180825286830191830190845b81811015614c645783516001600160a01b031683529284019291840191600101614c3f565b50508481036040860152614ae8818761492c565b60608101614c8682866149e5565b6001600160a01b0393909316602082015260400152919050565b60a08101614cae82886149e5565b6001600160a01b039586166020830152604082019490945291909316606082015260800191909152919050565b614ce581886149e5565b6001600160a01b03868116602083015260408201869052841660608201526080810183905260c060a08201819052600090614ae8908301846149b9565b614d2c81876149e5565b6001600160a01b039485166020820152604081019390935292166060820152608081019190915260c060a0820181905260009082015260e001919050565b614d74818a6149e5565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090614dba9083018486614990565b9a9950505050505050505050565b60208082526024908201527f64617461206d7573742068617665206c656e677468206d756c7469706c65207460408201526337901c9b60e11b606082015260800190565b60008085851115614e1b578182fd5b83861115614e27578182fd5b5050820193919092039150565b60008219821115614e4757614e47615022565b500190565b600063ffffffff808316818516808303821115614e6b57614e6b615022565b01949350505050565b600082614e8357614e83615038565b500490565b600063ffffffff80841680614e9f57614e9f615038565b92169190910492915050565b6000816000190483118215151615614ec557614ec5615022565b500290565b600063ffffffff80831681851681830481118215151615614eed57614eed615022565b02949350505050565b600082821015614f0857614f08615022565b500390565b600063ffffffff83811690831681811015614f2a57614f2a615022565b039392505050565b600060ff821660ff841680821015614f4c57614f4c615022565b90039392505050565b60005b83811015614f70578181015183820152602001614f58565b83811115611fd85750506000910152565b601f8201601f191681016001600160401b0381118282101715614fb457634e487b7160e01b600052604160045260246000fd5b6040525050565b600063ffffffff80831681811415614fd557614fd5615022565b6001019392505050565b600060ff821660ff811415614ff657614ff6615022565b60010192915050565b600063ffffffff8084168061501657615016615038565b92169190910692915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600060033d111561506357600481823e5160e01c5b90565b600060443d10156150745790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156150a357505050505090565b82850191508151818111156150bb5750505050505090565b843d87010160208285010111156150d55750505050505090565b6150e460208286010187614f81565b509095945050505050565b6001600160a01b038116811461438657600080fd5b6001600160e01b03198116811461438657600080fdfea26469706673582212200f9e228c040d7b73400f5654f10fd2cf9b55cdff84a942e901fadc26f5e3d4c064736f6c63430008040033", + "deployedBytecode": "0x6080604052600436106100f75760003560e01c8063a17027e11161008a578063d087d28811610059578063d087d288146104d5578063d87458a3146104fc578063e4e5b2581461051c578063f23a6e611461053c57600080fd5b8063a17027e11461045a578063a4874d7714610480578063bc197c8114610495578063c34a6dad146104b557600080fd5b80632293d3fb116100c65780632293d3fb1461029e5780632f1f7520146102cb5780635a9b0b89146102f0578063695def4c1461043657600080fd5b806301ffc9a7146101c05780630d8e6e2c146101f5578063150b7a02146102175780631cf4ea051461025057600080fd5b366101bb57604080513481523360208201527fa26ab80e902f2055a125714fc6f2eb15df2a09c7fe39c7fc71204ffba72109db910160405180910390a1670de0b6b3a7640000341461014557005b6002546001600160a01b0316331461015957005b6002546001600160a01b031661016b57005b3330141561017557005b6040513381527f0cbe1fea4becf04af2176bbef0c9c53d439d30a05a197aacc38bb4a2873222e39060200160405180910390a16101b061055c565b6101b957600080fd5b005b600080fd5b3480156101cc57600080fd5b506101e06101db3660046148b8565b6105bb565b60405190151581526020015b60405180910390f35b34801561020157600080fd5b50604080516007815260036020820152016101ec565b34801561022357600080fd5b50610237610232366004614668565b61060d565b6040516001600160e01b031990911681526020016101ec565b34801561025c57600080fd5b5061027061026b36600461485d565b610673565b6040516101ec9493929190938452602084019290925263ffffffff1660408301521515606082015260800190565b3480156102aa57600080fd5b506004546005546040805192835263ffffffff9091166020830152016101ec565b3480156102d757600080fd5b506102e06106b9565b6040516101ec9493929190614b9a565b3480156102fc57600080fd5b506103e06002546003547f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0390911691565b6040805198895260ff97881660208a01529587169588019590955263ffffffff9384166060880152919092166080860152921660a08401526001600160a01b0390911660c083015260e0820152610100016101ec565b34801561044257600080fd5b5061044b6106f6565b6040516101ec93929190614be7565b34801561046657600080fd5b5061046f6109e4565b6040516101ec959493929190614b39565b34801561048c57600080fd5b506101e0610e58565b3480156104a157600080fd5b506102376104b03660046145ae565b610fc6565b3480156104c157600080fd5b506101b96104d0366004614751565b6110d8565b3480156104e157600080fd5b506104ea6113cb565b60405160ff90911681526020016101ec565b34801561050857600080fd5b5061046f61051736600461485d565b611444565b34801561052857600080fd5b506101b961053736600461488d565b6117b6565b34801561054857600080fd5b506102376105573660046146d8565b6118d7565b60025460405160009182916001600160a01b039091169047908381818185875af1925050503d80600081146105ad576040519150601f19603f3d011682016040523d82523d6000602084013e6105b2565b606091505b50909392505050565b60006001600160e01b031982166301ffc9a760e01b14806105ec57506001600160e01b0319821663f23a6e6160e01b145b8061060757506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161064d989796959493929190614d6a565b60405180910390a16106616001338661193e565b50630a85bd0160e11b95945050505050565b60008060008060405162461bcd60e51b81526004016106b0906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b60405180910390fd5b60608060608060405162461bcd60e51b81526004016106b0906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b606080606060006001805490506001600160401b0381111561072857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610751578160200160208202803683370190505b506001549091506000906001600160401b0381111561078057634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156107a9578160200160208202803683370190505b506001549091506000906001600160401b038111156107d857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610801578160200160208202803683370190505b50905060005b60015463ffffffff821610156109d75760018163ffffffff168154811061083e57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061087d57634e487b7160e01b600052603260045260246000fd5b602002602001019060038111156108a457634e487b7160e01b600052602160045260246000fd5b908160038111156108c557634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106108f057634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff168151811061093b57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061098257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff16815181106109ba57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806109cf81614fbb565b915050610807565b5091959094509092509050565b60608060608060606000805b60085463ffffffff82161015610a6e5760006009600060088463ffffffff1681548110610a2d57634e487b7160e01b600052603260045260246000fd5b906000526020600020015481526020019081526020016000209050808054905083610a589190614e4c565b9250508080610a6690614fbb565b9150506109f0565b5060008163ffffffff166001600160401b03811115610a9d57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610ac6578160200160208202803683370190505b50905060008263ffffffff166001600160401b03811115610af757634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b20578160200160208202803683370190505b50905060008363ffffffff166001600160401b03811115610b5157634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b7a578160200160208202803683370190505b50905060008463ffffffff166001600160401b03811115610bab57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610bd4578160200160208202803683370190505b50905060008563ffffffff166001600160401b03811115610c0557634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c2e578160200160208202803683370190505b5090506000805b60085463ffffffff82161015610e455760006009600060088463ffffffff1681548110610c7257634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020905060005b815463ffffffff82161015610e30576000828263ffffffff1681548110610cc757634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201905080600001548a8663ffffffff1681518110610d0257634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154898663ffffffff1681518110610d3957634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154888663ffffffff1681518110610d7057634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154875163ffffffff918216918991908816908110610dad57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16868663ffffffff1681518110610dff57634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015284610e1981614fbb565b955050508080610e2890614fbb565b915050610c90565b50508080610e3d90614fbb565b915050610c35565b50949b939a509198509650945092505050565b600063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000610ecf60ff7f00000000000000000000000000000000000000000000000000000000000000001642614e74565b610ed99190614f0d565b63ffffffff1611610f225760405162461bcd60e51b8152602060048201526013602482015272546f6f206561726c7920746f2072657469726560681b60448201526064016106b0565b6002546001600160a01b0316610f7a5760405162461bcd60e51b815260206004820152601e60248201527f4c617374207265736f72742061646472657373206973206e6f7420736574000060448201526064016106b0565b610f8261055c565b610fc05760405162461bcd60e51b815260206004820152600f60248201526e149958dbdd995c9e4819985a5b1959608a1b60448201526064016106b0565b50600190565b6000805b63ffffffff81168711156110c2573063f23a6e618b8b8b8b63ffffffff871681811061100657634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061103357634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161105d96959493929190614aad565b602060405180830381600087803b15801561107757600080fd5b505af115801561108b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110af91906148d4565b50806110ba81614fbb565b915050610fca565b5063bc197c8160e01b9998505050505050505050565b6110e48c8c8c8c611c8f565b61110f60017f0000000000000000000000000000000000000000000000000000000000000000614f0d565b63ffffffff168a63ffffffff16141561119d57600688600781111561114457634e487b7160e01b600052602160045260246000fd5b1461119d5760405162461bcd60e51b815260206004820152602360248201527f4c617374206f7065726174696f6e20726573657276656420666f72207265636f6044820152623b32b960e91b60648201526084016106b0565b6000806111da8e8e60008181106111c457634e487b7160e01b600052603260045260246000fd5b905060200201358d8d8d8d8d8d8d8d8d8d611fde565b9150915060006111ec838e848f6121f6565b90506111f883826125c8565b60008b600781111561121a57634e487b7160e01b600052602160045260246000fd5b141561124057831561123557611230858561278f565b6113ba565b6112308a8a8a61193e565b60018b600781111561126257634e487b7160e01b600052602160045260246000fd5b1415611283578315611279576112308a8a8a61291f565b6112308585612f6d565b60028b60078111156112a557634e487b7160e01b600052602160045260246000fd5b14156112ef576112308a8a8a8a8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061304392505050565b60038b600781111561131157634e487b7160e01b600052602160045260246000fd5b14156113215761123085856133bf565b60048b600781111561134357634e487b7160e01b600052602160045260246000fd5b1415611359576113538787613587565b506113ba565b60068b600781111561137b57634e487b7160e01b600052602160045260246000fd5b1415611389576113536137a9565b60058b60078111156113ab57634e487b7160e01b600052602160045260246000fd5b14156113ba576113ba87613826565b505050505050505050505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000061141c60ff7f00000000000000000000000000000000000000000000000000000000000000001642614e88565b6114269190614f0d565b63ffffffff1660009081526006602052604090205460ff1692915050565b600081815260096020526040812080546060928392839283928392916001600160401b0381111561148557634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114ae578160200160208202803683370190505b5082549091506000906001600160401b038111156114dc57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611505578160200160208202803683370190505b5083549091506000906001600160401b0381111561153357634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561155c578160200160208202803683370190505b5084549091506000906001600160401b0381111561158a57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156115b3578160200160208202803683370190505b5085549091506000906001600160401b038111156115e157634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561160a578160200160208202803683370190505b50905060005b865463ffffffff821610156117a2576000878263ffffffff168154811061164757634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060000154878363ffffffff168151811061168257634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154868363ffffffff16815181106116b957634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154858363ffffffff16815181106116f057634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154845163ffffffff91821691869190851690811061172d57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16838363ffffffff168151811061177f57634e487b7160e01b600052603260045260246000fd5b91151560209283029190910190910152508061179a81614fbb565b915050611610565b50939b929a50909850965090945092505050565b6117be6138ac565b6040805160a0810182528481526020810184905290810182905263ffffffff42166060820152600060808201526008546078116118305760405162461bcd60e51b815260206004820152601060248201526f546f6f206d616e7920636f6d6d69747360801b60448201526064016106b0565b6008805460018181019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018590556000948552600960209081526040808720805480850182559088529682902084516004909802019687559083015191860191909155810151600285015560608101516003909401805460809092015115156401000000000264ffffffffff1990921663ffffffff90951694909417179092555050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a8989604051611917989796959493929190614d6a565b60405180910390a161192b6002338761193e565b5063f23a6e6160e01b9695505050505050565b600083600381111561196057634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915015611b455760005b60008281526020819052604090205463ffffffff82161015611b43576000828152602081905260408120805463ffffffff8416908110611a0957634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115611a3657634e487b7160e01b600052602160045260246000fd5b60018281548110611a5757634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115611a8a57634e487b7160e01b600052602160045260246000fd5b14611a955750611b31565b8360018281548110611ab757634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414611ad45750611b31565b846001600160a01b031660018281548110611aff57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614611b295750611b31565b505050505050565b80611b3b81614fbb565b9150506119b9565b505b60006040518060600160405280866003811115611b7257634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff191690836003811115611c1757634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a290611c8090879087908790614c78565b60405180910390a15050505050565b611cba60017f0000000000000000000000000000000000000000000000000000000000000000614f32565b60ff168314611d0b5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420656e6f756768206e65696768626f72732070726f766964656400000060448201526064016106b0565b6000600282604051602001611d2291815260200190565b60408051601f1981840301815290829052611d3c91614a54565b602060405180830381855afa158015611d59573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611d7c9190614875565b9050611da960017f0000000000000000000000000000000000000000000000000000000000000000614f0d565b63ffffffff168363ffffffff161415611dbf5750805b60005b611ded60017f0000000000000000000000000000000000000000000000000000000000000000614f32565b60ff168160ff161015611f715760018085161415611ead57600286868360ff16818110611e2a57634e487b7160e01b600052603260045260246000fd5b9050602002013583604051602001611e4c929190918252602082015260400190565b60408051601f1981840301815290829052611e6691614a54565b602060405180830381855afa158015611e83573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ea69190614875565b9150611f51565b60028287878460ff16818110611ed357634e487b7160e01b600052603260045260246000fd5b90506020020135604051602001611ef4929190918252602082015260400190565b60408051601f1981840301815290829052611f0e91614a54565b602060405180830381855afa158015611f2b573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611f4e9190614875565b91505b60018463ffffffff16901c93508080611f6990614fdf565b915050611dc2565b50807f000000000000000000000000000000000000000000000000000000000000000014611fd65760405162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81a5b98dbdc9c9958dd60721b60448201526064016106b0565b505b50505050565b60008060008d8d60e01b6001600160e01b0319168d604051602001612016939291909283526020830191909152604082015260600190565b60408051601f1981840301815291905280516020909101209050600060048c600781111561205457634e487b7160e01b600052602160045260246000fd5b1415612097576040805160608a811b6001600160601b0319166020830152918101899052015b6040516020818303038152906040528051906020012090506121e2565b60068c60078111156120b957634e487b7160e01b600052602160045260246000fd5b14156120de5785856040516120cf929190614a44565b604051809103902090506121e2565b60058c600781111561210057634e487b7160e01b600052602160045260246000fd5b141561212457604080516001600160601b031960608b901b1660208201520161207a565b60008c600781111561214657634e487b7160e01b600052602160045260246000fd5b8c600381111561216657634e487b7160e01b600052602160045260246000fd5b60001b8c60601b6001600160601b0319168c60001b8c60601b6001600160601b0319168c60001b8c8c6040516020016121a6989796959493929190614a07565b6040516020818303038152906040529050806040516020016121c89190614a54565b604051602081830303815290604052805190602001209150505b909e909d509b505050505050505050505050565b60008061222660ff7f00000000000000000000000000000000000000000000000000000000000000001686614e88565b9050600061225760ff7f00000000000000000000000000000000000000000000000000000000000000001687614fff565b60008881526009602052604090208054919250906122a95760405162461bcd60e51b815260206004820152600f60248201526e139bc818dbdb5b5a5d08199bdd5b99608a1b60448201526064016106b0565b60005b815463ffffffff82161015612585576000828263ffffffff16815481106122e357634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190506000816001015488604051602001612315929190918252602082015260400190565b6040516020818303038152906040528051906020012090508082600201541461233f575050612573565b888260010154146123925760405162461bcd60e51b815260206004820152601760248201527f506172616d657465722068617368206d69736d6174636800000000000000000060448201526064016106b0565b60038201546000907f0000000000000000000000000000000000000000000000000000000000000000906123f09060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614e88565b6123fa9190614f0d565b90508663ffffffff168163ffffffff16146124575760405162461bcd60e51b815260206004820152601a60248201527f496e646578202d2074696d657374616d70206d69736d6174636800000000000060448201526064016106b0565b63ffffffff811660009081526006602052604090205460ff9081169087168111156124b45760405162461bcd60e51b815260206004820152600d60248201526c4e6f6e636520746f6f206c6f7760981b60448201526064016106b0565b6003840154640100000000900460ff16156125115760405162461bcd60e51b815260206004820152601860248201527f436f6d6d697420616c726561647920636f6d706c65746564000000000000000060448201526064016106b0565b60038401546125259063ffffffff16613b87565b6125635760405162461bcd60e51b815260206004820152600f60248201526e52657665616c20746f6f206c61746560881b60448201526064016106b0565b84985050505050505050506125c0565b8061257d81614fbb565b9150506122ac565b5060405162461bcd60e51b815260206004820152600f60248201526e139bc81d985b1a590818dbdb5b5a5d608a1b60448201526064016106b0565b949350505050565b6000828152600960205260409020805461261a5760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e840d0c2e6d606b1b60448201526064016106b0565b805463ffffffff8316106126665760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e892dcc8caf606b1b60448201526064016106b0565b6000818363ffffffff168154811061268e57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600490910201600381015490915063ffffffff166126f85760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420636f6d6d69742074696d657374616d70000000000000000060448201526064016106b0565b60038101546000907f0000000000000000000000000000000000000000000000000000000000000000906127569060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614e88565b6127609190614f0d565b905061276b81613ba2565b612773613c43565b50600301805464ff000000001916640100000000179055505050565b600061279c606083614e74565b9050816127aa826060614eca565b63ffffffff16146127cd5760405162461bcd60e51b81526004016106b090614dc8565b60005b8163ffffffff168163ffffffff161015611fd857600061286085856127f6856060614eca565b63ffffffff1690612808866060614eca565b612813906020614e4c565b63ffffffff169261282693929190614e0c565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f1e92505050565b600381111561287f57634e487b7160e01b600052602160045260246000fd5b905060006128bb8686612893866060614eca565b61289e906020614e4c565b63ffffffff16906128b0876060614eca565b612813906034614e4c565b60601c905060006128fc87878660606128d49190614eca565b6128df906040614e4c565b63ffffffff16906128f1886060614eca565b612813906060614e4c565b905061290983838361193e565b505050808061291790614fbb565b9150506127d0565b600083600381111561294157634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915061299c5750505050565b60005b60008281526020819052604090205463ffffffff82161015612f2b576000828152602081905260408120805463ffffffff84169081106129ef57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115612a1c57634e487b7160e01b600052602160045260246000fd5b60018281548110612a3d57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612a7057634e487b7160e01b600052602160045260246000fd5b14612a7b5750612f19565b8360018281548110612a9d57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414612aba5750612f19565b846001600160a01b031660018281548110612ae557634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614612b0f5750612f19565b60018054600091612b1f91614ef6565b905060018181548110612b4257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160018381548110612b7157634e487b7160e01b600052603260045260246000fd5b6000918252602090912082546002909202018054909160ff1690829060ff19166001836003811115612bb357634e487b7160e01b600052602160045260246000fd5b021790555081548154610100600160a81b031916610100918290046001600160a01b03169091021781556001918201549082015580546000919084908110612c0b57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612c3e57634e487b7160e01b600052602160045260246000fd5b6001805485908110612c6057634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b031660601b6001600160601b03191660018581548110612cb357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015460001b604051602001612ceb939291909283526020830191909152604082015260600190565b6040516020818303038152906040528051906020012090506001805480612d2257634e487b7160e01b600052603160045260246000fd5b60008281526020812060026000199093019283020180546001600160a81b031916815560010181905591555b60008281526020819052604090205463ffffffff82161015612e0a57826000808481526020019081526020016000208263ffffffff1681548110612da257634e487b7160e01b600052603260045260246000fd5b90600052602060002001541415612df857836000808481526020019081526020016000208263ffffffff1681548110612deb57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b80612e0281614fbb565b915050612d4e565b5060008581526020819052604090208054612e2790600190614ef6565b81548110612e4557634e487b7160e01b600052603260045260246000fd5b90600052602060002001546000808781526020019081526020016000208481548110612e8157634e487b7160e01b600052603260045260246000fd5b9060005260206000200181905550600080868152602001908152602001600020805480612ebe57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590557f166bc904e3b7f8699e175923a2635944dd9ac0dc817927aac60d854d23a82b9b888888604051612f0793929190614c78565b60405180910390a15050505050505050565b80612f2381614fbb565b91505061299f565b507ffc773cf3883ef83133327fbc62fe0a7c3c96add34a1781cae66ba5de7efa3f5f848484604051612f5f93929190614c78565b60405180910390a150505050565b6000612f7a606083614e74565b905081612f88826060614eca565b63ffffffff1614612fab5760405162461bcd60e51b81526004016106b090614dc8565b60005b8163ffffffff168163ffffffff161015611fd8576000612fd485856127f6856060614eca565b6003811115612ff357634e487b7160e01b600052602160045260246000fd5b905060006130078686612893866060614eca565b60601c9050600061302087878660606128d49190614eca565b905061302d83838361291f565b505050808061303b90614fbb565b915050612fae565b600086600381111561306557634e487b7160e01b600052602160045260246000fd5b141561321d5760405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905286169063a9059cbb90604401602060405180830381600087803b1580156130b557600080fd5b505af19250505080156130e5575060408051601f3d908101601f191682019092526130e291810190614836565b60015b61319e576130f161504e565b806308c379a014156131585750613106615066565b80613111575061315a565b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba87878787878660405161314a96959493929190614cdb565b60405180910390a150611b29565b505b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba8686868686604051613191959493929190614d22565b60405180910390a1611b29565b80156131e6576131af87878761193e565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b31878787878760405161314a959493929190614ca0565b7f75a36803468aca74d964b22522480470a7a3f2121daa5994c2a937aec85d2329878787878760405161314a959493929190614ca0565b600186600381111561323f57634e487b7160e01b600052602160045260246000fd5b14156132e557604051635c46a7ef60e11b81526001600160a01b0386169063b88d4fde90613277903090879089908790600401614a70565b600060405180830381600087803b15801561329157600080fd5b505af19250505080156132a2575060015b6132ae576130f161504e565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b318686868686604051613191959493929190614ca0565b600286600381111561330757634e487b7160e01b600052602160045260246000fd5b1415611b2957604051637921219560e11b81526001600160a01b0386169063f242432a906133419030908790899088908890600401614af4565b600060405180830381600087803b15801561335b57600080fd5b505af192505050801561336c575060015b613378576130f161504e565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516133af959493929190614ca0565b60405180910390a1505050505050565b60006133cc606083614e74565b9050816133da826060614eca565b63ffffffff16146133fd5760405162461bcd60e51b81526004016106b090614dc8565b60008163ffffffff166001600160401b0381111561342b57634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561347657816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816134495790505b50905060005b8263ffffffff168163ffffffff16101561357d5760006134a286866127f6856060614eca565b60038111156134c157634e487b7160e01b600052602160045260246000fd5b905060006134d58787612893866060614eca565b60601c905060006134ee88888660606128d49190614eca565b60001c9050604051806060016040528084600381111561351e57634e487b7160e01b600052602160045260246000fd5b8152602001836001600160a01b0316815260200182815250858563ffffffff168151811061355c57634e487b7160e01b600052603260045260246000fd5b6020026020010181905250505050808061357590614fbb565b91505061347c565b50611fd881613faa565b6000806135976201518042614e74565b60055490915063ffffffff90811690821611156135c95760006004556005805463ffffffff191663ffffffff83161790555b600354836004546135da9190614e34565b111561363f576003546004546040805186815260208101939093528201526001600160a01b03851660608201527f705f289c5579ebb63d8c90ed39a42a76ded07641efe4f445a9a97d1e95c75c68906080015b60405180910390a16000915050610607565b8247101561368f57604080518481524760208201526001600160a01b038616918101919091527fd90084f259c3c1dbd378c6c23cff1383005852e0d9829773e15afdbaf15fb7d89060600161362d565b82600460008282546136a19190614e34565b90915550506040516000906001600160a01b0386169085908381818185875af1925050503d80600081146136f1576040519150601f19603f3d011682016040523d82523d6000602084013e6136f6565b606091505b505090508061375d5783600460008282546137119190614ef6565b90915550506040516001600160a01b03861681527f2c7068ca7f82b1436494678e109b299bc751ccbb88d560f7c011b48dfdb2117b9060200160405180910390a1600092505050610607565b604080518581526001600160a01b03871660208201527f8f4636f285a9a17fe3479ab47bb7a5deadaf9b2295a16c3965f55fa48e542d1f910160405180910390a1506001949350505050565b6002546000906001600160a01b03166137eb576040517fc27dbdcf29e2a161f0420d399444129801e578bafe157fef0370098459e082bf90600090a150600090565b6137f361055c565b610fc0576040517fa3a244603d968c02ebd2017f990d4e077cf0381929976be2a0cb07076147a56f90600090a150600090565b6002546001600160a01b03161561388a5760405162461bcd60e51b815260206004820152602260248201527f4c617374207265736f7274206164647265737320697320616c72656164792073604482015261195d60f21b60648201526084016106b0565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000425b60085463ffffffff8316101561398257600060088363ffffffff16815481106138e957634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015480835260099091526040909120805491925090613915575050613970565b60008160008154811061393857634e487b7160e01b600052603260045260246000fd5b6000918252602090912060036004909202019081015490915063ffffffff603b198601811691161061396c57505050613982565b5050505b8161397a81614fbb565b9250506138b0565b63ffffffff8216613991575050565b60005b8263ffffffff168163ffffffff161015613a9457600060088263ffffffff16815481106139d157634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260408220909250905b815463ffffffff82161015613a6757818163ffffffff1681548110613a2557634e487b7160e01b600052603260045260246000fd5b600091825260208220600490910201818155600181018290556002810191909155600301805464ffffffffff1916905580613a5f81614fbb565b9150506139f0565b506000828152600960205260408120613a7f91614365565b50508080613a8c90614fbb565b915050613994565b50600854825b8163ffffffff168163ffffffff161015613b275760088163ffffffff1681548110613ad557634e487b7160e01b600052603260045260246000fd5b9060005260206000200154600885830363ffffffff1681548110613b0957634e487b7160e01b600052603260045260246000fd5b60009182526020909120015580613b1f81614fbb565b915050613a9a565b5060005b8363ffffffff168163ffffffff161015611fd8576008805480613b5e57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558080613b7f90614fbb565b915050613b2b565b6000603c613b958342614f0d565b63ffffffff161092915050565b63ffffffff811660009081526006602052604090205460ff1680613c16576007805460018101825560008290527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68860088204018054919092166004026101000a63ffffffff81810219909216918516021790555b63ffffffff919091166000908152600660205260409020805460ff1916600190920160ff16919091179055565b6000613c50603c42614f0d565b90506000613c8160ff7f00000000000000000000000000000000000000000000000000000000000000001683614e88565b905060007f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff161115613ce657613ce37f000000000000000000000000000000000000000000000000000000000000000083614f0d565b90505b6007546000906001600160401b03811115613d1157634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613d3a578160200160208202803683370190505b5090506000805b60075460ff82161015613e1d57600060078260ff1681548110613d7457634e487b7160e01b600052603260045260246000fd5b6000918252602090912060088204015460079091166004026101000a900463ffffffff90811691508516811015613dc75763ffffffff81166000908152600660205260409020805460ff19169055613e0a565b80848463ffffffff1681518110613dee57634e487b7160e01b600052603260045260246000fd5b63ffffffff909216602092830291909101909101526001909201915b5080613e1581614fdf565b915050613d41565b5060008163ffffffff166001600160401b03811115613e4c57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613e75578160200160208202803683370190505b50905060005b8263ffffffff168160ff161015613f0157838160ff1681518110613eaf57634e487b7160e01b600052603260045260246000fd5b6020026020010151828260ff1681518110613eda57634e487b7160e01b600052603260045260246000fd5b63ffffffff9092166020928302919091019091015280613ef981614fdf565b915050613e7b565b508051613f15906007906020840190614389565b50505050505050565b6000815160001415613f3257506000919050565b602082511115613f7b5760405162461bcd60e51b8152602060048201526014602482015273696e70757420627974657320746f6f206c6f6e6760601b60448201526064016106b0565b60008083516020613f8c9190614ef6565b613f97906008614eab565b60209490940151841c90931b9392505050565b60005b60015463ffffffff8216101561411d57600060018263ffffffff1681548110613fe657634e487b7160e01b600052603260045260246000fd5b600091825260208220600290910201546001805460ff90921693509063ffffffff851690811061402657634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b03169050600060018463ffffffff168154811061407657634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154905060008360038111156140ac57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905290822090925061410691614438565b50505050808061411590614fbb565b915050613fad565b5061412a60016000614456565b60005b81518163ffffffff161015614361576000828263ffffffff168151811061416457634e487b7160e01b600052603260045260246000fd5b60200260200101516000015190506000838363ffffffff168151811061419a57634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000848463ffffffff16815181106141d057634e487b7160e01b600052603260045260246000fd5b6020026020010151604001519050600083600381111561420057634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b0319169183019190915281018390526080016040516020818303038152906040528051906020012090506000604051806060016040528086600381111561426f57634e487b7160e01b600052602160045260246000fd5b81526001600160a01b03861660208201526040018490526001805480820182556000829052825160029091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805493945084939092839160ff1916908360038111156142ed57634e487b7160e01b600052602160045260246000fd5b021790555060208281015182546001600160a01b0390911661010002610100600160a81b03199091161782556040928301516001928301556000948552848152918420805491820181558452922063ffffffff8716920191909155508392506143599150829050614fbb565b91505061412d565b5050565b50805460008255600402906000526020600020908101906143869190614477565b50565b828054828255906000526020600020906007016008900481019282156144285791602002820160005b838211156143f657835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026143b2565b80156144265782816101000a81549063ffffffff02191690556004016020816003010492830192600103026143f6565b505b506144349291506144a9565b5090565b508054600082559060005260206000209081019061438691906144a9565b508054600082556002029060005260206000209081019061438691906144be565b5b8082111561443457600080825560018201819055600282015560038101805464ffffffffff19169055600401614478565b5b8082111561443457600081556001016144aa565b5b808211156144345780546001600160a81b0319168155600060018201556002016144bf565b80356144ef816150ef565b919050565b60008083601f840112614505578182fd5b5081356001600160401b0381111561451b578182fd5b6020830191508360208260051b850101111561453657600080fd5b9250929050565b60008083601f84011261454e578182fd5b5081356001600160401b03811115614564578182fd5b60208301915083602082850101111561453657600080fd5b8035600881106144ef57600080fd5b8035600481106144ef57600080fd5b803563ffffffff811681146144ef57600080fd5b60008060008060008060008060a0898b0312156145c9578384fd5b88356145d4816150ef565b975060208901356145e4816150ef565b965060408901356001600160401b03808211156145ff578586fd5b61460b8c838d016144f4565b909850965060608b0135915080821115614623578586fd5b61462f8c838d016144f4565b909650945060808b0135915080821115614647578384fd5b506146548b828c0161453d565b999c989b5096995094979396929594505050565b60008060008060006080868803121561467f578081fd5b853561468a816150ef565b9450602086013561469a816150ef565b93506040860135925060608601356001600160401b038111156146bb578182fd5b6146c78882890161453d565b969995985093965092949392505050565b60008060008060008060a087890312156146f0578182fd5b86356146fb816150ef565b9550602087013561470b816150ef565b9450604087013593506060870135925060808701356001600160401b03811115614733578283fd5b61473f89828a0161453d565b979a9699509497509295939492505050565b6000806000806000806000806000806000806101408d8f031215614773578384fd5b6001600160401b038d351115614787578384fd5b6147948e8e358f016144f4565b909c509a506147a560208e0161459a565b995060408d013598506147ba60608e0161457c565b97506147c860808e0161458b565b96506147d660a08e016144e4565b955060c08d013594506147eb60e08e016144e4565b93506101008d013592506001600160401b036101208e0135111561480d578081fd5b61481e8e6101208f01358f0161453d565b81935080925050509295989b509295989b509295989b565b600060208284031215614847578081fd5b81518015158114614856578182fd5b9392505050565b60006020828403121561486e578081fd5b5035919050565b600060208284031215614886578081fd5b5051919050565b6000806000606084860312156148a1578081fd5b505081359360208301359350604090920135919050565b6000602082840312156148c9578081fd5b813561485681615104565b6000602082840312156148e5578081fd5b815161485681615104565b6000815180845260208085019450808401835b83811015614921578151151587529582019590820190600101614903565b509495945050505050565b6000815180845260208085019450808401835b838110156149215781518752958201959082019060010161493f565b6000815180845260208085019450808401835b8381101561492157815163ffffffff168752958201959082019060010161496e565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600081518084526149d1816020860160208601614f55565b601f01601f19169290920160200192915050565b60048110614a0357634e487b7160e01b600052602160045260246000fd5b9052565b8881528760208201528660408201528560608201528460808201528360a0820152818360c08301376000910160c001908152979650505050505050565b8183823760009101908152919050565b60008251614a66818460208701614f55565b9190910192915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614aa3908301846149b9565b9695505050505050565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090614ae89083018486614990565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614b2e908301846149b9565b979650505050505050565b60a081526000614b4c60a083018861492c565b8281036020840152614b5e818861492c565b90508281036040840152614b72818761492c565b90508281036060840152614b86818661495b565b90508281036080840152614ae881856148f0565b608081526000614bad608083018761492c565b8281036020840152614bbf818761492c565b90508281036040840152614bd3818661495b565b90508281036060840152614b2e81856148f0565b606080825284519082018190526000906020906080840190828801845b82811015614c2757614c178483516149e5565b9284019290840190600101614c04565b50505083810382850152855180825286830191830190845b81811015614c645783516001600160a01b031683529284019291840191600101614c3f565b50508481036040860152614ae8818761492c565b60608101614c8682866149e5565b6001600160a01b0393909316602082015260400152919050565b60a08101614cae82886149e5565b6001600160a01b039586166020830152604082019490945291909316606082015260800191909152919050565b614ce581886149e5565b6001600160a01b03868116602083015260408201869052841660608201526080810183905260c060a08201819052600090614ae8908301846149b9565b614d2c81876149e5565b6001600160a01b039485166020820152604081019390935292166060820152608081019190915260c060a0820181905260009082015260e001919050565b614d74818a6149e5565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090614dba9083018486614990565b9a9950505050505050505050565b60208082526024908201527f64617461206d7573742068617665206c656e677468206d756c7469706c65207460408201526337901c9b60e11b606082015260800190565b60008085851115614e1b578182fd5b83861115614e27578182fd5b5050820193919092039150565b60008219821115614e4757614e47615022565b500190565b600063ffffffff808316818516808303821115614e6b57614e6b615022565b01949350505050565b600082614e8357614e83615038565b500490565b600063ffffffff80841680614e9f57614e9f615038565b92169190910492915050565b6000816000190483118215151615614ec557614ec5615022565b500290565b600063ffffffff80831681851681830481118215151615614eed57614eed615022565b02949350505050565b600082821015614f0857614f08615022565b500390565b600063ffffffff83811690831681811015614f2a57614f2a615022565b039392505050565b600060ff821660ff841680821015614f4c57614f4c615022565b90039392505050565b60005b83811015614f70578181015183820152602001614f58565b83811115611fd85750506000910152565b601f8201601f191681016001600160401b0381118282101715614fb457634e487b7160e01b600052604160045260246000fd5b6040525050565b600063ffffffff80831681811415614fd557614fd5615022565b6001019392505050565b600060ff821660ff811415614ff657614ff6615022565b60010192915050565b600063ffffffff8084168061501657615016615038565b92169190910692915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600060033d111561506357600481823e5160e01c5b90565b600060443d10156150745790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156150a357505050505090565b82850191508151818111156150bb5750505050505090565b843d87010160208285010111156150d55750505050505090565b6150e460208286010187614f81565b509095945050505050565b6001600160a01b038116811461438657600080fd5b6001600160e01b03198116811461438657600080fdfea26469706673582212200f9e228c040d7b73400f5654f10fd2cf9b55cdff84a942e901fadc26f5e3d4c064736f6c63430008040033", "immutableReferences": { - "50": [ + "437": [ { "length": 32, "start": 776 }, { "length": 32, - "start": 7803 + "start": 8053 } ], - "52": [ + "439": [ { "length": 32, "start": 810 }, { "length": 32, - "start": 7133 + "start": 7318 }, { "length": 32, - "start": 7375 + "start": 7625 } ], - "54": [ + "441": [ { "length": 32, "start": 844 @@ -943,22 +943,22 @@ }, { "length": 32, - "start": 4925 + "start": 5110 }, { "length": 32, - "start": 8883 + "start": 9156 }, { "length": 32, - "start": 9753 + "start": 10026 }, { "length": 32, - "start": 15157 + "start": 15451 } ], - "56": [ + "443": [ { "length": 32, "start": 878 @@ -969,26 +969,26 @@ }, { "length": 32, - "start": 4887 + "start": 5072 }, { "length": 32, - "start": 8843 + "start": 9116 }, { "length": 32, - "start": 9713 + "start": 9986 }, { "length": 32, - "start": 15201 + "start": 15495 }, { "length": 32, - "start": 15256 + "start": 15550 } ], - "58": [ + "445": [ { "length": 32, "start": 912 @@ -998,18 +998,28 @@ "start": 3681 } ], - "60": [ + "447": [ { "length": 32, "start": 946 }, { "length": 32, - "start": 8431 + "start": 8704 }, { "length": 32, - "start": 8480 + "start": 8753 + } + ], + "449": [ + { + "length": 32, + "start": 4331 + }, + { + "length": 32, + "start": 7557 } ] }, @@ -1017,7 +1027,7 @@ { "ast": { "nodeType": "YulBlock", - "src": "0:1207:8", + "src": "0:2922:8", "statements": [ { "nodeType": "YulBlock", @@ -1597,92 +1607,1431 @@ ] }, { - "nodeType": "YulAssignment", - "src": "935:58:8", + "nodeType": "YulAssignment", + "src": "935:58:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "977:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "988:3:8", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "973:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "973:19:8" + } + ], + "functionName": { + "name": "abi_decode_uint8_fromMemory", + "nodeType": "YulIdentifier", + "src": "945:27:8" + }, + "nodeType": "YulFunctionCall", + "src": "945:48:8" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "935:6:8" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1002:39:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1025:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:3:8", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1021:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1021:19:8" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1015:5:8" + }, + "nodeType": "YulFunctionCall", + "src": "1015:26:8" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1006:5:8", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1104:26:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "1113:6:8" + }, + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "1121:6:8" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1106:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "1106:22:8" + }, + "nodeType": "YulExpressionStatement", + "src": "1106:22:8" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1063:5:8" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1074:5:8" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1089:3:8", + "type": "", + "value": "160" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1094:1:8", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "1085:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1085:11:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1098:1:8", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1081:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1081:19:8" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1070:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1070:31:8" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1060:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "1060:42:8" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1053:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "1053:50:8" + }, + "nodeType": "YulIf", + "src": "1050:2:8" + }, + { + "nodeType": "YulAssignment", + "src": "1139:15:8", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1149:5:8" + }, + "variableNames": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "1139:6:8" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1163:36:8", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1183:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1194:3:8", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1179:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1179:19:8" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1173:5:8" + }, + "nodeType": "YulFunctionCall", + "src": "1173:26:8" + }, + "variableNames": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "1163:6:8" + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes32t_uint8t_uint8t_uint32t_uint32t_uint8t_address_payablet_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "461:9:8", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "472:7:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "484:6:8", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "492:6:8", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "500:6:8", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "508:6:8", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "516:6:8", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "524:6:8", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "532:6:8", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "540:6:8", + "type": "" + } + ], + "src": "351:854:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1274:358:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1284:16:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1299:1:8", + "type": "", + "value": "1" + }, + "variables": [ + { + "name": "power_1", + "nodeType": "YulTypedName", + "src": "1288:7:8", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1309:16:8", + "value": { + "name": "power_1", + "nodeType": "YulIdentifier", + "src": "1318:7:8" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "1309:5:8" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1334:13:8", + "value": { + "name": "_base", + "nodeType": "YulIdentifier", + "src": "1342:5:8" + }, + "variableNames": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "1334:4:8" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1398:228:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1443:22:8", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "1445:16:8" + }, + "nodeType": "YulFunctionCall", + "src": "1445:18:8" + }, + "nodeType": "YulExpressionStatement", + "src": "1445:18:8" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "1418:4:8" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1432:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1428:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1428:6:8" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "1436:4:8" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "1424:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1424:17:8" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1415:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "1415:27:8" + }, + "nodeType": "YulIf", + "src": "1412:2:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1504:29:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1506:25:8", + "value": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "1519:5:8" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "1526:4:8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1515:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1515:16:8" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "1506:5:8" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "1485:8:8" + }, + { + "name": "power_1", + "nodeType": "YulIdentifier", + "src": "1495:7:8" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1481:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1481:22:8" + }, + "nodeType": "YulIf", + "src": "1478:2:8" + }, + { + "nodeType": "YulAssignment", + "src": "1546:23:8", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "1558:4:8" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "1564:4:8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1554:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1554:15:8" + }, + "variableNames": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "1546:4:8" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1582:34:8", + "value": { + "arguments": [ + { + "name": "power_1", + "nodeType": "YulIdentifier", + "src": "1598:7:8" + }, + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "1607:8:8" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "1594:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1594:22:8" + }, + "variableNames": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "1582:8:8" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "1367:8:8" + }, + { + "name": "power_1", + "nodeType": "YulIdentifier", + "src": "1377:7:8" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1364:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "1364:21:8" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "1386:3:8", + "statements": [] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1360:3:8", + "statements": [] + }, + "src": "1356:270:8" + } + ] + }, + "name": "checked_exp_helper", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "_base", + "nodeType": "YulTypedName", + "src": "1238:5:8", + "type": "" + }, + { + "name": "exponent", + "nodeType": "YulTypedName", + "src": "1245:8:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "power", + "nodeType": "YulTypedName", + "src": "1258:5:8", + "type": "" + }, + { + "name": "base", + "nodeType": "YulTypedName", + "src": "1265:4:8", + "type": "" + } + ], + "src": "1210:422:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1705:72:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1715:56:8", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "1745:4:8" + }, + { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "1755:8:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1765:4:8", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1751:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "1751:19:8" + } + ], + "functionName": { + "name": "checked_exp_unsigned", + "nodeType": "YulIdentifier", + "src": "1724:20:8" + }, + "nodeType": "YulFunctionCall", + "src": "1724:47:8" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "1715:5:8" + } + ] + } + ] + }, + "name": "checked_exp_t_uint256_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base", + "nodeType": "YulTypedName", + "src": "1676:4:8", + "type": "" + }, + { + "name": "exponent", + "nodeType": "YulTypedName", + "src": "1682:8:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "power", + "nodeType": "YulTypedName", + "src": "1695:5:8", + "type": "" + } + ], + "src": "1637:140:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1841:747:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1879:52:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1893:10:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1902:1:8", + "type": "", + "value": "1" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "1893:5:8" + } + ] + }, + { + "nodeType": "YulLeave", + "src": "1916:5:8" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "1861:8:8" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1854:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "1854:16:8" + }, + "nodeType": "YulIf", + "src": "1851:2:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1964:52:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1978:10:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1987:1:8", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "1978:5:8" + } + ] + }, + { + "nodeType": "YulLeave", + "src": "2001:5:8" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "1950:4:8" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1943:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "1943:12:8" + }, + "nodeType": "YulIf", + "src": "1940:2:8" + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2052:52:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2066:10:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2075:1:8", + "type": "", + "value": "1" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "2066:5:8" + } + ] + }, + { + "nodeType": "YulLeave", + "src": "2089:5:8" + } + ] + }, + "nodeType": "YulCase", + "src": "2045:59:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2050:1:8", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2120:123:8", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2155:22:8", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "2157:16:8" + }, + "nodeType": "YulFunctionCall", + "src": "2157:18:8" + }, + "nodeType": "YulExpressionStatement", + "src": "2157:18:8" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "2140:8:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2150:3:8", + "type": "", + "value": "255" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2137:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "2137:17:8" + }, + "nodeType": "YulIf", + "src": "2134:2:8" + }, + { + "nodeType": "YulAssignment", + "src": "2190:25:8", + "value": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "2203:8:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2213:1:8", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "2199:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2199:16:8" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "2190:5:8" + } + ] + }, + { + "nodeType": "YulLeave", + "src": "2228:5:8" + } + ] + }, + "nodeType": "YulCase", + "src": "2113:130:8", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2118:1:8", + "type": "", + "value": "2" + } + } + ], + "expression": { + "name": "base", + "nodeType": "YulIdentifier", + "src": "2032:4:8" + }, + "nodeType": "YulSwitch", + "src": "2025:218:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2341:70:8", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2355:28:8", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "2368:4:8" + }, + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "2374:8:8" + } + ], + "functionName": { + "name": "exp", + "nodeType": "YulIdentifier", + "src": "2364:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2364:19:8" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "2355:5:8" + } + ] + }, + { + "nodeType": "YulLeave", + "src": "2396:5:8" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "2265:4:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2271:2:8", + "type": "", + "value": "11" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2262:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "2262:12:8" + }, + { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "2279:8:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2289:2:8", + "type": "", + "value": "78" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2276:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "2276:16:8" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2258:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2258:35:8" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "2302:4:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2308:3:8", + "type": "", + "value": "307" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2299:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "2299:13:8" + }, + { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "2317:8:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2327:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2314:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "2314:16:8" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2295:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2295:36:8" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "2255:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "2255:77:8" + }, + "nodeType": "YulIf", + "src": "2252:2:8" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2420:57:8", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "2462:4:8" + }, + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "2468:8:8" + } + ], + "functionName": { + "name": "checked_exp_helper", + "nodeType": "YulIdentifier", + "src": "2443:18:8" + }, + "nodeType": "YulFunctionCall", + "src": "2443:34:8" + }, + "variables": [ + { + "name": "power_1", + "nodeType": "YulTypedName", + "src": "2424:7:8", + "type": "" + }, + { + "name": "base_1", + "nodeType": "YulTypedName", + "src": "2433:6:8", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2522:22:8", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "2524:16:8" + }, + "nodeType": "YulFunctionCall", + "src": "2524:18:8" + }, + "nodeType": "YulExpressionStatement", + "src": "2524:18:8" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "power_1", + "nodeType": "YulIdentifier", + "src": "2492:7:8" + }, + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2509:1:8", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "2505:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2505:6:8" + }, + { + "name": "base_1", + "nodeType": "YulIdentifier", + "src": "2513:6:8" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "2501:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2501:19:8" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2489:2:8" + }, + "nodeType": "YulFunctionCall", + "src": "2489:32:8" + }, + "nodeType": "YulIf", + "src": "2486:2:8" + }, + { + "nodeType": "YulAssignment", + "src": "2553:29:8", + "value": { + "arguments": [ + { + "name": "power_1", + "nodeType": "YulIdentifier", + "src": "2566:7:8" + }, + { + "name": "base_1", + "nodeType": "YulIdentifier", + "src": "2575:6:8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "2562:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2562:20:8" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "2553:5:8" + } + ] + } + ] + }, + "name": "checked_exp_unsigned", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base", + "nodeType": "YulTypedName", + "src": "1812:4:8", + "type": "" + }, + { + "name": "exponent", + "nodeType": "YulTypedName", + "src": "1818:8:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "power", + "nodeType": "YulTypedName", + "src": "1831:5:8", + "type": "" + } + ], + "src": "1782:806:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2640:148:8", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2650:23:8", "value": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "977:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "988:3:8", - "type": "", - "value": "160" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "973:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "973:19:8" + "name": "x", + "nodeType": "YulIdentifier", + "src": "2665:1:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2668:4:8", + "type": "", + "value": "0xff" } ], "functionName": { - "name": "abi_decode_uint8_fromMemory", + "name": "and", "nodeType": "YulIdentifier", - "src": "945:27:8" + "src": "2661:3:8" }, "nodeType": "YulFunctionCall", - "src": "945:48:8" + "src": "2661:12:8" }, - "variableNames": [ + "variables": [ { - "name": "value5", - "nodeType": "YulIdentifier", - "src": "935:6:8" + "name": "x_1", + "nodeType": "YulTypedName", + "src": "2654:3:8", + "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "1002:39:8", + "src": "2682:23:8", "value": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1025:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1036:3:8", - "type": "", - "value": "192" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1021:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "1021:19:8" + "name": "y", + "nodeType": "YulIdentifier", + "src": "2697:1:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2700:4:8", + "type": "", + "value": "0xff" } ], "functionName": { - "name": "mload", + "name": "and", "nodeType": "YulIdentifier", - "src": "1015:5:8" + "src": "2693:3:8" }, "nodeType": "YulFunctionCall", - "src": "1015:26:8" + "src": "2693:12:8" }, "variables": [ { - "name": "value", + "name": "y_1", "nodeType": "YulTypedName", - "src": "1006:5:8", + "src": "2686:3:8", "type": "" } ] @@ -1690,258 +3039,227 @@ { "body": { "nodeType": "YulBlock", - "src": "1104:26:8", + "src": "2730:22:8", "statements": [ { "expression": { - "arguments": [ - { - "name": "value6", - "nodeType": "YulIdentifier", - "src": "1113:6:8" - }, - { - "name": "value6", - "nodeType": "YulIdentifier", - "src": "1121:6:8" - } - ], + "arguments": [], "functionName": { - "name": "revert", + "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "1106:6:8" + "src": "2732:16:8" }, "nodeType": "YulFunctionCall", - "src": "1106:22:8" + "src": "2732:18:8" }, "nodeType": "YulExpressionStatement", - "src": "1106:22:8" + "src": "2732:18:8" } ] }, "condition": { "arguments": [ { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1063:5:8" - }, - { - "arguments": [ - { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1074:5:8" - }, - { - "arguments": [ - { - "arguments": [ - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1089:3:8", - "type": "", - "value": "160" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1094:1:8", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "shl", - "nodeType": "YulIdentifier", - "src": "1085:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "1085:11:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1098:1:8", - "type": "", - "value": "1" - } - ], - "functionName": { - "name": "sub", - "nodeType": "YulIdentifier", - "src": "1081:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "1081:19:8" - } - ], - "functionName": { - "name": "and", - "nodeType": "YulIdentifier", - "src": "1070:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "1070:31:8" - } - ], - "functionName": { - "name": "eq", - "nodeType": "YulIdentifier", - "src": "1060:2:8" - }, - "nodeType": "YulFunctionCall", - "src": "1060:42:8" + "name": "x_1", + "nodeType": "YulIdentifier", + "src": "2720:3:8" + }, + { + "name": "y_1", + "nodeType": "YulIdentifier", + "src": "2725:3:8" } ], "functionName": { - "name": "iszero", + "name": "lt", "nodeType": "YulIdentifier", - "src": "1053:6:8" + "src": "2717:2:8" }, "nodeType": "YulFunctionCall", - "src": "1053:50:8" + "src": "2717:12:8" }, "nodeType": "YulIf", - "src": "1050:2:8" - }, - { - "nodeType": "YulAssignment", - "src": "1139:15:8", - "value": { - "name": "value", - "nodeType": "YulIdentifier", - "src": "1149:5:8" - }, - "variableNames": [ - { - "name": "value6", - "nodeType": "YulIdentifier", - "src": "1139:6:8" - } - ] + "src": "2714:2:8" }, { "nodeType": "YulAssignment", - "src": "1163:36:8", + "src": "2761:21:8", "value": { "arguments": [ { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "1183:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "1194:3:8", - "type": "", - "value": "224" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "1179:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "1179:19:8" + "name": "x_1", + "nodeType": "YulIdentifier", + "src": "2773:3:8" + }, + { + "name": "y_1", + "nodeType": "YulIdentifier", + "src": "2778:3:8" } ], "functionName": { - "name": "mload", + "name": "sub", "nodeType": "YulIdentifier", - "src": "1173:5:8" + "src": "2769:3:8" }, "nodeType": "YulFunctionCall", - "src": "1173:26:8" + "src": "2769:13:8" }, "variableNames": [ { - "name": "value7", + "name": "diff", "nodeType": "YulIdentifier", - "src": "1163:6:8" + "src": "2761:4:8" } ] } ] }, - "name": "abi_decode_tuple_t_bytes32t_uint8t_uint8t_uint32t_uint32t_uint8t_address_payablet_uint256_fromMemory", + "name": "checked_sub_t_uint8", "nodeType": "YulFunctionDefinition", "parameters": [ { - "name": "headStart", + "name": "x", "nodeType": "YulTypedName", - "src": "461:9:8", + "src": "2622:1:8", "type": "" }, { - "name": "dataEnd", + "name": "y", "nodeType": "YulTypedName", - "src": "472:7:8", + "src": "2625:1:8", "type": "" } ], "returnVariables": [ { - "name": "value0", - "nodeType": "YulTypedName", - "src": "484:6:8", - "type": "" - }, - { - "name": "value1", - "nodeType": "YulTypedName", - "src": "492:6:8", - "type": "" - }, - { - "name": "value2", - "nodeType": "YulTypedName", - "src": "500:6:8", - "type": "" - }, - { - "name": "value3", - "nodeType": "YulTypedName", - "src": "508:6:8", - "type": "" - }, - { - "name": "value4", - "nodeType": "YulTypedName", - "src": "516:6:8", - "type": "" - }, - { - "name": "value5", - "nodeType": "YulTypedName", - "src": "524:6:8", - "type": "" - }, - { - "name": "value6", - "nodeType": "YulTypedName", - "src": "532:6:8", - "type": "" - }, - { - "name": "value7", + "name": "diff", "nodeType": "YulTypedName", - "src": "540:6:8", + "src": "2631:4:8", "type": "" } ], - "src": "351:854:8" + "src": "2593:195:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2825:95:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2842:1:8", + "type": "", + "value": "0" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2849:3:8", + "type": "", + "value": "224" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2854:10:8", + "type": "", + "value": "0x4e487b71" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "2845:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "2845:20:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2835:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "2835:31:8" + }, + "nodeType": "YulExpressionStatement", + "src": "2835:31:8" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2882:1:8", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2885:4:8", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2875:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "2875:15:8" + }, + "nodeType": "YulExpressionStatement", + "src": "2875:15:8" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2906:1:8", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2909:4:8", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2899:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "2899:15:8" + }, + "nodeType": "YulExpressionStatement", + "src": "2899:15:8" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "2793:127:8" } ] }, - "contents": "{\n { }\n function abi_decode_uint32_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n }\n function abi_decode_uint8_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bytes32t_uint8t_uint8t_uint32t_uint32t_uint8t_address_payablet_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 256) { revert(value4, value4) }\n value0 := mload(headStart)\n value1 := abi_decode_uint8_fromMemory(add(headStart, 32))\n value2 := abi_decode_uint8_fromMemory(add(headStart, 64))\n value3 := abi_decode_uint32_fromMemory(add(headStart, 96))\n value4 := abi_decode_uint32_fromMemory(add(headStart, 128))\n value5 := abi_decode_uint8_fromMemory(add(headStart, 160))\n let value := mload(add(headStart, 192))\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value6, value6) }\n value6 := value\n value7 := mload(add(headStart, 224))\n }\n}", + "contents": "{\n { }\n function abi_decode_uint32_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n }\n function abi_decode_uint8_fromMemory(offset) -> value\n {\n value := mload(offset)\n if iszero(eq(value, and(value, 0xff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_bytes32t_uint8t_uint8t_uint32t_uint32t_uint8t_address_payablet_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 256) { revert(value4, value4) }\n value0 := mload(headStart)\n value1 := abi_decode_uint8_fromMemory(add(headStart, 32))\n value2 := abi_decode_uint8_fromMemory(add(headStart, 64))\n value3 := abi_decode_uint32_fromMemory(add(headStart, 96))\n value4 := abi_decode_uint32_fromMemory(add(headStart, 128))\n value5 := abi_decode_uint8_fromMemory(add(headStart, 160))\n let value := mload(add(headStart, 192))\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(value6, value6) }\n value6 := value\n value7 := mload(add(headStart, 224))\n }\n function checked_exp_helper(_base, exponent) -> power, base\n {\n let power_1 := 1\n power := power_1\n base := _base\n for { } gt(exponent, power_1) { }\n {\n if gt(base, div(not(0), base)) { panic_error_0x11() }\n if and(exponent, power_1) { power := mul(power, base) }\n base := mul(base, base)\n exponent := shr(power_1, exponent)\n }\n }\n function checked_exp_t_uint256_t_uint8(base, exponent) -> power\n {\n power := checked_exp_unsigned(base, and(exponent, 0xff))\n }\n function checked_exp_unsigned(base, exponent) -> power\n {\n if iszero(exponent)\n {\n power := 1\n leave\n }\n if iszero(base)\n {\n power := 0\n leave\n }\n switch base\n case 1 {\n power := 1\n leave\n }\n case 2 {\n if gt(exponent, 255) { panic_error_0x11() }\n power := shl(exponent, 1)\n leave\n }\n if or(and(lt(base, 11), lt(exponent, 78)), and(lt(base, 307), lt(exponent, 32)))\n {\n power := exp(base, exponent)\n leave\n }\n let power_1, base_1 := checked_exp_helper(base, exponent)\n if gt(power_1, div(not(0), base_1)) { panic_error_0x11() }\n power := mul(power_1, base_1)\n }\n function checked_sub_t_uint8(x, y) -> diff\n {\n let x_1 := and(x, 0xff)\n let y_1 := and(y, 0xff)\n if lt(x_1, y_1) { panic_error_0x11() }\n diff := sub(x_1, y_1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n}", "id": 8, "language": "Yul", "name": "#utility.yul" @@ -1951,7 +3269,7 @@ { "ast": { "nodeType": "YulBlock", - "src": "0:36433:8", + "src": "0:37115:8", "statements": [ { "nodeType": "YulBlock", @@ -2806,7 +4124,7 @@ "nodeType": "YulLiteral", "src": "1061:1:8", "type": "", - "value": "7" + "value": "8" } ], "functionName": { @@ -5890,7 +7208,7 @@ } ] }, - "name": "abi_decode_tuple_t_array$_t_bytes32_$dyn_calldata_ptrt_uint32t_bytes32t_enum$_OperationType_$103t_enum$_TokenType_$2176t_addresst_uint256t_address_payablet_uint256t_bytes_calldata_ptr", + "name": "abi_decode_tuple_t_array$_t_bytes32_$dyn_calldata_ptrt_uint32t_bytes32t_enum$_OperationType_$493t_enum$_TokenType_$2607t_addresst_uint256t_address_payablet_uint256t_bytes_calldata_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -9842,32 +11160,175 @@ { "body": { "nodeType": "YulBlock", - "src": "11083:137:8", + "src": "11093:126:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11116:3:8" + }, + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11121:6:8" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "11129:6:8" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "11103:12:8" + }, + "nodeType": "YulFunctionCall", + "src": "11103:33:8" + }, + "nodeType": "YulExpressionStatement", + "src": "11103:33:8" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "11145:26:8", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11159:3:8" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "11164:6:8" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11155:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "11155:16:8" + }, + "variables": [ + { + "name": "_1", + "nodeType": "YulTypedName", + "src": "11149:2:8", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "11187:2:8" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11191:3:8" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11180:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "11180:15:8" + }, + "nodeType": "YulExpressionStatement", + "src": "11180:15:8" + }, + { + "nodeType": "YulAssignment", + "src": "11204:9:8", + "value": { + "name": "_1", + "nodeType": "YulIdentifier", + "src": "11211:2:8" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11204:3:8" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11061:3:8", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "11066:6:8", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11074:6:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11085:3:8", + "type": "" + } + ], + "src": "10946:273:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11361:137:8", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "11093:27:8", + "src": "11371:27:8", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "11113:6:8" + "src": "11391:6:8" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "11107:5:8" + "src": "11385:5:8" }, "nodeType": "YulFunctionCall", - "src": "11107:13:8" + "src": "11385:13:8" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", - "src": "11097:6:8", + "src": "11375:6:8", "type": "" } ] @@ -9880,12 +11341,12 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "11155:6:8" + "src": "11433:6:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11163:4:8", + "src": "11441:4:8", "type": "", "value": "0x20" } @@ -9893,62 +11354,62 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11151:3:8" + "src": "11429:3:8" }, "nodeType": "YulFunctionCall", - "src": "11151:17:8" + "src": "11429:17:8" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "11170:3:8" + "src": "11448:3:8" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "11175:6:8" + "src": "11453:6:8" } ], "functionName": { "name": "copy_memory_to_memory", "nodeType": "YulIdentifier", - "src": "11129:21:8" + "src": "11407:21:8" }, "nodeType": "YulFunctionCall", - "src": "11129:53:8" + "src": "11407:53:8" }, "nodeType": "YulExpressionStatement", - "src": "11129:53:8" + "src": "11407:53:8" }, { "nodeType": "YulAssignment", - "src": "11191:23:8", + "src": "11469:23:8", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "11202:3:8" + "src": "11480:3:8" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "11207:6:8" + "src": "11485:6:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11198:3:8" + "src": "11476:3:8" }, "nodeType": "YulFunctionCall", - "src": "11198:16:8" + "src": "11476:16:8" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "11191:3:8" + "src": "11469:3:8" } ] } @@ -9960,13 +11421,13 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "11059:3:8", + "src": "11337:3:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "11064:6:8", + "src": "11342:6:8", "type": "" } ], @@ -9974,30 +11435,30 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "11075:3:8", + "src": "11353:3:8", "type": "" } ], - "src": "10946:274:8" + "src": "11224:274:8" }, { "body": { "nodeType": "YulBlock", - "src": "11416:14:8", + "src": "11694:14:8", "statements": [ { "nodeType": "YulAssignment", - "src": "11418:10:8", + "src": "11696:10:8", "value": { "name": "pos", "nodeType": "YulIdentifier", - "src": "11425:3:8" + "src": "11703:3:8" }, "variableNames": [ { "name": "end", "nodeType": "YulIdentifier", - "src": "11418:3:8" + "src": "11696:3:8" } ] } @@ -10009,7 +11470,7 @@ { "name": "pos", "nodeType": "YulTypedName", - "src": "11400:3:8", + "src": "11678:3:8", "type": "" } ], @@ -10017,31 +11478,31 @@ { "name": "end", "nodeType": "YulTypedName", - "src": "11408:3:8", + "src": "11686:3:8", "type": "" } ], - "src": "11225:205:8" + "src": "11503:205:8" }, { "body": { "nodeType": "YulBlock", - "src": "11536:102:8", + "src": "11814:102:8", "statements": [ { "nodeType": "YulAssignment", - "src": "11546:26:8", + "src": "11824:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "11558:9:8" + "src": "11836:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11569:2:8", + "src": "11847:2:8", "type": "", "value": "32" } @@ -10049,16 +11510,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11554:3:8" + "src": "11832:3:8" }, "nodeType": "YulFunctionCall", - "src": "11554:18:8" + "src": "11832:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "11546:4:8" + "src": "11824:4:8" } ] }, @@ -10068,14 +11529,14 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "11588:9:8" + "src": "11866:9:8" }, { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "11603:6:8" + "src": "11881:6:8" }, { "arguments": [ @@ -10084,14 +11545,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "11619:3:8", + "src": "11897:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11624:1:8", + "src": "11902:1:8", "type": "", "value": "1" } @@ -10099,15 +11560,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "11615:3:8" + "src": "11893:3:8" }, "nodeType": "YulFunctionCall", - "src": "11615:11:8" + "src": "11893:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11628:1:8", + "src": "11906:1:8", "type": "", "value": "1" } @@ -10115,31 +11576,31 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "11611:3:8" + "src": "11889:3:8" }, "nodeType": "YulFunctionCall", - "src": "11611:19:8" + "src": "11889:19:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "11599:3:8" + "src": "11877:3:8" }, "nodeType": "YulFunctionCall", - "src": "11599:32:8" + "src": "11877:32:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "11581:6:8" + "src": "11859:6:8" }, "nodeType": "YulFunctionCall", - "src": "11581:51:8" + "src": "11859:51:8" }, "nodeType": "YulExpressionStatement", - "src": "11581:51:8" + "src": "11859:51:8" } ] }, @@ -10149,13 +11610,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "11505:9:8", + "src": "11783:9:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "11516:6:8", + "src": "11794:6:8", "type": "" } ], @@ -10163,31 +11624,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "11527:4:8", + "src": "11805:4:8", "type": "" } ], - "src": "11435:203:8" + "src": "11713:203:8" }, { "body": { "nodeType": "YulBlock", - "src": "11752:102:8", + "src": "12030:102:8", "statements": [ { "nodeType": "YulAssignment", - "src": "11762:26:8", + "src": "12040:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "11774:9:8" + "src": "12052:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11785:2:8", + "src": "12063:2:8", "type": "", "value": "32" } @@ -10195,16 +11656,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "11770:3:8" + "src": "12048:3:8" }, "nodeType": "YulFunctionCall", - "src": "11770:18:8" + "src": "12048:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "11762:4:8" + "src": "12040:4:8" } ] }, @@ -10214,14 +11675,14 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "11804:9:8" + "src": "12082:9:8" }, { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "11819:6:8" + "src": "12097:6:8" }, { "arguments": [ @@ -10230,14 +11691,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "11835:3:8", + "src": "12113:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11840:1:8", + "src": "12118:1:8", "type": "", "value": "1" } @@ -10245,15 +11706,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "11831:3:8" + "src": "12109:3:8" }, "nodeType": "YulFunctionCall", - "src": "11831:11:8" + "src": "12109:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "11844:1:8", + "src": "12122:1:8", "type": "", "value": "1" } @@ -10261,31 +11722,31 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "11827:3:8" + "src": "12105:3:8" }, "nodeType": "YulFunctionCall", - "src": "11827:19:8" + "src": "12105:19:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "11815:3:8" + "src": "12093:3:8" }, "nodeType": "YulFunctionCall", - "src": "11815:32:8" + "src": "12093:32:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "11797:6:8" + "src": "12075:6:8" }, "nodeType": "YulFunctionCall", - "src": "11797:51:8" + "src": "12075:51:8" }, "nodeType": "YulExpressionStatement", - "src": "11797:51:8" + "src": "12075:51:8" } ] }, @@ -10295,13 +11756,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "11721:9:8", + "src": "11999:9:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "11732:6:8", + "src": "12010:6:8", "type": "" } ], @@ -10309,20 +11770,20 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "11743:4:8", + "src": "12021:4:8", "type": "" } ], - "src": "11643:211:8" + "src": "11921:211:8" }, { "body": { "nodeType": "YulBlock", - "src": "12062:285:8", + "src": "12340:285:8", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "12072:29:8", + "src": "12350:29:8", "value": { "arguments": [ { @@ -10330,14 +11791,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "12090:3:8", + "src": "12368:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12095:1:8", + "src": "12373:1:8", "type": "", "value": "1" } @@ -10345,15 +11806,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "12086:3:8" + "src": "12364:3:8" }, "nodeType": "YulFunctionCall", - "src": "12086:11:8" + "src": "12364:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12099:1:8", + "src": "12377:1:8", "type": "", "value": "1" } @@ -10361,16 +11822,16 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "12082:3:8" + "src": "12360:3:8" }, "nodeType": "YulFunctionCall", - "src": "12082:19:8" + "src": "12360:19:8" }, "variables": [ { "name": "_1", "nodeType": "YulTypedName", - "src": "12076:2:8", + "src": "12354:2:8", "type": "" } ] @@ -10381,40 +11842,40 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12117:9:8" + "src": "12395:9:8" }, { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "12132:6:8" + "src": "12410:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "12140:2:8" + "src": "12418:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "12128:3:8" + "src": "12406:3:8" }, "nodeType": "YulFunctionCall", - "src": "12128:15:8" + "src": "12406:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "12110:6:8" + "src": "12388:6:8" }, "nodeType": "YulFunctionCall", - "src": "12110:34:8" + "src": "12388:34:8" }, "nodeType": "YulExpressionStatement", - "src": "12110:34:8" + "src": "12388:34:8" }, { "expression": { @@ -10424,12 +11885,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12164:9:8" + "src": "12442:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12175:2:8", + "src": "12453:2:8", "type": "", "value": "32" } @@ -10437,43 +11898,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12160:3:8" + "src": "12438:3:8" }, "nodeType": "YulFunctionCall", - "src": "12160:18:8" + "src": "12438:18:8" }, { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "12184:6:8" + "src": "12462:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "12192:2:8" + "src": "12470:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "12180:3:8" + "src": "12458:3:8" }, "nodeType": "YulFunctionCall", - "src": "12180:15:8" + "src": "12458:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "12153:6:8" + "src": "12431:6:8" }, "nodeType": "YulFunctionCall", - "src": "12153:43:8" + "src": "12431:43:8" }, "nodeType": "YulExpressionStatement", - "src": "12153:43:8" + "src": "12431:43:8" }, { "expression": { @@ -10483,12 +11944,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12216:9:8" + "src": "12494:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12227:2:8", + "src": "12505:2:8", "type": "", "value": "64" } @@ -10496,27 +11957,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12212:3:8" + "src": "12490:3:8" }, "nodeType": "YulFunctionCall", - "src": "12212:18:8" + "src": "12490:18:8" }, { "name": "value2", "nodeType": "YulIdentifier", - "src": "12232:6:8" + "src": "12510:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "12205:6:8" + "src": "12483:6:8" }, "nodeType": "YulFunctionCall", - "src": "12205:34:8" + "src": "12483:34:8" }, "nodeType": "YulExpressionStatement", - "src": "12205:34:8" + "src": "12483:34:8" }, { "expression": { @@ -10526,12 +11987,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12259:9:8" + "src": "12537:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12270:2:8", + "src": "12548:2:8", "type": "", "value": "96" } @@ -10539,15 +12000,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12255:3:8" + "src": "12533:3:8" }, "nodeType": "YulFunctionCall", - "src": "12255:18:8" + "src": "12533:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12275:3:8", + "src": "12553:3:8", "type": "", "value": "128" } @@ -10555,35 +12016,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "12248:6:8" + "src": "12526:6:8" }, "nodeType": "YulFunctionCall", - "src": "12248:31:8" + "src": "12526:31:8" }, "nodeType": "YulExpressionStatement", - "src": "12248:31:8" + "src": "12526:31:8" }, { "nodeType": "YulAssignment", - "src": "12288:53:8", + "src": "12566:53:8", "value": { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", - "src": "12313:6:8" + "src": "12591:6:8" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12325:9:8" + "src": "12603:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12336:3:8", + "src": "12614:3:8", "type": "", "value": "128" } @@ -10591,25 +12052,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12321:3:8" + "src": "12599:3:8" }, "nodeType": "YulFunctionCall", - "src": "12321:19:8" + "src": "12599:19:8" } ], "functionName": { "name": "abi_encode_bytes", "nodeType": "YulIdentifier", - "src": "12296:16:8" + "src": "12574:16:8" }, "nodeType": "YulFunctionCall", - "src": "12296:45:8" + "src": "12574:45:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "12288:4:8" + "src": "12566:4:8" } ] } @@ -10621,31 +12082,31 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "12007:9:8", + "src": "12285:9:8", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "12018:6:8", + "src": "12296:6:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "12026:6:8", + "src": "12304:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "12034:6:8", + "src": "12312:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "12042:6:8", + "src": "12320:6:8", "type": "" } ], @@ -10653,20 +12114,20 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "12053:4:8", + "src": "12331:4:8", "type": "" } ], - "src": "11859:488:8" + "src": "12137:488:8" }, { "body": { "nodeType": "YulBlock", - "src": "12593:346:8", + "src": "12871:346:8", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "12603:29:8", + "src": "12881:29:8", "value": { "arguments": [ { @@ -10674,14 +12135,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "12621:3:8", + "src": "12899:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12626:1:8", + "src": "12904:1:8", "type": "", "value": "1" } @@ -10689,15 +12150,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "12617:3:8" + "src": "12895:3:8" }, "nodeType": "YulFunctionCall", - "src": "12617:11:8" + "src": "12895:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12630:1:8", + "src": "12908:1:8", "type": "", "value": "1" } @@ -10705,16 +12166,16 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "12613:3:8" + "src": "12891:3:8" }, "nodeType": "YulFunctionCall", - "src": "12613:19:8" + "src": "12891:19:8" }, "variables": [ { "name": "_1", "nodeType": "YulTypedName", - "src": "12607:2:8", + "src": "12885:2:8", "type": "" } ] @@ -10725,40 +12186,40 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12648:9:8" + "src": "12926:9:8" }, { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "12663:6:8" + "src": "12941:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "12671:2:8" + "src": "12949:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "12659:3:8" + "src": "12937:3:8" }, "nodeType": "YulFunctionCall", - "src": "12659:15:8" + "src": "12937:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "12641:6:8" + "src": "12919:6:8" }, "nodeType": "YulFunctionCall", - "src": "12641:34:8" + "src": "12919:34:8" }, "nodeType": "YulExpressionStatement", - "src": "12641:34:8" + "src": "12919:34:8" }, { "expression": { @@ -10768,12 +12229,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12695:9:8" + "src": "12973:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12706:2:8", + "src": "12984:2:8", "type": "", "value": "32" } @@ -10781,43 +12242,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12691:3:8" + "src": "12969:3:8" }, "nodeType": "YulFunctionCall", - "src": "12691:18:8" + "src": "12969:18:8" }, { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "12715:6:8" + "src": "12993:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "12723:2:8" + "src": "13001:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "12711:3:8" + "src": "12989:3:8" }, "nodeType": "YulFunctionCall", - "src": "12711:15:8" + "src": "12989:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "12684:6:8" + "src": "12962:6:8" }, "nodeType": "YulFunctionCall", - "src": "12684:43:8" + "src": "12962:43:8" }, "nodeType": "YulExpressionStatement", - "src": "12684:43:8" + "src": "12962:43:8" }, { "expression": { @@ -10827,12 +12288,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12747:9:8" + "src": "13025:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12758:2:8", + "src": "13036:2:8", "type": "", "value": "64" } @@ -10840,27 +12301,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12743:3:8" + "src": "13021:3:8" }, "nodeType": "YulFunctionCall", - "src": "12743:18:8" + "src": "13021:18:8" }, { "name": "value2", "nodeType": "YulIdentifier", - "src": "12763:6:8" + "src": "13041:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "12736:6:8" + "src": "13014:6:8" }, "nodeType": "YulFunctionCall", - "src": "12736:34:8" + "src": "13014:34:8" }, "nodeType": "YulExpressionStatement", - "src": "12736:34:8" + "src": "13014:34:8" }, { "expression": { @@ -10870,12 +12331,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12790:9:8" + "src": "13068:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12801:2:8", + "src": "13079:2:8", "type": "", "value": "96" } @@ -10883,27 +12344,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12786:3:8" + "src": "13064:3:8" }, "nodeType": "YulFunctionCall", - "src": "12786:18:8" + "src": "13064:18:8" }, { "name": "value3", "nodeType": "YulIdentifier", - "src": "12806:6:8" + "src": "13084:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "12779:6:8" + "src": "13057:6:8" }, "nodeType": "YulFunctionCall", - "src": "12779:34:8" + "src": "13057:34:8" }, "nodeType": "YulExpressionStatement", - "src": "12779:34:8" + "src": "13057:34:8" }, { "expression": { @@ -10913,12 +12374,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12833:9:8" + "src": "13111:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12844:3:8", + "src": "13122:3:8", "type": "", "value": "128" } @@ -10926,15 +12387,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12829:3:8" + "src": "13107:3:8" }, "nodeType": "YulFunctionCall", - "src": "12829:19:8" + "src": "13107:19:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12850:3:8", + "src": "13128:3:8", "type": "", "value": "160" } @@ -10942,40 +12403,40 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "12822:6:8" + "src": "13100:6:8" }, "nodeType": "YulFunctionCall", - "src": "12822:32:8" + "src": "13100:32:8" }, "nodeType": "YulExpressionStatement", - "src": "12822:32:8" + "src": "13100:32:8" }, { "nodeType": "YulAssignment", - "src": "12863:70:8", + "src": "13141:70:8", "value": { "arguments": [ { "name": "value4", "nodeType": "YulIdentifier", - "src": "12897:6:8" + "src": "13175:6:8" }, { "name": "value5", "nodeType": "YulIdentifier", - "src": "12905:6:8" + "src": "13183:6:8" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "12917:9:8" + "src": "13195:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "12928:3:8", + "src": "13206:3:8", "type": "", "value": "160" } @@ -10983,25 +12444,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "12913:3:8" + "src": "13191:3:8" }, "nodeType": "YulFunctionCall", - "src": "12913:19:8" + "src": "13191:19:8" } ], "functionName": { "name": "abi_encode_bytes_calldata", "nodeType": "YulIdentifier", - "src": "12871:25:8" + "src": "13149:25:8" }, "nodeType": "YulFunctionCall", - "src": "12871:62:8" + "src": "13149:62:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "12863:4:8" + "src": "13141:4:8" } ] } @@ -11013,43 +12474,43 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "12522:9:8", + "src": "12800:9:8", "type": "" }, { "name": "value5", "nodeType": "YulTypedName", - "src": "12533:6:8", + "src": "12811:6:8", "type": "" }, { "name": "value4", "nodeType": "YulTypedName", - "src": "12541:6:8", + "src": "12819:6:8", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "12549:6:8", + "src": "12827:6:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "12557:6:8", + "src": "12835:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "12565:6:8", + "src": "12843:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "12573:6:8", + "src": "12851:6:8", "type": "" } ], @@ -11057,20 +12518,20 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "12584:4:8", + "src": "12862:4:8", "type": "" } ], - "src": "12352:587:8" + "src": "12630:587:8" }, { "body": { "nodeType": "YulBlock", - "src": "13175:329:8", + "src": "13453:329:8", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "13185:29:8", + "src": "13463:29:8", "value": { "arguments": [ { @@ -11078,14 +12539,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "13203:3:8", + "src": "13481:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13208:1:8", + "src": "13486:1:8", "type": "", "value": "1" } @@ -11093,15 +12554,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "13199:3:8" + "src": "13477:3:8" }, "nodeType": "YulFunctionCall", - "src": "13199:11:8" + "src": "13477:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13212:1:8", + "src": "13490:1:8", "type": "", "value": "1" } @@ -11109,16 +12570,16 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "13195:3:8" + "src": "13473:3:8" }, "nodeType": "YulFunctionCall", - "src": "13195:19:8" + "src": "13473:19:8" }, "variables": [ { "name": "_1", "nodeType": "YulTypedName", - "src": "13189:2:8", + "src": "13467:2:8", "type": "" } ] @@ -11129,40 +12590,40 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13230:9:8" + "src": "13508:9:8" }, { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "13245:6:8" + "src": "13523:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "13253:2:8" + "src": "13531:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "13241:3:8" + "src": "13519:3:8" }, "nodeType": "YulFunctionCall", - "src": "13241:15:8" + "src": "13519:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "13223:6:8" + "src": "13501:6:8" }, "nodeType": "YulFunctionCall", - "src": "13223:34:8" + "src": "13501:34:8" }, "nodeType": "YulExpressionStatement", - "src": "13223:34:8" + "src": "13501:34:8" }, { "expression": { @@ -11172,12 +12633,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13277:9:8" + "src": "13555:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13288:2:8", + "src": "13566:2:8", "type": "", "value": "32" } @@ -11185,43 +12646,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13273:3:8" + "src": "13551:3:8" }, "nodeType": "YulFunctionCall", - "src": "13273:18:8" + "src": "13551:18:8" }, { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "13297:6:8" + "src": "13575:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "13305:2:8" + "src": "13583:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "13293:3:8" + "src": "13571:3:8" }, "nodeType": "YulFunctionCall", - "src": "13293:15:8" + "src": "13571:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "13266:6:8" + "src": "13544:6:8" }, "nodeType": "YulFunctionCall", - "src": "13266:43:8" + "src": "13544:43:8" }, "nodeType": "YulExpressionStatement", - "src": "13266:43:8" + "src": "13544:43:8" }, { "expression": { @@ -11231,12 +12692,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13329:9:8" + "src": "13607:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13340:2:8", + "src": "13618:2:8", "type": "", "value": "64" } @@ -11244,27 +12705,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13325:3:8" + "src": "13603:3:8" }, "nodeType": "YulFunctionCall", - "src": "13325:18:8" + "src": "13603:18:8" }, { "name": "value2", "nodeType": "YulIdentifier", - "src": "13345:6:8" + "src": "13623:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "13318:6:8" + "src": "13596:6:8" }, "nodeType": "YulFunctionCall", - "src": "13318:34:8" + "src": "13596:34:8" }, "nodeType": "YulExpressionStatement", - "src": "13318:34:8" + "src": "13596:34:8" }, { "expression": { @@ -11274,12 +12735,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13372:9:8" + "src": "13650:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13383:2:8", + "src": "13661:2:8", "type": "", "value": "96" } @@ -11287,27 +12748,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13368:3:8" + "src": "13646:3:8" }, "nodeType": "YulFunctionCall", - "src": "13368:18:8" + "src": "13646:18:8" }, { "name": "value3", "nodeType": "YulIdentifier", - "src": "13388:6:8" + "src": "13666:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "13361:6:8" + "src": "13639:6:8" }, "nodeType": "YulFunctionCall", - "src": "13361:34:8" + "src": "13639:34:8" }, "nodeType": "YulExpressionStatement", - "src": "13361:34:8" + "src": "13639:34:8" }, { "expression": { @@ -11317,12 +12778,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13415:9:8" + "src": "13693:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13426:3:8", + "src": "13704:3:8", "type": "", "value": "128" } @@ -11330,15 +12791,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13411:3:8" + "src": "13689:3:8" }, "nodeType": "YulFunctionCall", - "src": "13411:19:8" + "src": "13689:19:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13432:3:8", + "src": "13710:3:8", "type": "", "value": "160" } @@ -11346,35 +12807,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "13404:6:8" + "src": "13682:6:8" }, "nodeType": "YulFunctionCall", - "src": "13404:32:8" + "src": "13682:32:8" }, "nodeType": "YulExpressionStatement", - "src": "13404:32:8" + "src": "13682:32:8" }, { "nodeType": "YulAssignment", - "src": "13445:53:8", + "src": "13723:53:8", "value": { "arguments": [ { "name": "value4", "nodeType": "YulIdentifier", - "src": "13470:6:8" + "src": "13748:6:8" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13482:9:8" + "src": "13760:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13493:3:8", + "src": "13771:3:8", "type": "", "value": "160" } @@ -11382,25 +12843,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13478:3:8" + "src": "13756:3:8" }, "nodeType": "YulFunctionCall", - "src": "13478:19:8" + "src": "13756:19:8" } ], "functionName": { "name": "abi_encode_bytes", "nodeType": "YulIdentifier", - "src": "13453:16:8" + "src": "13731:16:8" }, "nodeType": "YulFunctionCall", - "src": "13453:45:8" + "src": "13731:45:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "13445:4:8" + "src": "13723:4:8" } ] } @@ -11412,37 +12873,37 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "13112:9:8", + "src": "13390:9:8", "type": "" }, { "name": "value4", "nodeType": "YulTypedName", - "src": "13123:6:8", + "src": "13401:6:8", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "13131:6:8", + "src": "13409:6:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "13139:6:8", + "src": "13417:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "13147:6:8", + "src": "13425:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "13155:6:8", + "src": "13433:6:8", "type": "" } ], @@ -11450,31 +12911,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "13166:4:8", + "src": "13444:4:8", "type": "" } ], - "src": "12944:560:8" + "src": "13222:560:8" }, { "body": { "nodeType": "YulBlock", - "src": "13638:145:8", + "src": "13916:145:8", "statements": [ { "nodeType": "YulAssignment", - "src": "13648:26:8", + "src": "13926:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13660:9:8" + "src": "13938:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13671:2:8", + "src": "13949:2:8", "type": "", "value": "64" } @@ -11482,16 +12943,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13656:3:8" + "src": "13934:3:8" }, "nodeType": "YulFunctionCall", - "src": "13656:18:8" + "src": "13934:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "13648:4:8" + "src": "13926:4:8" } ] }, @@ -11501,14 +12962,14 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13690:9:8" + "src": "13968:9:8" }, { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "13705:6:8" + "src": "13983:6:8" }, { "arguments": [ @@ -11517,14 +12978,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "13721:3:8", + "src": "13999:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13726:1:8", + "src": "14004:1:8", "type": "", "value": "1" } @@ -11532,15 +12993,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "13717:3:8" + "src": "13995:3:8" }, "nodeType": "YulFunctionCall", - "src": "13717:11:8" + "src": "13995:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13730:1:8", + "src": "14008:1:8", "type": "", "value": "1" } @@ -11548,31 +13009,31 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "13713:3:8" + "src": "13991:3:8" }, "nodeType": "YulFunctionCall", - "src": "13713:19:8" + "src": "13991:19:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "13701:3:8" + "src": "13979:3:8" }, "nodeType": "YulFunctionCall", - "src": "13701:32:8" + "src": "13979:32:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "13683:6:8" + "src": "13961:6:8" }, "nodeType": "YulFunctionCall", - "src": "13683:51:8" + "src": "13961:51:8" }, "nodeType": "YulExpressionStatement", - "src": "13683:51:8" + "src": "13961:51:8" }, { "expression": { @@ -11582,12 +13043,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "13754:9:8" + "src": "14032:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "13765:2:8", + "src": "14043:2:8", "type": "", "value": "32" } @@ -11595,27 +13056,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "13750:3:8" + "src": "14028:3:8" }, "nodeType": "YulFunctionCall", - "src": "13750:18:8" + "src": "14028:18:8" }, { "name": "value1", "nodeType": "YulIdentifier", - "src": "13770:6:8" + "src": "14048:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "13743:6:8" + "src": "14021:6:8" }, "nodeType": "YulFunctionCall", - "src": "13743:34:8" + "src": "14021:34:8" }, "nodeType": "YulExpressionStatement", - "src": "13743:34:8" + "src": "14021:34:8" } ] }, @@ -11625,19 +13086,19 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "13599:9:8", + "src": "13877:9:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "13610:6:8", + "src": "13888:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "13618:6:8", + "src": "13896:6:8", "type": "" } ], @@ -11645,16 +13106,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "13629:4:8", + "src": "13907:4:8", "type": "" } ], - "src": "13509:274:8" + "src": "13787:274:8" }, { "body": { "nodeType": "YulBlock", - "src": "14243:613:8", + "src": "14521:613:8", "statements": [ { "expression": { @@ -11662,12 +13123,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "14260:9:8" + "src": "14538:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "14271:3:8", + "src": "14549:3:8", "type": "", "value": "160" } @@ -11675,35 +13136,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "14253:6:8" + "src": "14531:6:8" }, "nodeType": "YulFunctionCall", - "src": "14253:22:8" + "src": "14531:22:8" }, "nodeType": "YulExpressionStatement", - "src": "14253:22:8" + "src": "14531:22:8" }, { "nodeType": "YulVariableDeclaration", - "src": "14284:71:8", + "src": "14562:71:8", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "14327:6:8" + "src": "14605:6:8" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "14339:9:8" + "src": "14617:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "14350:3:8", + "src": "14628:3:8", "type": "", "value": "160" } @@ -11711,25 +13172,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "14335:3:8" + "src": "14613:3:8" }, "nodeType": "YulFunctionCall", - "src": "14335:19:8" + "src": "14613:19:8" } ], "functionName": { "name": "abi_encode_array_bytes32_dyn", "nodeType": "YulIdentifier", - "src": "14298:28:8" + "src": "14576:28:8" }, "nodeType": "YulFunctionCall", - "src": "14298:57:8" + "src": "14576:57:8" }, "variables": [ { "name": "tail_1", "nodeType": "YulTypedName", - "src": "14288:6:8", + "src": "14566:6:8", "type": "" } ] @@ -11742,12 +13203,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "14375:9:8" + "src": "14653:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "14386:2:8", + "src": "14664:2:8", "type": "", "value": "32" } @@ -11755,73 +13216,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "14371:3:8" + "src": "14649:3:8" }, "nodeType": "YulFunctionCall", - "src": "14371:18:8" + "src": "14649:18:8" }, { "arguments": [ { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "14395:6:8" + "src": "14673:6:8" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "14403:9:8" + "src": "14681:9:8" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "14391:3:8" + "src": "14669:3:8" }, "nodeType": "YulFunctionCall", - "src": "14391:22:8" + "src": "14669:22:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "14364:6:8" + "src": "14642:6:8" }, "nodeType": "YulFunctionCall", - "src": "14364:50:8" + "src": "14642:50:8" }, "nodeType": "YulExpressionStatement", - "src": "14364:50:8" + "src": "14642:50:8" }, { "nodeType": "YulVariableDeclaration", - "src": "14423:58:8", + "src": "14701:58:8", "value": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "14466:6:8" + "src": "14744:6:8" }, { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "14474:6:8" + "src": "14752:6:8" } ], "functionName": { "name": "abi_encode_array_bytes32_dyn", "nodeType": "YulIdentifier", - "src": "14437:28:8" + "src": "14715:28:8" }, "nodeType": "YulFunctionCall", - "src": "14437:44:8" + "src": "14715:44:8" }, "variables": [ { "name": "tail_2", "nodeType": "YulTypedName", - "src": "14427:6:8", + "src": "14705:6:8", "type": "" } ] @@ -11834,12 +13295,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "14501:9:8" + "src": "14779:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "14512:2:8", + "src": "14790:2:8", "type": "", "value": "64" } @@ -11847,73 +13308,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "14497:3:8" + "src": "14775:3:8" }, "nodeType": "YulFunctionCall", - "src": "14497:18:8" + "src": "14775:18:8" }, { "arguments": [ { "name": "tail_2", "nodeType": "YulIdentifier", - "src": "14521:6:8" + "src": "14799:6:8" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "14529:9:8" + "src": "14807:9:8" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "14517:3:8" + "src": "14795:3:8" }, "nodeType": "YulFunctionCall", - "src": "14517:22:8" + "src": "14795:22:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "14490:6:8" + "src": "14768:6:8" }, "nodeType": "YulFunctionCall", - "src": "14490:50:8" + "src": "14768:50:8" }, "nodeType": "YulExpressionStatement", - "src": "14490:50:8" + "src": "14768:50:8" }, { "nodeType": "YulVariableDeclaration", - "src": "14549:58:8", + "src": "14827:58:8", "value": { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", - "src": "14592:6:8" + "src": "14870:6:8" }, { "name": "tail_2", "nodeType": "YulIdentifier", - "src": "14600:6:8" + "src": "14878:6:8" } ], "functionName": { "name": "abi_encode_array_bytes32_dyn", "nodeType": "YulIdentifier", - "src": "14563:28:8" + "src": "14841:28:8" }, "nodeType": "YulFunctionCall", - "src": "14563:44:8" + "src": "14841:44:8" }, "variables": [ { "name": "tail_3", "nodeType": "YulTypedName", - "src": "14553:6:8", + "src": "14831:6:8", "type": "" } ] @@ -11926,12 +13387,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "14627:9:8" + "src": "14905:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "14638:2:8", + "src": "14916:2:8", "type": "", "value": "96" } @@ -11939,73 +13400,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "14623:3:8" + "src": "14901:3:8" }, "nodeType": "YulFunctionCall", - "src": "14623:18:8" + "src": "14901:18:8" }, { "arguments": [ { "name": "tail_3", "nodeType": "YulIdentifier", - "src": "14647:6:8" + "src": "14925:6:8" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "14655:9:8" + "src": "14933:9:8" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "14643:3:8" + "src": "14921:3:8" }, "nodeType": "YulFunctionCall", - "src": "14643:22:8" + "src": "14921:22:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "14616:6:8" + "src": "14894:6:8" }, "nodeType": "YulFunctionCall", - "src": "14616:50:8" + "src": "14894:50:8" }, "nodeType": "YulExpressionStatement", - "src": "14616:50:8" + "src": "14894:50:8" }, { "nodeType": "YulVariableDeclaration", - "src": "14675:57:8", + "src": "14953:57:8", "value": { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", - "src": "14717:6:8" + "src": "14995:6:8" }, { "name": "tail_3", "nodeType": "YulIdentifier", - "src": "14725:6:8" + "src": "15003:6:8" } ], "functionName": { "name": "abi_encode_array_uint32_dyn", "nodeType": "YulIdentifier", - "src": "14689:27:8" + "src": "14967:27:8" }, "nodeType": "YulFunctionCall", - "src": "14689:43:8" + "src": "14967:43:8" }, "variables": [ { "name": "tail_4", "nodeType": "YulTypedName", - "src": "14679:6:8", + "src": "14957:6:8", "type": "" } ] @@ -12018,12 +13479,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "14752:9:8" + "src": "15030:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "14763:3:8", + "src": "15041:3:8", "type": "", "value": "128" } @@ -12031,73 +13492,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "14748:3:8" + "src": "15026:3:8" }, "nodeType": "YulFunctionCall", - "src": "14748:19:8" + "src": "15026:19:8" }, { "arguments": [ { "name": "tail_4", "nodeType": "YulIdentifier", - "src": "14773:6:8" + "src": "15051:6:8" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "14781:9:8" + "src": "15059:9:8" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "14769:3:8" + "src": "15047:3:8" }, "nodeType": "YulFunctionCall", - "src": "14769:22:8" + "src": "15047:22:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "14741:6:8" + "src": "15019:6:8" }, "nodeType": "YulFunctionCall", - "src": "14741:51:8" + "src": "15019:51:8" }, "nodeType": "YulExpressionStatement", - "src": "14741:51:8" + "src": "15019:51:8" }, { "nodeType": "YulAssignment", - "src": "14801:49:8", + "src": "15079:49:8", "value": { "arguments": [ { "name": "value4", "nodeType": "YulIdentifier", - "src": "14835:6:8" + "src": "15113:6:8" }, { "name": "tail_4", "nodeType": "YulIdentifier", - "src": "14843:6:8" + "src": "15121:6:8" } ], "functionName": { "name": "abi_encode_array_bool_dyn", "nodeType": "YulIdentifier", - "src": "14809:25:8" + "src": "15087:25:8" }, "nodeType": "YulFunctionCall", - "src": "14809:41:8" + "src": "15087:41:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "14801:4:8" + "src": "15079:4:8" } ] } @@ -12109,37 +13570,37 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "14180:9:8", + "src": "14458:9:8", "type": "" }, { "name": "value4", "nodeType": "YulTypedName", - "src": "14191:6:8", + "src": "14469:6:8", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "14199:6:8", + "src": "14477:6:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "14207:6:8", + "src": "14485:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "14215:6:8", + "src": "14493:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "14223:6:8", + "src": "14501:6:8", "type": "" } ], @@ -12147,16 +13608,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "14234:4:8", + "src": "14512:4:8", "type": "" } ], - "src": "13788:1068:8" + "src": "14066:1068:8" }, { "body": { "nodeType": "YulBlock", - "src": "15238:486:8", + "src": "15516:486:8", "statements": [ { "expression": { @@ -12164,12 +13625,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "15255:9:8" + "src": "15533:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "15266:3:8", + "src": "15544:3:8", "type": "", "value": "128" } @@ -12177,35 +13638,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "15248:6:8" + "src": "15526:6:8" }, "nodeType": "YulFunctionCall", - "src": "15248:22:8" + "src": "15526:22:8" }, "nodeType": "YulExpressionStatement", - "src": "15248:22:8" + "src": "15526:22:8" }, { "nodeType": "YulVariableDeclaration", - "src": "15279:71:8", + "src": "15557:71:8", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "15322:6:8" + "src": "15600:6:8" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "15334:9:8" + "src": "15612:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "15345:3:8", + "src": "15623:3:8", "type": "", "value": "128" } @@ -12213,25 +13674,25 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "15330:3:8" + "src": "15608:3:8" }, "nodeType": "YulFunctionCall", - "src": "15330:19:8" + "src": "15608:19:8" } ], "functionName": { "name": "abi_encode_array_bytes32_dyn", "nodeType": "YulIdentifier", - "src": "15293:28:8" + "src": "15571:28:8" }, "nodeType": "YulFunctionCall", - "src": "15293:57:8" + "src": "15571:57:8" }, "variables": [ { "name": "tail_1", "nodeType": "YulTypedName", - "src": "15283:6:8", + "src": "15561:6:8", "type": "" } ] @@ -12244,12 +13705,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "15370:9:8" + "src": "15648:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "15381:2:8", + "src": "15659:2:8", "type": "", "value": "32" } @@ -12257,73 +13718,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "15366:3:8" + "src": "15644:3:8" }, "nodeType": "YulFunctionCall", - "src": "15366:18:8" + "src": "15644:18:8" }, { "arguments": [ { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "15390:6:8" + "src": "15668:6:8" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "15398:9:8" + "src": "15676:9:8" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "15386:3:8" + "src": "15664:3:8" }, "nodeType": "YulFunctionCall", - "src": "15386:22:8" + "src": "15664:22:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "15359:6:8" + "src": "15637:6:8" }, "nodeType": "YulFunctionCall", - "src": "15359:50:8" + "src": "15637:50:8" }, "nodeType": "YulExpressionStatement", - "src": "15359:50:8" + "src": "15637:50:8" }, { "nodeType": "YulVariableDeclaration", - "src": "15418:58:8", + "src": "15696:58:8", "value": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "15461:6:8" + "src": "15739:6:8" }, { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "15469:6:8" + "src": "15747:6:8" } ], "functionName": { "name": "abi_encode_array_bytes32_dyn", "nodeType": "YulIdentifier", - "src": "15432:28:8" + "src": "15710:28:8" }, "nodeType": "YulFunctionCall", - "src": "15432:44:8" + "src": "15710:44:8" }, "variables": [ { "name": "tail_2", "nodeType": "YulTypedName", - "src": "15422:6:8", + "src": "15700:6:8", "type": "" } ] @@ -12336,12 +13797,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "15496:9:8" + "src": "15774:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "15507:2:8", + "src": "15785:2:8", "type": "", "value": "64" } @@ -12349,73 +13810,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "15492:3:8" + "src": "15770:3:8" }, "nodeType": "YulFunctionCall", - "src": "15492:18:8" + "src": "15770:18:8" }, { "arguments": [ { "name": "tail_2", "nodeType": "YulIdentifier", - "src": "15516:6:8" + "src": "15794:6:8" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "15524:9:8" + "src": "15802:9:8" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "15512:3:8" + "src": "15790:3:8" }, "nodeType": "YulFunctionCall", - "src": "15512:22:8" + "src": "15790:22:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "15485:6:8" + "src": "15763:6:8" }, "nodeType": "YulFunctionCall", - "src": "15485:50:8" + "src": "15763:50:8" }, "nodeType": "YulExpressionStatement", - "src": "15485:50:8" + "src": "15763:50:8" }, { "nodeType": "YulVariableDeclaration", - "src": "15544:57:8", + "src": "15822:57:8", "value": { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", - "src": "15586:6:8" + "src": "15864:6:8" }, { "name": "tail_2", "nodeType": "YulIdentifier", - "src": "15594:6:8" + "src": "15872:6:8" } ], "functionName": { "name": "abi_encode_array_uint32_dyn", "nodeType": "YulIdentifier", - "src": "15558:27:8" + "src": "15836:27:8" }, "nodeType": "YulFunctionCall", - "src": "15558:43:8" + "src": "15836:43:8" }, "variables": [ { "name": "tail_3", "nodeType": "YulTypedName", - "src": "15548:6:8", + "src": "15826:6:8", "type": "" } ] @@ -12428,12 +13889,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "15621:9:8" + "src": "15899:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "15632:2:8", + "src": "15910:2:8", "type": "", "value": "96" } @@ -12441,73 +13902,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "15617:3:8" + "src": "15895:3:8" }, "nodeType": "YulFunctionCall", - "src": "15617:18:8" + "src": "15895:18:8" }, { "arguments": [ { "name": "tail_3", "nodeType": "YulIdentifier", - "src": "15641:6:8" + "src": "15919:6:8" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "15649:9:8" + "src": "15927:9:8" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "15637:3:8" + "src": "15915:3:8" }, "nodeType": "YulFunctionCall", - "src": "15637:22:8" + "src": "15915:22:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "15610:6:8" + "src": "15888:6:8" }, "nodeType": "YulFunctionCall", - "src": "15610:50:8" + "src": "15888:50:8" }, "nodeType": "YulExpressionStatement", - "src": "15610:50:8" + "src": "15888:50:8" }, { "nodeType": "YulAssignment", - "src": "15669:49:8", + "src": "15947:49:8", "value": { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", - "src": "15703:6:8" + "src": "15981:6:8" }, { "name": "tail_3", "nodeType": "YulIdentifier", - "src": "15711:6:8" + "src": "15989:6:8" } ], "functionName": { "name": "abi_encode_array_bool_dyn", "nodeType": "YulIdentifier", - "src": "15677:25:8" + "src": "15955:25:8" }, "nodeType": "YulFunctionCall", - "src": "15677:41:8" + "src": "15955:41:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "15669:4:8" + "src": "15947:4:8" } ] } @@ -12519,31 +13980,31 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "15183:9:8", + "src": "15461:9:8", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "15194:6:8", + "src": "15472:6:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "15202:6:8", + "src": "15480:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "15210:6:8", + "src": "15488:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "15218:6:8", + "src": "15496:6:8", "type": "" } ], @@ -12551,31 +14012,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "15229:4:8", + "src": "15507:4:8", "type": "" } ], - "src": "14861:863:8" + "src": "15139:863:8" }, { "body": { "nodeType": "YulBlock", - "src": "16048:1071:8", + "src": "16326:1071:8", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "16058:32:8", + "src": "16336:32:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "16076:9:8" + "src": "16354:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16087:2:8", + "src": "16365:2:8", "type": "", "value": "96" } @@ -12583,16 +14044,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16072:3:8" + "src": "16350:3:8" }, "nodeType": "YulFunctionCall", - "src": "16072:18:8" + "src": "16350:18:8" }, "variables": [ { "name": "tail_1", "nodeType": "YulTypedName", - "src": "16062:6:8", + "src": "16340:6:8", "type": "" } ] @@ -12603,12 +14064,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "16106:9:8" + "src": "16384:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16117:2:8", + "src": "16395:2:8", "type": "", "value": "96" } @@ -12616,55 +14077,55 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "16099:6:8" + "src": "16377:6:8" }, "nodeType": "YulFunctionCall", - "src": "16099:21:8" + "src": "16377:21:8" }, "nodeType": "YulExpressionStatement", - "src": "16099:21:8" + "src": "16377:21:8" }, { "nodeType": "YulVariableDeclaration", - "src": "16129:17:8", + "src": "16407:17:8", "value": { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "16140:6:8" + "src": "16418:6:8" }, "variables": [ { "name": "pos", "nodeType": "YulTypedName", - "src": "16133:3:8", + "src": "16411:3:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "16155:27:8", + "src": "16433:27:8", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "16175:6:8" + "src": "16453:6:8" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "16169:5:8" + "src": "16447:5:8" }, "nodeType": "YulFunctionCall", - "src": "16169:13:8" + "src": "16447:13:8" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", - "src": "16159:6:8", + "src": "16437:6:8", "type": "" } ] @@ -12675,39 +14136,39 @@ { "name": "tail_1", "nodeType": "YulIdentifier", - "src": "16198:6:8" + "src": "16476:6:8" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "16206:6:8" + "src": "16484:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "16191:6:8" + "src": "16469:6:8" }, "nodeType": "YulFunctionCall", - "src": "16191:22:8" + "src": "16469:22:8" }, "nodeType": "YulExpressionStatement", - "src": "16191:22:8" + "src": "16469:22:8" }, { "nodeType": "YulAssignment", - "src": "16222:26:8", + "src": "16500:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "16233:9:8" + "src": "16511:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16244:3:8", + "src": "16522:3:8", "type": "", "value": "128" } @@ -12715,26 +14176,26 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16229:3:8" + "src": "16507:3:8" }, "nodeType": "YulFunctionCall", - "src": "16229:19:8" + "src": "16507:19:8" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "16222:3:8" + "src": "16500:3:8" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "16257:14:8", + "src": "16535:14:8", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "16267:4:8", + "src": "16545:4:8", "type": "", "value": "0x20" }, @@ -12742,57 +14203,57 @@ { "name": "_1", "nodeType": "YulTypedName", - "src": "16261:2:8", + "src": "16539:2:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "16280:29:8", + "src": "16558:29:8", "value": { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "16298:6:8" + "src": "16576:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "16306:2:8" + "src": "16584:2:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16294:3:8" + "src": "16572:3:8" }, "nodeType": "YulFunctionCall", - "src": "16294:15:8" + "src": "16572:15:8" }, "variables": [ { "name": "srcPtr", "nodeType": "YulTypedName", - "src": "16284:6:8", + "src": "16562:6:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "16318:13:8", + "src": "16596:13:8", "value": { "name": "tail", "nodeType": "YulIdentifier", - "src": "16327:4:8" + "src": "16605:4:8" }, "variables": [ { "name": "i", "nodeType": "YulTypedName", - "src": "16322:1:8", + "src": "16600:1:8", "type": "" } ] @@ -12800,7 +14261,7 @@ { "body": { "nodeType": "YulBlock", - "src": "16389:139:8", + "src": "16667:139:8", "statements": [ { "expression": { @@ -12810,95 +14271,95 @@ { "name": "srcPtr", "nodeType": "YulIdentifier", - "src": "16435:6:8" + "src": "16713:6:8" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "16429:5:8" + "src": "16707:5:8" }, "nodeType": "YulFunctionCall", - "src": "16429:13:8" + "src": "16707:13:8" }, { "name": "pos", "nodeType": "YulIdentifier", - "src": "16444:3:8" + "src": "16722:3:8" } ], "functionName": { "name": "abi_encode_enum_TokenType", "nodeType": "YulIdentifier", - "src": "16403:25:8" + "src": "16681:25:8" }, "nodeType": "YulFunctionCall", - "src": "16403:45:8" + "src": "16681:45:8" }, "nodeType": "YulExpressionStatement", - "src": "16403:45:8" + "src": "16681:45:8" }, { "nodeType": "YulAssignment", - "src": "16461:19:8", + "src": "16739:19:8", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "16472:3:8" + "src": "16750:3:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "16477:2:8" + "src": "16755:2:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16468:3:8" + "src": "16746:3:8" }, "nodeType": "YulFunctionCall", - "src": "16468:12:8" + "src": "16746:12:8" }, "variableNames": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "16461:3:8" + "src": "16739:3:8" } ] }, { "nodeType": "YulAssignment", - "src": "16493:25:8", + "src": "16771:25:8", "value": { "arguments": [ { "name": "srcPtr", "nodeType": "YulIdentifier", - "src": "16507:6:8" + "src": "16785:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "16515:2:8" + "src": "16793:2:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16503:3:8" + "src": "16781:3:8" }, "nodeType": "YulFunctionCall", - "src": "16503:15:8" + "src": "16781:15:8" }, "variableNames": [ { "name": "srcPtr", "nodeType": "YulIdentifier", - "src": "16493:6:8" + "src": "16771:6:8" } ] } @@ -12909,41 +14370,41 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "16351:1:8" + "src": "16629:1:8" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "16354:6:8" + "src": "16632:6:8" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "16348:2:8" + "src": "16626:2:8" }, "nodeType": "YulFunctionCall", - "src": "16348:13:8" + "src": "16626:13:8" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "16362:18:8", + "src": "16640:18:8", "statements": [ { "nodeType": "YulAssignment", - "src": "16364:14:8", + "src": "16642:14:8", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "16373:1:8" + "src": "16651:1:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16376:1:8", + "src": "16654:1:8", "type": "", "value": "1" } @@ -12951,16 +14412,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16369:3:8" + "src": "16647:3:8" }, "nodeType": "YulFunctionCall", - "src": "16369:9:8" + "src": "16647:9:8" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "16364:1:8" + "src": "16642:1:8" } ] } @@ -12968,10 +14429,10 @@ }, "pre": { "nodeType": "YulBlock", - "src": "16344:3:8", + "src": "16622:3:8", "statements": [] }, - "src": "16340:188:8" + "src": "16618:188:8" }, { "expression": { @@ -12981,96 +14442,96 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "16548:9:8" + "src": "16826:9:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "16559:2:8" + "src": "16837:2:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16544:3:8" + "src": "16822:3:8" }, "nodeType": "YulFunctionCall", - "src": "16544:18:8" + "src": "16822:18:8" }, { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "16568:3:8" + "src": "16846:3:8" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "16573:9:8" + "src": "16851:9:8" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "16564:3:8" + "src": "16842:3:8" }, "nodeType": "YulFunctionCall", - "src": "16564:19:8" + "src": "16842:19:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "16537:6:8" + "src": "16815:6:8" }, "nodeType": "YulFunctionCall", - "src": "16537:47:8" + "src": "16815:47:8" }, "nodeType": "YulExpressionStatement", - "src": "16537:47:8" + "src": "16815:47:8" }, { "nodeType": "YulVariableDeclaration", - "src": "16593:16:8", + "src": "16871:16:8", "value": { "name": "pos", "nodeType": "YulIdentifier", - "src": "16606:3:8" + "src": "16884:3:8" }, "variables": [ { "name": "pos_1", "nodeType": "YulTypedName", - "src": "16597:5:8", + "src": "16875:5:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "16618:29:8", + "src": "16896:29:8", "value": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "16640:6:8" + "src": "16918:6:8" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "16634:5:8" + "src": "16912:5:8" }, "nodeType": "YulFunctionCall", - "src": "16634:13:8" + "src": "16912:13:8" }, "variables": [ { "name": "length_1", "nodeType": "YulTypedName", - "src": "16622:8:8", + "src": "16900:8:8", "type": "" } ] @@ -13081,103 +14542,103 @@ { "name": "pos", "nodeType": "YulIdentifier", - "src": "16663:3:8" + "src": "16941:3:8" }, { "name": "length_1", "nodeType": "YulIdentifier", - "src": "16668:8:8" + "src": "16946:8:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "16656:6:8" + "src": "16934:6:8" }, "nodeType": "YulFunctionCall", - "src": "16656:21:8" + "src": "16934:21:8" }, "nodeType": "YulExpressionStatement", - "src": "16656:21:8" + "src": "16934:21:8" }, { "nodeType": "YulAssignment", - "src": "16686:21:8", + "src": "16964:21:8", "value": { "arguments": [ { "name": "pos", "nodeType": "YulIdentifier", - "src": "16699:3:8" + "src": "16977:3:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "16704:2:8" + "src": "16982:2:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16695:3:8" + "src": "16973:3:8" }, "nodeType": "YulFunctionCall", - "src": "16695:12:8" + "src": "16973:12:8" }, "variableNames": [ { "name": "pos_1", "nodeType": "YulIdentifier", - "src": "16686:5:8" + "src": "16964:5:8" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "16716:31:8", + "src": "16994:31:8", "value": { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "16736:6:8" + "src": "17014:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "16744:2:8" + "src": "17022:2:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16732:3:8" + "src": "17010:3:8" }, "nodeType": "YulFunctionCall", - "src": "16732:15:8" + "src": "17010:15:8" }, "variables": [ { "name": "srcPtr_1", "nodeType": "YulTypedName", - "src": "16720:8:8", + "src": "16998:8:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "16756:15:8", + "src": "17034:15:8", "value": { "name": "tail", "nodeType": "YulIdentifier", - "src": "16767:4:8" + "src": "17045:4:8" }, "variables": [ { "name": "i_1", "nodeType": "YulTypedName", - "src": "16760:3:8", + "src": "17038:3:8", "type": "" } ] @@ -13185,7 +14646,7 @@ { "body": { "nodeType": "YulBlock", - "src": "16837:158:8", + "src": "17115:158:8", "statements": [ { "expression": { @@ -13193,7 +14654,7 @@ { "name": "pos_1", "nodeType": "YulIdentifier", - "src": "16858:5:8" + "src": "17136:5:8" }, { "arguments": [ @@ -13202,16 +14663,16 @@ { "name": "srcPtr_1", "nodeType": "YulIdentifier", - "src": "16875:8:8" + "src": "17153:8:8" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "16869:5:8" + "src": "17147:5:8" }, "nodeType": "YulFunctionCall", - "src": "16869:15:8" + "src": "17147:15:8" }, { "arguments": [ @@ -13220,14 +14681,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "16894:3:8", + "src": "17172:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16899:1:8", + "src": "17177:1:8", "type": "", "value": "1" } @@ -13235,15 +14696,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "16890:3:8" + "src": "17168:3:8" }, "nodeType": "YulFunctionCall", - "src": "16890:11:8" + "src": "17168:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16903:1:8", + "src": "17181:1:8", "type": "", "value": "1" } @@ -13251,93 +14712,93 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "16886:3:8" + "src": "17164:3:8" }, "nodeType": "YulFunctionCall", - "src": "16886:19:8" + "src": "17164:19:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "16865:3:8" + "src": "17143:3:8" }, "nodeType": "YulFunctionCall", - "src": "16865:41:8" + "src": "17143:41:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "16851:6:8" + "src": "17129:6:8" }, "nodeType": "YulFunctionCall", - "src": "16851:56:8" + "src": "17129:56:8" }, "nodeType": "YulExpressionStatement", - "src": "16851:56:8" + "src": "17129:56:8" }, { "nodeType": "YulAssignment", - "src": "16920:23:8", + "src": "17198:23:8", "value": { "arguments": [ { "name": "pos_1", "nodeType": "YulIdentifier", - "src": "16933:5:8" + "src": "17211:5:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "16940:2:8" + "src": "17218:2:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16929:3:8" + "src": "17207:3:8" }, "nodeType": "YulFunctionCall", - "src": "16929:14:8" + "src": "17207:14:8" }, "variableNames": [ { "name": "pos_1", "nodeType": "YulIdentifier", - "src": "16920:5:8" + "src": "17198:5:8" } ] }, { "nodeType": "YulAssignment", - "src": "16956:29:8", + "src": "17234:29:8", "value": { "arguments": [ { "name": "srcPtr_1", "nodeType": "YulIdentifier", - "src": "16972:8:8" + "src": "17250:8:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "16982:2:8" + "src": "17260:2:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16968:3:8" + "src": "17246:3:8" }, "nodeType": "YulFunctionCall", - "src": "16968:17:8" + "src": "17246:17:8" }, "variableNames": [ { "name": "srcPtr_1", "nodeType": "YulIdentifier", - "src": "16956:8:8" + "src": "17234:8:8" } ] } @@ -13348,41 +14809,41 @@ { "name": "i_1", "nodeType": "YulIdentifier", - "src": "16791:3:8" + "src": "17069:3:8" }, { "name": "length_1", "nodeType": "YulIdentifier", - "src": "16796:8:8" + "src": "17074:8:8" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "16788:2:8" + "src": "17066:2:8" }, "nodeType": "YulFunctionCall", - "src": "16788:17:8" + "src": "17066:17:8" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "16806:22:8", + "src": "17084:22:8", "statements": [ { "nodeType": "YulAssignment", - "src": "16808:18:8", + "src": "17086:18:8", "value": { "arguments": [ { "name": "i_1", "nodeType": "YulIdentifier", - "src": "16819:3:8" + "src": "17097:3:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "16824:1:8", + "src": "17102:1:8", "type": "", "value": "1" } @@ -13390,16 +14851,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "16815:3:8" + "src": "17093:3:8" }, "nodeType": "YulFunctionCall", - "src": "16815:11:8" + "src": "17093:11:8" }, "variableNames": [ { "name": "i_1", "nodeType": "YulIdentifier", - "src": "16808:3:8" + "src": "17086:3:8" } ] } @@ -13407,10 +14868,10 @@ }, "pre": { "nodeType": "YulBlock", - "src": "16784:3:8", + "src": "17062:3:8", "statements": [] }, - "src": "16780:215:8" + "src": "17058:215:8" }, { "expression": { @@ -13420,12 +14881,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17015:9:8" + "src": "17293:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17026:2:8", + "src": "17304:2:8", "type": "", "value": "64" } @@ -13433,103 +14894,103 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17011:3:8" + "src": "17289:3:8" }, "nodeType": "YulFunctionCall", - "src": "17011:18:8" + "src": "17289:18:8" }, { "arguments": [ { "name": "pos_1", "nodeType": "YulIdentifier", - "src": "17035:5:8" + "src": "17313:5:8" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17042:9:8" + "src": "17320:9:8" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "17031:3:8" + "src": "17309:3:8" }, "nodeType": "YulFunctionCall", - "src": "17031:21:8" + "src": "17309:21:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "17004:6:8" + "src": "17282:6:8" }, "nodeType": "YulFunctionCall", - "src": "17004:49:8" + "src": "17282:49:8" }, "nodeType": "YulExpressionStatement", - "src": "17004:49:8" + "src": "17282:49:8" }, { "nodeType": "YulAssignment", - "src": "17062:51:8", + "src": "17340:51:8", "value": { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", - "src": "17099:6:8" + "src": "17377:6:8" }, { "name": "pos_1", "nodeType": "YulIdentifier", - "src": "17107:5:8" + "src": "17385:5:8" } ], "functionName": { "name": "abi_encode_array_bytes32_dyn", "nodeType": "YulIdentifier", - "src": "17070:28:8" + "src": "17348:28:8" }, "nodeType": "YulFunctionCall", - "src": "17070:43:8" + "src": "17348:43:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "17062:4:8" + "src": "17340:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_array$_t_enum$_TokenType_$2176_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "16001:9:8", + "src": "16279:9:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "16012:6:8", + "src": "16290:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "16020:6:8", + "src": "16298:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "16028:6:8", + "src": "16306:6:8", "type": "" } ], @@ -13537,31 +14998,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "16039:4:8", + "src": "16317:4:8", "type": "" } ], - "src": "15729:1390:8" + "src": "16007:1390:8" }, { "body": { "nodeType": "YulBlock", - "src": "17219:92:8", + "src": "17497:92:8", "statements": [ { "nodeType": "YulAssignment", - "src": "17229:26:8", + "src": "17507:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17241:9:8" + "src": "17519:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17252:2:8", + "src": "17530:2:8", "type": "", "value": "32" } @@ -13569,16 +15030,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17237:3:8" + "src": "17515:3:8" }, "nodeType": "YulFunctionCall", - "src": "17237:18:8" + "src": "17515:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "17229:4:8" + "src": "17507:4:8" } ] }, @@ -13588,7 +15049,7 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17271:9:8" + "src": "17549:9:8" }, { "arguments": [ @@ -13597,37 +15058,37 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "17296:6:8" + "src": "17574:6:8" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "17289:6:8" + "src": "17567:6:8" }, "nodeType": "YulFunctionCall", - "src": "17289:14:8" + "src": "17567:14:8" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "17282:6:8" + "src": "17560:6:8" }, "nodeType": "YulFunctionCall", - "src": "17282:22:8" + "src": "17560:22:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "17264:6:8" + "src": "17542:6:8" }, "nodeType": "YulFunctionCall", - "src": "17264:41:8" + "src": "17542:41:8" }, "nodeType": "YulExpressionStatement", - "src": "17264:41:8" + "src": "17542:41:8" } ] }, @@ -13637,13 +15098,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "17188:9:8", + "src": "17466:9:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "17199:6:8", + "src": "17477:6:8", "type": "" } ], @@ -13651,31 +15112,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "17210:4:8", + "src": "17488:4:8", "type": "" } ], - "src": "17124:187:8" + "src": "17402:187:8" }, { "body": { "nodeType": "YulBlock", - "src": "17493:239:8", + "src": "17771:239:8", "statements": [ { "nodeType": "YulAssignment", - "src": "17503:27:8", + "src": "17781:27:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17515:9:8" + "src": "17793:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17526:3:8", + "src": "17804:3:8", "type": "", "value": "128" } @@ -13683,16 +15144,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17511:3:8" + "src": "17789:3:8" }, "nodeType": "YulFunctionCall", - "src": "17511:19:8" + "src": "17789:19:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "17503:4:8" + "src": "17781:4:8" } ] }, @@ -13702,24 +15163,24 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17546:9:8" + "src": "17824:9:8" }, { "name": "value0", "nodeType": "YulIdentifier", - "src": "17557:6:8" + "src": "17835:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "17539:6:8" + "src": "17817:6:8" }, "nodeType": "YulFunctionCall", - "src": "17539:25:8" + "src": "17817:25:8" }, "nodeType": "YulExpressionStatement", - "src": "17539:25:8" + "src": "17817:25:8" }, { "expression": { @@ -13729,12 +15190,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17584:9:8" + "src": "17862:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17595:2:8", + "src": "17873:2:8", "type": "", "value": "32" } @@ -13742,27 +15203,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17580:3:8" + "src": "17858:3:8" }, "nodeType": "YulFunctionCall", - "src": "17580:18:8" + "src": "17858:18:8" }, { "name": "value1", "nodeType": "YulIdentifier", - "src": "17600:6:8" + "src": "17878:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "17573:6:8" + "src": "17851:6:8" }, "nodeType": "YulFunctionCall", - "src": "17573:34:8" + "src": "17851:34:8" }, "nodeType": "YulExpressionStatement", - "src": "17573:34:8" + "src": "17851:34:8" }, { "expression": { @@ -13772,12 +15233,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17627:9:8" + "src": "17905:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17638:2:8", + "src": "17916:2:8", "type": "", "value": "64" } @@ -13785,22 +15246,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17623:3:8" + "src": "17901:3:8" }, "nodeType": "YulFunctionCall", - "src": "17623:18:8" + "src": "17901:18:8" }, { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", - "src": "17647:6:8" + "src": "17925:6:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17655:10:8", + "src": "17933:10:8", "type": "", "value": "0xffffffff" } @@ -13808,22 +15269,22 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "17643:3:8" + "src": "17921:3:8" }, "nodeType": "YulFunctionCall", - "src": "17643:23:8" + "src": "17921:23:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "17616:6:8" + "src": "17894:6:8" }, "nodeType": "YulFunctionCall", - "src": "17616:51:8" + "src": "17894:51:8" }, "nodeType": "YulExpressionStatement", - "src": "17616:51:8" + "src": "17894:51:8" }, { "expression": { @@ -13833,12 +15294,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "17687:9:8" + "src": "17965:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "17698:2:8", + "src": "17976:2:8", "type": "", "value": "96" } @@ -13846,10 +15307,10 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "17683:3:8" + "src": "17961:3:8" }, "nodeType": "YulFunctionCall", - "src": "17683:18:8" + "src": "17961:18:8" }, { "arguments": [ @@ -13858,37 +15319,37 @@ { "name": "value3", "nodeType": "YulIdentifier", - "src": "17717:6:8" + "src": "17995:6:8" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "17710:6:8" + "src": "17988:6:8" }, "nodeType": "YulFunctionCall", - "src": "17710:14:8" + "src": "17988:14:8" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "17703:6:8" + "src": "17981:6:8" }, "nodeType": "YulFunctionCall", - "src": "17703:22:8" + "src": "17981:22:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "17676:6:8" + "src": "17954:6:8" }, "nodeType": "YulFunctionCall", - "src": "17676:50:8" + "src": "17954:50:8" }, "nodeType": "YulExpressionStatement", - "src": "17676:50:8" + "src": "17954:50:8" } ] }, @@ -13898,31 +15359,31 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "17438:9:8", + "src": "17716:9:8", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "17449:6:8", + "src": "17727:6:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "17457:6:8", + "src": "17735:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "17465:6:8", + "src": "17743:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "17473:6:8", + "src": "17751:6:8", "type": "" } ], @@ -13930,31 +15391,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "17484:4:8", + "src": "17762:4:8", "type": "" } ], - "src": "17316:416:8" + "src": "17594:416:8" }, { "body": { "nodeType": "YulBlock", - "src": "18018:488:8", + "src": "18296:488:8", "statements": [ { "nodeType": "YulAssignment", - "src": "18028:27:8", + "src": "18306:27:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18040:9:8" + "src": "18318:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18051:3:8", + "src": "18329:3:8", "type": "", "value": "256" } @@ -13962,16 +15423,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18036:3:8" + "src": "18314:3:8" }, "nodeType": "YulFunctionCall", - "src": "18036:19:8" + "src": "18314:19:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "18028:4:8" + "src": "18306:4:8" } ] }, @@ -13981,24 +15442,24 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18071:9:8" + "src": "18349:9:8" }, { "name": "value0", "nodeType": "YulIdentifier", - "src": "18082:6:8" + "src": "18360:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "18064:6:8" + "src": "18342:6:8" }, "nodeType": "YulFunctionCall", - "src": "18064:25:8" + "src": "18342:25:8" }, "nodeType": "YulExpressionStatement", - "src": "18064:25:8" + "src": "18342:25:8" }, { "expression": { @@ -14008,12 +15469,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18109:9:8" + "src": "18387:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18120:2:8", + "src": "18398:2:8", "type": "", "value": "32" } @@ -14021,22 +15482,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18105:3:8" + "src": "18383:3:8" }, "nodeType": "YulFunctionCall", - "src": "18105:18:8" + "src": "18383:18:8" }, { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "18129:6:8" + "src": "18407:6:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18137:4:8", + "src": "18415:4:8", "type": "", "value": "0xff" } @@ -14044,22 +15505,22 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "18125:3:8" + "src": "18403:3:8" }, "nodeType": "YulFunctionCall", - "src": "18125:17:8" + "src": "18403:17:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "18098:6:8" + "src": "18376:6:8" }, "nodeType": "YulFunctionCall", - "src": "18098:45:8" + "src": "18376:45:8" }, "nodeType": "YulExpressionStatement", - "src": "18098:45:8" + "src": "18376:45:8" }, { "expression": { @@ -14069,12 +15530,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18163:9:8" + "src": "18441:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18174:2:8", + "src": "18452:2:8", "type": "", "value": "64" } @@ -14082,22 +15543,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18159:3:8" + "src": "18437:3:8" }, "nodeType": "YulFunctionCall", - "src": "18159:18:8" + "src": "18437:18:8" }, { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", - "src": "18183:6:8" + "src": "18461:6:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18191:4:8", + "src": "18469:4:8", "type": "", "value": "0xff" } @@ -14105,30 +15566,30 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "18179:3:8" + "src": "18457:3:8" }, "nodeType": "YulFunctionCall", - "src": "18179:17:8" + "src": "18457:17:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "18152:6:8" + "src": "18430:6:8" }, "nodeType": "YulFunctionCall", - "src": "18152:45:8" + "src": "18430:45:8" }, "nodeType": "YulExpressionStatement", - "src": "18152:45:8" + "src": "18430:45:8" }, { "nodeType": "YulVariableDeclaration", - "src": "18206:20:8", + "src": "18484:20:8", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "18216:10:8", + "src": "18494:10:8", "type": "", "value": "0xffffffff" }, @@ -14136,7 +15597,7 @@ { "name": "_1", "nodeType": "YulTypedName", - "src": "18210:2:8", + "src": "18488:2:8", "type": "" } ] @@ -14149,12 +15610,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18246:9:8" + "src": "18524:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18257:2:8", + "src": "18535:2:8", "type": "", "value": "96" } @@ -14162,43 +15623,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18242:3:8" + "src": "18520:3:8" }, "nodeType": "YulFunctionCall", - "src": "18242:18:8" + "src": "18520:18:8" }, { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", - "src": "18266:6:8" + "src": "18544:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "18274:2:8" + "src": "18552:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "18262:3:8" + "src": "18540:3:8" }, "nodeType": "YulFunctionCall", - "src": "18262:15:8" + "src": "18540:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "18235:6:8" + "src": "18513:6:8" }, "nodeType": "YulFunctionCall", - "src": "18235:43:8" + "src": "18513:43:8" }, "nodeType": "YulExpressionStatement", - "src": "18235:43:8" + "src": "18513:43:8" }, { "expression": { @@ -14208,12 +15669,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18298:9:8" + "src": "18576:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18309:3:8", + "src": "18587:3:8", "type": "", "value": "128" } @@ -14221,43 +15682,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18294:3:8" + "src": "18572:3:8" }, "nodeType": "YulFunctionCall", - "src": "18294:19:8" + "src": "18572:19:8" }, { "arguments": [ { "name": "value4", "nodeType": "YulIdentifier", - "src": "18319:6:8" + "src": "18597:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "18327:2:8" + "src": "18605:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "18315:3:8" + "src": "18593:3:8" }, "nodeType": "YulFunctionCall", - "src": "18315:15:8" + "src": "18593:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "18287:6:8" + "src": "18565:6:8" }, "nodeType": "YulFunctionCall", - "src": "18287:44:8" + "src": "18565:44:8" }, "nodeType": "YulExpressionStatement", - "src": "18287:44:8" + "src": "18565:44:8" }, { "expression": { @@ -14267,12 +15728,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18351:9:8" + "src": "18629:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18362:3:8", + "src": "18640:3:8", "type": "", "value": "160" } @@ -14280,22 +15741,22 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18347:3:8" + "src": "18625:3:8" }, "nodeType": "YulFunctionCall", - "src": "18347:19:8" + "src": "18625:19:8" }, { "arguments": [ { "name": "value5", "nodeType": "YulIdentifier", - "src": "18372:6:8" + "src": "18650:6:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18380:4:8", + "src": "18658:4:8", "type": "", "value": "0xff" } @@ -14303,22 +15764,22 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "18368:3:8" + "src": "18646:3:8" }, "nodeType": "YulFunctionCall", - "src": "18368:17:8" + "src": "18646:17:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "18340:6:8" + "src": "18618:6:8" }, "nodeType": "YulFunctionCall", - "src": "18340:46:8" + "src": "18618:46:8" }, "nodeType": "YulExpressionStatement", - "src": "18340:46:8" + "src": "18618:46:8" }, { "expression": { @@ -14328,12 +15789,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18406:9:8" + "src": "18684:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18417:3:8", + "src": "18695:3:8", "type": "", "value": "192" } @@ -14341,17 +15802,17 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18402:3:8" + "src": "18680:3:8" }, "nodeType": "YulFunctionCall", - "src": "18402:19:8" + "src": "18680:19:8" }, { "arguments": [ { "name": "value6", "nodeType": "YulIdentifier", - "src": "18427:6:8" + "src": "18705:6:8" }, { "arguments": [ @@ -14360,14 +15821,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "18443:3:8", + "src": "18721:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18448:1:8", + "src": "18726:1:8", "type": "", "value": "1" } @@ -14375,15 +15836,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "18439:3:8" + "src": "18717:3:8" }, "nodeType": "YulFunctionCall", - "src": "18439:11:8" + "src": "18717:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18452:1:8", + "src": "18730:1:8", "type": "", "value": "1" } @@ -14391,31 +15852,31 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "18435:3:8" + "src": "18713:3:8" }, "nodeType": "YulFunctionCall", - "src": "18435:19:8" + "src": "18713:19:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "18423:3:8" + "src": "18701:3:8" }, "nodeType": "YulFunctionCall", - "src": "18423:32:8" + "src": "18701:32:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "18395:6:8" + "src": "18673:6:8" }, "nodeType": "YulFunctionCall", - "src": "18395:61:8" + "src": "18673:61:8" }, "nodeType": "YulExpressionStatement", - "src": "18395:61:8" + "src": "18673:61:8" }, { "expression": { @@ -14425,12 +15886,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18476:9:8" + "src": "18754:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18487:3:8", + "src": "18765:3:8", "type": "", "value": "224" } @@ -14438,27 +15899,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18472:3:8" + "src": "18750:3:8" }, "nodeType": "YulFunctionCall", - "src": "18472:19:8" + "src": "18750:19:8" }, { "name": "value7", "nodeType": "YulIdentifier", - "src": "18493:6:8" + "src": "18771:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "18465:6:8" + "src": "18743:6:8" }, "nodeType": "YulFunctionCall", - "src": "18465:35:8" + "src": "18743:35:8" }, "nodeType": "YulExpressionStatement", - "src": "18465:35:8" + "src": "18743:35:8" } ] }, @@ -14468,55 +15929,55 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "17931:9:8", + "src": "18209:9:8", "type": "" }, { "name": "value7", "nodeType": "YulTypedName", - "src": "17942:6:8", + "src": "18220:6:8", "type": "" }, { "name": "value6", "nodeType": "YulTypedName", - "src": "17950:6:8", + "src": "18228:6:8", "type": "" }, { "name": "value5", "nodeType": "YulTypedName", - "src": "17958:6:8", + "src": "18236:6:8", "type": "" }, { "name": "value4", "nodeType": "YulTypedName", - "src": "17966:6:8", + "src": "18244:6:8", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "17974:6:8", + "src": "18252:6:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "17982:6:8", + "src": "18260:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "17990:6:8", + "src": "18268:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "17998:6:8", + "src": "18276:6:8", "type": "" } ], @@ -14524,31 +15985,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "18009:4:8", + "src": "18287:4:8", "type": "" } ], - "src": "17737:769:8" + "src": "18015:769:8" }, { "body": { "nodeType": "YulBlock", - "src": "18610:103:8", + "src": "18888:103:8", "statements": [ { "nodeType": "YulAssignment", - "src": "18620:26:8", + "src": "18898:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18632:9:8" + "src": "18910:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18643:2:8", + "src": "18921:2:8", "type": "", "value": "32" } @@ -14556,16 +16017,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18628:3:8" + "src": "18906:3:8" }, "nodeType": "YulFunctionCall", - "src": "18628:18:8" + "src": "18906:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "18620:4:8" + "src": "18898:4:8" } ] }, @@ -14575,28 +16036,28 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18662:9:8" + "src": "18940:9:8" }, { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "18677:6:8" + "src": "18955:6:8" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "18689:3:8", + "src": "18967:3:8", "type": "", "value": "224" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18694:10:8", + "src": "18972:10:8", "type": "", "value": "0xffffffff" } @@ -14604,31 +16065,31 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "18685:3:8" + "src": "18963:3:8" }, "nodeType": "YulFunctionCall", - "src": "18685:20:8" + "src": "18963:20:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "18673:3:8" + "src": "18951:3:8" }, "nodeType": "YulFunctionCall", - "src": "18673:33:8" + "src": "18951:33:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "18655:6:8" + "src": "18933:6:8" }, "nodeType": "YulFunctionCall", - "src": "18655:52:8" + "src": "18933:52:8" }, "nodeType": "YulExpressionStatement", - "src": "18655:52:8" + "src": "18933:52:8" } ] }, @@ -14638,13 +16099,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "18579:9:8", + "src": "18857:9:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "18590:6:8", + "src": "18868:6:8", "type": "" } ], @@ -14652,31 +16113,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "18601:4:8", + "src": "18879:4:8", "type": "" } ], - "src": "18511:202:8" + "src": "18789:202:8" }, { "body": { "nodeType": "YulBlock", - "src": "18887:207:8", + "src": "19165:207:8", "statements": [ { "nodeType": "YulAssignment", - "src": "18897:26:8", + "src": "19175:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18909:9:8" + "src": "19187:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "18920:2:8", + "src": "19198:2:8", "type": "", "value": "96" } @@ -14684,16 +16145,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18905:3:8" + "src": "19183:3:8" }, "nodeType": "YulFunctionCall", - "src": "18905:18:8" + "src": "19183:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "18897:4:8" + "src": "19175:4:8" } ] }, @@ -14703,24 +16164,24 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "18958:6:8" + "src": "19236:6:8" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18966:9:8" + "src": "19244:9:8" } ], "functionName": { "name": "abi_encode_enum_TokenType", "nodeType": "YulIdentifier", - "src": "18932:25:8" + "src": "19210:25:8" }, "nodeType": "YulFunctionCall", - "src": "18932:44:8" + "src": "19210:44:8" }, "nodeType": "YulExpressionStatement", - "src": "18932:44:8" + "src": "19210:44:8" }, { "expression": { @@ -14730,12 +16191,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "18996:9:8" + "src": "19274:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19007:2:8", + "src": "19285:2:8", "type": "", "value": "32" } @@ -14743,17 +16204,17 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "18992:3:8" + "src": "19270:3:8" }, "nodeType": "YulFunctionCall", - "src": "18992:18:8" + "src": "19270:18:8" }, { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "19016:6:8" + "src": "19294:6:8" }, { "arguments": [ @@ -14762,14 +16223,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "19032:3:8", + "src": "19310:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19037:1:8", + "src": "19315:1:8", "type": "", "value": "1" } @@ -14777,15 +16238,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "19028:3:8" + "src": "19306:3:8" }, "nodeType": "YulFunctionCall", - "src": "19028:11:8" + "src": "19306:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19041:1:8", + "src": "19319:1:8", "type": "", "value": "1" } @@ -14793,31 +16254,31 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "19024:3:8" + "src": "19302:3:8" }, "nodeType": "YulFunctionCall", - "src": "19024:19:8" + "src": "19302:19:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "19012:3:8" + "src": "19290:3:8" }, "nodeType": "YulFunctionCall", - "src": "19012:32:8" + "src": "19290:32:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "18985:6:8" + "src": "19263:6:8" }, "nodeType": "YulFunctionCall", - "src": "18985:60:8" + "src": "19263:60:8" }, "nodeType": "YulExpressionStatement", - "src": "18985:60:8" + "src": "19263:60:8" }, { "expression": { @@ -14827,12 +16288,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "19065:9:8" + "src": "19343:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19076:2:8", + "src": "19354:2:8", "type": "", "value": "64" } @@ -14840,55 +16301,55 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "19061:3:8" + "src": "19339:3:8" }, "nodeType": "YulFunctionCall", - "src": "19061:18:8" + "src": "19339:18:8" }, { "name": "value2", "nodeType": "YulIdentifier", - "src": "19081:6:8" + "src": "19359:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "19054:6:8" + "src": "19332:6:8" }, "nodeType": "YulFunctionCall", - "src": "19054:34:8" + "src": "19332:34:8" }, "nodeType": "YulExpressionStatement", - "src": "19054:34:8" + "src": "19332:34:8" } ] }, - "name": "abi_encode_tuple_t_enum$_TokenType_$2176_t_address_t_uint256__to_t_uint8_t_address_t_uint256__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256__to_t_uint8_t_address_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "18840:9:8", + "src": "19118:9:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "18851:6:8", + "src": "19129:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "18859:6:8", + "src": "19137:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "18867:6:8", + "src": "19145:6:8", "type": "" } ], @@ -14896,31 +16357,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "18878:4:8", + "src": "19156:4:8", "type": "" } ], - "src": "18718:376:8" + "src": "18996:376:8" }, { "body": { "nodeType": "YulBlock", - "src": "19324:325:8", + "src": "19602:325:8", "statements": [ { "nodeType": "YulAssignment", - "src": "19334:27:8", + "src": "19612:27:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "19346:9:8" + "src": "19624:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19357:3:8", + "src": "19635:3:8", "type": "", "value": "160" } @@ -14928,16 +16389,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "19342:3:8" + "src": "19620:3:8" }, "nodeType": "YulFunctionCall", - "src": "19342:19:8" + "src": "19620:19:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "19334:4:8" + "src": "19612:4:8" } ] }, @@ -14947,28 +16408,28 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "19396:6:8" + "src": "19674:6:8" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "19404:9:8" + "src": "19682:9:8" } ], "functionName": { "name": "abi_encode_enum_TokenType", "nodeType": "YulIdentifier", - "src": "19370:25:8" + "src": "19648:25:8" }, "nodeType": "YulFunctionCall", - "src": "19370:44:8" + "src": "19648:44:8" }, "nodeType": "YulExpressionStatement", - "src": "19370:44:8" + "src": "19648:44:8" }, { "nodeType": "YulVariableDeclaration", - "src": "19423:29:8", + "src": "19701:29:8", "value": { "arguments": [ { @@ -14976,14 +16437,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "19441:3:8", + "src": "19719:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19446:1:8", + "src": "19724:1:8", "type": "", "value": "1" } @@ -14991,15 +16452,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "19437:3:8" + "src": "19715:3:8" }, "nodeType": "YulFunctionCall", - "src": "19437:11:8" + "src": "19715:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19450:1:8", + "src": "19728:1:8", "type": "", "value": "1" } @@ -15007,16 +16468,16 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "19433:3:8" + "src": "19711:3:8" }, "nodeType": "YulFunctionCall", - "src": "19433:19:8" + "src": "19711:19:8" }, "variables": [ { "name": "_1", "nodeType": "YulTypedName", - "src": "19427:2:8", + "src": "19705:2:8", "type": "" } ] @@ -15029,12 +16490,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "19472:9:8" + "src": "19750:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19483:2:8", + "src": "19761:2:8", "type": "", "value": "32" } @@ -15042,43 +16503,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "19468:3:8" + "src": "19746:3:8" }, "nodeType": "YulFunctionCall", - "src": "19468:18:8" + "src": "19746:18:8" }, { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "19492:6:8" + "src": "19770:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "19500:2:8" + "src": "19778:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "19488:3:8" + "src": "19766:3:8" }, "nodeType": "YulFunctionCall", - "src": "19488:15:8" + "src": "19766:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "19461:6:8" + "src": "19739:6:8" }, "nodeType": "YulFunctionCall", - "src": "19461:43:8" + "src": "19739:43:8" }, "nodeType": "YulExpressionStatement", - "src": "19461:43:8" + "src": "19739:43:8" }, { "expression": { @@ -15088,12 +16549,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "19524:9:8" + "src": "19802:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19535:2:8", + "src": "19813:2:8", "type": "", "value": "64" } @@ -15101,27 +16562,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "19520:3:8" + "src": "19798:3:8" }, "nodeType": "YulFunctionCall", - "src": "19520:18:8" + "src": "19798:18:8" }, { "name": "value2", "nodeType": "YulIdentifier", - "src": "19540:6:8" + "src": "19818:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "19513:6:8" + "src": "19791:6:8" }, "nodeType": "YulFunctionCall", - "src": "19513:34:8" + "src": "19791:34:8" }, "nodeType": "YulExpressionStatement", - "src": "19513:34:8" + "src": "19791:34:8" }, { "expression": { @@ -15131,12 +16592,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "19567:9:8" + "src": "19845:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19578:2:8", + "src": "19856:2:8", "type": "", "value": "96" } @@ -15144,43 +16605,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "19563:3:8" + "src": "19841:3:8" }, "nodeType": "YulFunctionCall", - "src": "19563:18:8" + "src": "19841:18:8" }, { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", - "src": "19587:6:8" + "src": "19865:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "19595:2:8" + "src": "19873:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "19583:3:8" + "src": "19861:3:8" }, "nodeType": "YulFunctionCall", - "src": "19583:15:8" + "src": "19861:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "19556:6:8" + "src": "19834:6:8" }, "nodeType": "YulFunctionCall", - "src": "19556:43:8" + "src": "19834:43:8" }, "nodeType": "YulExpressionStatement", - "src": "19556:43:8" + "src": "19834:43:8" }, { "expression": { @@ -15190,12 +16651,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "19619:9:8" + "src": "19897:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "19630:3:8", + "src": "19908:3:8", "type": "", "value": "128" } @@ -15203,67 +16664,67 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "19615:3:8" + "src": "19893:3:8" }, "nodeType": "YulFunctionCall", - "src": "19615:19:8" + "src": "19893:19:8" }, { "name": "value4", "nodeType": "YulIdentifier", - "src": "19636:6:8" + "src": "19914:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "19608:6:8" + "src": "19886:6:8" }, "nodeType": "YulFunctionCall", - "src": "19608:35:8" + "src": "19886:35:8" }, "nodeType": "YulExpressionStatement", - "src": "19608:35:8" + "src": "19886:35:8" } ] }, - "name": "abi_encode_tuple_t_enum$_TokenType_$2176_t_address_t_uint256_t_address_t_uint256__to_t_uint8_t_address_t_uint256_t_address_t_uint256__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256_t_address_t_uint256__to_t_uint8_t_address_t_uint256_t_address_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "19261:9:8", + "src": "19539:9:8", "type": "" }, { "name": "value4", "nodeType": "YulTypedName", - "src": "19272:6:8", + "src": "19550:6:8", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "19280:6:8", + "src": "19558:6:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "19288:6:8", + "src": "19566:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "19296:6:8", + "src": "19574:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "19304:6:8", + "src": "19582:6:8", "type": "" } ], @@ -15271,16 +16732,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "19315:4:8", + "src": "19593:4:8", "type": "" } ], - "src": "19099:550:8" + "src": "19377:550:8" }, { "body": { "nodeType": "YulBlock", - "src": "19927:392:8", + "src": "20205:392:8", "statements": [ { "expression": { @@ -15288,28 +16749,28 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "19963:6:8" + "src": "20241:6:8" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "19971:9:8" + "src": "20249:9:8" } ], "functionName": { "name": "abi_encode_enum_TokenType", "nodeType": "YulIdentifier", - "src": "19937:25:8" + "src": "20215:25:8" }, "nodeType": "YulFunctionCall", - "src": "19937:44:8" + "src": "20215:44:8" }, "nodeType": "YulExpressionStatement", - "src": "19937:44:8" + "src": "20215:44:8" }, { "nodeType": "YulVariableDeclaration", - "src": "19990:29:8", + "src": "20268:29:8", "value": { "arguments": [ { @@ -15317,14 +16778,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "20008:3:8", + "src": "20286:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20013:1:8", + "src": "20291:1:8", "type": "", "value": "1" } @@ -15332,15 +16793,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "20004:3:8" + "src": "20282:3:8" }, "nodeType": "YulFunctionCall", - "src": "20004:11:8" + "src": "20282:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20017:1:8", + "src": "20295:1:8", "type": "", "value": "1" } @@ -15348,16 +16809,16 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "20000:3:8" + "src": "20278:3:8" }, "nodeType": "YulFunctionCall", - "src": "20000:19:8" + "src": "20278:19:8" }, "variables": [ { "name": "_1", "nodeType": "YulTypedName", - "src": "19994:2:8", + "src": "20272:2:8", "type": "" } ] @@ -15370,12 +16831,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20039:9:8" + "src": "20317:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20050:2:8", + "src": "20328:2:8", "type": "", "value": "32" } @@ -15383,43 +16844,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20035:3:8" + "src": "20313:3:8" }, "nodeType": "YulFunctionCall", - "src": "20035:18:8" + "src": "20313:18:8" }, { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "20059:6:8" + "src": "20337:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "20067:2:8" + "src": "20345:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "20055:3:8" + "src": "20333:3:8" }, "nodeType": "YulFunctionCall", - "src": "20055:15:8" + "src": "20333:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20028:6:8" + "src": "20306:6:8" }, "nodeType": "YulFunctionCall", - "src": "20028:43:8" + "src": "20306:43:8" }, "nodeType": "YulExpressionStatement", - "src": "20028:43:8" + "src": "20306:43:8" }, { "expression": { @@ -15429,12 +16890,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20091:9:8" + "src": "20369:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20102:2:8", + "src": "20380:2:8", "type": "", "value": "64" } @@ -15442,27 +16903,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20087:3:8" + "src": "20365:3:8" }, "nodeType": "YulFunctionCall", - "src": "20087:18:8" + "src": "20365:18:8" }, { "name": "value2", "nodeType": "YulIdentifier", - "src": "20107:6:8" + "src": "20385:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20080:6:8" + "src": "20358:6:8" }, "nodeType": "YulFunctionCall", - "src": "20080:34:8" + "src": "20358:34:8" }, "nodeType": "YulExpressionStatement", - "src": "20080:34:8" + "src": "20358:34:8" }, { "expression": { @@ -15472,12 +16933,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20134:9:8" + "src": "20412:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20145:2:8", + "src": "20423:2:8", "type": "", "value": "96" } @@ -15485,43 +16946,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20130:3:8" + "src": "20408:3:8" }, "nodeType": "YulFunctionCall", - "src": "20130:18:8" + "src": "20408:18:8" }, { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", - "src": "20154:6:8" + "src": "20432:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "20162:2:8" + "src": "20440:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "20150:3:8" + "src": "20428:3:8" }, "nodeType": "YulFunctionCall", - "src": "20150:15:8" + "src": "20428:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20123:6:8" + "src": "20401:6:8" }, "nodeType": "YulFunctionCall", - "src": "20123:43:8" + "src": "20401:43:8" }, "nodeType": "YulExpressionStatement", - "src": "20123:43:8" + "src": "20401:43:8" }, { "expression": { @@ -15531,12 +16992,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20186:9:8" + "src": "20464:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20197:3:8", + "src": "20475:3:8", "type": "", "value": "128" } @@ -15544,27 +17005,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20182:3:8" + "src": "20460:3:8" }, "nodeType": "YulFunctionCall", - "src": "20182:19:8" + "src": "20460:19:8" }, { "name": "value4", "nodeType": "YulIdentifier", - "src": "20203:6:8" + "src": "20481:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20175:6:8" + "src": "20453:6:8" }, "nodeType": "YulFunctionCall", - "src": "20175:35:8" + "src": "20453:35:8" }, "nodeType": "YulExpressionStatement", - "src": "20175:35:8" + "src": "20453:35:8" }, { "expression": { @@ -15574,12 +17035,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20230:9:8" + "src": "20508:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20241:3:8", + "src": "20519:3:8", "type": "", "value": "160" } @@ -15587,15 +17048,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20226:3:8" + "src": "20504:3:8" }, "nodeType": "YulFunctionCall", - "src": "20226:19:8" + "src": "20504:19:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20247:3:8", + "src": "20525:3:8", "type": "", "value": "192" } @@ -15603,35 +17064,35 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20219:6:8" + "src": "20497:6:8" }, "nodeType": "YulFunctionCall", - "src": "20219:32:8" + "src": "20497:32:8" }, "nodeType": "YulExpressionStatement", - "src": "20219:32:8" + "src": "20497:32:8" }, { "nodeType": "YulAssignment", - "src": "20260:53:8", + "src": "20538:53:8", "value": { "arguments": [ { "name": "value5", "nodeType": "YulIdentifier", - "src": "20285:6:8" + "src": "20563:6:8" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20297:9:8" + "src": "20575:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20308:3:8", + "src": "20586:3:8", "type": "", "value": "192" } @@ -15639,73 +17100,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20293:3:8" + "src": "20571:3:8" }, "nodeType": "YulFunctionCall", - "src": "20293:19:8" + "src": "20571:19:8" } ], "functionName": { "name": "abi_encode_bytes", "nodeType": "YulIdentifier", - "src": "20268:16:8" + "src": "20546:16:8" }, "nodeType": "YulFunctionCall", - "src": "20268:45:8" + "src": "20546:45:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "20260:4:8" + "src": "20538:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_enum$_TokenType_$2176_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "19856:9:8", + "src": "20134:9:8", "type": "" }, { "name": "value5", "nodeType": "YulTypedName", - "src": "19867:6:8", + "src": "20145:6:8", "type": "" }, { "name": "value4", "nodeType": "YulTypedName", - "src": "19875:6:8", + "src": "20153:6:8", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "19883:6:8", + "src": "20161:6:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "19891:6:8", + "src": "20169:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "19899:6:8", + "src": "20177:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "19907:6:8", + "src": "20185:6:8", "type": "" } ], @@ -15713,16 +17174,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "19918:4:8", + "src": "20196:4:8", "type": "" } ], - "src": "19654:665:8" + "src": "19932:665:8" }, { "body": { "nodeType": "YulBlock", - "src": "20650:408:8", + "src": "20928:408:8", "statements": [ { "expression": { @@ -15730,28 +17191,28 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "20686:6:8" + "src": "20964:6:8" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20694:9:8" + "src": "20972:9:8" } ], "functionName": { "name": "abi_encode_enum_TokenType", "nodeType": "YulIdentifier", - "src": "20660:25:8" + "src": "20938:25:8" }, "nodeType": "YulFunctionCall", - "src": "20660:44:8" + "src": "20938:44:8" }, "nodeType": "YulExpressionStatement", - "src": "20660:44:8" + "src": "20938:44:8" }, { "nodeType": "YulVariableDeclaration", - "src": "20713:29:8", + "src": "20991:29:8", "value": { "arguments": [ { @@ -15759,14 +17220,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "20731:3:8", + "src": "21009:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20736:1:8", + "src": "21014:1:8", "type": "", "value": "1" } @@ -15774,15 +17235,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "20727:3:8" + "src": "21005:3:8" }, "nodeType": "YulFunctionCall", - "src": "20727:11:8" + "src": "21005:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20740:1:8", + "src": "21018:1:8", "type": "", "value": "1" } @@ -15790,16 +17251,16 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "20723:3:8" + "src": "21001:3:8" }, "nodeType": "YulFunctionCall", - "src": "20723:19:8" + "src": "21001:19:8" }, "variables": [ { "name": "_1", "nodeType": "YulTypedName", - "src": "20717:2:8", + "src": "20995:2:8", "type": "" } ] @@ -15812,12 +17273,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20762:9:8" + "src": "21040:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20773:2:8", + "src": "21051:2:8", "type": "", "value": "32" } @@ -15825,43 +17286,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20758:3:8" + "src": "21036:3:8" }, "nodeType": "YulFunctionCall", - "src": "20758:18:8" + "src": "21036:18:8" }, { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "20782:6:8" + "src": "21060:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "20790:2:8" + "src": "21068:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "20778:3:8" + "src": "21056:3:8" }, "nodeType": "YulFunctionCall", - "src": "20778:15:8" + "src": "21056:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20751:6:8" + "src": "21029:6:8" }, "nodeType": "YulFunctionCall", - "src": "20751:43:8" + "src": "21029:43:8" }, "nodeType": "YulExpressionStatement", - "src": "20751:43:8" + "src": "21029:43:8" }, { "expression": { @@ -15871,12 +17332,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20814:9:8" + "src": "21092:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20825:2:8", + "src": "21103:2:8", "type": "", "value": "64" } @@ -15884,27 +17345,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20810:3:8" + "src": "21088:3:8" }, "nodeType": "YulFunctionCall", - "src": "20810:18:8" + "src": "21088:18:8" }, { "name": "value2", "nodeType": "YulIdentifier", - "src": "20830:6:8" + "src": "21108:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20803:6:8" + "src": "21081:6:8" }, "nodeType": "YulFunctionCall", - "src": "20803:34:8" + "src": "21081:34:8" }, "nodeType": "YulExpressionStatement", - "src": "20803:34:8" + "src": "21081:34:8" }, { "expression": { @@ -15914,12 +17375,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20857:9:8" + "src": "21135:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20868:2:8", + "src": "21146:2:8", "type": "", "value": "96" } @@ -15927,43 +17388,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20853:3:8" + "src": "21131:3:8" }, "nodeType": "YulFunctionCall", - "src": "20853:18:8" + "src": "21131:18:8" }, { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", - "src": "20877:6:8" + "src": "21155:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "20885:2:8" + "src": "21163:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "20873:3:8" + "src": "21151:3:8" }, "nodeType": "YulFunctionCall", - "src": "20873:15:8" + "src": "21151:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20846:6:8" + "src": "21124:6:8" }, "nodeType": "YulFunctionCall", - "src": "20846:43:8" + "src": "21124:43:8" }, "nodeType": "YulExpressionStatement", - "src": "20846:43:8" + "src": "21124:43:8" }, { "expression": { @@ -15973,12 +17434,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20909:9:8" + "src": "21187:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20920:3:8", + "src": "21198:3:8", "type": "", "value": "128" } @@ -15986,27 +17447,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20905:3:8" + "src": "21183:3:8" }, "nodeType": "YulFunctionCall", - "src": "20905:19:8" + "src": "21183:19:8" }, { "name": "value4", "nodeType": "YulIdentifier", - "src": "20926:6:8" + "src": "21204:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20898:6:8" + "src": "21176:6:8" }, "nodeType": "YulFunctionCall", - "src": "20898:35:8" + "src": "21176:35:8" }, "nodeType": "YulExpressionStatement", - "src": "20898:35:8" + "src": "21176:35:8" }, { "expression": { @@ -16016,12 +17477,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20953:9:8" + "src": "21231:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20964:3:8", + "src": "21242:3:8", "type": "", "value": "160" } @@ -16029,15 +17490,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20949:3:8" + "src": "21227:3:8" }, "nodeType": "YulFunctionCall", - "src": "20949:19:8" + "src": "21227:19:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "20970:3:8", + "src": "21248:3:8", "type": "", "value": "192" } @@ -16045,13 +17506,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20942:6:8" + "src": "21220:6:8" }, "nodeType": "YulFunctionCall", - "src": "20942:32:8" + "src": "21220:32:8" }, "nodeType": "YulExpressionStatement", - "src": "20942:32:8" + "src": "21220:32:8" }, { "expression": { @@ -16061,12 +17522,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "20994:9:8" + "src": "21272:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21005:3:8", + "src": "21283:3:8", "type": "", "value": "192" } @@ -16074,42 +17535,42 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "20990:3:8" + "src": "21268:3:8" }, "nodeType": "YulFunctionCall", - "src": "20990:19:8" + "src": "21268:19:8" }, { "name": "tail", "nodeType": "YulIdentifier", - "src": "21011:4:8" + "src": "21289:4:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "20983:6:8" + "src": "21261:6:8" }, "nodeType": "YulFunctionCall", - "src": "20983:33:8" + "src": "21261:33:8" }, "nodeType": "YulExpressionStatement", - "src": "20983:33:8" + "src": "21261:33:8" }, { "nodeType": "YulAssignment", - "src": "21025:27:8", + "src": "21303:27:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21037:9:8" + "src": "21315:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21048:3:8", + "src": "21326:3:8", "type": "", "value": "224" } @@ -16117,58 +17578,58 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21033:3:8" + "src": "21311:3:8" }, "nodeType": "YulFunctionCall", - "src": "21033:19:8" + "src": "21311:19:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "21025:4:8" + "src": "21303:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_enum$_TokenType_$2176_t_address_t_uint256_t_address_t_uint256_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256_t_address_t_uint256_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "20587:9:8", + "src": "20865:9:8", "type": "" }, { "name": "value4", "nodeType": "YulTypedName", - "src": "20598:6:8", + "src": "20876:6:8", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "20606:6:8", + "src": "20884:6:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "20614:6:8", + "src": "20892:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "20622:6:8", + "src": "20900:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "20630:6:8", + "src": "20908:6:8", "type": "" } ], @@ -16176,16 +17637,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "20641:4:8", + "src": "20919:4:8", "type": "" } ], - "src": "20324:734:8" + "src": "20602:734:8" }, { "body": { "nodeType": "YulBlock", - "src": "21380:462:8", + "src": "21658:462:8", "statements": [ { "expression": { @@ -16193,24 +17654,24 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "21416:6:8" + "src": "21694:6:8" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21424:9:8" + "src": "21702:9:8" } ], "functionName": { "name": "abi_encode_enum_TokenType", "nodeType": "YulIdentifier", - "src": "21390:25:8" + "src": "21668:25:8" }, "nodeType": "YulFunctionCall", - "src": "21390:44:8" + "src": "21668:44:8" }, "nodeType": "YulExpressionStatement", - "src": "21390:44:8" + "src": "21668:44:8" }, { "expression": { @@ -16220,12 +17681,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21454:9:8" + "src": "21732:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21465:2:8", + "src": "21743:2:8", "type": "", "value": "32" } @@ -16233,31 +17694,31 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21450:3:8" + "src": "21728:3:8" }, "nodeType": "YulFunctionCall", - "src": "21450:18:8" + "src": "21728:18:8" }, { "name": "value1", "nodeType": "YulIdentifier", - "src": "21470:6:8" + "src": "21748:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "21443:6:8" + "src": "21721:6:8" }, "nodeType": "YulFunctionCall", - "src": "21443:34:8" + "src": "21721:34:8" }, "nodeType": "YulExpressionStatement", - "src": "21443:34:8" + "src": "21721:34:8" }, { "nodeType": "YulVariableDeclaration", - "src": "21486:29:8", + "src": "21764:29:8", "value": { "arguments": [ { @@ -16265,14 +17726,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "21504:3:8", + "src": "21782:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21509:1:8", + "src": "21787:1:8", "type": "", "value": "1" } @@ -16280,15 +17741,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "21500:3:8" + "src": "21778:3:8" }, "nodeType": "YulFunctionCall", - "src": "21500:11:8" + "src": "21778:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21513:1:8", + "src": "21791:1:8", "type": "", "value": "1" } @@ -16296,16 +17757,16 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "21496:3:8" + "src": "21774:3:8" }, "nodeType": "YulFunctionCall", - "src": "21496:19:8" + "src": "21774:19:8" }, "variables": [ { "name": "_1", "nodeType": "YulTypedName", - "src": "21490:2:8", + "src": "21768:2:8", "type": "" } ] @@ -16318,12 +17779,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21535:9:8" + "src": "21813:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21546:2:8", + "src": "21824:2:8", "type": "", "value": "64" } @@ -16331,43 +17792,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21531:3:8" + "src": "21809:3:8" }, "nodeType": "YulFunctionCall", - "src": "21531:18:8" + "src": "21809:18:8" }, { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", - "src": "21555:6:8" + "src": "21833:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "21563:2:8" + "src": "21841:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "21551:3:8" + "src": "21829:3:8" }, "nodeType": "YulFunctionCall", - "src": "21551:15:8" + "src": "21829:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "21524:6:8" + "src": "21802:6:8" }, "nodeType": "YulFunctionCall", - "src": "21524:43:8" + "src": "21802:43:8" }, "nodeType": "YulExpressionStatement", - "src": "21524:43:8" + "src": "21802:43:8" }, { "expression": { @@ -16377,12 +17838,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21587:9:8" + "src": "21865:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21598:2:8", + "src": "21876:2:8", "type": "", "value": "96" } @@ -16390,43 +17851,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21583:3:8" + "src": "21861:3:8" }, "nodeType": "YulFunctionCall", - "src": "21583:18:8" + "src": "21861:18:8" }, { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", - "src": "21607:6:8" + "src": "21885:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "21615:2:8" + "src": "21893:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "21603:3:8" + "src": "21881:3:8" }, "nodeType": "YulFunctionCall", - "src": "21603:15:8" + "src": "21881:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "21576:6:8" + "src": "21854:6:8" }, "nodeType": "YulFunctionCall", - "src": "21576:43:8" + "src": "21854:43:8" }, "nodeType": "YulExpressionStatement", - "src": "21576:43:8" + "src": "21854:43:8" }, { "expression": { @@ -16436,12 +17897,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21639:9:8" + "src": "21917:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21650:3:8", + "src": "21928:3:8", "type": "", "value": "128" } @@ -16449,43 +17910,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21635:3:8" + "src": "21913:3:8" }, "nodeType": "YulFunctionCall", - "src": "21635:19:8" + "src": "21913:19:8" }, { "arguments": [ { "name": "value4", "nodeType": "YulIdentifier", - "src": "21660:6:8" + "src": "21938:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "21668:2:8" + "src": "21946:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "21656:3:8" + "src": "21934:3:8" }, "nodeType": "YulFunctionCall", - "src": "21656:15:8" + "src": "21934:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "21628:6:8" + "src": "21906:6:8" }, "nodeType": "YulFunctionCall", - "src": "21628:44:8" + "src": "21906:44:8" }, "nodeType": "YulExpressionStatement", - "src": "21628:44:8" + "src": "21906:44:8" }, { "expression": { @@ -16495,12 +17956,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21692:9:8" + "src": "21970:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21703:3:8", + "src": "21981:3:8", "type": "", "value": "160" } @@ -16508,27 +17969,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21688:3:8" + "src": "21966:3:8" }, "nodeType": "YulFunctionCall", - "src": "21688:19:8" + "src": "21966:19:8" }, { "name": "value5", "nodeType": "YulIdentifier", - "src": "21709:6:8" + "src": "21987:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "21681:6:8" + "src": "21959:6:8" }, "nodeType": "YulFunctionCall", - "src": "21681:35:8" + "src": "21959:35:8" }, "nodeType": "YulExpressionStatement", - "src": "21681:35:8" + "src": "21959:35:8" }, { "expression": { @@ -16538,12 +17999,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21736:9:8" + "src": "22014:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21747:3:8", + "src": "22025:3:8", "type": "", "value": "192" } @@ -16551,15 +18012,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21732:3:8" + "src": "22010:3:8" }, "nodeType": "YulFunctionCall", - "src": "21732:19:8" + "src": "22010:19:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21753:3:8", + "src": "22031:3:8", "type": "", "value": "224" } @@ -16567,40 +18028,40 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "21725:6:8" + "src": "22003:6:8" }, "nodeType": "YulFunctionCall", - "src": "21725:32:8" + "src": "22003:32:8" }, "nodeType": "YulExpressionStatement", - "src": "21725:32:8" + "src": "22003:32:8" }, { "nodeType": "YulAssignment", - "src": "21766:70:8", + "src": "22044:70:8", "value": { "arguments": [ { "name": "value6", "nodeType": "YulIdentifier", - "src": "21800:6:8" + "src": "22078:6:8" }, { "name": "value7", "nodeType": "YulIdentifier", - "src": "21808:6:8" + "src": "22086:6:8" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "21820:9:8" + "src": "22098:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "21831:3:8", + "src": "22109:3:8", "type": "", "value": "224" } @@ -16608,85 +18069,85 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "21816:3:8" + "src": "22094:3:8" }, "nodeType": "YulFunctionCall", - "src": "21816:19:8" + "src": "22094:19:8" } ], "functionName": { "name": "abi_encode_bytes_calldata", "nodeType": "YulIdentifier", - "src": "21774:25:8" + "src": "22052:25:8" }, "nodeType": "YulFunctionCall", - "src": "21774:62:8" + "src": "22052:62:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "21766:4:8" + "src": "22044:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_enum$_TokenType_$2176_t_rational_1_by_1_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TokenType_$2607_t_rational_1_by_1_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "21293:9:8", + "src": "21571:9:8", "type": "" }, { "name": "value7", "nodeType": "YulTypedName", - "src": "21304:6:8", + "src": "21582:6:8", "type": "" }, { "name": "value6", "nodeType": "YulTypedName", - "src": "21312:6:8", + "src": "21590:6:8", "type": "" }, { "name": "value5", "nodeType": "YulTypedName", - "src": "21320:6:8", + "src": "21598:6:8", "type": "" }, { "name": "value4", "nodeType": "YulTypedName", - "src": "21328:6:8", + "src": "21606:6:8", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "21336:6:8", + "src": "21614:6:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "21344:6:8", + "src": "21622:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "21352:6:8", + "src": "21630:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "21360:6:8", + "src": "21638:6:8", "type": "" } ], @@ -16694,16 +18155,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "21371:4:8", + "src": "21649:4:8", "type": "" } ], - "src": "21063:779:8" + "src": "21341:779:8" }, { "body": { "nodeType": "YulBlock", - "src": "22156:462:8", + "src": "22434:462:8", "statements": [ { "expression": { @@ -16711,24 +18172,24 @@ { "name": "value0", "nodeType": "YulIdentifier", - "src": "22192:6:8" + "src": "22470:6:8" }, { "name": "headStart", "nodeType": "YulIdentifier", - "src": "22200:9:8" + "src": "22478:9:8" } ], "functionName": { "name": "abi_encode_enum_TokenType", "nodeType": "YulIdentifier", - "src": "22166:25:8" + "src": "22444:25:8" }, "nodeType": "YulFunctionCall", - "src": "22166:44:8" + "src": "22444:44:8" }, "nodeType": "YulExpressionStatement", - "src": "22166:44:8" + "src": "22444:44:8" }, { "expression": { @@ -16738,12 +18199,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "22230:9:8" + "src": "22508:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22241:2:8", + "src": "22519:2:8", "type": "", "value": "32" } @@ -16751,31 +18212,31 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22226:3:8" + "src": "22504:3:8" }, "nodeType": "YulFunctionCall", - "src": "22226:18:8" + "src": "22504:18:8" }, { "name": "value1", "nodeType": "YulIdentifier", - "src": "22246:6:8" + "src": "22524:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "22219:6:8" + "src": "22497:6:8" }, "nodeType": "YulFunctionCall", - "src": "22219:34:8" + "src": "22497:34:8" }, "nodeType": "YulExpressionStatement", - "src": "22219:34:8" + "src": "22497:34:8" }, { "nodeType": "YulVariableDeclaration", - "src": "22262:29:8", + "src": "22540:29:8", "value": { "arguments": [ { @@ -16783,14 +18244,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "22280:3:8", + "src": "22558:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22285:1:8", + "src": "22563:1:8", "type": "", "value": "1" } @@ -16798,15 +18259,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "22276:3:8" + "src": "22554:3:8" }, "nodeType": "YulFunctionCall", - "src": "22276:11:8" + "src": "22554:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22289:1:8", + "src": "22567:1:8", "type": "", "value": "1" } @@ -16814,16 +18275,16 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "22272:3:8" + "src": "22550:3:8" }, "nodeType": "YulFunctionCall", - "src": "22272:19:8" + "src": "22550:19:8" }, "variables": [ { "name": "_1", "nodeType": "YulTypedName", - "src": "22266:2:8", + "src": "22544:2:8", "type": "" } ] @@ -16836,12 +18297,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "22311:9:8" + "src": "22589:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22322:2:8", + "src": "22600:2:8", "type": "", "value": "64" } @@ -16849,43 +18310,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22307:3:8" + "src": "22585:3:8" }, "nodeType": "YulFunctionCall", - "src": "22307:18:8" + "src": "22585:18:8" }, { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", - "src": "22331:6:8" + "src": "22609:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "22339:2:8" + "src": "22617:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "22327:3:8" + "src": "22605:3:8" }, "nodeType": "YulFunctionCall", - "src": "22327:15:8" + "src": "22605:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "22300:6:8" + "src": "22578:6:8" }, "nodeType": "YulFunctionCall", - "src": "22300:43:8" + "src": "22578:43:8" }, "nodeType": "YulExpressionStatement", - "src": "22300:43:8" + "src": "22578:43:8" }, { "expression": { @@ -16895,12 +18356,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "22363:9:8" + "src": "22641:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22374:2:8", + "src": "22652:2:8", "type": "", "value": "96" } @@ -16908,43 +18369,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22359:3:8" + "src": "22637:3:8" }, "nodeType": "YulFunctionCall", - "src": "22359:18:8" + "src": "22637:18:8" }, { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", - "src": "22383:6:8" + "src": "22661:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "22391:2:8" + "src": "22669:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "22379:3:8" + "src": "22657:3:8" }, "nodeType": "YulFunctionCall", - "src": "22379:15:8" + "src": "22657:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "22352:6:8" + "src": "22630:6:8" }, "nodeType": "YulFunctionCall", - "src": "22352:43:8" + "src": "22630:43:8" }, "nodeType": "YulExpressionStatement", - "src": "22352:43:8" + "src": "22630:43:8" }, { "expression": { @@ -16954,12 +18415,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "22415:9:8" + "src": "22693:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22426:3:8", + "src": "22704:3:8", "type": "", "value": "128" } @@ -16967,43 +18428,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22411:3:8" + "src": "22689:3:8" }, "nodeType": "YulFunctionCall", - "src": "22411:19:8" + "src": "22689:19:8" }, { "arguments": [ { "name": "value4", "nodeType": "YulIdentifier", - "src": "22436:6:8" + "src": "22714:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "22444:2:8" + "src": "22722:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "22432:3:8" + "src": "22710:3:8" }, "nodeType": "YulFunctionCall", - "src": "22432:15:8" + "src": "22710:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "22404:6:8" + "src": "22682:6:8" }, "nodeType": "YulFunctionCall", - "src": "22404:44:8" + "src": "22682:44:8" }, "nodeType": "YulExpressionStatement", - "src": "22404:44:8" + "src": "22682:44:8" }, { "expression": { @@ -17013,12 +18474,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "22468:9:8" + "src": "22746:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22479:3:8", + "src": "22757:3:8", "type": "", "value": "160" } @@ -17026,27 +18487,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22464:3:8" + "src": "22742:3:8" }, "nodeType": "YulFunctionCall", - "src": "22464:19:8" + "src": "22742:19:8" }, { "name": "value5", "nodeType": "YulIdentifier", - "src": "22485:6:8" + "src": "22763:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "22457:6:8" + "src": "22735:6:8" }, "nodeType": "YulFunctionCall", - "src": "22457:35:8" + "src": "22735:35:8" }, "nodeType": "YulExpressionStatement", - "src": "22457:35:8" + "src": "22735:35:8" }, { "expression": { @@ -17056,12 +18517,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "22512:9:8" + "src": "22790:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22523:3:8", + "src": "22801:3:8", "type": "", "value": "192" } @@ -17069,15 +18530,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22508:3:8" + "src": "22786:3:8" }, "nodeType": "YulFunctionCall", - "src": "22508:19:8" + "src": "22786:19:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22529:3:8", + "src": "22807:3:8", "type": "", "value": "224" } @@ -17085,40 +18546,40 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "22501:6:8" + "src": "22779:6:8" }, "nodeType": "YulFunctionCall", - "src": "22501:32:8" + "src": "22779:32:8" }, "nodeType": "YulExpressionStatement", - "src": "22501:32:8" + "src": "22779:32:8" }, { "nodeType": "YulAssignment", - "src": "22542:70:8", + "src": "22820:70:8", "value": { "arguments": [ { "name": "value6", "nodeType": "YulIdentifier", - "src": "22576:6:8" + "src": "22854:6:8" }, { "name": "value7", "nodeType": "YulIdentifier", - "src": "22584:6:8" + "src": "22862:6:8" }, { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "22596:9:8" + "src": "22874:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22607:3:8", + "src": "22885:3:8", "type": "", "value": "224" } @@ -17126,85 +18587,85 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22592:3:8" + "src": "22870:3:8" }, "nodeType": "YulFunctionCall", - "src": "22592:19:8" + "src": "22870:19:8" } ], "functionName": { "name": "abi_encode_bytes_calldata", "nodeType": "YulIdentifier", - "src": "22550:25:8" + "src": "22828:25:8" }, "nodeType": "YulFunctionCall", - "src": "22550:62:8" + "src": "22828:62:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "22542:4:8" + "src": "22820:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_enum$_TokenType_$2176_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TokenType_$2607_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "22069:9:8", + "src": "22347:9:8", "type": "" }, { "name": "value7", "nodeType": "YulTypedName", - "src": "22080:6:8", + "src": "22358:6:8", "type": "" }, { "name": "value6", "nodeType": "YulTypedName", - "src": "22088:6:8", + "src": "22366:6:8", "type": "" }, { "name": "value5", "nodeType": "YulTypedName", - "src": "22096:6:8", + "src": "22374:6:8", "type": "" }, { "name": "value4", "nodeType": "YulTypedName", - "src": "22104:6:8", + "src": "22382:6:8", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "22112:6:8", + "src": "22390:6:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "22120:6:8", + "src": "22398:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "22128:6:8", + "src": "22406:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "22136:6:8", + "src": "22414:6:8", "type": "" } ], @@ -17212,16 +18673,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "22147:4:8", + "src": "22425:4:8", "type": "" } ], - "src": "21847:771:8" + "src": "22125:771:8" }, { "body": { "nodeType": "YulBlock", - "src": "22797:166:8", + "src": "23075:166:8", "statements": [ { "expression": { @@ -17229,12 +18690,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "22814:9:8" + "src": "23092:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22825:2:8", + "src": "23103:2:8", "type": "", "value": "32" } @@ -17242,13 +18703,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "22807:6:8" + "src": "23085:6:8" }, "nodeType": "YulFunctionCall", - "src": "22807:21:8" + "src": "23085:21:8" }, "nodeType": "YulExpressionStatement", - "src": "22807:21:8" + "src": "23085:21:8" }, { "expression": { @@ -17258,12 +18719,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "22848:9:8" + "src": "23126:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22859:2:8", + "src": "23137:2:8", "type": "", "value": "32" } @@ -17271,15 +18732,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22844:3:8" + "src": "23122:3:8" }, "nodeType": "YulFunctionCall", - "src": "22844:18:8" + "src": "23122:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22864:2:8", + "src": "23142:2:8", "type": "", "value": "16" } @@ -17287,13 +18748,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "22837:6:8" + "src": "23115:6:8" }, "nodeType": "YulFunctionCall", - "src": "22837:30:8" + "src": "23115:30:8" }, "nodeType": "YulExpressionStatement", - "src": "22837:30:8" + "src": "23115:30:8" }, { "expression": { @@ -17303,12 +18764,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "22887:9:8" + "src": "23165:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22898:2:8", + "src": "23176:2:8", "type": "", "value": "64" } @@ -17316,15 +18777,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22883:3:8" + "src": "23161:3:8" }, "nodeType": "YulFunctionCall", - "src": "22883:18:8" + "src": "23161:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "22903:18:8", + "src": "23181:18:8", "type": "", "value": "Too many commits" } @@ -17332,28 +18793,28 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "22876:6:8" + "src": "23154:6:8" }, "nodeType": "YulFunctionCall", - "src": "22876:46:8" + "src": "23154:46:8" }, "nodeType": "YulExpressionStatement", - "src": "22876:46:8" + "src": "23154:46:8" }, { "nodeType": "YulAssignment", - "src": "22931:26:8", + "src": "23209:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "22943:9:8" + "src": "23221:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "22954:2:8", + "src": "23232:2:8", "type": "", "value": "96" } @@ -17361,16 +18822,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "22939:3:8" + "src": "23217:3:8" }, "nodeType": "YulFunctionCall", - "src": "22939:18:8" + "src": "23217:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "22931:4:8" + "src": "23209:4:8" } ] } @@ -17382,7 +18843,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "22774:9:8", + "src": "23052:9:8", "type": "" } ], @@ -17390,16 +18851,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "22788:4:8", + "src": "23066:4:8", "type": "" } ], - "src": "22623:340:8" + "src": "22901:340:8" }, { "body": { "nodeType": "YulBlock", - "src": "23142:163:8", + "src": "23420:163:8", "statements": [ { "expression": { @@ -17407,12 +18868,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23159:9:8" + "src": "23437:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23170:2:8", + "src": "23448:2:8", "type": "", "value": "32" } @@ -17420,13 +18881,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "23152:6:8" + "src": "23430:6:8" }, "nodeType": "YulFunctionCall", - "src": "23152:21:8" + "src": "23430:21:8" }, "nodeType": "YulExpressionStatement", - "src": "23152:21:8" + "src": "23430:21:8" }, { "expression": { @@ -17436,12 +18897,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23193:9:8" + "src": "23471:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23204:2:8", + "src": "23482:2:8", "type": "", "value": "32" } @@ -17449,15 +18910,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23189:3:8" + "src": "23467:3:8" }, "nodeType": "YulFunctionCall", - "src": "23189:18:8" + "src": "23467:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23209:2:8", + "src": "23487:2:8", "type": "", "value": "13" } @@ -17465,13 +18926,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "23182:6:8" + "src": "23460:6:8" }, "nodeType": "YulFunctionCall", - "src": "23182:30:8" + "src": "23460:30:8" }, "nodeType": "YulExpressionStatement", - "src": "23182:30:8" + "src": "23460:30:8" }, { "expression": { @@ -17481,12 +18942,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23232:9:8" + "src": "23510:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23243:2:8", + "src": "23521:2:8", "type": "", "value": "64" } @@ -17494,15 +18955,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23228:3:8" + "src": "23506:3:8" }, "nodeType": "YulFunctionCall", - "src": "23228:18:8" + "src": "23506:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "23248:15:8", + "src": "23526:15:8", "type": "", "value": "Nonce too low" } @@ -17510,28 +18971,28 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "23221:6:8" + "src": "23499:6:8" }, "nodeType": "YulFunctionCall", - "src": "23221:43:8" + "src": "23499:43:8" }, "nodeType": "YulExpressionStatement", - "src": "23221:43:8" + "src": "23499:43:8" }, { "nodeType": "YulAssignment", - "src": "23273:26:8", + "src": "23551:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23285:9:8" + "src": "23563:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23296:2:8", + "src": "23574:2:8", "type": "", "value": "96" } @@ -17539,16 +19000,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23281:3:8" + "src": "23559:3:8" }, "nodeType": "YulFunctionCall", - "src": "23281:18:8" + "src": "23559:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "23273:4:8" + "src": "23551:4:8" } ] } @@ -17560,7 +19021,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "23119:9:8", + "src": "23397:9:8", "type": "" } ], @@ -17568,16 +19029,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "23133:4:8", + "src": "23411:4:8", "type": "" } ], - "src": "22968:337:8" + "src": "23246:337:8" }, { "body": { "nodeType": "YulBlock", - "src": "23484:180:8", + "src": "23762:180:8", "statements": [ { "expression": { @@ -17585,12 +19046,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23501:9:8" + "src": "23779:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23512:2:8", + "src": "23790:2:8", "type": "", "value": "32" } @@ -17598,13 +19059,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "23494:6:8" + "src": "23772:6:8" }, "nodeType": "YulFunctionCall", - "src": "23494:21:8" + "src": "23772:21:8" }, "nodeType": "YulExpressionStatement", - "src": "23494:21:8" + "src": "23772:21:8" }, { "expression": { @@ -17614,12 +19075,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23535:9:8" + "src": "23813:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23546:2:8", + "src": "23824:2:8", "type": "", "value": "32" } @@ -17627,15 +19088,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23531:3:8" + "src": "23809:3:8" }, "nodeType": "YulFunctionCall", - "src": "23531:18:8" + "src": "23809:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23551:2:8", + "src": "23829:2:8", "type": "", "value": "30" } @@ -17643,13 +19104,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "23524:6:8" + "src": "23802:6:8" }, "nodeType": "YulFunctionCall", - "src": "23524:30:8" + "src": "23802:30:8" }, "nodeType": "YulExpressionStatement", - "src": "23524:30:8" + "src": "23802:30:8" }, { "expression": { @@ -17659,12 +19120,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23574:9:8" + "src": "23852:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23585:2:8", + "src": "23863:2:8", "type": "", "value": "64" } @@ -17672,15 +19133,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23570:3:8" + "src": "23848:3:8" }, "nodeType": "YulFunctionCall", - "src": "23570:18:8" + "src": "23848:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "23590:32:8", + "src": "23868:32:8", "type": "", "value": "Last resort address is not set" } @@ -17688,28 +19149,28 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "23563:6:8" + "src": "23841:6:8" }, "nodeType": "YulFunctionCall", - "src": "23563:60:8" + "src": "23841:60:8" }, "nodeType": "YulExpressionStatement", - "src": "23563:60:8" + "src": "23841:60:8" }, { "nodeType": "YulAssignment", - "src": "23632:26:8", + "src": "23910:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23644:9:8" + "src": "23922:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23655:2:8", + "src": "23933:2:8", "type": "", "value": "96" } @@ -17717,16 +19178,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23640:3:8" + "src": "23918:3:8" }, "nodeType": "YulFunctionCall", - "src": "23640:18:8" + "src": "23918:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "23632:4:8" + "src": "23910:4:8" } ] } @@ -17738,7 +19199,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "23461:9:8", + "src": "23739:9:8", "type": "" } ], @@ -17746,16 +19207,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "23475:4:8", + "src": "23753:4:8", "type": "" } ], - "src": "23310:354:8" + "src": "23588:354:8" }, { "body": { "nodeType": "YulBlock", - "src": "23843:165:8", + "src": "24121:165:8", "statements": [ { "expression": { @@ -17763,12 +19224,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23860:9:8" + "src": "24138:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23871:2:8", + "src": "24149:2:8", "type": "", "value": "32" } @@ -17776,13 +19237,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "23853:6:8" + "src": "24131:6:8" }, "nodeType": "YulFunctionCall", - "src": "23853:21:8" + "src": "24131:21:8" }, "nodeType": "YulExpressionStatement", - "src": "23853:21:8" + "src": "24131:21:8" }, { "expression": { @@ -17792,12 +19253,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23894:9:8" + "src": "24172:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23905:2:8", + "src": "24183:2:8", "type": "", "value": "32" } @@ -17805,15 +19266,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23890:3:8" + "src": "24168:3:8" }, "nodeType": "YulFunctionCall", - "src": "23890:18:8" + "src": "24168:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23910:2:8", + "src": "24188:2:8", "type": "", "value": "15" } @@ -17821,13 +19282,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "23883:6:8" + "src": "24161:6:8" }, "nodeType": "YulFunctionCall", - "src": "23883:30:8" + "src": "24161:30:8" }, "nodeType": "YulExpressionStatement", - "src": "23883:30:8" + "src": "24161:30:8" }, { "expression": { @@ -17837,12 +19298,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23933:9:8" + "src": "24211:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23944:2:8", + "src": "24222:2:8", "type": "", "value": "64" } @@ -17850,15 +19311,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23929:3:8" + "src": "24207:3:8" }, "nodeType": "YulFunctionCall", - "src": "23929:18:8" + "src": "24207:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "23949:17:8", + "src": "24227:17:8", "type": "", "value": "Reveal too late" } @@ -17866,28 +19327,28 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "23922:6:8" + "src": "24200:6:8" }, "nodeType": "YulFunctionCall", - "src": "23922:45:8" + "src": "24200:45:8" }, "nodeType": "YulExpressionStatement", - "src": "23922:45:8" + "src": "24200:45:8" }, { "nodeType": "YulAssignment", - "src": "23976:26:8", + "src": "24254:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "23988:9:8" + "src": "24266:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "23999:2:8", + "src": "24277:2:8", "type": "", "value": "96" } @@ -17895,16 +19356,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "23984:3:8" + "src": "24262:3:8" }, "nodeType": "YulFunctionCall", - "src": "23984:18:8" + "src": "24262:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "23976:4:8" + "src": "24254:4:8" } ] } @@ -17916,7 +19377,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "23820:9:8", + "src": "24098:9:8", "type": "" } ], @@ -17924,16 +19385,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "23834:4:8", + "src": "24112:4:8", "type": "" } ], - "src": "23669:339:8" + "src": "23947:339:8" }, { "body": { "nodeType": "YulBlock", - "src": "24187:170:8", + "src": "24465:170:8", "statements": [ { "expression": { @@ -17941,12 +19402,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24204:9:8" + "src": "24482:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24215:2:8", + "src": "24493:2:8", "type": "", "value": "32" } @@ -17954,13 +19415,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "24197:6:8" + "src": "24475:6:8" }, "nodeType": "YulFunctionCall", - "src": "24197:21:8" + "src": "24475:21:8" }, "nodeType": "YulExpressionStatement", - "src": "24197:21:8" + "src": "24475:21:8" }, { "expression": { @@ -17970,12 +19431,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24238:9:8" + "src": "24516:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24249:2:8", + "src": "24527:2:8", "type": "", "value": "32" } @@ -17983,15 +19444,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24234:3:8" + "src": "24512:3:8" }, "nodeType": "YulFunctionCall", - "src": "24234:18:8" + "src": "24512:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24254:2:8", + "src": "24532:2:8", "type": "", "value": "20" } @@ -17999,13 +19460,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "24227:6:8" + "src": "24505:6:8" }, "nodeType": "YulFunctionCall", - "src": "24227:30:8" + "src": "24505:30:8" }, "nodeType": "YulExpressionStatement", - "src": "24227:30:8" + "src": "24505:30:8" }, { "expression": { @@ -18015,12 +19476,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24277:9:8" + "src": "24555:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24288:2:8", + "src": "24566:2:8", "type": "", "value": "64" } @@ -18028,15 +19489,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24273:3:8" + "src": "24551:3:8" }, "nodeType": "YulFunctionCall", - "src": "24273:18:8" + "src": "24551:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "24293:22:8", + "src": "24571:22:8", "type": "", "value": "input bytes too long" } @@ -18044,28 +19505,28 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "24266:6:8" + "src": "24544:6:8" }, "nodeType": "YulFunctionCall", - "src": "24266:50:8" + "src": "24544:50:8" }, "nodeType": "YulExpressionStatement", - "src": "24266:50:8" + "src": "24544:50:8" }, { "nodeType": "YulAssignment", - "src": "24325:26:8", + "src": "24603:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24337:9:8" + "src": "24615:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24348:2:8", + "src": "24626:2:8", "type": "", "value": "96" } @@ -18073,16 +19534,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24333:3:8" + "src": "24611:3:8" }, "nodeType": "YulFunctionCall", - "src": "24333:18:8" + "src": "24611:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "24325:4:8" + "src": "24603:4:8" } ] } @@ -18094,7 +19555,7 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "24164:9:8", + "src": "24442:9:8", "type": "" } ], @@ -18102,16 +19563,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "24178:4:8", + "src": "24456:4:8", "type": "" } ], - "src": "24013:344:8" + "src": "24291:344:8" }, { "body": { "nodeType": "YulBlock", - "src": "24536:174:8", + "src": "24814:174:8", "statements": [ { "expression": { @@ -18119,12 +19580,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24553:9:8" + "src": "24831:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24564:2:8", + "src": "24842:2:8", "type": "", "value": "32" } @@ -18132,13 +19593,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "24546:6:8" + "src": "24824:6:8" }, "nodeType": "YulFunctionCall", - "src": "24546:21:8" + "src": "24824:21:8" }, "nodeType": "YulExpressionStatement", - "src": "24546:21:8" + "src": "24824:21:8" }, { "expression": { @@ -18148,12 +19609,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24587:9:8" + "src": "24865:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24598:2:8", + "src": "24876:2:8", "type": "", "value": "32" } @@ -18161,15 +19622,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24583:3:8" + "src": "24861:3:8" }, "nodeType": "YulFunctionCall", - "src": "24583:18:8" + "src": "24861:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24603:2:8", + "src": "24881:2:8", "type": "", "value": "24" } @@ -18177,13 +19638,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "24576:6:8" + "src": "24854:6:8" }, "nodeType": "YulFunctionCall", - "src": "24576:30:8" + "src": "24854:30:8" }, "nodeType": "YulExpressionStatement", - "src": "24576:30:8" + "src": "24854:30:8" }, { "expression": { @@ -18193,12 +19654,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24626:9:8" + "src": "24904:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24637:2:8", + "src": "24915:2:8", "type": "", "value": "64" } @@ -18206,15 +19667,15 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24622:3:8" + "src": "24900:3:8" }, "nodeType": "YulFunctionCall", - "src": "24622:18:8" + "src": "24900:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "24642:26:8", + "src": "24920:26:8", "type": "", "value": "Commit already completed" } @@ -18222,28 +19683,384 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "24615:6:8" + "src": "24893:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "24893:54:8" + }, + "nodeType": "YulExpressionStatement", + "src": "24893:54:8" + }, + { + "nodeType": "YulAssignment", + "src": "24956:26:8", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24968:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24979:2:8", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24964:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "24964:18:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24956:4:8" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_2d6af051cc9bdd806c60b20e274721a89fb9a7025afbe00dde07d3201c4068b2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24791:9:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "24805:4:8", + "type": "" + } + ], + "src": "24640:348:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25167:173:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25184:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25195:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25177:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "25177:21:8" + }, + "nodeType": "YulExpressionStatement", + "src": "25177:21:8" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25218:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25229:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25214:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "25214:18:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25234:2:8", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25207:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "25207:30:8" + }, + "nodeType": "YulExpressionStatement", + "src": "25207:30:8" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25257:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25268:2:8", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25253:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "25253:18:8" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25273:25:8", + "type": "", + "value": "Parameter hash mismatch" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25246:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "25246:53:8" + }, + "nodeType": "YulExpressionStatement", + "src": "25246:53:8" + }, + { + "nodeType": "YulAssignment", + "src": "25308:26:8", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25320:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25331:2:8", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25316:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "25316:18:8" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25308:4:8" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3430d3063c70bc84041a3bb75a9010a8e7685d878f7521f09ab01e30ea2f9f24__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "25144:9:8", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "25158:4:8", + "type": "" + } + ], + "src": "24993:347:8" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25519:165:8", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25536:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25547:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25529:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "25529:21:8" + }, + "nodeType": "YulExpressionStatement", + "src": "25529:21:8" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25570:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25581:2:8", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25566:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "25566:18:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25586:2:8", + "type": "", + "value": "15" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25559:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "25559:30:8" + }, + "nodeType": "YulExpressionStatement", + "src": "25559:30:8" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25609:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25620:2:8", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25605:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "25605:18:8" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "25625:17:8", + "type": "", + "value": "No commit found" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25598:6:8" }, "nodeType": "YulFunctionCall", - "src": "24615:54:8" + "src": "25598:45:8" }, "nodeType": "YulExpressionStatement", - "src": "24615:54:8" + "src": "25598:45:8" }, { "nodeType": "YulAssignment", - "src": "24678:26:8", + "src": "25652:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24690:9:8" + "src": "25664:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24701:2:8", + "src": "25675:2:8", "type": "", "value": "96" } @@ -18251,28 +20068,28 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24686:3:8" + "src": "25660:3:8" }, "nodeType": "YulFunctionCall", - "src": "24686:18:8" + "src": "25660:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "24678:4:8" + "src": "25652:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_2d6af051cc9bdd806c60b20e274721a89fb9a7025afbe00dde07d3201c4068b2__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_38f47be26bf822ff597a5cbffa2774ecae1ceaa169f734b7db0a07fb62c9547a__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "24513:9:8", + "src": "25496:9:8", "type": "" } ], @@ -18280,16 +20097,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "24527:4:8", + "src": "25510:4:8", "type": "" } ], - "src": "24362:348:8" + "src": "25345:339:8" }, { "body": { "nodeType": "YulBlock", - "src": "24889:173:8", + "src": "25863:169:8", "statements": [ { "expression": { @@ -18297,12 +20114,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24906:9:8" + "src": "25880:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24917:2:8", + "src": "25891:2:8", "type": "", "value": "32" } @@ -18310,13 +20127,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "24899:6:8" + "src": "25873:6:8" }, "nodeType": "YulFunctionCall", - "src": "24899:21:8" + "src": "25873:21:8" }, "nodeType": "YulExpressionStatement", - "src": "24899:21:8" + "src": "25873:21:8" }, { "expression": { @@ -18326,12 +20143,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24940:9:8" + "src": "25914:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24951:2:8", + "src": "25925:2:8", "type": "", "value": "32" } @@ -18339,29 +20156,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24936:3:8" + "src": "25910:3:8" }, "nodeType": "YulFunctionCall", - "src": "24936:18:8" + "src": "25910:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24956:2:8", + "src": "25930:2:8", "type": "", - "value": "23" + "value": "19" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "24929:6:8" + "src": "25903:6:8" }, "nodeType": "YulFunctionCall", - "src": "24929:30:8" + "src": "25903:30:8" }, "nodeType": "YulExpressionStatement", - "src": "24929:30:8" + "src": "25903:30:8" }, { "expression": { @@ -18371,12 +20188,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "24979:9:8" + "src": "25953:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "24990:2:8", + "src": "25964:2:8", "type": "", "value": "64" } @@ -18384,44 +20201,44 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "24975:3:8" + "src": "25949:3:8" }, "nodeType": "YulFunctionCall", - "src": "24975:18:8" + "src": "25949:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "24995:25:8", + "src": "25969:21:8", "type": "", - "value": "Parameter hash mismatch" + "value": "Too early to retire" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "24968:6:8" + "src": "25942:6:8" }, "nodeType": "YulFunctionCall", - "src": "24968:53:8" + "src": "25942:49:8" }, "nodeType": "YulExpressionStatement", - "src": "24968:53:8" + "src": "25942:49:8" }, { "nodeType": "YulAssignment", - "src": "25030:26:8", + "src": "26000:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "25042:9:8" + "src": "26012:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25053:2:8", + "src": "26023:2:8", "type": "", "value": "96" } @@ -18429,28 +20246,28 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25038:3:8" + "src": "26008:3:8" }, "nodeType": "YulFunctionCall", - "src": "25038:18:8" + "src": "26008:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "25030:4:8" + "src": "26000:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_3430d3063c70bc84041a3bb75a9010a8e7685d878f7521f09ab01e30ea2f9f24__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_50d19c134c4136d96b547b25b22aa8e1363529709733541230ebfa41cb82b262__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "24866:9:8", + "src": "25840:9:8", "type": "" } ], @@ -18458,16 +20275,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "24880:4:8", + "src": "25854:4:8", "type": "" } ], - "src": "24715:347:8" + "src": "25689:343:8" }, { "body": { "nodeType": "YulBlock", - "src": "25241:165:8", + "src": "26211:176:8", "statements": [ { "expression": { @@ -18475,12 +20292,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "25258:9:8" + "src": "26228:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25269:2:8", + "src": "26239:2:8", "type": "", "value": "32" } @@ -18488,13 +20305,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "25251:6:8" + "src": "26221:6:8" }, "nodeType": "YulFunctionCall", - "src": "25251:21:8" + "src": "26221:21:8" }, "nodeType": "YulExpressionStatement", - "src": "25251:21:8" + "src": "26221:21:8" }, { "expression": { @@ -18504,12 +20321,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "25292:9:8" + "src": "26262:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25303:2:8", + "src": "26273:2:8", "type": "", "value": "32" } @@ -18517,29 +20334,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25288:3:8" + "src": "26258:3:8" }, "nodeType": "YulFunctionCall", - "src": "25288:18:8" + "src": "26258:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25308:2:8", + "src": "26278:2:8", "type": "", - "value": "15" + "value": "26" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "25281:6:8" + "src": "26251:6:8" }, "nodeType": "YulFunctionCall", - "src": "25281:30:8" + "src": "26251:30:8" }, "nodeType": "YulExpressionStatement", - "src": "25281:30:8" + "src": "26251:30:8" }, { "expression": { @@ -18549,12 +20366,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "25331:9:8" + "src": "26301:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25342:2:8", + "src": "26312:2:8", "type": "", "value": "64" } @@ -18562,44 +20379,44 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25327:3:8" + "src": "26297:3:8" }, "nodeType": "YulFunctionCall", - "src": "25327:18:8" + "src": "26297:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "25347:17:8", + "src": "26317:28:8", "type": "", - "value": "No commit found" + "value": "Index - timestamp mismatch" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "25320:6:8" + "src": "26290:6:8" }, "nodeType": "YulFunctionCall", - "src": "25320:45:8" + "src": "26290:56:8" }, "nodeType": "YulExpressionStatement", - "src": "25320:45:8" + "src": "26290:56:8" }, { "nodeType": "YulAssignment", - "src": "25374:26:8", + "src": "26355:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "25386:9:8" + "src": "26367:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25397:2:8", + "src": "26378:2:8", "type": "", "value": "96" } @@ -18607,28 +20424,28 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25382:3:8" + "src": "26363:3:8" }, "nodeType": "YulFunctionCall", - "src": "25382:18:8" + "src": "26363:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "25374:4:8" + "src": "26355:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_38f47be26bf822ff597a5cbffa2774ecae1ceaa169f734b7db0a07fb62c9547a__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "25218:9:8", + "src": "26188:9:8", "type": "" } ], @@ -18636,16 +20453,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "25232:4:8", + "src": "26202:4:8", "type": "" } ], - "src": "25067:339:8" + "src": "26037:350:8" }, { "body": { "nodeType": "YulBlock", - "src": "25585:169:8", + "src": "26566:168:8", "statements": [ { "expression": { @@ -18653,12 +20470,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "25602:9:8" + "src": "26583:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25613:2:8", + "src": "26594:2:8", "type": "", "value": "32" } @@ -18666,13 +20483,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "25595:6:8" + "src": "26576:6:8" }, "nodeType": "YulFunctionCall", - "src": "25595:21:8" + "src": "26576:21:8" }, "nodeType": "YulExpressionStatement", - "src": "25595:21:8" + "src": "26576:21:8" }, { "expression": { @@ -18682,12 +20499,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "25636:9:8" + "src": "26617:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25647:2:8", + "src": "26628:2:8", "type": "", "value": "32" } @@ -18695,29 +20512,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25632:3:8" + "src": "26613:3:8" }, "nodeType": "YulFunctionCall", - "src": "25632:18:8" + "src": "26613:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25652:2:8", + "src": "26633:2:8", "type": "", - "value": "19" + "value": "18" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "25625:6:8" + "src": "26606:6:8" }, "nodeType": "YulFunctionCall", - "src": "25625:30:8" + "src": "26606:30:8" }, "nodeType": "YulExpressionStatement", - "src": "25625:30:8" + "src": "26606:30:8" }, { "expression": { @@ -18727,12 +20544,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "25675:9:8" + "src": "26656:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25686:2:8", + "src": "26667:2:8", "type": "", "value": "64" } @@ -18740,44 +20557,44 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25671:3:8" + "src": "26652:3:8" }, "nodeType": "YulFunctionCall", - "src": "25671:18:8" + "src": "26652:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "25691:21:8", + "src": "26672:20:8", "type": "", - "value": "Too early to retire" + "value": "Proof is incorrect" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "25664:6:8" + "src": "26645:6:8" }, "nodeType": "YulFunctionCall", - "src": "25664:49:8" + "src": "26645:48:8" }, "nodeType": "YulExpressionStatement", - "src": "25664:49:8" + "src": "26645:48:8" }, { "nodeType": "YulAssignment", - "src": "25722:26:8", + "src": "26702:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "25734:9:8" + "src": "26714:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25745:2:8", + "src": "26725:2:8", "type": "", "value": "96" } @@ -18785,28 +20602,28 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25730:3:8" + "src": "26710:3:8" }, "nodeType": "YulFunctionCall", - "src": "25730:18:8" + "src": "26710:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "25722:4:8" + "src": "26702:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_50d19c134c4136d96b547b25b22aa8e1363529709733541230ebfa41cb82b262__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_5515ff285a2022327bc0ffdc690388a3a1d15360640a68caecd56fe24371f01a__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "25562:9:8", + "src": "26543:9:8", "type": "" } ], @@ -18814,16 +20631,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "25576:4:8", + "src": "26557:4:8", "type": "" } ], - "src": "25411:343:8" + "src": "26392:342:8" }, { "body": { "nodeType": "YulBlock", - "src": "25933:176:8", + "src": "26913:174:8", "statements": [ { "expression": { @@ -18831,12 +20648,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "25950:9:8" + "src": "26930:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25961:2:8", + "src": "26941:2:8", "type": "", "value": "32" } @@ -18844,13 +20661,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "25943:6:8" + "src": "26923:6:8" }, "nodeType": "YulFunctionCall", - "src": "25943:21:8" + "src": "26923:21:8" }, "nodeType": "YulExpressionStatement", - "src": "25943:21:8" + "src": "26923:21:8" }, { "expression": { @@ -18860,12 +20677,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "25984:9:8" + "src": "26964:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "25995:2:8", + "src": "26975:2:8", "type": "", "value": "32" } @@ -18873,29 +20690,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "25980:3:8" + "src": "26960:3:8" }, "nodeType": "YulFunctionCall", - "src": "25980:18:8" + "src": "26960:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26000:2:8", + "src": "26980:2:8", "type": "", - "value": "26" + "value": "24" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "25973:6:8" + "src": "26953:6:8" }, "nodeType": "YulFunctionCall", - "src": "25973:30:8" + "src": "26953:30:8" }, "nodeType": "YulExpressionStatement", - "src": "25973:30:8" + "src": "26953:30:8" }, { "expression": { @@ -18905,12 +20722,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26023:9:8" + "src": "27003:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26034:2:8", + "src": "27014:2:8", "type": "", "value": "64" } @@ -18918,44 +20735,44 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26019:3:8" + "src": "26999:3:8" }, "nodeType": "YulFunctionCall", - "src": "26019:18:8" + "src": "26999:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "26039:28:8", + "src": "27019:26:8", "type": "", - "value": "Index - timestamp mismatch" + "value": "Invalid commit timestamp" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "26012:6:8" + "src": "26992:6:8" }, "nodeType": "YulFunctionCall", - "src": "26012:56:8" + "src": "26992:54:8" }, "nodeType": "YulExpressionStatement", - "src": "26012:56:8" + "src": "26992:54:8" }, { "nodeType": "YulAssignment", - "src": "26077:26:8", + "src": "27055:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26089:9:8" + "src": "27067:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26100:2:8", + "src": "27078:2:8", "type": "", "value": "96" } @@ -18963,28 +20780,28 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26085:3:8" + "src": "27063:3:8" }, "nodeType": "YulFunctionCall", - "src": "26085:18:8" + "src": "27063:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "26077:4:8" + "src": "27055:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_791866c3f9c9c03c601447bf48dd4e0bd3f849759626f2144adccf6e77c6e64d__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "25910:9:8", + "src": "26890:9:8", "type": "" } ], @@ -18992,16 +20809,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "25924:4:8", + "src": "26904:4:8", "type": "" } ], - "src": "25759:350:8" + "src": "26739:348:8" }, { "body": { "nodeType": "YulBlock", - "src": "26288:168:8", + "src": "27266:226:8", "statements": [ { "expression": { @@ -19009,12 +20826,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26305:9:8" + "src": "27283:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26316:2:8", + "src": "27294:2:8", "type": "", "value": "32" } @@ -19022,13 +20839,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "26298:6:8" + "src": "27276:6:8" }, "nodeType": "YulFunctionCall", - "src": "26298:21:8" + "src": "27276:21:8" }, "nodeType": "YulExpressionStatement", - "src": "26298:21:8" + "src": "27276:21:8" }, { "expression": { @@ -19038,12 +20855,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26339:9:8" + "src": "27317:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26350:2:8", + "src": "27328:2:8", "type": "", "value": "32" } @@ -19051,29 +20868,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26335:3:8" + "src": "27313:3:8" }, "nodeType": "YulFunctionCall", - "src": "26335:18:8" + "src": "27313:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26355:2:8", + "src": "27333:2:8", "type": "", - "value": "18" + "value": "36" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "26328:6:8" + "src": "27306:6:8" }, "nodeType": "YulFunctionCall", - "src": "26328:30:8" + "src": "27306:30:8" }, "nodeType": "YulExpressionStatement", - "src": "26328:30:8" + "src": "27306:30:8" }, { "expression": { @@ -19083,12 +20900,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26378:9:8" + "src": "27356:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26389:2:8", + "src": "27367:2:8", "type": "", "value": "64" } @@ -19096,162 +20913,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26374:3:8" + "src": "27352:3:8" }, "nodeType": "YulFunctionCall", - "src": "26374:18:8" + "src": "27352:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "26394:20:8", - "type": "", - "value": "Proof is incorrect" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "26367:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "26367:48:8" - }, - "nodeType": "YulExpressionStatement", - "src": "26367:48:8" - }, - { - "nodeType": "YulAssignment", - "src": "26424:26:8", - "value": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "26436:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "26447:2:8", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "26432:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "26432:18:8" - }, - "variableNames": [ - { - "name": "tail", - "nodeType": "YulIdentifier", - "src": "26424:4:8" - } - ] - } - ] - }, - "name": "abi_encode_tuple_t_stringliteral_5515ff285a2022327bc0ffdc690388a3a1d15360640a68caecd56fe24371f01a__to_t_string_memory_ptr__fromStack_reversed", - "nodeType": "YulFunctionDefinition", - "parameters": [ - { - "name": "headStart", - "nodeType": "YulTypedName", - "src": "26265:9:8", - "type": "" - } - ], - "returnVariables": [ - { - "name": "tail", - "nodeType": "YulTypedName", - "src": "26279:4:8", - "type": "" - } - ], - "src": "26114:342:8" - }, - { - "body": { - "nodeType": "YulBlock", - "src": "26635:174:8", - "statements": [ - { - "expression": { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "26652:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "26663:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "26645:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "26645:21:8" - }, - "nodeType": "YulExpressionStatement", - "src": "26645:21:8" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "26686:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "26697:2:8", - "type": "", - "value": "32" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "26682:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "26682:18:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "26702:2:8", + "src": "27372:34:8", "type": "", - "value": "24" + "value": "data must have length multiple t" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "26675:6:8" + "src": "27345:6:8" }, "nodeType": "YulFunctionCall", - "src": "26675:30:8" + "src": "27345:62:8" }, "nodeType": "YulExpressionStatement", - "src": "26675:30:8" + "src": "27345:62:8" }, { "expression": { @@ -19261,86 +20945,86 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26725:9:8" + "src": "27427:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26736:2:8", + "src": "27438:2:8", "type": "", - "value": "64" + "value": "96" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26721:3:8" + "src": "27423:3:8" }, "nodeType": "YulFunctionCall", - "src": "26721:18:8" + "src": "27423:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "26741:26:8", + "src": "27443:6:8", "type": "", - "value": "Invalid commit timestamp" + "value": "o 96" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "26714:6:8" + "src": "27416:6:8" }, "nodeType": "YulFunctionCall", - "src": "26714:54:8" + "src": "27416:34:8" }, "nodeType": "YulExpressionStatement", - "src": "26714:54:8" + "src": "27416:34:8" }, { "nodeType": "YulAssignment", - "src": "26777:26:8", + "src": "27459:27:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "26789:9:8" + "src": "27471:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "26800:2:8", + "src": "27482:3:8", "type": "", - "value": "96" + "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "26785:3:8" + "src": "27467:3:8" }, "nodeType": "YulFunctionCall", - "src": "26785:18:8" + "src": "27467:19:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "26777:4:8" + "src": "27459:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_791866c3f9c9c03c601447bf48dd4e0bd3f849759626f2144adccf6e77c6e64d__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_7fb6a81bbdba15000418055bc5e058938e4fd0b50065d70de11ee03ca8f293e3__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "26612:9:8", + "src": "27243:9:8", "type": "" } ], @@ -19348,16 +21032,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "26626:4:8", + "src": "27257:4:8", "type": "" } ], - "src": "26461:348:8" + "src": "27092:400:8" }, { "body": { "nodeType": "YulBlock", - "src": "26988:226:8", + "src": "27671:179:8", "statements": [ { "expression": { @@ -19365,12 +21049,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27005:9:8" + "src": "27688:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27016:2:8", + "src": "27699:2:8", "type": "", "value": "32" } @@ -19378,13 +21062,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "26998:6:8" + "src": "27681:6:8" }, "nodeType": "YulFunctionCall", - "src": "26998:21:8" + "src": "27681:21:8" }, "nodeType": "YulExpressionStatement", - "src": "26998:21:8" + "src": "27681:21:8" }, { "expression": { @@ -19394,12 +21078,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27039:9:8" + "src": "27722:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27050:2:8", + "src": "27733:2:8", "type": "", "value": "32" } @@ -19407,29 +21091,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27035:3:8" + "src": "27718:3:8" }, "nodeType": "YulFunctionCall", - "src": "27035:18:8" + "src": "27718:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27055:2:8", + "src": "27738:2:8", "type": "", - "value": "36" + "value": "29" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "27028:6:8" + "src": "27711:6:8" }, "nodeType": "YulFunctionCall", - "src": "27028:30:8" + "src": "27711:30:8" }, "nodeType": "YulExpressionStatement", - "src": "27028:30:8" + "src": "27711:30:8" }, { "expression": { @@ -19439,12 +21123,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27078:9:8" + "src": "27761:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27089:2:8", + "src": "27772:2:8", "type": "", "value": "64" } @@ -19452,118 +21136,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27074:3:8" + "src": "27757:3:8" }, "nodeType": "YulFunctionCall", - "src": "27074:18:8" + "src": "27757:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "27094:34:8", + "src": "27777:31:8", "type": "", - "value": "data must have length multiple t" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "27067:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "27067:62:8" - }, - "nodeType": "YulExpressionStatement", - "src": "27067:62:8" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "27149:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "27160:2:8", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "27145:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "27145:18:8" - }, - { - "kind": "string", - "nodeType": "YulLiteral", - "src": "27165:6:8", - "type": "", - "value": "o 96" + "value": "Not enough neighbors provided" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "27138:6:8" + "src": "27750:6:8" }, "nodeType": "YulFunctionCall", - "src": "27138:34:8" + "src": "27750:59:8" }, "nodeType": "YulExpressionStatement", - "src": "27138:34:8" + "src": "27750:59:8" }, { "nodeType": "YulAssignment", - "src": "27181:27:8", + "src": "27818:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27193:9:8" + "src": "27830:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27204:3:8", + "src": "27841:2:8", "type": "", - "value": "128" + "value": "96" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27189:3:8" + "src": "27826:3:8" }, "nodeType": "YulFunctionCall", - "src": "27189:19:8" + "src": "27826:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "27181:4:8" + "src": "27818:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_7fb6a81bbdba15000418055bc5e058938e4fd0b50065d70de11ee03ca8f293e3__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_83d08d6dcf099c52fbe149a08cb4ffd65f3fec6dbf87dba7bc08b7a534982441__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "26965:9:8", + "src": "27648:9:8", "type": "" } ], @@ -19571,16 +21210,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "26979:4:8", + "src": "27662:4:8", "type": "" } ], - "src": "26814:400:8" + "src": "27497:353:8" }, { "body": { "nodeType": "YulBlock", - "src": "27393:179:8", + "src": "28029:165:8", "statements": [ { "expression": { @@ -19588,12 +21227,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27410:9:8" + "src": "28046:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27421:2:8", + "src": "28057:2:8", "type": "", "value": "32" } @@ -19601,13 +21240,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "27403:6:8" + "src": "28039:6:8" }, "nodeType": "YulFunctionCall", - "src": "27403:21:8" + "src": "28039:21:8" }, "nodeType": "YulExpressionStatement", - "src": "27403:21:8" + "src": "28039:21:8" }, { "expression": { @@ -19617,12 +21256,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27444:9:8" + "src": "28080:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27455:2:8", + "src": "28091:2:8", "type": "", "value": "32" } @@ -19630,29 +21269,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27440:3:8" + "src": "28076:3:8" }, "nodeType": "YulFunctionCall", - "src": "27440:18:8" + "src": "28076:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27460:2:8", + "src": "28096:2:8", "type": "", - "value": "29" + "value": "15" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "27433:6:8" + "src": "28069:6:8" }, "nodeType": "YulFunctionCall", - "src": "27433:30:8" + "src": "28069:30:8" }, "nodeType": "YulExpressionStatement", - "src": "27433:30:8" + "src": "28069:30:8" }, { "expression": { @@ -19662,12 +21301,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27483:9:8" + "src": "28119:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27494:2:8", + "src": "28130:2:8", "type": "", "value": "64" } @@ -19675,44 +21314,44 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27479:3:8" + "src": "28115:3:8" }, "nodeType": "YulFunctionCall", - "src": "27479:18:8" + "src": "28115:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "27499:31:8", + "src": "28135:17:8", "type": "", - "value": "Not enough neighbors provided" + "value": "Recovery failed" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "27472:6:8" + "src": "28108:6:8" }, "nodeType": "YulFunctionCall", - "src": "27472:59:8" + "src": "28108:45:8" }, "nodeType": "YulExpressionStatement", - "src": "27472:59:8" + "src": "28108:45:8" }, { "nodeType": "YulAssignment", - "src": "27540:26:8", + "src": "28162:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27552:9:8" + "src": "28174:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27563:2:8", + "src": "28185:2:8", "type": "", "value": "96" } @@ -19720,28 +21359,28 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27548:3:8" + "src": "28170:3:8" }, "nodeType": "YulFunctionCall", - "src": "27548:18:8" + "src": "28170:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "27540:4:8" + "src": "28162:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_83d08d6dcf099c52fbe149a08cb4ffd65f3fec6dbf87dba7bc08b7a534982441__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_887bc482e9abfdf76109db32e10c15ef35a028513416621efc881c8a92574313__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "27370:9:8", + "src": "28006:9:8", "type": "" } ], @@ -19749,16 +21388,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "27384:4:8", + "src": "28020:4:8", "type": "" } ], - "src": "27219:353:8" + "src": "27855:339:8" }, { "body": { "nodeType": "YulBlock", - "src": "27751:165:8", + "src": "28373:169:8", "statements": [ { "expression": { @@ -19766,12 +21405,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27768:9:8" + "src": "28390:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27779:2:8", + "src": "28401:2:8", "type": "", "value": "32" } @@ -19779,13 +21418,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "27761:6:8" + "src": "28383:6:8" }, "nodeType": "YulFunctionCall", - "src": "27761:21:8" + "src": "28383:21:8" }, "nodeType": "YulExpressionStatement", - "src": "27761:21:8" + "src": "28383:21:8" }, { "expression": { @@ -19795,12 +21434,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27802:9:8" + "src": "28424:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27813:2:8", + "src": "28435:2:8", "type": "", "value": "32" } @@ -19808,29 +21447,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27798:3:8" + "src": "28420:3:8" }, "nodeType": "YulFunctionCall", - "src": "27798:18:8" + "src": "28420:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27818:2:8", + "src": "28440:2:8", "type": "", - "value": "15" + "value": "19" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "27791:6:8" + "src": "28413:6:8" }, "nodeType": "YulFunctionCall", - "src": "27791:30:8" + "src": "28413:30:8" }, "nodeType": "YulExpressionStatement", - "src": "27791:30:8" + "src": "28413:30:8" }, { "expression": { @@ -19840,12 +21479,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27841:9:8" + "src": "28463:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27852:2:8", + "src": "28474:2:8", "type": "", "value": "64" } @@ -19853,44 +21492,44 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27837:3:8" + "src": "28459:3:8" }, "nodeType": "YulFunctionCall", - "src": "27837:18:8" + "src": "28459:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "27857:17:8", + "src": "28479:21:8", "type": "", - "value": "Recovery failed" + "value": "Invalid commit hash" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "27830:6:8" + "src": "28452:6:8" }, "nodeType": "YulFunctionCall", - "src": "27830:45:8" + "src": "28452:49:8" }, "nodeType": "YulExpressionStatement", - "src": "27830:45:8" + "src": "28452:49:8" }, { "nodeType": "YulAssignment", - "src": "27884:26:8", + "src": "28510:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "27896:9:8" + "src": "28522:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "27907:2:8", + "src": "28533:2:8", "type": "", "value": "96" } @@ -19898,28 +21537,28 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "27892:3:8" + "src": "28518:3:8" }, "nodeType": "YulFunctionCall", - "src": "27892:18:8" + "src": "28518:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "27884:4:8" + "src": "28510:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_887bc482e9abfdf76109db32e10c15ef35a028513416621efc881c8a92574313__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_8a9c0db4284cd81d8eaef3d877f21bcccab643ae503f9d63f7eb3ad5aacbe749__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "27728:9:8", + "src": "28350:9:8", "type": "" } ], @@ -19927,16 +21566,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "27742:4:8", + "src": "28364:4:8", "type": "" } ], - "src": "27577:339:8" + "src": "28199:343:8" }, { "body": { "nodeType": "YulBlock", - "src": "28095:169:8", + "src": "28721:160:8", "statements": [ { "expression": { @@ -19944,12 +21583,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28112:9:8" + "src": "28738:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28123:2:8", + "src": "28749:2:8", "type": "", "value": "32" } @@ -19957,13 +21596,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "28105:6:8" + "src": "28731:6:8" }, "nodeType": "YulFunctionCall", - "src": "28105:21:8" + "src": "28731:21:8" }, "nodeType": "YulExpressionStatement", - "src": "28105:21:8" + "src": "28731:21:8" }, { "expression": { @@ -19973,12 +21612,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28146:9:8" + "src": "28772:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28157:2:8", + "src": "28783:2:8", "type": "", "value": "32" } @@ -19986,29 +21625,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28142:3:8" + "src": "28768:3:8" }, "nodeType": "YulFunctionCall", - "src": "28142:18:8" + "src": "28768:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28162:2:8", + "src": "28788:2:8", "type": "", - "value": "19" + "value": "10" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "28135:6:8" + "src": "28761:6:8" }, "nodeType": "YulFunctionCall", - "src": "28135:30:8" + "src": "28761:30:8" }, "nodeType": "YulExpressionStatement", - "src": "28135:30:8" + "src": "28761:30:8" }, { "expression": { @@ -20018,12 +21657,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28185:9:8" + "src": "28811:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28196:2:8", + "src": "28822:2:8", "type": "", "value": "64" } @@ -20031,44 +21670,44 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28181:3:8" + "src": "28807:3:8" }, "nodeType": "YulFunctionCall", - "src": "28181:18:8" + "src": "28807:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "28201:21:8", + "src": "28827:12:8", "type": "", - "value": "Invalid commit hash" + "value": "Deprecated" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "28174:6:8" + "src": "28800:6:8" }, "nodeType": "YulFunctionCall", - "src": "28174:49:8" + "src": "28800:40:8" }, "nodeType": "YulExpressionStatement", - "src": "28174:49:8" + "src": "28800:40:8" }, { "nodeType": "YulAssignment", - "src": "28232:26:8", + "src": "28849:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28244:9:8" + "src": "28861:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28255:2:8", + "src": "28872:2:8", "type": "", "value": "96" } @@ -20076,28 +21715,28 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28240:3:8" + "src": "28857:3:8" }, "nodeType": "YulFunctionCall", - "src": "28240:18:8" + "src": "28857:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "28232:4:8" + "src": "28849:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_8a9c0db4284cd81d8eaef3d877f21bcccab643ae503f9d63f7eb3ad5aacbe749__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_b20dc6ef8ce4f94dd03e7dbd2b41776293fb93e4528d85e98acf1bfed3136f73__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "28072:9:8", + "src": "28698:9:8", "type": "" } ], @@ -20105,16 +21744,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "28086:4:8", + "src": "28712:4:8", "type": "" } ], - "src": "27921:343:8" + "src": "28547:334:8" }, { "body": { "nodeType": "YulBlock", - "src": "28443:160:8", + "src": "29060:224:8", "statements": [ { "expression": { @@ -20122,12 +21761,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28460:9:8" + "src": "29077:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28471:2:8", + "src": "29088:2:8", "type": "", "value": "32" } @@ -20135,13 +21774,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "28453:6:8" + "src": "29070:6:8" }, "nodeType": "YulFunctionCall", - "src": "28453:21:8" + "src": "29070:21:8" }, "nodeType": "YulExpressionStatement", - "src": "28453:21:8" + "src": "29070:21:8" }, { "expression": { @@ -20151,12 +21790,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28494:9:8" + "src": "29111:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28505:2:8", + "src": "29122:2:8", "type": "", "value": "32" } @@ -20164,29 +21803,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28490:3:8" + "src": "29107:3:8" }, "nodeType": "YulFunctionCall", - "src": "28490:18:8" + "src": "29107:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28510:2:8", + "src": "29127:2:8", "type": "", - "value": "10" + "value": "34" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "28483:6:8" + "src": "29100:6:8" }, "nodeType": "YulFunctionCall", - "src": "28483:30:8" + "src": "29100:30:8" }, "nodeType": "YulExpressionStatement", - "src": "28483:30:8" + "src": "29100:30:8" }, { "expression": { @@ -20196,12 +21835,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28533:9:8" + "src": "29150:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28544:2:8", + "src": "29161:2:8", "type": "", "value": "64" } @@ -20209,73 +21848,118 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28529:3:8" + "src": "29146:3:8" }, "nodeType": "YulFunctionCall", - "src": "28529:18:8" + "src": "29146:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "28549:12:8", + "src": "29166:34:8", "type": "", - "value": "Deprecated" + "value": "Last resort address is already s" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "29139:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "29139:62:8" + }, + "nodeType": "YulExpressionStatement", + "src": "29139:62:8" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "29221:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "29232:2:8", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "29217:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "29217:18:8" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "29237:4:8", + "type": "", + "value": "et" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "28522:6:8" + "src": "29210:6:8" }, "nodeType": "YulFunctionCall", - "src": "28522:40:8" + "src": "29210:32:8" }, "nodeType": "YulExpressionStatement", - "src": "28522:40:8" + "src": "29210:32:8" }, { "nodeType": "YulAssignment", - "src": "28571:26:8", + "src": "29251:27:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28583:9:8" + "src": "29263:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28594:2:8", + "src": "29274:3:8", "type": "", - "value": "96" + "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28579:3:8" + "src": "29259:3:8" }, "nodeType": "YulFunctionCall", - "src": "28579:18:8" + "src": "29259:19:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "28571:4:8" + "src": "29251:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_b20dc6ef8ce4f94dd03e7dbd2b41776293fb93e4528d85e98acf1bfed3136f73__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_bc3ff827c71f29679c970d77c58ec807a06259e86e9cd823a8554b04d0d6f030__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "28420:9:8", + "src": "29037:9:8", "type": "" } ], @@ -20283,16 +21967,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "28434:4:8", + "src": "29051:4:8", "type": "" } ], - "src": "28269:334:8" + "src": "28886:398:8" }, { "body": { "nodeType": "YulBlock", - "src": "28782:224:8", + "src": "29463:165:8", "statements": [ { "expression": { @@ -20300,12 +21984,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28799:9:8" + "src": "29480:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28810:2:8", + "src": "29491:2:8", "type": "", "value": "32" } @@ -20313,13 +21997,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "28792:6:8" + "src": "29473:6:8" }, "nodeType": "YulFunctionCall", - "src": "28792:21:8" + "src": "29473:21:8" }, "nodeType": "YulExpressionStatement", - "src": "28792:21:8" + "src": "29473:21:8" }, { "expression": { @@ -20329,12 +22013,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28833:9:8" + "src": "29514:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28844:2:8", + "src": "29525:2:8", "type": "", "value": "32" } @@ -20342,29 +22026,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28829:3:8" + "src": "29510:3:8" }, "nodeType": "YulFunctionCall", - "src": "28829:18:8" + "src": "29510:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28849:2:8", + "src": "29530:2:8", "type": "", - "value": "34" + "value": "15" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "28822:6:8" + "src": "29503:6:8" }, "nodeType": "YulFunctionCall", - "src": "28822:30:8" + "src": "29503:30:8" }, "nodeType": "YulExpressionStatement", - "src": "28822:30:8" + "src": "29503:30:8" }, { "expression": { @@ -20374,12 +22058,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28872:9:8" + "src": "29553:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28883:2:8", + "src": "29564:2:8", "type": "", "value": "64" } @@ -20387,118 +22071,73 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28868:3:8" + "src": "29549:3:8" }, "nodeType": "YulFunctionCall", - "src": "28868:18:8" + "src": "29549:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "28888:34:8", + "src": "29569:17:8", "type": "", - "value": "Last resort address is already s" - } - ], - "functionName": { - "name": "mstore", - "nodeType": "YulIdentifier", - "src": "28861:6:8" - }, - "nodeType": "YulFunctionCall", - "src": "28861:62:8" - }, - "nodeType": "YulExpressionStatement", - "src": "28861:62:8" - }, - { - "expression": { - "arguments": [ - { - "arguments": [ - { - "name": "headStart", - "nodeType": "YulIdentifier", - "src": "28943:9:8" - }, - { - "kind": "number", - "nodeType": "YulLiteral", - "src": "28954:2:8", - "type": "", - "value": "96" - } - ], - "functionName": { - "name": "add", - "nodeType": "YulIdentifier", - "src": "28939:3:8" - }, - "nodeType": "YulFunctionCall", - "src": "28939:18:8" - }, - { - "kind": "string", - "nodeType": "YulLiteral", - "src": "28959:4:8", - "type": "", - "value": "et" + "value": "No valid commit" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "28932:6:8" + "src": "29542:6:8" }, "nodeType": "YulFunctionCall", - "src": "28932:32:8" + "src": "29542:45:8" }, "nodeType": "YulExpressionStatement", - "src": "28932:32:8" + "src": "29542:45:8" }, { "nodeType": "YulAssignment", - "src": "28973:27:8", + "src": "29596:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "28985:9:8" + "src": "29608:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "28996:3:8", + "src": "29619:2:8", "type": "", - "value": "128" + "value": "96" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "28981:3:8" + "src": "29604:3:8" }, "nodeType": "YulFunctionCall", - "src": "28981:19:8" + "src": "29604:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "28973:4:8" + "src": "29596:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_bc3ff827c71f29679c970d77c58ec807a06259e86e9cd823a8554b04d0d6f030__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_c3972966c6b890cd04bd250ec8fd05d1950759334a3d8fa4e9bb3d0693e9952d__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "28759:9:8", + "src": "29440:9:8", "type": "" } ], @@ -20506,16 +22145,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "28773:4:8", + "src": "29454:4:8", "type": "" } ], - "src": "28608:398:8" + "src": "29289:339:8" }, { "body": { "nodeType": "YulBlock", - "src": "29185:165:8", + "src": "29807:169:8", "statements": [ { "expression": { @@ -20523,12 +22162,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29202:9:8" + "src": "29824:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29213:2:8", + "src": "29835:2:8", "type": "", "value": "32" } @@ -20536,13 +22175,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "29195:6:8" + "src": "29817:6:8" }, "nodeType": "YulFunctionCall", - "src": "29195:21:8" + "src": "29817:21:8" }, "nodeType": "YulExpressionStatement", - "src": "29195:21:8" + "src": "29817:21:8" }, { "expression": { @@ -20552,12 +22191,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29236:9:8" + "src": "29858:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29247:2:8", + "src": "29869:2:8", "type": "", "value": "32" } @@ -20565,29 +22204,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29232:3:8" + "src": "29854:3:8" }, "nodeType": "YulFunctionCall", - "src": "29232:18:8" + "src": "29854:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29252:2:8", + "src": "29874:2:8", "type": "", - "value": "15" + "value": "19" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "29225:6:8" + "src": "29847:6:8" }, "nodeType": "YulFunctionCall", - "src": "29225:30:8" + "src": "29847:30:8" }, "nodeType": "YulExpressionStatement", - "src": "29225:30:8" + "src": "29847:30:8" }, { "expression": { @@ -20597,12 +22236,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29275:9:8" + "src": "29897:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29286:2:8", + "src": "29908:2:8", "type": "", "value": "64" } @@ -20610,44 +22249,44 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29271:3:8" + "src": "29893:3:8" }, "nodeType": "YulFunctionCall", - "src": "29271:18:8" + "src": "29893:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "29291:17:8", + "src": "29913:21:8", "type": "", - "value": "No valid commit" + "value": "Invalid commitIndex" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "29264:6:8" + "src": "29886:6:8" }, "nodeType": "YulFunctionCall", - "src": "29264:45:8" + "src": "29886:49:8" }, "nodeType": "YulExpressionStatement", - "src": "29264:45:8" + "src": "29886:49:8" }, { "nodeType": "YulAssignment", - "src": "29318:26:8", + "src": "29944:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29330:9:8" + "src": "29956:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29341:2:8", + "src": "29967:2:8", "type": "", "value": "96" } @@ -20655,28 +22294,28 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29326:3:8" + "src": "29952:3:8" }, "nodeType": "YulFunctionCall", - "src": "29326:18:8" + "src": "29952:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "29318:4:8" + "src": "29944:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_c3972966c6b890cd04bd250ec8fd05d1950759334a3d8fa4e9bb3d0693e9952d__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_dd8f27f99c8575d947c48310b46d36796c8df82285fc83fecd33510610055413__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "29162:9:8", + "src": "29784:9:8", "type": "" } ], @@ -20684,16 +22323,16 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "29176:4:8", + "src": "29798:4:8", "type": "" } ], - "src": "29011:339:8" + "src": "29633:343:8" }, { "body": { "nodeType": "YulBlock", - "src": "29529:169:8", + "src": "30155:225:8", "statements": [ { "expression": { @@ -20701,12 +22340,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29546:9:8" + "src": "30172:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29557:2:8", + "src": "30183:2:8", "type": "", "value": "32" } @@ -20714,13 +22353,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "29539:6:8" + "src": "30165:6:8" }, "nodeType": "YulFunctionCall", - "src": "29539:21:8" + "src": "30165:21:8" }, "nodeType": "YulExpressionStatement", - "src": "29539:21:8" + "src": "30165:21:8" }, { "expression": { @@ -20730,12 +22369,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29580:9:8" + "src": "30206:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29591:2:8", + "src": "30217:2:8", "type": "", "value": "32" } @@ -20743,29 +22382,29 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29576:3:8" + "src": "30202:3:8" }, "nodeType": "YulFunctionCall", - "src": "29576:18:8" + "src": "30202:18:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29596:2:8", + "src": "30222:2:8", "type": "", - "value": "19" + "value": "35" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "29569:6:8" + "src": "30195:6:8" }, "nodeType": "YulFunctionCall", - "src": "29569:30:8" + "src": "30195:30:8" }, "nodeType": "YulExpressionStatement", - "src": "29569:30:8" + "src": "30195:30:8" }, { "expression": { @@ -20775,12 +22414,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29619:9:8" + "src": "30245:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29630:2:8", + "src": "30256:2:8", "type": "", "value": "64" } @@ -20788,73 +22427,118 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29615:3:8" + "src": "30241:3:8" }, "nodeType": "YulFunctionCall", - "src": "29615:18:8" + "src": "30241:18:8" }, { "kind": "string", "nodeType": "YulLiteral", - "src": "29635:21:8", + "src": "30261:34:8", "type": "", - "value": "Invalid commitIndex" + "value": "Last operation reserved for reco" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "29608:6:8" + "src": "30234:6:8" }, "nodeType": "YulFunctionCall", - "src": "29608:49:8" + "src": "30234:62:8" }, "nodeType": "YulExpressionStatement", - "src": "29608:49:8" + "src": "30234:62:8" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "30316:9:8" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "30327:2:8", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "30312:3:8" + }, + "nodeType": "YulFunctionCall", + "src": "30312:18:8" + }, + { + "kind": "string", + "nodeType": "YulLiteral", + "src": "30332:5:8", + "type": "", + "value": "ver" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "30305:6:8" + }, + "nodeType": "YulFunctionCall", + "src": "30305:33:8" + }, + "nodeType": "YulExpressionStatement", + "src": "30305:33:8" }, { "nodeType": "YulAssignment", - "src": "29666:26:8", + "src": "30347:27:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29678:9:8" + "src": "30359:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29689:2:8", + "src": "30370:3:8", "type": "", - "value": "96" + "value": "128" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29674:3:8" + "src": "30355:3:8" }, "nodeType": "YulFunctionCall", - "src": "29674:18:8" + "src": "30355:19:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "29666:4:8" + "src": "30347:4:8" } ] } ] }, - "name": "abi_encode_tuple_t_stringliteral_dd8f27f99c8575d947c48310b46d36796c8df82285fc83fecd33510610055413__to_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_stringliteral_fab9828a623b3dec5ff9fd3a2c3a6f583ee6577f264fc8a5c168e0454ba5a4ba__to_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { "name": "headStart", "nodeType": "YulTypedName", - "src": "29506:9:8", + "src": "30132:9:8", "type": "" } ], @@ -20862,31 +22546,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "29520:4:8", + "src": "30146:4:8", "type": "" } ], - "src": "29355:343:8" + "src": "29981:399:8" }, { "body": { "nodeType": "YulBlock", - "src": "29832:145:8", + "src": "30514:145:8", "statements": [ { "nodeType": "YulAssignment", - "src": "29842:26:8", + "src": "30524:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29854:9:8" + "src": "30536:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29865:2:8", + "src": "30547:2:8", "type": "", "value": "64" } @@ -20894,16 +22578,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29850:3:8" + "src": "30532:3:8" }, "nodeType": "YulFunctionCall", - "src": "29850:18:8" + "src": "30532:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "29842:4:8" + "src": "30524:4:8" } ] }, @@ -20913,24 +22597,24 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29884:9:8" + "src": "30566:9:8" }, { "name": "value0", "nodeType": "YulIdentifier", - "src": "29895:6:8" + "src": "30577:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "29877:6:8" + "src": "30559:6:8" }, "nodeType": "YulFunctionCall", - "src": "29877:25:8" + "src": "30559:25:8" }, "nodeType": "YulExpressionStatement", - "src": "29877:25:8" + "src": "30559:25:8" }, { "expression": { @@ -20940,12 +22624,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "29922:9:8" + "src": "30604:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29933:2:8", + "src": "30615:2:8", "type": "", "value": "32" } @@ -20953,17 +22637,17 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "29918:3:8" + "src": "30600:3:8" }, "nodeType": "YulFunctionCall", - "src": "29918:18:8" + "src": "30600:18:8" }, { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "29942:6:8" + "src": "30624:6:8" }, { "arguments": [ @@ -20972,14 +22656,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "29958:3:8", + "src": "30640:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29963:1:8", + "src": "30645:1:8", "type": "", "value": "1" } @@ -20987,15 +22671,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "29954:3:8" + "src": "30636:3:8" }, "nodeType": "YulFunctionCall", - "src": "29954:11:8" + "src": "30636:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "29967:1:8", + "src": "30649:1:8", "type": "", "value": "1" } @@ -21003,31 +22687,31 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "29950:3:8" + "src": "30632:3:8" }, "nodeType": "YulFunctionCall", - "src": "29950:19:8" + "src": "30632:19:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "29938:3:8" + "src": "30620:3:8" }, "nodeType": "YulFunctionCall", - "src": "29938:32:8" + "src": "30620:32:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "29911:6:8" + "src": "30593:6:8" }, "nodeType": "YulFunctionCall", - "src": "29911:60:8" + "src": "30593:60:8" }, "nodeType": "YulExpressionStatement", - "src": "29911:60:8" + "src": "30593:60:8" } ] }, @@ -21037,19 +22721,19 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "29793:9:8", + "src": "30475:9:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "29804:6:8", + "src": "30486:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "29812:6:8", + "src": "30494:6:8", "type": "" } ], @@ -21057,31 +22741,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "29823:4:8", + "src": "30505:4:8", "type": "" } ], - "src": "29703:274:8" + "src": "30385:274:8" }, { "body": { "nodeType": "YulBlock", - "src": "30119:145:8", + "src": "30801:145:8", "statements": [ { "nodeType": "YulAssignment", - "src": "30129:26:8", + "src": "30811:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30141:9:8" + "src": "30823:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30152:2:8", + "src": "30834:2:8", "type": "", "value": "64" } @@ -21089,16 +22773,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30137:3:8" + "src": "30819:3:8" }, "nodeType": "YulFunctionCall", - "src": "30137:18:8" + "src": "30819:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "30129:4:8" + "src": "30811:4:8" } ] }, @@ -21108,24 +22792,24 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30171:9:8" + "src": "30853:9:8" }, { "name": "value0", "nodeType": "YulIdentifier", - "src": "30182:6:8" + "src": "30864:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "30164:6:8" + "src": "30846:6:8" }, "nodeType": "YulFunctionCall", - "src": "30164:25:8" + "src": "30846:25:8" }, "nodeType": "YulExpressionStatement", - "src": "30164:25:8" + "src": "30846:25:8" }, { "expression": { @@ -21135,12 +22819,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30209:9:8" + "src": "30891:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30220:2:8", + "src": "30902:2:8", "type": "", "value": "32" } @@ -21148,17 +22832,17 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30205:3:8" + "src": "30887:3:8" }, "nodeType": "YulFunctionCall", - "src": "30205:18:8" + "src": "30887:18:8" }, { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "30229:6:8" + "src": "30911:6:8" }, { "arguments": [ @@ -21167,14 +22851,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "30245:3:8", + "src": "30927:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30250:1:8", + "src": "30932:1:8", "type": "", "value": "1" } @@ -21182,15 +22866,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "30241:3:8" + "src": "30923:3:8" }, "nodeType": "YulFunctionCall", - "src": "30241:11:8" + "src": "30923:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30254:1:8", + "src": "30936:1:8", "type": "", "value": "1" } @@ -21198,31 +22882,31 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "30237:3:8" + "src": "30919:3:8" }, "nodeType": "YulFunctionCall", - "src": "30237:19:8" + "src": "30919:19:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "30225:3:8" + "src": "30907:3:8" }, "nodeType": "YulFunctionCall", - "src": "30225:32:8" + "src": "30907:32:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "30198:6:8" + "src": "30880:6:8" }, "nodeType": "YulFunctionCall", - "src": "30198:60:8" + "src": "30880:60:8" }, "nodeType": "YulExpressionStatement", - "src": "30198:60:8" + "src": "30880:60:8" } ] }, @@ -21232,19 +22916,19 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "30080:9:8", + "src": "30762:9:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "30091:6:8", + "src": "30773:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "30099:6:8", + "src": "30781:6:8", "type": "" } ], @@ -21252,31 +22936,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "30110:4:8", + "src": "30792:4:8", "type": "" } ], - "src": "29982:282:8" + "src": "30664:282:8" }, { "body": { "nodeType": "YulBlock", - "src": "30398:119:8", + "src": "31080:119:8", "statements": [ { "nodeType": "YulAssignment", - "src": "30408:26:8", + "src": "31090:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30420:9:8" + "src": "31102:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30431:2:8", + "src": "31113:2:8", "type": "", "value": "64" } @@ -21284,16 +22968,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30416:3:8" + "src": "31098:3:8" }, "nodeType": "YulFunctionCall", - "src": "30416:18:8" + "src": "31098:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "30408:4:8" + "src": "31090:4:8" } ] }, @@ -21303,24 +22987,24 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30450:9:8" + "src": "31132:9:8" }, { "name": "value0", "nodeType": "YulIdentifier", - "src": "30461:6:8" + "src": "31143:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "30443:6:8" + "src": "31125:6:8" }, "nodeType": "YulFunctionCall", - "src": "30443:25:8" + "src": "31125:25:8" }, "nodeType": "YulExpressionStatement", - "src": "30443:25:8" + "src": "31125:25:8" }, { "expression": { @@ -21330,12 +23014,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30488:9:8" + "src": "31170:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30499:2:8", + "src": "31181:2:8", "type": "", "value": "32" } @@ -21343,27 +23027,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30484:3:8" + "src": "31166:3:8" }, "nodeType": "YulFunctionCall", - "src": "30484:18:8" + "src": "31166:18:8" }, { "name": "value1", "nodeType": "YulIdentifier", - "src": "30504:6:8" + "src": "31186:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "30477:6:8" + "src": "31159:6:8" }, "nodeType": "YulFunctionCall", - "src": "30477:34:8" + "src": "31159:34:8" }, "nodeType": "YulExpressionStatement", - "src": "30477:34:8" + "src": "31159:34:8" } ] }, @@ -21373,19 +23057,19 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "30359:9:8", + "src": "31041:9:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "30370:6:8", + "src": "31052:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "30378:6:8", + "src": "31060:6:8", "type": "" } ], @@ -21393,31 +23077,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "30389:4:8", + "src": "31071:4:8", "type": "" } ], - "src": "30269:248:8" + "src": "30951:248:8" }, { "body": { "nodeType": "YulBlock", - "src": "30687:188:8", + "src": "31369:188:8", "statements": [ { "nodeType": "YulAssignment", - "src": "30697:26:8", + "src": "31379:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30709:9:8" + "src": "31391:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30720:2:8", + "src": "31402:2:8", "type": "", "value": "96" } @@ -21425,16 +23109,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30705:3:8" + "src": "31387:3:8" }, "nodeType": "YulFunctionCall", - "src": "30705:18:8" + "src": "31387:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "30697:4:8" + "src": "31379:4:8" } ] }, @@ -21444,24 +23128,24 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30739:9:8" + "src": "31421:9:8" }, { "name": "value0", "nodeType": "YulIdentifier", - "src": "30750:6:8" + "src": "31432:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "30732:6:8" + "src": "31414:6:8" }, "nodeType": "YulFunctionCall", - "src": "30732:25:8" + "src": "31414:25:8" }, "nodeType": "YulExpressionStatement", - "src": "30732:25:8" + "src": "31414:25:8" }, { "expression": { @@ -21471,12 +23155,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30777:9:8" + "src": "31459:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30788:2:8", + "src": "31470:2:8", "type": "", "value": "32" } @@ -21484,27 +23168,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30773:3:8" + "src": "31455:3:8" }, "nodeType": "YulFunctionCall", - "src": "30773:18:8" + "src": "31455:18:8" }, { "name": "value1", "nodeType": "YulIdentifier", - "src": "30793:6:8" + "src": "31475:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "30766:6:8" + "src": "31448:6:8" }, "nodeType": "YulFunctionCall", - "src": "30766:34:8" + "src": "31448:34:8" }, "nodeType": "YulExpressionStatement", - "src": "30766:34:8" + "src": "31448:34:8" }, { "expression": { @@ -21514,12 +23198,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "30820:9:8" + "src": "31502:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30831:2:8", + "src": "31513:2:8", "type": "", "value": "64" } @@ -21527,17 +23211,17 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "30816:3:8" + "src": "31498:3:8" }, "nodeType": "YulFunctionCall", - "src": "30816:18:8" + "src": "31498:18:8" }, { "arguments": [ { "name": "value2", "nodeType": "YulIdentifier", - "src": "30840:6:8" + "src": "31522:6:8" }, { "arguments": [ @@ -21546,14 +23230,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "30856:3:8", + "src": "31538:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30861:1:8", + "src": "31543:1:8", "type": "", "value": "1" } @@ -21561,15 +23245,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "30852:3:8" + "src": "31534:3:8" }, "nodeType": "YulFunctionCall", - "src": "30852:11:8" + "src": "31534:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "30865:1:8", + "src": "31547:1:8", "type": "", "value": "1" } @@ -21577,31 +23261,31 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "30848:3:8" + "src": "31530:3:8" }, "nodeType": "YulFunctionCall", - "src": "30848:19:8" + "src": "31530:19:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "30836:3:8" + "src": "31518:3:8" }, "nodeType": "YulFunctionCall", - "src": "30836:32:8" + "src": "31518:32:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "30809:6:8" + "src": "31491:6:8" }, "nodeType": "YulFunctionCall", - "src": "30809:60:8" + "src": "31491:60:8" }, "nodeType": "YulExpressionStatement", - "src": "30809:60:8" + "src": "31491:60:8" } ] }, @@ -21611,25 +23295,25 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "30640:9:8", + "src": "31322:9:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "30651:6:8", + "src": "31333:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "30659:6:8", + "src": "31341:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "30667:6:8", + "src": "31349:6:8", "type": "" } ], @@ -21637,31 +23321,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "30678:4:8", + "src": "31360:4:8", "type": "" } ], - "src": "30522:353:8" + "src": "31204:353:8" }, { "body": { "nodeType": "YulBlock", - "src": "31073:232:8", + "src": "31755:232:8", "statements": [ { "nodeType": "YulAssignment", - "src": "31083:27:8", + "src": "31765:27:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31095:9:8" + "src": "31777:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31106:3:8", + "src": "31788:3:8", "type": "", "value": "128" } @@ -21669,16 +23353,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31091:3:8" + "src": "31773:3:8" }, "nodeType": "YulFunctionCall", - "src": "31091:19:8" + "src": "31773:19:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "31083:4:8" + "src": "31765:4:8" } ] }, @@ -21688,24 +23372,24 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31126:9:8" + "src": "31808:9:8" }, { "name": "value0", "nodeType": "YulIdentifier", - "src": "31137:6:8" + "src": "31819:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "31119:6:8" + "src": "31801:6:8" }, "nodeType": "YulFunctionCall", - "src": "31119:25:8" + "src": "31801:25:8" }, "nodeType": "YulExpressionStatement", - "src": "31119:25:8" + "src": "31801:25:8" }, { "expression": { @@ -21715,12 +23399,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31164:9:8" + "src": "31846:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31175:2:8", + "src": "31857:2:8", "type": "", "value": "32" } @@ -21728,27 +23412,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31160:3:8" + "src": "31842:3:8" }, "nodeType": "YulFunctionCall", - "src": "31160:18:8" + "src": "31842:18:8" }, { "name": "value1", "nodeType": "YulIdentifier", - "src": "31180:6:8" + "src": "31862:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "31153:6:8" + "src": "31835:6:8" }, "nodeType": "YulFunctionCall", - "src": "31153:34:8" + "src": "31835:34:8" }, "nodeType": "YulExpressionStatement", - "src": "31153:34:8" + "src": "31835:34:8" }, { "expression": { @@ -21758,12 +23442,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31207:9:8" + "src": "31889:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31218:2:8", + "src": "31900:2:8", "type": "", "value": "64" } @@ -21771,27 +23455,27 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31203:3:8" + "src": "31885:3:8" }, "nodeType": "YulFunctionCall", - "src": "31203:18:8" + "src": "31885:18:8" }, { "name": "value2", "nodeType": "YulIdentifier", - "src": "31223:6:8" + "src": "31905:6:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "31196:6:8" + "src": "31878:6:8" }, "nodeType": "YulFunctionCall", - "src": "31196:34:8" + "src": "31878:34:8" }, "nodeType": "YulExpressionStatement", - "src": "31196:34:8" + "src": "31878:34:8" }, { "expression": { @@ -21801,12 +23485,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31250:9:8" + "src": "31932:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31261:2:8", + "src": "31943:2:8", "type": "", "value": "96" } @@ -21814,17 +23498,17 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31246:3:8" + "src": "31928:3:8" }, "nodeType": "YulFunctionCall", - "src": "31246:18:8" + "src": "31928:18:8" }, { "arguments": [ { "name": "value3", "nodeType": "YulIdentifier", - "src": "31270:6:8" + "src": "31952:6:8" }, { "arguments": [ @@ -21833,14 +23517,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "31286:3:8", + "src": "31968:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31291:1:8", + "src": "31973:1:8", "type": "", "value": "1" } @@ -21848,15 +23532,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "31282:3:8" + "src": "31964:3:8" }, "nodeType": "YulFunctionCall", - "src": "31282:11:8" + "src": "31964:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31295:1:8", + "src": "31977:1:8", "type": "", "value": "1" } @@ -21864,31 +23548,31 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "31278:3:8" + "src": "31960:3:8" }, "nodeType": "YulFunctionCall", - "src": "31278:19:8" + "src": "31960:19:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "31266:3:8" + "src": "31948:3:8" }, "nodeType": "YulFunctionCall", - "src": "31266:32:8" + "src": "31948:32:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "31239:6:8" + "src": "31921:6:8" }, "nodeType": "YulFunctionCall", - "src": "31239:60:8" + "src": "31921:60:8" }, "nodeType": "YulExpressionStatement", - "src": "31239:60:8" + "src": "31921:60:8" } ] }, @@ -21898,31 +23582,31 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "31018:9:8", + "src": "31700:9:8", "type": "" }, { "name": "value3", "nodeType": "YulTypedName", - "src": "31029:6:8", + "src": "31711:6:8", "type": "" }, { "name": "value2", "nodeType": "YulTypedName", - "src": "31037:6:8", + "src": "31719:6:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "31045:6:8", + "src": "31727:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "31053:6:8", + "src": "31735:6:8", "type": "" } ], @@ -21930,31 +23614,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "31064:4:8", + "src": "31746:4:8", "type": "" } ], - "src": "30880:425:8" + "src": "31562:425:8" }, { "body": { "nodeType": "YulBlock", - "src": "31435:166:8", + "src": "32117:166:8", "statements": [ { "nodeType": "YulAssignment", - "src": "31445:26:8", + "src": "32127:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31457:9:8" + "src": "32139:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31468:2:8", + "src": "32150:2:8", "type": "", "value": "64" } @@ -21962,26 +23646,26 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31453:3:8" + "src": "32135:3:8" }, "nodeType": "YulFunctionCall", - "src": "31453:18:8" + "src": "32135:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "31445:4:8" + "src": "32127:4:8" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "31480:20:8", + "src": "32162:20:8", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "31490:10:8", + "src": "32172:10:8", "type": "", "value": "0xffffffff" }, @@ -21989,7 +23673,7 @@ { "name": "_1", "nodeType": "YulTypedName", - "src": "31484:2:8", + "src": "32166:2:8", "type": "" } ] @@ -22000,40 +23684,40 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31516:9:8" + "src": "32198:9:8" }, { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "31531:6:8" + "src": "32213:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "31539:2:8" + "src": "32221:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "31527:3:8" + "src": "32209:3:8" }, "nodeType": "YulFunctionCall", - "src": "31527:15:8" + "src": "32209:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "31509:6:8" + "src": "32191:6:8" }, "nodeType": "YulFunctionCall", - "src": "31509:34:8" + "src": "32191:34:8" }, "nodeType": "YulExpressionStatement", - "src": "31509:34:8" + "src": "32191:34:8" }, { "expression": { @@ -22043,12 +23727,12 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31563:9:8" + "src": "32245:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31574:2:8", + "src": "32256:2:8", "type": "", "value": "32" } @@ -22056,43 +23740,43 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31559:3:8" + "src": "32241:3:8" }, "nodeType": "YulFunctionCall", - "src": "31559:18:8" + "src": "32241:18:8" }, { "arguments": [ { "name": "value1", "nodeType": "YulIdentifier", - "src": "31583:6:8" + "src": "32265:6:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "31591:2:8" + "src": "32273:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "31579:3:8" + "src": "32261:3:8" }, "nodeType": "YulFunctionCall", - "src": "31579:15:8" + "src": "32261:15:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "31552:6:8" + "src": "32234:6:8" }, "nodeType": "YulFunctionCall", - "src": "31552:43:8" + "src": "32234:43:8" }, "nodeType": "YulExpressionStatement", - "src": "31552:43:8" + "src": "32234:43:8" } ] }, @@ -22102,19 +23786,19 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "31396:9:8", + "src": "32078:9:8", "type": "" }, { "name": "value1", "nodeType": "YulTypedName", - "src": "31407:6:8", + "src": "32089:6:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "31415:6:8", + "src": "32097:6:8", "type": "" } ], @@ -22122,31 +23806,31 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "31426:4:8", + "src": "32108:4:8", "type": "" } ], - "src": "31310:291:8" + "src": "31992:291:8" }, { "body": { "nodeType": "YulBlock", - "src": "31703:87:8", + "src": "32385:87:8", "statements": [ { "nodeType": "YulAssignment", - "src": "31713:26:8", + "src": "32395:26:8", "value": { "arguments": [ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31725:9:8" + "src": "32407:9:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31736:2:8", + "src": "32418:2:8", "type": "", "value": "32" } @@ -22154,16 +23838,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "31721:3:8" + "src": "32403:3:8" }, "nodeType": "YulFunctionCall", - "src": "31721:18:8" + "src": "32403:18:8" }, "variableNames": [ { "name": "tail", "nodeType": "YulIdentifier", - "src": "31713:4:8" + "src": "32395:4:8" } ] }, @@ -22173,19 +23857,19 @@ { "name": "headStart", "nodeType": "YulIdentifier", - "src": "31755:9:8" + "src": "32437:9:8" }, { "arguments": [ { "name": "value0", "nodeType": "YulIdentifier", - "src": "31770:6:8" + "src": "32452:6:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "31778:4:8", + "src": "32460:4:8", "type": "", "value": "0xff" } @@ -22193,22 +23877,22 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "31766:3:8" + "src": "32448:3:8" }, "nodeType": "YulFunctionCall", - "src": "31766:17:8" + "src": "32448:17:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "31748:6:8" + "src": "32430:6:8" }, "nodeType": "YulFunctionCall", - "src": "31748:36:8" + "src": "32430:36:8" }, "nodeType": "YulExpressionStatement", - "src": "31748:36:8" + "src": "32430:36:8" } ] }, @@ -22218,13 +23902,13 @@ { "name": "headStart", "nodeType": "YulTypedName", - "src": "31672:9:8", + "src": "32354:9:8", "type": "" }, { "name": "value0", "nodeType": "YulTypedName", - "src": "31683:6:8", + "src": "32365:6:8", "type": "" } ], @@ -22232,21 +23916,21 @@ { "name": "tail", "nodeType": "YulTypedName", - "src": "31694:4:8", + "src": "32376:4:8", "type": "" } ], - "src": "31606:184:8" + "src": "32288:184:8" }, { "body": { "nodeType": "YulBlock", - "src": "31925:233:8", + "src": "32607:233:8", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "31963:32:8", + "src": "32645:32:8", "statements": [ { "expression": { @@ -22254,24 +23938,24 @@ { "name": "offsetOut", "nodeType": "YulIdentifier", - "src": "31972:9:8" + "src": "32654:9:8" }, { "name": "offsetOut", "nodeType": "YulIdentifier", - "src": "31983:9:8" + "src": "32665:9:8" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "31965:6:8" + "src": "32647:6:8" }, "nodeType": "YulFunctionCall", - "src": "31965:28:8" + "src": "32647:28:8" }, "nodeType": "YulExpressionStatement", - "src": "31965:28:8" + "src": "32647:28:8" } ] }, @@ -22280,29 +23964,29 @@ { "name": "startIndex", "nodeType": "YulIdentifier", - "src": "31941:10:8" + "src": "32623:10:8" }, { "name": "endIndex", "nodeType": "YulIdentifier", - "src": "31953:8:8" + "src": "32635:8:8" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "31938:2:8" + "src": "32620:2:8" }, "nodeType": "YulFunctionCall", - "src": "31938:24:8" + "src": "32620:24:8" }, "nodeType": "YulIf", - "src": "31935:2:8" + "src": "32617:2:8" }, { "body": { "nodeType": "YulBlock", - "src": "32028:32:8", + "src": "32710:32:8", "statements": [ { "expression": { @@ -22310,24 +23994,24 @@ { "name": "offsetOut", "nodeType": "YulIdentifier", - "src": "32037:9:8" + "src": "32719:9:8" }, { "name": "offsetOut", "nodeType": "YulIdentifier", - "src": "32048:9:8" + "src": "32730:9:8" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "32030:6:8" + "src": "32712:6:8" }, "nodeType": "YulFunctionCall", - "src": "32030:28:8" + "src": "32712:28:8" }, "nodeType": "YulExpressionStatement", - "src": "32030:28:8" + "src": "32712:28:8" } ] }, @@ -22336,86 +24020,86 @@ { "name": "endIndex", "nodeType": "YulIdentifier", - "src": "32010:8:8" + "src": "32692:8:8" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "32020:6:8" + "src": "32702:6:8" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "32007:2:8" + "src": "32689:2:8" }, "nodeType": "YulFunctionCall", - "src": "32007:20:8" + "src": "32689:20:8" }, "nodeType": "YulIf", - "src": "32004:2:8" + "src": "32686:2:8" }, { "nodeType": "YulAssignment", - "src": "32069:36:8", + "src": "32751:36:8", "value": { "arguments": [ { "name": "offset", "nodeType": "YulIdentifier", - "src": "32086:6:8" + "src": "32768:6:8" }, { "name": "startIndex", "nodeType": "YulIdentifier", - "src": "32094:10:8" + "src": "32776:10:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "32082:3:8" + "src": "32764:3:8" }, "nodeType": "YulFunctionCall", - "src": "32082:23:8" + "src": "32764:23:8" }, "variableNames": [ { "name": "offsetOut", "nodeType": "YulIdentifier", - "src": "32069:9:8" + "src": "32751:9:8" } ] }, { "nodeType": "YulAssignment", - "src": "32114:38:8", + "src": "32796:38:8", "value": { "arguments": [ { "name": "endIndex", "nodeType": "YulIdentifier", - "src": "32131:8:8" + "src": "32813:8:8" }, { "name": "startIndex", "nodeType": "YulIdentifier", - "src": "32141:10:8" + "src": "32823:10:8" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "32127:3:8" + "src": "32809:3:8" }, "nodeType": "YulFunctionCall", - "src": "32127:25:8" + "src": "32809:25:8" }, "variableNames": [ { "name": "lengthOut", "nodeType": "YulIdentifier", - "src": "32114:9:8" + "src": "32796:9:8" } ] } @@ -22427,25 +24111,25 @@ { "name": "offset", "nodeType": "YulTypedName", - "src": "31859:6:8", + "src": "32541:6:8", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "31867:6:8", + "src": "32549:6:8", "type": "" }, { "name": "startIndex", "nodeType": "YulTypedName", - "src": "31875:10:8", + "src": "32557:10:8", "type": "" }, { "name": "endIndex", "nodeType": "YulTypedName", - "src": "31887:8:8", + "src": "32569:8:8", "type": "" } ], @@ -22453,27 +24137,27 @@ { "name": "offsetOut", "nodeType": "YulTypedName", - "src": "31900:9:8", + "src": "32582:9:8", "type": "" }, { "name": "lengthOut", "nodeType": "YulTypedName", - "src": "31911:9:8", + "src": "32593:9:8", "type": "" } ], - "src": "31795:363:8" + "src": "32477:363:8" }, { "body": { "nodeType": "YulBlock", - "src": "32211:80:8", + "src": "32893:80:8", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "32238:22:8", + "src": "32920:22:8", "statements": [ { "expression": { @@ -22481,13 +24165,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "32240:16:8" + "src": "32922:16:8" }, "nodeType": "YulFunctionCall", - "src": "32240:18:8" + "src": "32922:18:8" }, "nodeType": "YulExpressionStatement", - "src": "32240:18:8" + "src": "32922:18:8" } ] }, @@ -22496,65 +24180,65 @@ { "name": "x", "nodeType": "YulIdentifier", - "src": "32227:1:8" + "src": "32909:1:8" }, { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "32234:1:8" + "src": "32916:1:8" } ], "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "32230:3:8" + "src": "32912:3:8" }, "nodeType": "YulFunctionCall", - "src": "32230:6:8" + "src": "32912:6:8" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "32224:2:8" + "src": "32906:2:8" }, "nodeType": "YulFunctionCall", - "src": "32224:13:8" + "src": "32906:13:8" }, "nodeType": "YulIf", - "src": "32221:2:8" + "src": "32903:2:8" }, { "nodeType": "YulAssignment", - "src": "32269:16:8", + "src": "32951:16:8", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "32280:1:8" + "src": "32962:1:8" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "32283:1:8" + "src": "32965:1:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "32276:3:8" + "src": "32958:3:8" }, "nodeType": "YulFunctionCall", - "src": "32276:9:8" + "src": "32958:9:8" }, "variableNames": [ { "name": "sum", "nodeType": "YulIdentifier", - "src": "32269:3:8" + "src": "32951:3:8" } ] } @@ -22566,13 +24250,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "32194:1:8", + "src": "32876:1:8", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "32197:1:8", + "src": "32879:1:8", "type": "" } ], @@ -22580,24 +24264,24 @@ { "name": "sum", "nodeType": "YulTypedName", - "src": "32203:3:8", + "src": "32885:3:8", "type": "" } ], - "src": "32163:128:8" + "src": "32845:128:8" }, { "body": { "nodeType": "YulBlock", - "src": "32343:181:8", + "src": "33025:181:8", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "32353:20:8", + "src": "33035:20:8", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "32363:10:8", + "src": "33045:10:8", "type": "", "value": "0xffffffff" }, @@ -22605,73 +24289,73 @@ { "name": "_1", "nodeType": "YulTypedName", - "src": "32357:2:8", + "src": "33039:2:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "32382:21:8", + "src": "33064:21:8", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "32397:1:8" + "src": "33079:1:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "32400:2:8" + "src": "33082:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "32393:3:8" + "src": "33075:3:8" }, "nodeType": "YulFunctionCall", - "src": "32393:10:8" + "src": "33075:10:8" }, "variables": [ { "name": "x_1", "nodeType": "YulTypedName", - "src": "32386:3:8", + "src": "33068:3:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "32412:21:8", + "src": "33094:21:8", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "32427:1:8" + "src": "33109:1:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "32430:2:8" + "src": "33112:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "32423:3:8" + "src": "33105:3:8" }, "nodeType": "YulFunctionCall", - "src": "32423:10:8" + "src": "33105:10:8" }, "variables": [ { "name": "y_1", "nodeType": "YulTypedName", - "src": "32416:3:8", + "src": "33098:3:8", "type": "" } ] @@ -22679,7 +24363,7 @@ { "body": { "nodeType": "YulBlock", - "src": "32467:22:8", + "src": "33149:22:8", "statements": [ { "expression": { @@ -22687,13 +24371,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "32469:16:8" + "src": "33151:16:8" }, "nodeType": "YulFunctionCall", - "src": "32469:18:8" + "src": "33151:18:8" }, "nodeType": "YulExpressionStatement", - "src": "32469:18:8" + "src": "33151:18:8" } ] }, @@ -22702,70 +24386,70 @@ { "name": "x_1", "nodeType": "YulIdentifier", - "src": "32448:3:8" + "src": "33130:3:8" }, { "arguments": [ { "name": "_1", "nodeType": "YulIdentifier", - "src": "32457:2:8" + "src": "33139:2:8" }, { "name": "y_1", "nodeType": "YulIdentifier", - "src": "32461:3:8" + "src": "33143:3:8" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "32453:3:8" + "src": "33135:3:8" }, "nodeType": "YulFunctionCall", - "src": "32453:12:8" + "src": "33135:12:8" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "32445:2:8" + "src": "33127:2:8" }, "nodeType": "YulFunctionCall", - "src": "32445:21:8" + "src": "33127:21:8" }, "nodeType": "YulIf", - "src": "32442:2:8" + "src": "33124:2:8" }, { "nodeType": "YulAssignment", - "src": "32498:20:8", + "src": "33180:20:8", "value": { "arguments": [ { "name": "x_1", "nodeType": "YulIdentifier", - "src": "32509:3:8" + "src": "33191:3:8" }, { "name": "y_1", "nodeType": "YulIdentifier", - "src": "32514:3:8" + "src": "33196:3:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "32505:3:8" + "src": "33187:3:8" }, "nodeType": "YulFunctionCall", - "src": "32505:13:8" + "src": "33187:13:8" }, "variableNames": [ { "name": "sum", "nodeType": "YulIdentifier", - "src": "32498:3:8" + "src": "33180:3:8" } ] } @@ -22777,13 +24461,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "32326:1:8", + "src": "33008:1:8", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "32329:1:8", + "src": "33011:1:8", "type": "" } ], @@ -22791,21 +24475,21 @@ { "name": "sum", "nodeType": "YulTypedName", - "src": "32335:3:8", + "src": "33017:3:8", "type": "" } ], - "src": "32296:228:8" + "src": "32978:228:8" }, { "body": { "nodeType": "YulBlock", - "src": "32575:74:8", + "src": "33257:74:8", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "32598:22:8", + "src": "33280:22:8", "statements": [ { "expression": { @@ -22813,13 +24497,13 @@ "functionName": { "name": "panic_error_0x12", "nodeType": "YulIdentifier", - "src": "32600:16:8" + "src": "33282:16:8" }, "nodeType": "YulFunctionCall", - "src": "32600:18:8" + "src": "33282:18:8" }, "nodeType": "YulExpressionStatement", - "src": "32600:18:8" + "src": "33282:18:8" } ] }, @@ -22828,49 +24512,49 @@ { "name": "y", "nodeType": "YulIdentifier", - "src": "32595:1:8" + "src": "33277:1:8" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "32588:6:8" + "src": "33270:6:8" }, "nodeType": "YulFunctionCall", - "src": "32588:9:8" + "src": "33270:9:8" }, "nodeType": "YulIf", - "src": "32585:2:8" + "src": "33267:2:8" }, { "nodeType": "YulAssignment", - "src": "32629:14:8", + "src": "33311:14:8", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "32638:1:8" + "src": "33320:1:8" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "32641:1:8" + "src": "33323:1:8" } ], "functionName": { "name": "div", "nodeType": "YulIdentifier", - "src": "32634:3:8" + "src": "33316:3:8" }, "nodeType": "YulFunctionCall", - "src": "32634:9:8" + "src": "33316:9:8" }, "variableNames": [ { "name": "r", "nodeType": "YulIdentifier", - "src": "32629:1:8" + "src": "33311:1:8" } ] } @@ -22882,13 +24566,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "32560:1:8", + "src": "33242:1:8", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "32563:1:8", + "src": "33245:1:8", "type": "" } ], @@ -22896,24 +24580,24 @@ { "name": "r", "nodeType": "YulTypedName", - "src": "32569:1:8", + "src": "33251:1:8", "type": "" } ], - "src": "32529:120:8" + "src": "33211:120:8" }, { "body": { "nodeType": "YulBlock", - "src": "32699:146:8", + "src": "33381:146:8", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "32709:20:8", + "src": "33391:20:8", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "32719:10:8", + "src": "33401:10:8", "type": "", "value": "0xffffffff" }, @@ -22921,40 +24605,40 @@ { "name": "_1", "nodeType": "YulTypedName", - "src": "32713:2:8", + "src": "33395:2:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "32738:21:8", + "src": "33420:21:8", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "32753:1:8" + "src": "33435:1:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "32756:2:8" + "src": "33438:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "32749:3:8" + "src": "33431:3:8" }, "nodeType": "YulFunctionCall", - "src": "32749:10:8" + "src": "33431:10:8" }, "variables": [ { "name": "y_1", "nodeType": "YulTypedName", - "src": "32742:3:8", + "src": "33424:3:8", "type": "" } ] @@ -22962,7 +24646,7 @@ { "body": { "nodeType": "YulBlock", - "src": "32783:22:8", + "src": "33465:22:8", "statements": [ { "expression": { @@ -22970,13 +24654,13 @@ "functionName": { "name": "panic_error_0x12", "nodeType": "YulIdentifier", - "src": "32785:16:8" + "src": "33467:16:8" }, "nodeType": "YulFunctionCall", - "src": "32785:18:8" + "src": "33467:18:8" }, "nodeType": "YulExpressionStatement", - "src": "32785:18:8" + "src": "33467:18:8" } ] }, @@ -22985,23 +24669,23 @@ { "name": "y_1", "nodeType": "YulIdentifier", - "src": "32778:3:8" + "src": "33460:3:8" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "32771:6:8" + "src": "33453:6:8" }, "nodeType": "YulFunctionCall", - "src": "32771:11:8" + "src": "33453:11:8" }, "nodeType": "YulIf", - "src": "32768:2:8" + "src": "33450:2:8" }, { "nodeType": "YulAssignment", - "src": "32814:25:8", + "src": "33496:25:8", "value": { "arguments": [ { @@ -23009,41 +24693,41 @@ { "name": "x", "nodeType": "YulIdentifier", - "src": "32827:1:8" + "src": "33509:1:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "32830:2:8" + "src": "33512:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "32823:3:8" + "src": "33505:3:8" }, "nodeType": "YulFunctionCall", - "src": "32823:10:8" + "src": "33505:10:8" }, { "name": "y_1", "nodeType": "YulIdentifier", - "src": "32835:3:8" + "src": "33517:3:8" } ], "functionName": { "name": "div", "nodeType": "YulIdentifier", - "src": "32819:3:8" + "src": "33501:3:8" }, "nodeType": "YulFunctionCall", - "src": "32819:20:8" + "src": "33501:20:8" }, "variableNames": [ { "name": "r", "nodeType": "YulIdentifier", - "src": "32814:1:8" + "src": "33496:1:8" } ] } @@ -23055,13 +24739,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "32684:1:8", + "src": "33366:1:8", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "32687:1:8", + "src": "33369:1:8", "type": "" } ], @@ -23069,21 +24753,21 @@ { "name": "r", "nodeType": "YulTypedName", - "src": "32693:1:8", + "src": "33375:1:8", "type": "" } ], - "src": "32654:191:8" + "src": "33336:191:8" }, { "body": { "nodeType": "YulBlock", - "src": "32902:116:8", + "src": "33584:116:8", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "32961:22:8", + "src": "33643:22:8", "statements": [ { "expression": { @@ -23091,13 +24775,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "32963:16:8" + "src": "33645:16:8" }, "nodeType": "YulFunctionCall", - "src": "32963:18:8" + "src": "33645:18:8" }, "nodeType": "YulExpressionStatement", - "src": "32963:18:8" + "src": "33645:18:8" } ] }, @@ -23110,32 +24794,32 @@ { "name": "x", "nodeType": "YulIdentifier", - "src": "32933:1:8" + "src": "33615:1:8" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "32926:6:8" + "src": "33608:6:8" }, "nodeType": "YulFunctionCall", - "src": "32926:9:8" + "src": "33608:9:8" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "32919:6:8" + "src": "33601:6:8" }, "nodeType": "YulFunctionCall", - "src": "32919:17:8" + "src": "33601:17:8" }, { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "32941:1:8" + "src": "33623:1:8" }, { "arguments": [ @@ -23144,7 +24828,7 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "32952:1:8", + "src": "33634:1:8", "type": "", "value": "0" } @@ -23152,75 +24836,75 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "32948:3:8" + "src": "33630:3:8" }, "nodeType": "YulFunctionCall", - "src": "32948:6:8" + "src": "33630:6:8" }, { "name": "x", "nodeType": "YulIdentifier", - "src": "32956:1:8" + "src": "33638:1:8" } ], "functionName": { "name": "div", "nodeType": "YulIdentifier", - "src": "32944:3:8" + "src": "33626:3:8" }, "nodeType": "YulFunctionCall", - "src": "32944:14:8" + "src": "33626:14:8" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "32938:2:8" + "src": "33620:2:8" }, "nodeType": "YulFunctionCall", - "src": "32938:21:8" + "src": "33620:21:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "32915:3:8" + "src": "33597:3:8" }, "nodeType": "YulFunctionCall", - "src": "32915:45:8" + "src": "33597:45:8" }, "nodeType": "YulIf", - "src": "32912:2:8" + "src": "33594:2:8" }, { "nodeType": "YulAssignment", - "src": "32992:20:8", + "src": "33674:20:8", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "33007:1:8" + "src": "33689:1:8" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "33010:1:8" + "src": "33692:1:8" } ], "functionName": { "name": "mul", "nodeType": "YulIdentifier", - "src": "33003:3:8" + "src": "33685:3:8" }, "nodeType": "YulFunctionCall", - "src": "33003:9:8" + "src": "33685:9:8" }, "variableNames": [ { "name": "product", "nodeType": "YulIdentifier", - "src": "32992:7:8" + "src": "33674:7:8" } ] } @@ -23232,13 +24916,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "32881:1:8", + "src": "33563:1:8", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "32884:1:8", + "src": "33566:1:8", "type": "" } ], @@ -23246,24 +24930,24 @@ { "name": "product", "nodeType": "YulTypedName", - "src": "32890:7:8", + "src": "33572:7:8", "type": "" } ], - "src": "32850:168:8" + "src": "33532:168:8" }, { "body": { "nodeType": "YulBlock", - "src": "33074:211:8", + "src": "33756:211:8", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "33084:20:8", + "src": "33766:20:8", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "33094:10:8", + "src": "33776:10:8", "type": "", "value": "0xffffffff" }, @@ -23271,73 +24955,73 @@ { "name": "_1", "nodeType": "YulTypedName", - "src": "33088:2:8", + "src": "33770:2:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "33113:21:8", + "src": "33795:21:8", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "33128:1:8" + "src": "33810:1:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "33131:2:8" + "src": "33813:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "33124:3:8" + "src": "33806:3:8" }, "nodeType": "YulFunctionCall", - "src": "33124:10:8" + "src": "33806:10:8" }, "variables": [ { "name": "x_1", "nodeType": "YulTypedName", - "src": "33117:3:8", + "src": "33799:3:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "33143:21:8", + "src": "33825:21:8", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "33158:1:8" + "src": "33840:1:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "33161:2:8" + "src": "33843:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "33154:3:8" + "src": "33836:3:8" }, "nodeType": "YulFunctionCall", - "src": "33154:10:8" + "src": "33836:10:8" }, "variables": [ { "name": "y_1", "nodeType": "YulTypedName", - "src": "33147:3:8", + "src": "33829:3:8", "type": "" } ] @@ -23345,7 +25029,7 @@ { "body": { "nodeType": "YulBlock", - "src": "33224:22:8", + "src": "33906:22:8", "statements": [ { "expression": { @@ -23353,13 +25037,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "33226:16:8" + "src": "33908:16:8" }, "nodeType": "YulFunctionCall", - "src": "33226:18:8" + "src": "33908:18:8" }, "nodeType": "YulExpressionStatement", - "src": "33226:18:8" + "src": "33908:18:8" } ] }, @@ -23372,104 +25056,104 @@ { "name": "x_1", "nodeType": "YulIdentifier", - "src": "33194:3:8" + "src": "33876:3:8" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "33187:6:8" + "src": "33869:6:8" }, "nodeType": "YulFunctionCall", - "src": "33187:11:8" + "src": "33869:11:8" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "33180:6:8" + "src": "33862:6:8" }, "nodeType": "YulFunctionCall", - "src": "33180:19:8" + "src": "33862:19:8" }, { "arguments": [ { "name": "y_1", "nodeType": "YulIdentifier", - "src": "33204:3:8" + "src": "33886:3:8" }, { "arguments": [ { "name": "_1", "nodeType": "YulIdentifier", - "src": "33213:2:8" + "src": "33895:2:8" }, { "name": "x_1", "nodeType": "YulIdentifier", - "src": "33217:3:8" + "src": "33899:3:8" } ], "functionName": { "name": "div", "nodeType": "YulIdentifier", - "src": "33209:3:8" + "src": "33891:3:8" }, "nodeType": "YulFunctionCall", - "src": "33209:12:8" + "src": "33891:12:8" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "33201:2:8" + "src": "33883:2:8" }, "nodeType": "YulFunctionCall", - "src": "33201:21:8" + "src": "33883:21:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "33176:3:8" + "src": "33858:3:8" }, "nodeType": "YulFunctionCall", - "src": "33176:47:8" + "src": "33858:47:8" }, "nodeType": "YulIf", - "src": "33173:2:8" + "src": "33855:2:8" }, { "nodeType": "YulAssignment", - "src": "33255:24:8", + "src": "33937:24:8", "value": { "arguments": [ { "name": "x_1", "nodeType": "YulIdentifier", - "src": "33270:3:8" + "src": "33952:3:8" }, { "name": "y_1", "nodeType": "YulIdentifier", - "src": "33275:3:8" + "src": "33957:3:8" } ], "functionName": { "name": "mul", "nodeType": "YulIdentifier", - "src": "33266:3:8" + "src": "33948:3:8" }, "nodeType": "YulFunctionCall", - "src": "33266:13:8" + "src": "33948:13:8" }, "variableNames": [ { "name": "product", "nodeType": "YulIdentifier", - "src": "33255:7:8" + "src": "33937:7:8" } ] } @@ -23481,13 +25165,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "33053:1:8", + "src": "33735:1:8", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "33056:1:8", + "src": "33738:1:8", "type": "" } ], @@ -23495,21 +25179,21 @@ { "name": "product", "nodeType": "YulTypedName", - "src": "33062:7:8", + "src": "33744:7:8", "type": "" } ], - "src": "33023:262:8" + "src": "33705:262:8" }, { "body": { "nodeType": "YulBlock", - "src": "33339:76:8", + "src": "34021:76:8", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "33361:22:8", + "src": "34043:22:8", "statements": [ { "expression": { @@ -23517,13 +25201,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "33363:16:8" + "src": "34045:16:8" }, "nodeType": "YulFunctionCall", - "src": "33363:18:8" + "src": "34045:18:8" }, "nodeType": "YulExpressionStatement", - "src": "33363:18:8" + "src": "34045:18:8" } ] }, @@ -23532,54 +25216,54 @@ { "name": "x", "nodeType": "YulIdentifier", - "src": "33355:1:8" + "src": "34037:1:8" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "33358:1:8" + "src": "34040:1:8" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "33352:2:8" + "src": "34034:2:8" }, "nodeType": "YulFunctionCall", - "src": "33352:8:8" + "src": "34034:8:8" }, "nodeType": "YulIf", - "src": "33349:2:8" + "src": "34031:2:8" }, { "nodeType": "YulAssignment", - "src": "33392:17:8", + "src": "34074:17:8", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "33404:1:8" + "src": "34086:1:8" }, { "name": "y", "nodeType": "YulIdentifier", - "src": "33407:1:8" + "src": "34089:1:8" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "33400:3:8" + "src": "34082:3:8" }, "nodeType": "YulFunctionCall", - "src": "33400:9:8" + "src": "34082:9:8" }, "variableNames": [ { "name": "diff", "nodeType": "YulIdentifier", - "src": "33392:4:8" + "src": "34074:4:8" } ] } @@ -23591,13 +25275,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "33321:1:8", + "src": "34003:1:8", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "33324:1:8", + "src": "34006:1:8", "type": "" } ], @@ -23605,24 +25289,24 @@ { "name": "diff", "nodeType": "YulTypedName", - "src": "33330:4:8", + "src": "34012:4:8", "type": "" } ], - "src": "33290:125:8" + "src": "33972:125:8" }, { "body": { "nodeType": "YulBlock", - "src": "33468:173:8", + "src": "34150:173:8", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "33478:20:8", + "src": "34160:20:8", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "33488:10:8", + "src": "34170:10:8", "type": "", "value": "0xffffffff" }, @@ -23630,73 +25314,73 @@ { "name": "_1", "nodeType": "YulTypedName", - "src": "33482:2:8", + "src": "34164:2:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "33507:21:8", + "src": "34189:21:8", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "33522:1:8" + "src": "34204:1:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "33525:2:8" + "src": "34207:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "33518:3:8" + "src": "34200:3:8" }, "nodeType": "YulFunctionCall", - "src": "33518:10:8" + "src": "34200:10:8" }, "variables": [ { "name": "x_1", "nodeType": "YulTypedName", - "src": "33511:3:8", + "src": "34193:3:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "33537:21:8", + "src": "34219:21:8", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "33552:1:8" + "src": "34234:1:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "33555:2:8" + "src": "34237:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "33548:3:8" + "src": "34230:3:8" }, "nodeType": "YulFunctionCall", - "src": "33548:10:8" + "src": "34230:10:8" }, "variables": [ { "name": "y_1", "nodeType": "YulTypedName", - "src": "33541:3:8", + "src": "34223:3:8", "type": "" } ] @@ -23704,7 +25388,7 @@ { "body": { "nodeType": "YulBlock", - "src": "33583:22:8", + "src": "34265:22:8", "statements": [ { "expression": { @@ -23712,13 +25396,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "33585:16:8" + "src": "34267:16:8" }, "nodeType": "YulFunctionCall", - "src": "33585:18:8" + "src": "34267:18:8" }, "nodeType": "YulExpressionStatement", - "src": "33585:18:8" + "src": "34267:18:8" } ] }, @@ -23727,54 +25411,54 @@ { "name": "x_1", "nodeType": "YulIdentifier", - "src": "33573:3:8" + "src": "34255:3:8" }, { "name": "y_1", "nodeType": "YulIdentifier", - "src": "33578:3:8" + "src": "34260:3:8" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "33570:2:8" + "src": "34252:2:8" }, "nodeType": "YulFunctionCall", - "src": "33570:12:8" + "src": "34252:12:8" }, "nodeType": "YulIf", - "src": "33567:2:8" + "src": "34249:2:8" }, { "nodeType": "YulAssignment", - "src": "33614:21:8", + "src": "34296:21:8", "value": { "arguments": [ { "name": "x_1", "nodeType": "YulIdentifier", - "src": "33626:3:8" + "src": "34308:3:8" }, { "name": "y_1", "nodeType": "YulIdentifier", - "src": "33631:3:8" + "src": "34313:3:8" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "33622:3:8" + "src": "34304:3:8" }, "nodeType": "YulFunctionCall", - "src": "33622:13:8" + "src": "34304:13:8" }, "variableNames": [ { "name": "diff", "nodeType": "YulIdentifier", - "src": "33614:4:8" + "src": "34296:4:8" } ] } @@ -23786,13 +25470,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "33450:1:8", + "src": "34132:1:8", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "33453:1:8", + "src": "34135:1:8", "type": "" } ], @@ -23800,31 +25484,31 @@ { "name": "diff", "nodeType": "YulTypedName", - "src": "33459:4:8", + "src": "34141:4:8", "type": "" } ], - "src": "33420:221:8" + "src": "34102:221:8" }, { "body": { "nodeType": "YulBlock", - "src": "33693:148:8", + "src": "34375:148:8", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "33703:23:8", + "src": "34385:23:8", "value": { "arguments": [ { "name": "x", "nodeType": "YulIdentifier", - "src": "33718:1:8" + "src": "34400:1:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "33721:4:8", + "src": "34403:4:8", "type": "", "value": "0xff" } @@ -23832,34 +25516,34 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "33714:3:8" + "src": "34396:3:8" }, "nodeType": "YulFunctionCall", - "src": "33714:12:8" + "src": "34396:12:8" }, "variables": [ { "name": "x_1", "nodeType": "YulTypedName", - "src": "33707:3:8", + "src": "34389:3:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "33735:23:8", + "src": "34417:23:8", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "33750:1:8" + "src": "34432:1:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "33753:4:8", + "src": "34435:4:8", "type": "", "value": "0xff" } @@ -23867,16 +25551,16 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "33746:3:8" + "src": "34428:3:8" }, "nodeType": "YulFunctionCall", - "src": "33746:12:8" + "src": "34428:12:8" }, "variables": [ { "name": "y_1", "nodeType": "YulTypedName", - "src": "33739:3:8", + "src": "34421:3:8", "type": "" } ] @@ -23884,7 +25568,7 @@ { "body": { "nodeType": "YulBlock", - "src": "33783:22:8", + "src": "34465:22:8", "statements": [ { "expression": { @@ -23892,13 +25576,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "33785:16:8" + "src": "34467:16:8" }, "nodeType": "YulFunctionCall", - "src": "33785:18:8" + "src": "34467:18:8" }, "nodeType": "YulExpressionStatement", - "src": "33785:18:8" + "src": "34467:18:8" } ] }, @@ -23907,54 +25591,54 @@ { "name": "x_1", "nodeType": "YulIdentifier", - "src": "33773:3:8" + "src": "34455:3:8" }, { "name": "y_1", "nodeType": "YulIdentifier", - "src": "33778:3:8" + "src": "34460:3:8" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "33770:2:8" + "src": "34452:2:8" }, "nodeType": "YulFunctionCall", - "src": "33770:12:8" + "src": "34452:12:8" }, "nodeType": "YulIf", - "src": "33767:2:8" + "src": "34449:2:8" }, { "nodeType": "YulAssignment", - "src": "33814:21:8", + "src": "34496:21:8", "value": { "arguments": [ { "name": "x_1", "nodeType": "YulIdentifier", - "src": "33826:3:8" + "src": "34508:3:8" }, { "name": "y_1", "nodeType": "YulIdentifier", - "src": "33831:3:8" + "src": "34513:3:8" } ], "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "33822:3:8" + "src": "34504:3:8" }, "nodeType": "YulFunctionCall", - "src": "33822:13:8" + "src": "34504:13:8" }, "variableNames": [ { "name": "diff", "nodeType": "YulIdentifier", - "src": "33814:4:8" + "src": "34496:4:8" } ] } @@ -23966,13 +25650,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "33675:1:8", + "src": "34357:1:8", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "33678:1:8", + "src": "34360:1:8", "type": "" } ], @@ -23980,24 +25664,24 @@ { "name": "diff", "nodeType": "YulTypedName", - "src": "33684:4:8", + "src": "34366:4:8", "type": "" } ], - "src": "33646:195:8" + "src": "34328:195:8" }, { "body": { "nodeType": "YulBlock", - "src": "33899:205:8", + "src": "34581:205:8", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "33909:10:8", + "src": "34591:10:8", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "33918:1:8", + "src": "34600:1:8", "type": "", "value": "0" }, @@ -24005,7 +25689,7 @@ { "name": "i", "nodeType": "YulTypedName", - "src": "33913:1:8", + "src": "34595:1:8", "type": "" } ] @@ -24013,7 +25697,7 @@ { "body": { "nodeType": "YulBlock", - "src": "33978:63:8", + "src": "34660:63:8", "statements": [ { "expression": { @@ -24023,21 +25707,21 @@ { "name": "dst", "nodeType": "YulIdentifier", - "src": "34003:3:8" + "src": "34685:3:8" }, { "name": "i", "nodeType": "YulIdentifier", - "src": "34008:1:8" + "src": "34690:1:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "33999:3:8" + "src": "34681:3:8" }, "nodeType": "YulFunctionCall", - "src": "33999:11:8" + "src": "34681:11:8" }, { "arguments": [ @@ -24046,42 +25730,42 @@ { "name": "src", "nodeType": "YulIdentifier", - "src": "34022:3:8" + "src": "34704:3:8" }, { "name": "i", "nodeType": "YulIdentifier", - "src": "34027:1:8" + "src": "34709:1:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "34018:3:8" + "src": "34700:3:8" }, "nodeType": "YulFunctionCall", - "src": "34018:11:8" + "src": "34700:11:8" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "34012:5:8" + "src": "34694:5:8" }, "nodeType": "YulFunctionCall", - "src": "34012:18:8" + "src": "34694:18:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "33992:6:8" + "src": "34674:6:8" }, "nodeType": "YulFunctionCall", - "src": "33992:39:8" + "src": "34674:39:8" }, "nodeType": "YulExpressionStatement", - "src": "33992:39:8" + "src": "34674:39:8" } ] }, @@ -24090,41 +25774,41 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "33939:1:8" + "src": "34621:1:8" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "33942:6:8" + "src": "34624:6:8" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "33936:2:8" + "src": "34618:2:8" }, "nodeType": "YulFunctionCall", - "src": "33936:13:8" + "src": "34618:13:8" }, "nodeType": "YulForLoop", "post": { "nodeType": "YulBlock", - "src": "33950:19:8", + "src": "34632:19:8", "statements": [ { "nodeType": "YulAssignment", - "src": "33952:15:8", + "src": "34634:15:8", "value": { "arguments": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "33961:1:8" + "src": "34643:1:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "33964:2:8", + "src": "34646:2:8", "type": "", "value": "32" } @@ -24132,16 +25816,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "33957:3:8" + "src": "34639:3:8" }, "nodeType": "YulFunctionCall", - "src": "33957:10:8" + "src": "34639:10:8" }, "variableNames": [ { "name": "i", "nodeType": "YulIdentifier", - "src": "33952:1:8" + "src": "34634:1:8" } ] } @@ -24149,15 +25833,15 @@ }, "pre": { "nodeType": "YulBlock", - "src": "33932:3:8", + "src": "34614:3:8", "statements": [] }, - "src": "33928:113:8" + "src": "34610:113:8" }, { "body": { "nodeType": "YulBlock", - "src": "34067:31:8", + "src": "34749:31:8", "statements": [ { "expression": { @@ -24167,26 +25851,26 @@ { "name": "dst", "nodeType": "YulIdentifier", - "src": "34080:3:8" + "src": "34762:3:8" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "34085:6:8" + "src": "34767:6:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "34076:3:8" + "src": "34758:3:8" }, "nodeType": "YulFunctionCall", - "src": "34076:16:8" + "src": "34758:16:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "34094:1:8", + "src": "34776:1:8", "type": "", "value": "0" } @@ -24194,13 +25878,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "34069:6:8" + "src": "34751:6:8" }, "nodeType": "YulFunctionCall", - "src": "34069:27:8" + "src": "34751:27:8" }, "nodeType": "YulExpressionStatement", - "src": "34069:27:8" + "src": "34751:27:8" } ] }, @@ -24209,24 +25893,24 @@ { "name": "i", "nodeType": "YulIdentifier", - "src": "34056:1:8" + "src": "34738:1:8" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "34059:6:8" + "src": "34741:6:8" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "34053:2:8" + "src": "34735:2:8" }, "nodeType": "YulFunctionCall", - "src": "34053:13:8" + "src": "34735:13:8" }, "nodeType": "YulIf", - "src": "34050:2:8" + "src": "34732:2:8" } ] }, @@ -24236,38 +25920,38 @@ { "name": "src", "nodeType": "YulTypedName", - "src": "33877:3:8", + "src": "34559:3:8", "type": "" }, { "name": "dst", "nodeType": "YulTypedName", - "src": "33882:3:8", + "src": "34564:3:8", "type": "" }, { "name": "length", "nodeType": "YulTypedName", - "src": "33887:6:8", + "src": "34569:6:8", "type": "" } ], - "src": "33846:258:8" + "src": "34528:258:8" }, { "body": { "nodeType": "YulBlock", - "src": "34156:299:8", + "src": "34838:299:8", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "34166:58:8", + "src": "34848:58:8", "value": { "arguments": [ { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "34188:6:8" + "src": "34870:6:8" }, { "arguments": [ @@ -24276,12 +25960,12 @@ { "name": "size", "nodeType": "YulIdentifier", - "src": "34204:4:8" + "src": "34886:4:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "34210:2:8", + "src": "34892:2:8", "type": "", "value": "31" } @@ -24289,17 +25973,17 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "34200:3:8" + "src": "34882:3:8" }, "nodeType": "YulFunctionCall", - "src": "34200:13:8" + "src": "34882:13:8" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "34219:2:8", + "src": "34901:2:8", "type": "", "value": "31" } @@ -24307,34 +25991,34 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "34215:3:8" + "src": "34897:3:8" }, "nodeType": "YulFunctionCall", - "src": "34215:7:8" + "src": "34897:7:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "34196:3:8" + "src": "34878:3:8" }, "nodeType": "YulFunctionCall", - "src": "34196:27:8" + "src": "34878:27:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "34184:3:8" + "src": "34866:3:8" }, "nodeType": "YulFunctionCall", - "src": "34184:40:8" + "src": "34866:40:8" }, "variables": [ { "name": "newFreePtr", "nodeType": "YulTypedName", - "src": "34170:10:8", + "src": "34852:10:8", "type": "" } ] @@ -24342,7 +26026,7 @@ { "body": { "nodeType": "YulBlock", - "src": "34307:111:8", + "src": "34989:111:8", "statements": [ { "expression": { @@ -24350,7 +26034,7 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "34328:1:8", + "src": "35010:1:8", "type": "", "value": "0" }, @@ -24359,14 +26043,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "34335:3:8", + "src": "35017:3:8", "type": "", "value": "224" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "34340:10:8", + "src": "35022:10:8", "type": "", "value": "0x4e487b71" } @@ -24374,22 +26058,22 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "34331:3:8" + "src": "35013:3:8" }, "nodeType": "YulFunctionCall", - "src": "34331:20:8" + "src": "35013:20:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "34321:6:8" + "src": "35003:6:8" }, "nodeType": "YulFunctionCall", - "src": "34321:31:8" + "src": "35003:31:8" }, "nodeType": "YulExpressionStatement", - "src": "34321:31:8" + "src": "35003:31:8" }, { "expression": { @@ -24397,14 +26081,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "34372:1:8", + "src": "35054:1:8", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "34375:4:8", + "src": "35057:4:8", "type": "", "value": "0x41" } @@ -24412,13 +26096,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "34365:6:8" + "src": "35047:6:8" }, "nodeType": "YulFunctionCall", - "src": "34365:15:8" + "src": "35047:15:8" }, "nodeType": "YulExpressionStatement", - "src": "34365:15:8" + "src": "35047:15:8" }, { "expression": { @@ -24426,14 +26110,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "34400:1:8", + "src": "35082:1:8", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "34403:4:8", + "src": "35085:4:8", "type": "", "value": "0x24" } @@ -24441,13 +26125,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "34393:6:8" + "src": "35075:6:8" }, "nodeType": "YulFunctionCall", - "src": "34393:15:8" + "src": "35075:15:8" }, "nodeType": "YulExpressionStatement", - "src": "34393:15:8" + "src": "35075:15:8" } ] }, @@ -24458,12 +26142,12 @@ { "name": "newFreePtr", "nodeType": "YulIdentifier", - "src": "34242:10:8" + "src": "34924:10:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "34254:18:8", + "src": "34936:18:8", "type": "", "value": "0xffffffffffffffff" } @@ -24471,43 +26155,43 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "34239:2:8" + "src": "34921:2:8" }, "nodeType": "YulFunctionCall", - "src": "34239:34:8" + "src": "34921:34:8" }, { "arguments": [ { "name": "newFreePtr", "nodeType": "YulIdentifier", - "src": "34278:10:8" + "src": "34960:10:8" }, { "name": "memPtr", "nodeType": "YulIdentifier", - "src": "34290:6:8" + "src": "34972:6:8" } ], "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "34275:2:8" + "src": "34957:2:8" }, "nodeType": "YulFunctionCall", - "src": "34275:22:8" + "src": "34957:22:8" } ], "functionName": { "name": "or", "nodeType": "YulIdentifier", - "src": "34236:2:8" + "src": "34918:2:8" }, "nodeType": "YulFunctionCall", - "src": "34236:62:8" + "src": "34918:62:8" }, "nodeType": "YulIf", - "src": "34233:2:8" + "src": "34915:2:8" }, { "expression": { @@ -24515,26 +26199,26 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "34434:2:8", + "src": "35116:2:8", "type": "", "value": "64" }, { "name": "newFreePtr", "nodeType": "YulIdentifier", - "src": "34438:10:8" + "src": "35120:10:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "34427:6:8" + "src": "35109:6:8" }, "nodeType": "YulFunctionCall", - "src": "34427:22:8" + "src": "35109:22:8" }, "nodeType": "YulExpressionStatement", - "src": "34427:22:8" + "src": "35109:22:8" } ] }, @@ -24544,30 +26228,30 @@ { "name": "memPtr", "nodeType": "YulTypedName", - "src": "34138:6:8", + "src": "34820:6:8", "type": "" }, { "name": "size", "nodeType": "YulTypedName", - "src": "34146:4:8", + "src": "34828:4:8", "type": "" } ], - "src": "34109:346:8" + "src": "34791:346:8" }, { "body": { "nodeType": "YulBlock", - "src": "34506:155:8", + "src": "35188:155:8", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "34516:20:8", + "src": "35198:20:8", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "34526:10:8", + "src": "35208:10:8", "type": "", "value": "0xffffffff" }, @@ -24575,40 +26259,40 @@ { "name": "_1", "nodeType": "YulTypedName", - "src": "34520:2:8", + "src": "35202:2:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "34545:29:8", + "src": "35227:29:8", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "34564:5:8" + "src": "35246:5:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "34571:2:8" + "src": "35253:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "34560:3:8" + "src": "35242:3:8" }, "nodeType": "YulFunctionCall", - "src": "34560:14:8" + "src": "35242:14:8" }, "variables": [ { "name": "value_1", "nodeType": "YulTypedName", - "src": "34549:7:8", + "src": "35231:7:8", "type": "" } ] @@ -24616,7 +26300,7 @@ { "body": { "nodeType": "YulBlock", - "src": "34602:22:8", + "src": "35284:22:8", "statements": [ { "expression": { @@ -24624,13 +26308,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "34604:16:8" + "src": "35286:16:8" }, "nodeType": "YulFunctionCall", - "src": "34604:18:8" + "src": "35286:18:8" }, "nodeType": "YulExpressionStatement", - "src": "34604:18:8" + "src": "35286:18:8" } ] }, @@ -24639,39 +26323,39 @@ { "name": "value_1", "nodeType": "YulIdentifier", - "src": "34589:7:8" + "src": "35271:7:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "34598:2:8" + "src": "35280:2:8" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "34586:2:8" + "src": "35268:2:8" }, "nodeType": "YulFunctionCall", - "src": "34586:15:8" + "src": "35268:15:8" }, "nodeType": "YulIf", - "src": "34583:2:8" + "src": "35265:2:8" }, { "nodeType": "YulAssignment", - "src": "34633:22:8", + "src": "35315:22:8", "value": { "arguments": [ { "name": "value_1", "nodeType": "YulIdentifier", - "src": "34644:7:8" + "src": "35326:7:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "34653:1:8", + "src": "35335:1:8", "type": "", "value": "1" } @@ -24679,16 +26363,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "34640:3:8" + "src": "35322:3:8" }, "nodeType": "YulFunctionCall", - "src": "34640:15:8" + "src": "35322:15:8" }, "variableNames": [ { "name": "ret", "nodeType": "YulIdentifier", - "src": "34633:3:8" + "src": "35315:3:8" } ] } @@ -24700,7 +26384,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "34488:5:8", + "src": "35170:5:8", "type": "" } ], @@ -24708,31 +26392,31 @@ { "name": "ret", "nodeType": "YulTypedName", - "src": "34498:3:8", + "src": "35180:3:8", "type": "" } ], - "src": "34460:201:8" + "src": "35142:201:8" }, { "body": { "nodeType": "YulBlock", - "src": "34711:130:8", + "src": "35393:130:8", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "34721:31:8", + "src": "35403:31:8", "value": { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "34740:5:8" + "src": "35422:5:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "34747:4:8", + "src": "35429:4:8", "type": "", "value": "0xff" } @@ -24740,16 +26424,16 @@ "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "34736:3:8" + "src": "35418:3:8" }, "nodeType": "YulFunctionCall", - "src": "34736:16:8" + "src": "35418:16:8" }, "variables": [ { "name": "value_1", "nodeType": "YulTypedName", - "src": "34725:7:8", + "src": "35407:7:8", "type": "" } ] @@ -24757,7 +26441,7 @@ { "body": { "nodeType": "YulBlock", - "src": "34782:22:8", + "src": "35464:22:8", "statements": [ { "expression": { @@ -24765,13 +26449,13 @@ "functionName": { "name": "panic_error_0x11", "nodeType": "YulIdentifier", - "src": "34784:16:8" + "src": "35466:16:8" }, "nodeType": "YulFunctionCall", - "src": "34784:18:8" + "src": "35466:18:8" }, "nodeType": "YulExpressionStatement", - "src": "34784:18:8" + "src": "35466:18:8" } ] }, @@ -24780,12 +26464,12 @@ { "name": "value_1", "nodeType": "YulIdentifier", - "src": "34767:7:8" + "src": "35449:7:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "34776:4:8", + "src": "35458:4:8", "type": "", "value": "0xff" } @@ -24793,28 +26477,28 @@ "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "34764:2:8" + "src": "35446:2:8" }, "nodeType": "YulFunctionCall", - "src": "34764:17:8" + "src": "35446:17:8" }, "nodeType": "YulIf", - "src": "34761:2:8" + "src": "35443:2:8" }, { "nodeType": "YulAssignment", - "src": "34813:22:8", + "src": "35495:22:8", "value": { "arguments": [ { "name": "value_1", "nodeType": "YulIdentifier", - "src": "34824:7:8" + "src": "35506:7:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "34833:1:8", + "src": "35515:1:8", "type": "", "value": "1" } @@ -24822,16 +26506,16 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "34820:3:8" + "src": "35502:3:8" }, "nodeType": "YulFunctionCall", - "src": "34820:15:8" + "src": "35502:15:8" }, "variableNames": [ { "name": "ret", "nodeType": "YulIdentifier", - "src": "34813:3:8" + "src": "35495:3:8" } ] } @@ -24843,7 +26527,7 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "34693:5:8", + "src": "35375:5:8", "type": "" } ], @@ -24851,24 +26535,24 @@ { "name": "ret", "nodeType": "YulTypedName", - "src": "34703:3:8", + "src": "35385:3:8", "type": "" } ], - "src": "34666:175:8" + "src": "35348:175:8" }, { "body": { "nodeType": "YulBlock", - "src": "34883:146:8", + "src": "35565:146:8", "statements": [ { "nodeType": "YulVariableDeclaration", - "src": "34893:20:8", + "src": "35575:20:8", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "34903:10:8", + "src": "35585:10:8", "type": "", "value": "0xffffffff" }, @@ -24876,40 +26560,40 @@ { "name": "_1", "nodeType": "YulTypedName", - "src": "34897:2:8", + "src": "35579:2:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "34922:21:8", + "src": "35604:21:8", "value": { "arguments": [ { "name": "y", "nodeType": "YulIdentifier", - "src": "34937:1:8" + "src": "35619:1:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "34940:2:8" + "src": "35622:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "34933:3:8" + "src": "35615:3:8" }, "nodeType": "YulFunctionCall", - "src": "34933:10:8" + "src": "35615:10:8" }, "variables": [ { "name": "y_1", "nodeType": "YulTypedName", - "src": "34926:3:8", + "src": "35608:3:8", "type": "" } ] @@ -24917,7 +26601,7 @@ { "body": { "nodeType": "YulBlock", - "src": "34967:22:8", + "src": "35649:22:8", "statements": [ { "expression": { @@ -24925,13 +26609,13 @@ "functionName": { "name": "panic_error_0x12", "nodeType": "YulIdentifier", - "src": "34969:16:8" + "src": "35651:16:8" }, "nodeType": "YulFunctionCall", - "src": "34969:18:8" + "src": "35651:18:8" }, "nodeType": "YulExpressionStatement", - "src": "34969:18:8" + "src": "35651:18:8" } ] }, @@ -24940,23 +26624,23 @@ { "name": "y_1", "nodeType": "YulIdentifier", - "src": "34962:3:8" + "src": "35644:3:8" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "34955:6:8" + "src": "35637:6:8" }, "nodeType": "YulFunctionCall", - "src": "34955:11:8" + "src": "35637:11:8" }, "nodeType": "YulIf", - "src": "34952:2:8" + "src": "35634:2:8" }, { "nodeType": "YulAssignment", - "src": "34998:25:8", + "src": "35680:25:8", "value": { "arguments": [ { @@ -24964,41 +26648,41 @@ { "name": "x", "nodeType": "YulIdentifier", - "src": "35011:1:8" + "src": "35693:1:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "35014:2:8" + "src": "35696:2:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "35007:3:8" + "src": "35689:3:8" }, "nodeType": "YulFunctionCall", - "src": "35007:10:8" + "src": "35689:10:8" }, { "name": "y_1", "nodeType": "YulIdentifier", - "src": "35019:3:8" + "src": "35701:3:8" } ], "functionName": { "name": "mod", "nodeType": "YulIdentifier", - "src": "35003:3:8" + "src": "35685:3:8" }, "nodeType": "YulFunctionCall", - "src": "35003:20:8" + "src": "35685:20:8" }, "variableNames": [ { "name": "r", "nodeType": "YulIdentifier", - "src": "34998:1:8" + "src": "35680:1:8" } ] } @@ -25010,13 +26694,13 @@ { "name": "x", "nodeType": "YulTypedName", - "src": "34868:1:8", + "src": "35550:1:8", "type": "" }, { "name": "y", "nodeType": "YulTypedName", - "src": "34871:1:8", + "src": "35553:1:8", "type": "" } ], @@ -25024,16 +26708,16 @@ { "name": "r", "nodeType": "YulTypedName", - "src": "34877:1:8", + "src": "35559:1:8", "type": "" } ], - "src": "34846:183:8" + "src": "35528:183:8" }, { "body": { "nodeType": "YulBlock", - "src": "35066:95:8", + "src": "35748:95:8", "statements": [ { "expression": { @@ -25041,7 +26725,7 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "35083:1:8", + "src": "35765:1:8", "type": "", "value": "0" }, @@ -25050,14 +26734,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "35090:3:8", + "src": "35772:3:8", "type": "", "value": "224" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "35095:10:8", + "src": "35777:10:8", "type": "", "value": "0x4e487b71" } @@ -25065,22 +26749,22 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "35086:3:8" + "src": "35768:3:8" }, "nodeType": "YulFunctionCall", - "src": "35086:20:8" + "src": "35768:20:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "35076:6:8" + "src": "35758:6:8" }, "nodeType": "YulFunctionCall", - "src": "35076:31:8" + "src": "35758:31:8" }, "nodeType": "YulExpressionStatement", - "src": "35076:31:8" + "src": "35758:31:8" }, { "expression": { @@ -25088,14 +26772,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "35123:1:8", + "src": "35805:1:8", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "35126:4:8", + "src": "35808:4:8", "type": "", "value": "0x11" } @@ -25103,13 +26787,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "35116:6:8" + "src": "35798:6:8" }, "nodeType": "YulFunctionCall", - "src": "35116:15:8" + "src": "35798:15:8" }, "nodeType": "YulExpressionStatement", - "src": "35116:15:8" + "src": "35798:15:8" }, { "expression": { @@ -25117,14 +26801,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "35147:1:8", + "src": "35829:1:8", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "35150:4:8", + "src": "35832:4:8", "type": "", "value": "0x24" } @@ -25132,24 +26816,24 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "35140:6:8" + "src": "35822:6:8" }, "nodeType": "YulFunctionCall", - "src": "35140:15:8" + "src": "35822:15:8" }, "nodeType": "YulExpressionStatement", - "src": "35140:15:8" + "src": "35822:15:8" } ] }, "name": "panic_error_0x11", "nodeType": "YulFunctionDefinition", - "src": "35034:127:8" + "src": "35716:127:8" }, { "body": { "nodeType": "YulBlock", - "src": "35198:95:8", + "src": "35880:95:8", "statements": [ { "expression": { @@ -25157,7 +26841,7 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "35215:1:8", + "src": "35897:1:8", "type": "", "value": "0" }, @@ -25166,14 +26850,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "35222:3:8", + "src": "35904:3:8", "type": "", "value": "224" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "35227:10:8", + "src": "35909:10:8", "type": "", "value": "0x4e487b71" } @@ -25181,22 +26865,22 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "35218:3:8" + "src": "35900:3:8" }, "nodeType": "YulFunctionCall", - "src": "35218:20:8" + "src": "35900:20:8" } ], "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "35208:6:8" + "src": "35890:6:8" }, "nodeType": "YulFunctionCall", - "src": "35208:31:8" + "src": "35890:31:8" }, "nodeType": "YulExpressionStatement", - "src": "35208:31:8" + "src": "35890:31:8" }, { "expression": { @@ -25204,14 +26888,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "35255:1:8", + "src": "35937:1:8", "type": "", "value": "4" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "35258:4:8", + "src": "35940:4:8", "type": "", "value": "0x12" } @@ -25219,13 +26903,13 @@ "functionName": { "name": "mstore", "nodeType": "YulIdentifier", - "src": "35248:6:8" + "src": "35930:6:8" }, "nodeType": "YulFunctionCall", - "src": "35248:15:8" + "src": "35930:15:8" }, "nodeType": "YulExpressionStatement", - "src": "35248:15:8" + "src": "35930:15:8" }, { "expression": { @@ -25233,14 +26917,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "35279:1:8", + "src": "35961:1:8", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "35282:4:8", + "src": "35964:4:8", "type": "", "value": "0x24" } @@ -25248,29 +26932,29 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "35272:6:8" + "src": "35954:6:8" }, "nodeType": "YulFunctionCall", - "src": "35272:15:8" + "src": "35954:15:8" }, "nodeType": "YulExpressionStatement", - "src": "35272:15:8" + "src": "35954:15:8" } ] }, "name": "panic_error_0x12", "nodeType": "YulFunctionDefinition", - "src": "35166:127:8" + "src": "35848:127:8" }, { "body": { "nodeType": "YulBlock", - "src": "35341:142:8", + "src": "36023:142:8", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "35386:91:8", + "src": "36068:91:8", "statements": [ { "expression": { @@ -25278,17 +26962,17 @@ { "name": "sig", "nodeType": "YulIdentifier", - "src": "35415:3:8" + "src": "36097:3:8" }, { "name": "sig", "nodeType": "YulIdentifier", - "src": "35420:3:8" + "src": "36102:3:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "35425:1:8", + "src": "36107:1:8", "type": "", "value": "4" } @@ -25296,23 +26980,23 @@ "functionName": { "name": "returndatacopy", "nodeType": "YulIdentifier", - "src": "35400:14:8" + "src": "36082:14:8" }, "nodeType": "YulFunctionCall", - "src": "35400:27:8" + "src": "36082:27:8" }, "nodeType": "YulExpressionStatement", - "src": "35400:27:8" + "src": "36082:27:8" }, { "nodeType": "YulAssignment", - "src": "35440:27:8", + "src": "36122:27:8", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "35451:3:8", + "src": "36133:3:8", "type": "", "value": "224" }, @@ -25321,31 +27005,31 @@ { "name": "sig", "nodeType": "YulIdentifier", - "src": "35462:3:8" + "src": "36144:3:8" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "35456:5:8" + "src": "36138:5:8" }, "nodeType": "YulFunctionCall", - "src": "35456:10:8" + "src": "36138:10:8" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "35447:3:8" + "src": "36129:3:8" }, "nodeType": "YulFunctionCall", - "src": "35447:20:8" + "src": "36129:20:8" }, "variableNames": [ { "name": "sig", "nodeType": "YulIdentifier", - "src": "35440:3:8" + "src": "36122:3:8" } ] } @@ -25358,15 +27042,15 @@ "functionName": { "name": "returndatasize", "nodeType": "YulIdentifier", - "src": "35357:14:8" + "src": "36039:14:8" }, "nodeType": "YulFunctionCall", - "src": "35357:16:8" + "src": "36039:16:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "35375:1:8", + "src": "36057:1:8", "type": "", "value": "3" } @@ -25374,13 +27058,13 @@ "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "35354:2:8" + "src": "36036:2:8" }, "nodeType": "YulFunctionCall", - "src": "35354:23:8" + "src": "36036:23:8" }, "nodeType": "YulIf", - "src": "35351:2:8" + "src": "36033:2:8" } ] }, @@ -25390,25 +27074,25 @@ { "name": "sig", "nodeType": "YulTypedName", - "src": "35333:3:8", + "src": "36015:3:8", "type": "" } ], - "src": "35298:185:8" + "src": "35980:185:8" }, { "body": { "nodeType": "YulBlock", - "src": "35535:624:8", + "src": "36217:624:8", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "35575:9:8", + "src": "36257:9:8", "statements": [ { "nodeType": "YulLeave", - "src": "35577:5:8" + "src": "36259:5:8" } ] }, @@ -25419,15 +27103,15 @@ "functionName": { "name": "returndatasize", "nodeType": "YulIdentifier", - "src": "35551:14:8" + "src": "36233:14:8" }, "nodeType": "YulFunctionCall", - "src": "35551:16:8" + "src": "36233:16:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "35569:4:8", + "src": "36251:4:8", "type": "", "value": "0x44" } @@ -25435,23 +27119,23 @@ "functionName": { "name": "lt", "nodeType": "YulIdentifier", - "src": "35548:2:8" + "src": "36230:2:8" }, "nodeType": "YulFunctionCall", - "src": "35548:26:8" + "src": "36230:26:8" }, "nodeType": "YulIf", - "src": "35545:2:8" + "src": "36227:2:8" }, { "nodeType": "YulVariableDeclaration", - "src": "35593:21:8", + "src": "36275:21:8", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "35611:2:8", + "src": "36293:2:8", "type": "", "value": "64" } @@ -25459,29 +27143,29 @@ "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "35605:5:8" + "src": "36287:5:8" }, "nodeType": "YulFunctionCall", - "src": "35605:9:8" + "src": "36287:9:8" }, "variables": [ { "name": "data", "nodeType": "YulTypedName", - "src": "35597:4:8", + "src": "36279:4:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "35623:16:8", + "src": "36305:16:8", "value": { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "35637:1:8", + "src": "36319:1:8", "type": "", "value": "3" } @@ -25489,16 +27173,16 @@ "functionName": { "name": "not", "nodeType": "YulIdentifier", - "src": "35633:3:8" + "src": "36315:3:8" }, "nodeType": "YulFunctionCall", - "src": "35633:6:8" + "src": "36315:6:8" }, "variables": [ { "name": "_1", "nodeType": "YulTypedName", - "src": "35627:2:8", + "src": "36309:2:8", "type": "" } ] @@ -25509,12 +27193,12 @@ { "name": "data", "nodeType": "YulIdentifier", - "src": "35663:4:8" + "src": "36345:4:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "35669:1:8", + "src": "36351:1:8", "type": "", "value": "4" }, @@ -25525,94 +27209,94 @@ "functionName": { "name": "returndatasize", "nodeType": "YulIdentifier", - "src": "35676:14:8" + "src": "36358:14:8" }, "nodeType": "YulFunctionCall", - "src": "35676:16:8" + "src": "36358:16:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "35694:2:8" + "src": "36376:2:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "35672:3:8" + "src": "36354:3:8" }, "nodeType": "YulFunctionCall", - "src": "35672:25:8" + "src": "36354:25:8" } ], "functionName": { "name": "returndatacopy", "nodeType": "YulIdentifier", - "src": "35648:14:8" + "src": "36330:14:8" }, "nodeType": "YulFunctionCall", - "src": "35648:50:8" + "src": "36330:50:8" }, "nodeType": "YulExpressionStatement", - "src": "35648:50:8" + "src": "36330:50:8" }, { "nodeType": "YulVariableDeclaration", - "src": "35707:25:8", + "src": "36389:25:8", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", - "src": "35727:4:8" + "src": "36409:4:8" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "35721:5:8" + "src": "36403:5:8" }, "nodeType": "YulFunctionCall", - "src": "35721:11:8" + "src": "36403:11:8" }, "variables": [ { "name": "offset", "nodeType": "YulTypedName", - "src": "35711:6:8", + "src": "36393:6:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "35741:26:8", + "src": "36423:26:8", "value": { "arguments": [], "functionName": { "name": "returndatasize", "nodeType": "YulIdentifier", - "src": "35751:14:8" + "src": "36433:14:8" }, "nodeType": "YulFunctionCall", - "src": "35751:16:8" + "src": "36433:16:8" }, "variables": [ { "name": "_2", "nodeType": "YulTypedName", - "src": "35745:2:8", + "src": "36427:2:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "35776:28:8", + "src": "36458:28:8", "value": { "kind": "number", "nodeType": "YulLiteral", - "src": "35786:18:8", + "src": "36468:18:8", "type": "", "value": "0xffffffffffffffff" }, @@ -25620,7 +27304,7 @@ { "name": "_3", "nodeType": "YulTypedName", - "src": "35780:2:8", + "src": "36462:2:8", "type": "" } ] @@ -25628,11 +27312,11 @@ { "body": { "nodeType": "YulBlock", - "src": "35862:9:8", + "src": "36544:9:8", "statements": [ { "nodeType": "YulLeave", - "src": "35864:5:8" + "src": "36546:5:8" } ] }, @@ -25643,21 +27327,21 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "35822:6:8" + "src": "36504:6:8" }, { "name": "_3", "nodeType": "YulIdentifier", - "src": "35830:2:8" + "src": "36512:2:8" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "35819:2:8" + "src": "36501:2:8" }, "nodeType": "YulFunctionCall", - "src": "35819:14:8" + "src": "36501:14:8" }, { "arguments": [ @@ -25666,12 +27350,12 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "35842:6:8" + "src": "36524:6:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "35850:4:8", + "src": "36532:4:8", "type": "", "value": "0x24" } @@ -25679,94 +27363,94 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "35838:3:8" + "src": "36520:3:8" }, "nodeType": "YulFunctionCall", - "src": "35838:17:8" + "src": "36520:17:8" }, { "name": "_2", "nodeType": "YulIdentifier", - "src": "35857:2:8" + "src": "36539:2:8" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "35835:2:8" + "src": "36517:2:8" }, "nodeType": "YulFunctionCall", - "src": "35835:25:8" + "src": "36517:25:8" } ], "functionName": { "name": "or", "nodeType": "YulIdentifier", - "src": "35816:2:8" + "src": "36498:2:8" }, "nodeType": "YulFunctionCall", - "src": "35816:45:8" + "src": "36498:45:8" }, "nodeType": "YulIf", - "src": "35813:2:8" + "src": "36495:2:8" }, { "nodeType": "YulVariableDeclaration", - "src": "35880:28:8", + "src": "36562:28:8", "value": { "arguments": [ { "name": "data", "nodeType": "YulIdentifier", - "src": "35895:4:8" + "src": "36577:4:8" }, { "name": "offset", "nodeType": "YulIdentifier", - "src": "35901:6:8" + "src": "36583:6:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "35891:3:8" + "src": "36573:3:8" }, "nodeType": "YulFunctionCall", - "src": "35891:17:8" + "src": "36573:17:8" }, "variables": [ { "name": "msg", "nodeType": "YulTypedName", - "src": "35884:3:8", + "src": "36566:3:8", "type": "" } ] }, { "nodeType": "YulVariableDeclaration", - "src": "35917:24:8", + "src": "36599:24:8", "value": { "arguments": [ { "name": "msg", "nodeType": "YulIdentifier", - "src": "35937:3:8" + "src": "36619:3:8" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "35931:5:8" + "src": "36613:5:8" }, "nodeType": "YulFunctionCall", - "src": "35931:10:8" + "src": "36613:10:8" }, "variables": [ { "name": "length", "nodeType": "YulTypedName", - "src": "35921:6:8", + "src": "36603:6:8", "type": "" } ] @@ -25774,11 +27458,11 @@ { "body": { "nodeType": "YulBlock", - "src": "35968:9:8", + "src": "36650:9:8", "statements": [ { "nodeType": "YulLeave", - "src": "35970:5:8" + "src": "36652:5:8" } ] }, @@ -25787,33 +27471,33 @@ { "name": "length", "nodeType": "YulIdentifier", - "src": "35956:6:8" + "src": "36638:6:8" }, { "name": "_3", "nodeType": "YulIdentifier", - "src": "35964:2:8" + "src": "36646:2:8" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "35953:2:8" + "src": "36635:2:8" }, "nodeType": "YulFunctionCall", - "src": "35953:14:8" + "src": "36635:14:8" }, "nodeType": "YulIf", - "src": "35950:2:8" + "src": "36632:2:8" }, { "body": { "nodeType": "YulBlock", - "src": "36059:9:8", + "src": "36741:9:8", "statements": [ { "nodeType": "YulLeave", - "src": "36061:5:8" + "src": "36743:5:8" } ] }, @@ -25826,26 +27510,26 @@ { "name": "msg", "nodeType": "YulIdentifier", - "src": "36000:3:8" + "src": "36682:3:8" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "36005:6:8" + "src": "36687:6:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "35996:3:8" + "src": "36678:3:8" }, "nodeType": "YulFunctionCall", - "src": "35996:16:8" + "src": "36678:16:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "36014:4:8", + "src": "36696:4:8", "type": "", "value": "0x20" } @@ -25853,10 +27537,10 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "35992:3:8" + "src": "36674:3:8" }, "nodeType": "YulFunctionCall", - "src": "35992:27:8" + "src": "36674:27:8" }, { "arguments": [ @@ -25865,52 +27549,52 @@ { "name": "data", "nodeType": "YulIdentifier", - "src": "36029:4:8" + "src": "36711:4:8" }, { "arguments": [], "functionName": { "name": "returndatasize", "nodeType": "YulIdentifier", - "src": "36035:14:8" + "src": "36717:14:8" }, "nodeType": "YulFunctionCall", - "src": "36035:16:8" + "src": "36717:16:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "36025:3:8" + "src": "36707:3:8" }, "nodeType": "YulFunctionCall", - "src": "36025:27:8" + "src": "36707:27:8" }, { "name": "_1", "nodeType": "YulIdentifier", - "src": "36054:2:8" + "src": "36736:2:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "36021:3:8" + "src": "36703:3:8" }, "nodeType": "YulFunctionCall", - "src": "36021:36:8" + "src": "36703:36:8" } ], "functionName": { "name": "gt", "nodeType": "YulIdentifier", - "src": "35989:2:8" + "src": "36671:2:8" }, "nodeType": "YulFunctionCall", - "src": "35989:69:8" + "src": "36671:69:8" }, "nodeType": "YulIf", - "src": "35986:2:8" + "src": "36668:2:8" }, { "expression": { @@ -25918,7 +27602,7 @@ { "name": "data", "nodeType": "YulIdentifier", - "src": "36097:4:8" + "src": "36779:4:8" }, { "arguments": [ @@ -25927,26 +27611,26 @@ { "name": "offset", "nodeType": "YulIdentifier", - "src": "36111:6:8" + "src": "36793:6:8" }, { "name": "length", "nodeType": "YulIdentifier", - "src": "36119:6:8" + "src": "36801:6:8" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "36107:3:8" + "src": "36789:3:8" }, "nodeType": "YulFunctionCall", - "src": "36107:19:8" + "src": "36789:19:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "36128:4:8", + "src": "36810:4:8", "type": "", "value": "0x20" } @@ -25954,36 +27638,36 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "36103:3:8" + "src": "36785:3:8" }, "nodeType": "YulFunctionCall", - "src": "36103:30:8" + "src": "36785:30:8" } ], "functionName": { "name": "finalize_allocation", "nodeType": "YulIdentifier", - "src": "36077:19:8" + "src": "36759:19:8" }, "nodeType": "YulFunctionCall", - "src": "36077:57:8" + "src": "36759:57:8" }, "nodeType": "YulExpressionStatement", - "src": "36077:57:8" + "src": "36759:57:8" }, { "nodeType": "YulAssignment", - "src": "36143:10:8", + "src": "36825:10:8", "value": { "name": "msg", "nodeType": "YulIdentifier", - "src": "36150:3:8" + "src": "36832:3:8" }, "variableNames": [ { "name": "ret", "nodeType": "YulIdentifier", - "src": "36143:3:8" + "src": "36825:3:8" } ] } @@ -25995,21 +27679,21 @@ { "name": "ret", "nodeType": "YulTypedName", - "src": "35527:3:8", + "src": "36209:3:8", "type": "" } ], - "src": "35488:671:8" + "src": "36170:671:8" }, { "body": { "nodeType": "YulBlock", - "src": "36209:86:8", + "src": "36891:86:8", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "36273:16:8", + "src": "36955:16:8", "statements": [ { "expression": { @@ -26017,14 +27701,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "36282:1:8", + "src": "36964:1:8", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "36285:1:8", + "src": "36967:1:8", "type": "", "value": "0" } @@ -26032,13 +27716,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "36275:6:8" + "src": "36957:6:8" }, "nodeType": "YulFunctionCall", - "src": "36275:12:8" + "src": "36957:12:8" }, "nodeType": "YulExpressionStatement", - "src": "36275:12:8" + "src": "36957:12:8" } ] }, @@ -26049,14 +27733,14 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "36232:5:8" + "src": "36914:5:8" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "36243:5:8" + "src": "36925:5:8" }, { "arguments": [ @@ -26065,14 +27749,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "36258:3:8", + "src": "36940:3:8", "type": "", "value": "160" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "36263:1:8", + "src": "36945:1:8", "type": "", "value": "1" } @@ -26080,15 +27764,15 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "36254:3:8" + "src": "36936:3:8" }, "nodeType": "YulFunctionCall", - "src": "36254:11:8" + "src": "36936:11:8" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "36267:1:8", + "src": "36949:1:8", "type": "", "value": "1" } @@ -26096,40 +27780,40 @@ "functionName": { "name": "sub", "nodeType": "YulIdentifier", - "src": "36250:3:8" + "src": "36932:3:8" }, "nodeType": "YulFunctionCall", - "src": "36250:19:8" + "src": "36932:19:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "36239:3:8" + "src": "36921:3:8" }, "nodeType": "YulFunctionCall", - "src": "36239:31:8" + "src": "36921:31:8" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "36229:2:8" + "src": "36911:2:8" }, "nodeType": "YulFunctionCall", - "src": "36229:42:8" + "src": "36911:42:8" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "36222:6:8" + "src": "36904:6:8" }, "nodeType": "YulFunctionCall", - "src": "36222:50:8" + "src": "36904:50:8" }, "nodeType": "YulIf", - "src": "36219:2:8" + "src": "36901:2:8" } ] }, @@ -26139,21 +27823,21 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "36198:5:8", + "src": "36880:5:8", "type": "" } ], - "src": "36164:131:8" + "src": "36846:131:8" }, { "body": { "nodeType": "YulBlock", - "src": "36344:87:8", + "src": "37026:87:8", "statements": [ { "body": { "nodeType": "YulBlock", - "src": "36409:16:8", + "src": "37091:16:8", "statements": [ { "expression": { @@ -26161,14 +27845,14 @@ { "kind": "number", "nodeType": "YulLiteral", - "src": "36418:1:8", + "src": "37100:1:8", "type": "", "value": "0" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "36421:1:8", + "src": "37103:1:8", "type": "", "value": "0" } @@ -26176,13 +27860,13 @@ "functionName": { "name": "revert", "nodeType": "YulIdentifier", - "src": "36411:6:8" + "src": "37093:6:8" }, "nodeType": "YulFunctionCall", - "src": "36411:12:8" + "src": "37093:12:8" }, "nodeType": "YulExpressionStatement", - "src": "36411:12:8" + "src": "37093:12:8" } ] }, @@ -26193,28 +27877,28 @@ { "name": "value", "nodeType": "YulIdentifier", - "src": "36367:5:8" + "src": "37049:5:8" }, { "arguments": [ { "name": "value", "nodeType": "YulIdentifier", - "src": "36378:5:8" + "src": "37060:5:8" }, { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", - "src": "36389:3:8", + "src": "37071:3:8", "type": "", "value": "224" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "36394:10:8", + "src": "37076:10:8", "type": "", "value": "0xffffffff" } @@ -26222,40 +27906,40 @@ "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "36385:3:8" + "src": "37067:3:8" }, "nodeType": "YulFunctionCall", - "src": "36385:20:8" + "src": "37067:20:8" } ], "functionName": { "name": "and", "nodeType": "YulIdentifier", - "src": "36374:3:8" + "src": "37056:3:8" }, "nodeType": "YulFunctionCall", - "src": "36374:32:8" + "src": "37056:32:8" } ], "functionName": { "name": "eq", "nodeType": "YulIdentifier", - "src": "36364:2:8" + "src": "37046:2:8" }, "nodeType": "YulFunctionCall", - "src": "36364:43:8" + "src": "37046:43:8" } ], "functionName": { "name": "iszero", "nodeType": "YulIdentifier", - "src": "36357:6:8" + "src": "37039:6:8" }, "nodeType": "YulFunctionCall", - "src": "36357:51:8" + "src": "37039:51:8" }, "nodeType": "YulIf", - "src": "36354:2:8" + "src": "37036:2:8" } ] }, @@ -26265,58 +27949,58 @@ { "name": "value", "nodeType": "YulTypedName", - "src": "36333:5:8", + "src": "37015:5:8", "type": "" } ], - "src": "36300:131:8" + "src": "36982:131:8" } ] }, - "contents": "{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n validator_revert_address(value)\n }\n function abi_decode_array_bytes32_dyn_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_enum_OperationType(offset) -> value\n {\n value := calldataload(offset)\n if iszero(lt(value, 7)) { revert(0, 0) }\n }\n function abi_decode_enum_TokenType(offset) -> value\n {\n value := calldataload(offset)\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n function abi_decode_uint32(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let value2_1, value3_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n let offset_2 := calldataload(add(headStart, 128))\n if gt(offset_2, _1) { revert(value6, value6) }\n let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_2), dataEnd)\n value6 := value6_1\n value7 := value7_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_decode_tuple_t_array$_t_bytes32_$dyn_calldata_ptrt_uint32t_bytes32t_enum$_OperationType_$103t_enum$_TokenType_$2176t_addresst_uint256t_address_payablet_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11\n {\n if slt(sub(dataEnd, headStart), 320) { revert(value8, value8) }\n if gt(calldataload(headStart), 0xffffffffffffffff) { revert(value8, value8) }\n let value0_1, value1_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, calldataload(headStart)), dataEnd)\n value0 := value0_1\n value1 := value1_1\n value2 := abi_decode_uint32(add(headStart, 32))\n value3 := calldataload(add(headStart, 64))\n value4 := abi_decode_enum_OperationType(add(headStart, 96))\n value5 := abi_decode_enum_TokenType(add(headStart, 128))\n value6 := abi_decode_address(add(headStart, 160))\n value7 := calldataload(add(headStart, 192))\n value8 := abi_decode_address(add(headStart, 224))\n value9 := calldataload(add(headStart, 256))\n if gt(calldataload(add(headStart, 288)), 0xffffffffffffffff) { revert(value11, value11) }\n let value10_1, value11_1 := abi_decode_bytes_calldata(add(headStart, calldataload(add(headStart, 288))), dataEnd)\n value10 := value10_1\n value11 := value11_1\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_array_bool_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := end\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, iszero(iszero(mload(srcPtr))))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_array_bytes32_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := end\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_array_uint32_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := end\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), 0xffffffff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), end)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_TokenType(value, pos)\n {\n if iszero(lt(value, 4))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(pos, value)\n }\n function abi_encode_tuple_packed_t_bytes32__to_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, value0)\n end := add(pos, 32)\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n end := add(pos, 64)\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n mstore(add(pos, 64), value2)\n end := add(pos, 96)\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes_calldata_ptr__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value7, value6, value5, value4, value3, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n mstore(add(pos, 64), value2)\n mstore(add(pos, 96), value3)\n mstore(add(pos, 128), value4)\n mstore(add(pos, 160), value5)\n calldatacopy(add(pos, 192), value6, value7)\n let _1 := add(add(pos, value7), 192)\n mstore(_1, end)\n end := _1\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n { end := pos }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_payable__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), 160)\n tail := abi_encode_bytes_calldata(value4, value5, add(headStart, 160))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), 160)\n tail := abi_encode_bytes(value4, add(headStart, 160))\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 160)\n let tail_1 := abi_encode_array_bytes32_dyn(value0, add(headStart, 160))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n let tail_2 := abi_encode_array_bytes32_dyn(value1, tail_1)\n mstore(add(headStart, 64), sub(tail_2, headStart))\n let tail_3 := abi_encode_array_bytes32_dyn(value2, tail_2)\n mstore(add(headStart, 96), sub(tail_3, headStart))\n let tail_4 := abi_encode_array_uint32_dyn(value3, tail_3)\n mstore(add(headStart, 128), sub(tail_4, headStart))\n tail := abi_encode_array_bool_dyn(value4, tail_4)\n }\n function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 128)\n let tail_1 := abi_encode_array_bytes32_dyn(value0, add(headStart, 128))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n let tail_2 := abi_encode_array_bytes32_dyn(value1, tail_1)\n mstore(add(headStart, 64), sub(tail_2, headStart))\n let tail_3 := abi_encode_array_uint32_dyn(value2, tail_2)\n mstore(add(headStart, 96), sub(tail_3, headStart))\n tail := abi_encode_array_bool_dyn(value3, tail_3)\n }\n function abi_encode_tuple_t_array$_t_enum$_TokenType_$2176_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let tail_1 := add(headStart, 96)\n mstore(headStart, 96)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 128)\n let _1 := 0x20\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n abi_encode_enum_TokenType(mload(srcPtr), pos)\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n mstore(add(headStart, _1), sub(pos, headStart))\n let pos_1 := pos\n let length_1 := mload(value1)\n mstore(pos, length_1)\n pos_1 := add(pos, _1)\n let srcPtr_1 := add(value1, _1)\n let i_1 := tail\n for { } lt(i_1, length_1) { i_1 := add(i_1, 1) }\n {\n mstore(pos_1, and(mload(srcPtr_1), sub(shl(160, 1), 1)))\n pos_1 := add(pos_1, _1)\n srcPtr_1 := add(srcPtr_1, _1)\n }\n mstore(add(headStart, 64), sub(pos_1, headStart))\n tail := abi_encode_array_bytes32_dyn(value2, pos_1)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_uint32_t_bool__to_t_bytes32_t_bytes32_t_uint32_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, 0xffffffff))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_uint8_t_uint32_t_uint32_t_uint8_t_address_t_uint256__to_t_bytes32_t_uint8_t_uint8_t_uint32_t_uint32_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 256)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), and(value2, 0xff))\n let _1 := 0xffffffff\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), and(value5, 0xff))\n mstore(add(headStart, 192), and(value6, sub(shl(160, 1), 1)))\n mstore(add(headStart, 224), value7)\n }\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, shl(224, 0xffffffff)))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2176_t_address_t_uint256__to_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_enum$_TokenType_$2176_t_address_t_uint256_t_address_t_uint256__to_t_uint8_t_address_t_uint256_t_address_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n abi_encode_enum_TokenType(value0, headStart)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_enum$_TokenType_$2176_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), 192)\n tail := abi_encode_bytes(value5, add(headStart, 192))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2176_t_address_t_uint256_t_address_t_uint256_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), 192)\n mstore(add(headStart, 192), tail)\n tail := add(headStart, 224)\n }\n function abi_encode_tuple_t_enum$_TokenType_$2176_t_rational_1_by_1_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), 224)\n tail := abi_encode_bytes_calldata(value6, value7, add(headStart, 224))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2176_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), 224)\n tail := abi_encode_bytes_calldata(value6, value7, add(headStart, 224))\n }\n function abi_encode_tuple_t_stringliteral_0c1004916946b89dffc8743f953d4885accbd82403cd8bd9e53f384fa95731af__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 16)\n mstore(add(headStart, 64), \"Too many commits\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_0d3a5f34c29e81aa7bbfe59ba3e3db3006ac807af6a54ad3cac7463abb5d83b0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 13)\n mstore(add(headStart, 64), \"Nonce too low\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_1c2d20c6fc3078eff495891b6caa29a7be172ac7018d2f6172fb68ba87240f3d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"Last resort address is not set\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_286e638d23bc87ce733fb0202708f485eb6091553feef3d943a83966c37e7639__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Reveal too late\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_2c594e135171cc6dc0d96175148636924623810d2d534a029b78044ab417d7d0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"input bytes too long\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_2d6af051cc9bdd806c60b20e274721a89fb9a7025afbe00dde07d3201c4068b2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Commit already completed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3430d3063c70bc84041a3bb75a9010a8e7685d878f7521f09ab01e30ea2f9f24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Parameter hash mismatch\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_38f47be26bf822ff597a5cbffa2774ecae1ceaa169f734b7db0a07fb62c9547a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"No commit found\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_50d19c134c4136d96b547b25b22aa8e1363529709733541230ebfa41cb82b262__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Too early to retire\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"Index - timestamp mismatch\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_5515ff285a2022327bc0ffdc690388a3a1d15360640a68caecd56fe24371f01a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Proof is incorrect\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_791866c3f9c9c03c601447bf48dd4e0bd3f849759626f2144adccf6e77c6e64d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Invalid commit timestamp\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_7fb6a81bbdba15000418055bc5e058938e4fd0b50065d70de11ee03ca8f293e3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"data must have length multiple t\")\n mstore(add(headStart, 96), \"o 96\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_83d08d6dcf099c52fbe149a08cb4ffd65f3fec6dbf87dba7bc08b7a534982441__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"Not enough neighbors provided\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_887bc482e9abfdf76109db32e10c15ef35a028513416621efc881c8a92574313__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Recovery failed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_8a9c0db4284cd81d8eaef3d877f21bcccab643ae503f9d63f7eb3ad5aacbe749__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Invalid commit hash\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_b20dc6ef8ce4f94dd03e7dbd2b41776293fb93e4528d85e98acf1bfed3136f73__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 10)\n mstore(add(headStart, 64), \"Deprecated\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_bc3ff827c71f29679c970d77c58ec807a06259e86e9cd823a8554b04d0d6f030__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"Last resort address is already s\")\n mstore(add(headStart, 96), \"et\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c3972966c6b890cd04bd250ec8fd05d1950759334a3d8fa4e9bb3d0693e9952d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"No valid commit\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_dd8f27f99c8575d947c48310b46d36796c8df82285fc83fecd33510610055413__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Invalid commitIndex\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_address_payable__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_address_payable__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_address_payable__to_t_uint256_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint32_t_uint32__to_t_uint32_t_uint32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := 0xffffffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut\n {\n if gt(startIndex, endIndex) { revert(offsetOut, offsetOut) }\n if gt(endIndex, length) { revert(offsetOut, offsetOut) }\n offsetOut := add(offset, startIndex)\n lengthOut := sub(endIndex, startIndex)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_add_t_uint32(x, y) -> sum\n {\n let _1 := 0xffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n sum := add(x_1, y_1)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_div_t_uint32(x, y) -> r\n {\n let _1 := 0xffffffff\n let y_1 := and(y, _1)\n if iszero(y_1) { panic_error_0x12() }\n r := div(and(x, _1), y_1)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_mul_t_uint32(x, y) -> product\n {\n let _1 := 0xffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if and(iszero(iszero(x_1)), gt(y_1, div(_1, x_1))) { panic_error_0x11() }\n product := mul(x_1, y_1)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function checked_sub_t_uint32(x, y) -> diff\n {\n let _1 := 0xffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if lt(x_1, y_1) { panic_error_0x11() }\n diff := sub(x_1, y_1)\n }\n function checked_sub_t_uint8(x, y) -> diff\n {\n let x_1 := and(x, 0xff)\n let y_1 := and(y, 0xff)\n if lt(x_1, y_1) { panic_error_0x11() }\n diff := sub(x_1, y_1)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function finalize_allocation(memPtr, size)\n {\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function increment_t_uint32(value) -> ret\n {\n let _1 := 0xffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function increment_t_uint8(value) -> ret\n {\n let value_1 := and(value, 0xff)\n if eq(value_1, 0xff) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function mod_t_uint32(x, y) -> r\n {\n let _1 := 0xffffffff\n let y_1 := and(y, _1)\n if iszero(y_1) { panic_error_0x12() }\n r := mod(and(x, _1), y_1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function return_data_selector() -> sig\n {\n if gt(returndatasize(), 3)\n {\n returndatacopy(sig, sig, 4)\n sig := shr(224, mload(sig))\n }\n }\n function try_decode_error_message() -> ret\n {\n if lt(returndatasize(), 0x44) { leave }\n let data := mload(64)\n let _1 := not(3)\n returndatacopy(data, 4, add(returndatasize(), _1))\n let offset := mload(data)\n let _2 := returndatasize()\n let _3 := 0xffffffffffffffff\n if or(gt(offset, _3), gt(add(offset, 0x24), _2)) { leave }\n let msg := add(data, offset)\n let length := mload(msg)\n if gt(length, _3) { leave }\n if gt(add(add(msg, length), 0x20), add(add(data, returndatasize()), _1)) { leave }\n finalize_allocation(data, add(add(offset, length), 0x20))\n ret := msg\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n}", + "contents": "{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n validator_revert_address(value)\n }\n function abi_decode_array_bytes32_dyn_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_enum_OperationType(offset) -> value\n {\n value := calldataload(offset)\n if iszero(lt(value, 8)) { revert(0, 0) }\n }\n function abi_decode_enum_TokenType(offset) -> value\n {\n value := calldataload(offset)\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n function abi_decode_uint32(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let value2_1, value3_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n let offset_2 := calldataload(add(headStart, 128))\n if gt(offset_2, _1) { revert(value6, value6) }\n let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_2), dataEnd)\n value6 := value6_1\n value7 := value7_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_decode_tuple_t_array$_t_bytes32_$dyn_calldata_ptrt_uint32t_bytes32t_enum$_OperationType_$493t_enum$_TokenType_$2607t_addresst_uint256t_address_payablet_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11\n {\n if slt(sub(dataEnd, headStart), 320) { revert(value8, value8) }\n if gt(calldataload(headStart), 0xffffffffffffffff) { revert(value8, value8) }\n let value0_1, value1_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, calldataload(headStart)), dataEnd)\n value0 := value0_1\n value1 := value1_1\n value2 := abi_decode_uint32(add(headStart, 32))\n value3 := calldataload(add(headStart, 64))\n value4 := abi_decode_enum_OperationType(add(headStart, 96))\n value5 := abi_decode_enum_TokenType(add(headStart, 128))\n value6 := abi_decode_address(add(headStart, 160))\n value7 := calldataload(add(headStart, 192))\n value8 := abi_decode_address(add(headStart, 224))\n value9 := calldataload(add(headStart, 256))\n if gt(calldataload(add(headStart, 288)), 0xffffffffffffffff) { revert(value11, value11) }\n let value10_1, value11_1 := abi_decode_bytes_calldata(add(headStart, calldataload(add(headStart, 288))), dataEnd)\n value10 := value10_1\n value11 := value11_1\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_array_bool_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := end\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, iszero(iszero(mload(srcPtr))))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_array_bytes32_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := end\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_array_uint32_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := end\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), 0xffffffff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), end)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_TokenType(value, pos)\n {\n if iszero(lt(value, 4))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(pos, value)\n }\n function abi_encode_tuple_packed_t_bytes32__to_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, value0)\n end := add(pos, 32)\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n end := add(pos, 64)\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n mstore(add(pos, 64), value2)\n end := add(pos, 96)\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes_calldata_ptr__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value7, value6, value5, value4, value3, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n mstore(add(pos, 64), value2)\n mstore(add(pos, 96), value3)\n mstore(add(pos, 128), value4)\n mstore(add(pos, 160), value5)\n calldatacopy(add(pos, 192), value6, value7)\n let _1 := add(add(pos, value7), 192)\n mstore(_1, end)\n end := _1\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, end)\n end := _1\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n { end := pos }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_payable__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), 160)\n tail := abi_encode_bytes_calldata(value4, value5, add(headStart, 160))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), 160)\n tail := abi_encode_bytes(value4, add(headStart, 160))\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 160)\n let tail_1 := abi_encode_array_bytes32_dyn(value0, add(headStart, 160))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n let tail_2 := abi_encode_array_bytes32_dyn(value1, tail_1)\n mstore(add(headStart, 64), sub(tail_2, headStart))\n let tail_3 := abi_encode_array_bytes32_dyn(value2, tail_2)\n mstore(add(headStart, 96), sub(tail_3, headStart))\n let tail_4 := abi_encode_array_uint32_dyn(value3, tail_3)\n mstore(add(headStart, 128), sub(tail_4, headStart))\n tail := abi_encode_array_bool_dyn(value4, tail_4)\n }\n function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 128)\n let tail_1 := abi_encode_array_bytes32_dyn(value0, add(headStart, 128))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n let tail_2 := abi_encode_array_bytes32_dyn(value1, tail_1)\n mstore(add(headStart, 64), sub(tail_2, headStart))\n let tail_3 := abi_encode_array_uint32_dyn(value2, tail_2)\n mstore(add(headStart, 96), sub(tail_3, headStart))\n tail := abi_encode_array_bool_dyn(value3, tail_3)\n }\n function abi_encode_tuple_t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let tail_1 := add(headStart, 96)\n mstore(headStart, 96)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 128)\n let _1 := 0x20\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n abi_encode_enum_TokenType(mload(srcPtr), pos)\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n mstore(add(headStart, _1), sub(pos, headStart))\n let pos_1 := pos\n let length_1 := mload(value1)\n mstore(pos, length_1)\n pos_1 := add(pos, _1)\n let srcPtr_1 := add(value1, _1)\n let i_1 := tail\n for { } lt(i_1, length_1) { i_1 := add(i_1, 1) }\n {\n mstore(pos_1, and(mload(srcPtr_1), sub(shl(160, 1), 1)))\n pos_1 := add(pos_1, _1)\n srcPtr_1 := add(srcPtr_1, _1)\n }\n mstore(add(headStart, 64), sub(pos_1, headStart))\n tail := abi_encode_array_bytes32_dyn(value2, pos_1)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_uint32_t_bool__to_t_bytes32_t_bytes32_t_uint32_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, 0xffffffff))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_uint8_t_uint32_t_uint32_t_uint8_t_address_t_uint256__to_t_bytes32_t_uint8_t_uint8_t_uint32_t_uint32_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 256)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), and(value2, 0xff))\n let _1 := 0xffffffff\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), and(value5, 0xff))\n mstore(add(headStart, 192), and(value6, sub(shl(160, 1), 1)))\n mstore(add(headStart, 224), value7)\n }\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, shl(224, 0xffffffff)))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256__to_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256_t_address_t_uint256__to_t_uint8_t_address_t_uint256_t_address_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n abi_encode_enum_TokenType(value0, headStart)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), 192)\n tail := abi_encode_bytes(value5, add(headStart, 192))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256_t_address_t_uint256_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), 192)\n mstore(add(headStart, 192), tail)\n tail := add(headStart, 224)\n }\n function abi_encode_tuple_t_enum$_TokenType_$2607_t_rational_1_by_1_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), 224)\n tail := abi_encode_bytes_calldata(value6, value7, add(headStart, 224))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2607_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), 224)\n tail := abi_encode_bytes_calldata(value6, value7, add(headStart, 224))\n }\n function abi_encode_tuple_t_stringliteral_0c1004916946b89dffc8743f953d4885accbd82403cd8bd9e53f384fa95731af__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 16)\n mstore(add(headStart, 64), \"Too many commits\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_0d3a5f34c29e81aa7bbfe59ba3e3db3006ac807af6a54ad3cac7463abb5d83b0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 13)\n mstore(add(headStart, 64), \"Nonce too low\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_1c2d20c6fc3078eff495891b6caa29a7be172ac7018d2f6172fb68ba87240f3d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"Last resort address is not set\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_286e638d23bc87ce733fb0202708f485eb6091553feef3d943a83966c37e7639__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Reveal too late\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_2c594e135171cc6dc0d96175148636924623810d2d534a029b78044ab417d7d0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"input bytes too long\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_2d6af051cc9bdd806c60b20e274721a89fb9a7025afbe00dde07d3201c4068b2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Commit already completed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3430d3063c70bc84041a3bb75a9010a8e7685d878f7521f09ab01e30ea2f9f24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Parameter hash mismatch\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_38f47be26bf822ff597a5cbffa2774ecae1ceaa169f734b7db0a07fb62c9547a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"No commit found\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_50d19c134c4136d96b547b25b22aa8e1363529709733541230ebfa41cb82b262__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Too early to retire\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"Index - timestamp mismatch\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_5515ff285a2022327bc0ffdc690388a3a1d15360640a68caecd56fe24371f01a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Proof is incorrect\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_791866c3f9c9c03c601447bf48dd4e0bd3f849759626f2144adccf6e77c6e64d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Invalid commit timestamp\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_7fb6a81bbdba15000418055bc5e058938e4fd0b50065d70de11ee03ca8f293e3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"data must have length multiple t\")\n mstore(add(headStart, 96), \"o 96\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_83d08d6dcf099c52fbe149a08cb4ffd65f3fec6dbf87dba7bc08b7a534982441__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"Not enough neighbors provided\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_887bc482e9abfdf76109db32e10c15ef35a028513416621efc881c8a92574313__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Recovery failed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_8a9c0db4284cd81d8eaef3d877f21bcccab643ae503f9d63f7eb3ad5aacbe749__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Invalid commit hash\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_b20dc6ef8ce4f94dd03e7dbd2b41776293fb93e4528d85e98acf1bfed3136f73__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 10)\n mstore(add(headStart, 64), \"Deprecated\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_bc3ff827c71f29679c970d77c58ec807a06259e86e9cd823a8554b04d0d6f030__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"Last resort address is already s\")\n mstore(add(headStart, 96), \"et\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c3972966c6b890cd04bd250ec8fd05d1950759334a3d8fa4e9bb3d0693e9952d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"No valid commit\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_dd8f27f99c8575d947c48310b46d36796c8df82285fc83fecd33510610055413__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Invalid commitIndex\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_fab9828a623b3dec5ff9fd3a2c3a6f583ee6577f264fc8a5c168e0454ba5a4ba__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"Last operation reserved for reco\")\n mstore(add(headStart, 96), \"ver\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_address_payable__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_address_payable__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_address_payable__to_t_uint256_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint32_t_uint32__to_t_uint32_t_uint32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := 0xffffffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut\n {\n if gt(startIndex, endIndex) { revert(offsetOut, offsetOut) }\n if gt(endIndex, length) { revert(offsetOut, offsetOut) }\n offsetOut := add(offset, startIndex)\n lengthOut := sub(endIndex, startIndex)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_add_t_uint32(x, y) -> sum\n {\n let _1 := 0xffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n sum := add(x_1, y_1)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_div_t_uint32(x, y) -> r\n {\n let _1 := 0xffffffff\n let y_1 := and(y, _1)\n if iszero(y_1) { panic_error_0x12() }\n r := div(and(x, _1), y_1)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_mul_t_uint32(x, y) -> product\n {\n let _1 := 0xffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if and(iszero(iszero(x_1)), gt(y_1, div(_1, x_1))) { panic_error_0x11() }\n product := mul(x_1, y_1)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function checked_sub_t_uint32(x, y) -> diff\n {\n let _1 := 0xffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if lt(x_1, y_1) { panic_error_0x11() }\n diff := sub(x_1, y_1)\n }\n function checked_sub_t_uint8(x, y) -> diff\n {\n let x_1 := and(x, 0xff)\n let y_1 := and(y, 0xff)\n if lt(x_1, y_1) { panic_error_0x11() }\n diff := sub(x_1, y_1)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function finalize_allocation(memPtr, size)\n {\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function increment_t_uint32(value) -> ret\n {\n let _1 := 0xffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function increment_t_uint8(value) -> ret\n {\n let value_1 := and(value, 0xff)\n if eq(value_1, 0xff) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function mod_t_uint32(x, y) -> r\n {\n let _1 := 0xffffffff\n let y_1 := and(y, _1)\n if iszero(y_1) { panic_error_0x12() }\n r := mod(and(x, _1), y_1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function return_data_selector() -> sig\n {\n if gt(returndatasize(), 3)\n {\n returndatacopy(sig, sig, 4)\n sig := shr(224, mload(sig))\n }\n }\n function try_decode_error_message() -> ret\n {\n if lt(returndatasize(), 0x44) { leave }\n let data := mload(64)\n let _1 := not(3)\n returndatacopy(data, 4, add(returndatasize(), _1))\n let offset := mload(data)\n let _2 := returndatasize()\n let _3 := 0xffffffffffffffff\n if or(gt(offset, _3), gt(add(offset, 0x24), _2)) { leave }\n let msg := add(data, offset)\n let length := mload(msg)\n if gt(length, _3) { leave }\n if gt(add(add(msg, length), 0x20), add(add(data, returndatasize()), _1)) { leave }\n finalize_allocation(data, add(add(offset, length), 0x20))\n ret := msg\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n}", "id": 8, "language": "Yul", "name": "#utility.yul" } ], - "sourceMap": "151:23519:0:-:0;;;3880:468;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4081:12;;;;;4103:16;;;;;;;;;4129:20;;;;;;;-1:-1:-1;;;;;;4159:8:0;;;;;;;;4177:20;;;;;;;;;4207:17;:38;;-1:-1:-1;;;;;4207:38:0;;;-1:-1:-1;;;;;;4207:38:0;;;;;;;;;;4255:10;:24;;;;4289:52;;;;;;151:23519;;14:167:8;92:13;;145:10;134:22;;124:33;;114:2;;171:1;168;161:12;114:2;73:108;;;:::o;186:160::-;263:13;;316:4;305:16;;295:27;;285:2;;336:1;333;326:12;351:854;484:6;492;500;508;516;524;532;540;593:3;581:9;572:7;568:23;564:33;561:2;;;615:6;607;600:22;561:2;649:9;643:16;633:26;;678:47;721:2;710:9;706:18;678:47;:::i;:::-;668:57;;744:47;787:2;776:9;772:18;744:47;:::i;:::-;734:57;;810:48;854:2;843:9;839:18;810:48;:::i;:::-;800:58;;877:49;921:3;910:9;906:19;877:49;:::i;:::-;867:59;;945:48;988:3;977:9;973:19;945:48;:::i;:::-;1036:3;1021:19;;1015:26;935:58;;-1:-1:-1;;;;;;1070:31:8;;1060:42;;1050:2;;1121:6;1113;1106:22;1050:2;1149:5;1139:15;;;1194:3;1183:9;1179:19;1173:26;1163:36;;551:654;;;;;;;;;;;:::o;:::-;151:23519:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "151:23519:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4396:38;;;4412:9;29877:25:8;;4423:10:0;29933:2:8;29918:18;;29911:60;4396:38:0;;29850:18:8;4396:38:0;;;;;;;3048:7;4448:9;:41;4444:78;;151:23519;4444:78;4549:17;;-1:-1:-1;;;;;4549:17:0;4535:10;:31;4531:68;;151:23519;4531:68;4612:17;;-1:-1:-1;;;;;4612:17:0;4608:68;;151:23519;4608:68;4689:10;4711:4;4689:27;4685:64;;;151:23519;4685:64;4763:33;;4785:10;11581:51:8;;4763:33:0;;11569:2:8;11554:18;4763:33:0;;;;;;;4814:8;:6;:8::i;:::-;4806:17;;;;;;151:23519;;;;;3101:270:1;;;;;;;;;;-1:-1:-1;3101:270:1;;;;;:::i;:::-;;:::i;:::-;;;17289:14:8;;17282:22;17264:41;;17252:2;17237:18;3101:270:1;;;;;;;;5374:117:0;;;;;;;;;;-1:-1:-1;5374:117:0;;;3136:3;31509:34:8;;3220:3:0;31574:2:8;31559:18;;31552:43;31453:18;5374:117:0;31435:166:8;3460:374:1;;;;;;;;;;-1:-1:-1;3460:374:1;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;18673:33:8;;;18655:52;;18643:2;18628:18;3460:374:1;18610:103:8;7236:129:0;;;;;;;;;;-1:-1:-1;7236:129:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;17539:25:8;;;17595:2;17580:18;;17573:34;;;;17655:10;17643:23;17638:2;17623:18;;17616:51;17710:14;17703:22;17698:2;17683:18;;17676:50;17526:3;17511:19;;17493:239;5497:128:0;;;;;;;;;;-1:-1:-1;5590:10:0;;5602:15;;5497:128;;;30443:25:8;;;5602:15:0;;;;30499:2:8;30484:18;;30477:34;30416:18;5497:128:0;30398:119:8;5792:149:0;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;5139:229::-;;;;;;;;;;;;5331:17;;5350:10;;5267:4;;5273:6;;5281:8;;5291:2;;5295:8;;5305:24;;-1:-1:-1;;;;;5331:17:0;;;;5139:229;;;;;18064:25:8;;;18137:4;18125:17;;;18120:2;18105:18;;18098:45;18179:17;;;18159:18;;;18152:45;;;;18216:10;18262:15;;;18257:2;18242:18;;18235:43;18315:15;;;;18309:3;18294:19;;18287:44;18368:17;;18362:3;18347:19;;18340:46;-1:-1:-1;;;;;18423:32:8;;;18417:3;18402:19;;18395:61;18487:3;18472:19;;18465:35;18051:3;18036:19;5139:229:0;18018:488:8;3840:652:1;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;5947:1283:0:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;4837:296::-;;;;;;;;;;;;;:::i;2728:367:1:-;;;;;;;;;;-1:-1:-1;2728:367:1;;;;;:::i;:::-;;:::i;13969:1728:0:-;;;;;;;;;;-1:-1:-1;13969:1728:0;;;;;:::i;:::-;;:::i;5631:155::-;;;;;;;;;;;;;:::i;:::-;;;31778:4:8;31766:17;;;31748:36;;31736:2;31721:18;5631:155:0;31703:87:8;7371:907:0;;;;;;;;;;-1:-1:-1;7371:907:0;;;;;:::i;:::-;;:::i;8284:358::-;;;;;;;;;;-1:-1:-1;8284:358:0;;;;;:::i;:::-;;:::i;2332:390:1:-;;;;;;;;;;-1:-1:-1;2332:390:1;;;;;:::i;:::-;;:::i;8884:258:0:-;9054:17;;:57;;8920:4;;;;-1:-1:-1;;;;;9054:17:0;;;;9085:21;;8920:4;9054:57;8920:4;9054:57;9085:21;9054:17;:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9036:75:0;;8884:258;-1:-1:-1;;;8884:258:0:o;3101:270:1:-;3180:4;-1:-1:-1;;;;;;3203:46:1;;-1:-1:-1;;;3203:46:1;;:104;;-1:-1:-1;;;;;;;3261:46:1;;-1:-1:-1;;;3261:46:1;3203:104;:161;;;-1:-1:-1;;;;;;;3319:45:1;;-1:-1:-1;;;3319:45:1;3203:161;3196:168;3101:270;-1:-1:-1;;3101:270:1:o;3460:374::-;3621:6;3643:77;3657:16;3675:1;3678:4;3684:10;3696:8;3706:7;3715:4;;3643:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;3730:50;3742:16;3760:10;3772:7;3730:11;:50::i;:::-;-1:-1:-1;;;;3460:374:1;;;;;;;:::o;7236:129:0:-;7297:7;7306;7315:6;7323:4;7338:20;;-1:-1:-1;;;7338:20:0;;;;;;28471:2:8;28453:21;;;28510:2;28490:18;;;28483:30;-1:-1:-1;;;28544:2:8;28529:18;;28522:40;28594:2;28579:18;;28443:160;7338:20:0;;;;;;;;5792:149;5837:16;5855;5873:15;5890:13;5914:20;;-1:-1:-1;;;5914:20:0;;;;;;28471:2:8;28453:21;;;28510:2;28490:18;;;28483:30;-1:-1:-1;;;28544:2:8;28529:18;;28522:40;28594:2;28579:18;;28443:160;3840:652:1;3891:18;3911:16;3929;3956:29;4004:13;:20;;;;-1:-1:-1;;;;;3988:37:1;;;;;-1:-1:-1;;;3988:37:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3988:37:1;-1:-1:-1;4086:13:1;:20;3956:69;;-1:-1:-1;4035:34:1;;-1:-1:-1;;;;;4072:35:1;;;;;-1:-1:-1;;;4072:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4072:35:1;-1:-1:-1;4159:13:1;:20;4035:72;;-1:-1:-1;4117:25:1;;-1:-1:-1;;;;;4145:35:1;;;;;-1:-1:-1;;;4145:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4145:35:1;;4117:63;;4195:8;4190:238;4213:13;:20;4209:24;;;;4190:238;;;4270:13;4284:1;4270:16;;;;;;;;-1:-1:-1;;;4270:16:1;;;;;;;;;;;;;;;;;;;;;;:26;4254:13;;4270:26;;;;;4254:10;;:13;;;;;;;;-1:-1:-1;;;4254:13:1;;;;;;;;;;;;;;:42;;;;;;;-1:-1:-1;;;4254:42:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;4254:42:1;;;;;;;;;;;;;4333:13;4347:1;4333:16;;;;;;;;-1:-1:-1;;;4333:16:1;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;4333:32:1;4310:17;4328:1;4310:20;;;;;;;;-1:-1:-1;;;4310:20:1;;;;;;;;;;;;;;:55;-1:-1:-1;;;;;4310:55:1;;;-1:-1:-1;;;;;4310:55:1;;;;;4393:13;4407:1;4393:16;;;;;;;;-1:-1:-1;;;4393:16:1;;;;;;;;;;;;;;;;;;;:24;;;4379:8;4388:1;4379:11;;;;;;;;-1:-1:-1;;;4379:11:1;;;;;;;;;;;;;;;;;;:38;4235:3;;;;:::i;:::-;;;;4190:238;;;-1:-1:-1;4445:10:1;;4457:17;;-1:-1:-1;4476:8:1;;-1:-1:-1;3840:652:1;-1:-1:-1;3840:652:1:o;5947:1283:0:-;5995:16;6013;6031;6049:15;6066:13;6095:17;6131:8;6126:160;6149:7;:14;6145:18;;;;6126:160;;;6184:19;6206:12;:24;6219:7;6227:1;6219:10;;;;;;;;-1:-1:-1;;;6219:10:0;;;;;;;;;;;;;;;;;6206:24;;;;;;;;;;;6184:46;;6265:2;:9;;;;6244:31;;;;;:::i;:::-;;;6126:160;6165:3;;;;;:::i;:::-;;;;6126:160;;;;6295:23;6335:10;6321:25;;-1:-1:-1;;;;;6321:25:0;;;;;-1:-1:-1;;;6321:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6321:25:0;;6295:51;;6356:28;6401:10;6387:25;;-1:-1:-1;;;;;6387:25:0;;;;;-1:-1:-1;;;6387:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6387:25:0;;6356:56;;6422:35;6474:10;6460:25;;-1:-1:-1;;;;;6460:25:0;;;;;-1:-1:-1;;;6460:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6460:25:0;;6422:63;;6495:26;6537:10;6524:24;;-1:-1:-1;;;;;6524:24:0;;;;;-1:-1:-1;;;6524:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6524:24:0;;6495:53;;6558:23;6595:10;6584:22;;-1:-1:-1;;;;;6584:22:0;;;;;-1:-1:-1;;;6584:22:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6584:22:0;;6558:48;;6616:12;6647:8;6642:501;6665:7;:14;6661:18;;;;6642:501;;;6700:19;6722:12;:24;6735:7;6743:1;6735:10;;;;;;;;-1:-1:-1;;;6735:10:0;;;;;;;;;;;;;;;;;6722:24;;;;;;;;;;;6700:46;;6765:8;6760:373;6783:9;;6779:13;;;;6760:373;;;6817:16;6836:2;6839:1;6836:5;;;;;;;;-1:-1:-1;;;6836:5:0;;;;;;;;;;;;;;;;;;;6817:24;;6875:1;:6;;;6859;6866:5;6859:13;;;;;;;;-1:-1:-1;;;6859:13:0;;;;;;;;;;;;;;:22;;;;;6920:1;:12;;;6899:11;6911:5;6899:18;;;;;;;;-1:-1:-1;;;6899:18:0;;;;;;;;;;;;;;:33;;;;;6978:1;:18;;;6950;6969:5;6950:25;;;;;;;;-1:-1:-1;;;6950:25:0;;;;;;;;;;;;;;;;;;:46;7034:11;;;;7014:17;;7034:11;;;;;7014:10;;:17;;;;;;;;-1:-1:-1;;;7014:17:0;;;;;;;;;;;;;;:31;;;;;;;;;;;7082:1;:11;;;;;;;;;;;;7063:9;7073:5;7063:16;;;;;;;;-1:-1:-1;;;7063:16:0;;;;;;;;;:30;;;:16;;;;;;;;;;;:30;7111:7;;;;:::i;:::-;;;;6760:373;6794:3;;;;;:::i;:::-;;;;6760:373;;;;6642:501;6681:3;;;;;:::i;:::-;;;;6642:501;;;-1:-1:-1;7160:6:0;;7168:11;;-1:-1:-1;7181:18:0;;-1:-1:-1;7181:18:0;-1:-1:-1;7168:11:0;-1:-1:-1;5947:1283:0;-1:-1:-1;;;5947:1283:0:o;4837:296::-;4873:4;4901:50;4943:8;4901:50;4938:2;4908:26;;4926:8;4908:26;:15;:26;:::i;:::-;4901:39;;;;:::i;:::-;:50;;;4893:82;;;;-1:-1:-1;;;4893:82:0;;25613:2:8;4893:82:0;;;25595:21:8;25652:2;25632:18;;;25625:30;-1:-1:-1;;;25671:18:8;;;25664:49;25730:18;;4893:82:0;25585:169:8;4893:82:0;4993:17;;-1:-1:-1;;;;;4993:17:0;4985:74;;;;-1:-1:-1;;;4985:74:0;;23512:2:8;4985:74:0;;;23494:21:8;23551:2;23531:18;;;23524:30;23590:32;23570:18;;;23563:60;23640:18;;4985:74:0;23484:180:8;4985:74:0;5077:8;:6;:8::i;:::-;5069:36;;;;-1:-1:-1;;;5069:36:0;;27779:2:8;5069:36:0;;;27761:21:8;27818:2;27798:18;;;27791:30;-1:-1:-1;;;27837:18:8;;;27830:45;27892:18;;5069:36:0;27751:165:8;5069:36:0;-1:-1:-1;5122:4:0;;4837:296::o;2728:367:1:-;2891:6;;2908:128;2927:14;;;;-1:-1:-1;2908:128:1;;;2962:4;:22;2985:8;2995:4;3001:3;;:6;;;;;;;;-1:-1:-1;;;3001:6:1;;;;;;;;;;;;;;;3009;;3016:1;3009:9;;;;;;;-1:-1:-1;;;3009:9:1;;;;;;;;;;;;;;;3020:4;;2962:63;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2943:3:1;;;;:::i;:::-;;;;2908:128;;;-1:-1:-1;;;;3052:36:1;2728:367;-1:-1:-1;;;;;;;;;2728:367:1:o;13969:1728:0:-;14234:48;14250:9;;14261:14;14277:4;14234:15;:48::i;:::-;14293:18;14313;14335:134;14350:9;;14360:1;14350:12;;;;;-1:-1:-1;;;14350:12:0;;;;;;;;;;;;;;;14364:14;14380:4;14398:13;14413:9;14424:15;14441:7;14450:4;14456:6;14464:4;;14335:14;:134::i;:::-;14292:177;;;;14479:18;14500:59;14514:10;14526:14;14542:10;14554:4;14500:13;:59::i;:::-;14479:80;;14569:40;14585:10;14597:11;14569:15;:40::i;:::-;14691:19;14674:13;:36;;;;;;-1:-1:-1;;;14674:36:0;;;;;;;;;;14670:1021;;;14730:15;;14726:158;;14765:17;14777:4;;14765:11;:17::i;:::-;14670:1021;;14726:158;14821:48;14833:9;14844:15;14861:7;14821:11;:48::i;14670:1021::-;14921:21;14904:13;:38;;;;;;-1:-1:-1;;;14904:38:0;;;;;;;;;;14900:791;;;14962:15;;14958:162;;14997:50;15011:9;15022:15;15039:7;14997:13;:50::i;14958:162::-;15086:19;15100:4;;15086:13;:19::i;14900:791::-;15157:28;15140:13;:45;;;;;;-1:-1:-1;;;15140:45:0;;;;;;;;;;15136:555;;;15201:71;15216:9;15227:15;15244:7;15253:4;15259:6;15267:4;;15201:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15201:14:0;;-1:-1:-1;;;15201:71:0:i;15136:555::-;15310:28;15293:13;:45;;;;;;-1:-1:-1;;;15293:45:0;;;;;;;;;;15289:402;;;15354:29;15378:4;;15354:23;:29::i;15289:402::-;15421:22;15404:13;:39;;;;;;-1:-1:-1;;;15404:39:0;;;;;;;;;;15400:291;;;15459:23;15469:4;15475:6;15459:9;:23::i;:::-;;15400:291;;;15520:21;15503:13;:38;;;;;;-1:-1:-1;;;15503:38:0;;;;;;;;;;15499:192;;;15557:10;:8;:10::i;15499:192::-;15605:34;15588:13;:51;;;;;;-1:-1:-1;;;15588:51:0;;;;;;;;;;15584:107;;;15655:25;15675:4;15655:19;:25::i;:::-;13969:1728;;;;;;;;;;;;;;;:::o;5631:155::-;5674:5;;5747:2;5710:34;;5736:8;5710:34;5717:15;5710:34;:::i;:::-;:39;;;;:::i;:::-;5766:13;;;;;;:6;:13;;;;;;;;;5631:155;-1:-1:-1;;5631:155:0:o;7371:907::-;7525:19;7547:18;;;:12;:18;;;;;7615:9;;7430:16;;;;;;;;;;7547:18;-1:-1:-1;;;;;7601:24:0;;;;;-1:-1:-1;;;7601:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7601:24:0;-1:-1:-1;7680:9:0;;7575:50;;-1:-1:-1;7635:28:0;;-1:-1:-1;;;;;7666:24:0;;;;;-1:-1:-1;;;7666:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7666:24:0;-1:-1:-1;7752:9:0;;7635:55;;-1:-1:-1;7700:35:0;;-1:-1:-1;;;;;7738:24:0;;;;;-1:-1:-1;;;7738:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7738:24:0;-1:-1:-1;7814:9:0;;7700:62;;-1:-1:-1;7772:26:0;;-1:-1:-1;;;;;7801:23:0;;;;;-1:-1:-1;;;7801:23:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7801:23:0;-1:-1:-1;7871:9:0;;7772:52;;-1:-1:-1;7834:23:0;;-1:-1:-1;;;;;7860:21:0;;;;;-1:-1:-1;;;7860:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7860:21:0;;7834:47;;7896:8;7891:300;7914:9;;7910:13;;;;7891:300;;;7944:16;7963:2;7966:1;7963:5;;;;;;;;-1:-1:-1;;;7963:5:0;;;;;;;;;;;;;;;;;;;7944:24;;7994:1;:6;;;7982;7989:1;7982:9;;;;;;;;-1:-1:-1;;;7982:9:0;;;;;;;;;;;;;;:18;;;;;8031:1;:12;;;8014:11;8026:1;8014:14;;;;;;;;-1:-1:-1;;;8014:14:0;;;;;;;;;;;;;;:29;;;;;8081:1;:18;;;8057;8076:1;8057:21;;;;;;;;-1:-1:-1;;;8057:21:0;;;;;;;;;;;;;;;;;;:42;8129:11;;;;8113:13;;8129:11;;;;;8113:10;;:13;;;;;;;;-1:-1:-1;;;8113:13:0;;;;;;;;;;;;;;:27;;;;;;;;;;;8169:1;:11;;;;;;;;;;;;8154:9;8164:1;8154:12;;;;;;;;-1:-1:-1;;;8154:12:0;;;;;;;;;:26;;;:12;;;;;;;;;;;:26;-1:-1:-1;7925:3:0;;;;:::i;:::-;;;;7891:300;;;-1:-1:-1;8208:6:0;;8216:11;;-1:-1:-1;8229:18:0;;-1:-1:-1;8216:11:0;-1:-1:-1;8208:6:0;;-1:-1:-1;7371:907:0;-1:-1:-1;;;7371:907:0:o;8284:358::-;8379:17;:15;:17::i;:::-;8425:74;;;;;;;;;;;;;;;;;;;;;;;;8475:15;8425:74;;;;;8406:16;8425:74;;;;8517:7;:14;3095:3;-1:-1:-1;8509:61:0;;;;-1:-1:-1;;;8509:61:0;;22825:2:8;8509:61:0;;;22807:21:8;22864:2;22844:18;;;22837:30;-1:-1:-1;;;22883:18:8;;;22876:46;22939:18;;8509:61:0;22797:166:8;8509:61:0;8580:7;:18;;;;;;;;;;;;;;-1:-1:-1;8608:18:0;;;:12;8580:18;8608;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8608:27:0;;;;;;;;;;;;;;;-1:-1:-1;;8284:358:0:o;2332:390:1:-;2512:6;2534:77;2548:17;2567:5;2574:4;2580:10;2592:8;2602:2;2606:4;;2534:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;2621:46;2633:17;2652:10;2664:2;2621:11;:46::i;:::-;-1:-1:-1;;;;2332:390:1;;;;;;;;:::o;4500:1030::-;4603:11;4656:9;4648:18;;;;;;-1:-1:-1;;;4648:18:1;;;;;;;;;4627:94;;;;;;10133:19:8;;;;4677:24:1;;;;-1:-1:-1;;;;;;4669:33:1;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;4627:94:1;;;-1:-1:-1;;4627:94:1;;;;;;;;;4617:105;;4627:94;4617:105;;;;4772:1;4736:26;;;;;;;;;:33;4617:105;;-1:-1:-1;4736:37:1;4732:549;;4794:8;4789:482;4812:21;:26;;;;;;;;;;:33;4808:37;;;;4789:482;;;4870:9;4882:26;;;;;;;;;;:29;;;;;;;;;;-1:-1:-1;;;4882:29:1;;;;;;;;;;;;;;;;;4870:41;;4963:9;4933:39;;;;;;-1:-1:-1;;;4933:39:1;;;;;;;;;:13;4947:1;4933:16;;;;;;-1:-1:-1;;;4933:16:1;;;;;;;;;;;;;;;;;;;;;;:26;;;:39;;;;;;-1:-1:-1;;;4933:39:1;;;;;;;;;;4929:53;;4974:8;;;4929:53;5032:7;5004:13;5018:1;5004:16;;;;;;-1:-1:-1;;;5004:16:1;;;;;;;;;;;;;;;;;;;:24;;;:35;5000:49;;5041:8;;;5000:49;5107:15;-1:-1:-1;;;;;5071:51:1;:13;5085:1;5071:16;;;;;;-1:-1:-1;;;5071:16:1;;;;;;;;;;;;;;;;;;;;;;:32;;;;-1:-1:-1;;;;;5071:32:1;:51;5067:65;;5124:8;;;5067:65;5250:7;;;4500:1030;;;:::o;4789:482::-;4847:3;;;;:::i;:::-;;;;4789:482;;;;4732:549;5290:22;5315:49;;;;;;;;5328:9;5315:49;;;;;;-1:-1:-1;;;5315:49:1;;;;;;;;;;;-1:-1:-1;;;;;5315:49:1;;;;;;;;;;;;;;;;;-1:-1:-1;5374:26:1;;;;;;;;;5406:13;:20;;5374:53;;;;;;;;;;;;;;;;;;;;5437:22;;;;;;;;;;;;;;;;;;;;;5290:74;;-1:-1:-1;5290:74:1;;5437:22;;;;;-1:-1:-1;;5437:22:1;;;;;;;;;-1:-1:-1;;;5437:22:1;;;;;;;;;;;;;-1:-1:-1;5437:22:1;;;;;;-1:-1:-1;;;;;5437:22:1;;;;;-1:-1:-1;;;;;;5437:22:1;;;;;;;;;;;;;;;;5474:49;;;;;5487:9;;5498:15;;5515:7;;5474:49;:::i;:::-;;;;;;;;4500:1030;;;;;:::o;15826:588:0:-;15964:10;15973:1;15964:6;:10;:::i;:::-;15944:30;;;;15936:72;;;;-1:-1:-1;;;15936:72:0;;27421:2:8;15936:72:0;;;27403:21:8;27460:2;27440:18;;;27433:30;27499:31;27479:18;;;27472:59;27548:18;;15936:72:0;27393:179:8;15936:72:0;16018:9;16030:26;16050:4;16037:18;;;;;;9638:19:8;;9682:2;9673:12;;9628:63;16037:18:0;;;;-1:-1:-1;;16037:18:0;;;;;;;;;;16030:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16018:38;;16071:7;16066:276;16088:10;16097:1;16088:6;:10;:::i;:::-;16084:14;;:1;:14;;;16066:276;;;16135:4;16124:15;;;16123:25;16119:185;;;16172:37;16192:9;;16202:1;16192:12;;;;;;;-1:-1:-1;;;16192:12:0;;;;;;;;;;;;;;;16206:1;16179:29;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;16179:29:0;;;;-1:-1:-1;;16179:29:0;;;;;;;;;;16172:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16168:41;;16119:185;;;16252:37;16272:1;16275:9;;16285:1;16275:12;;;;;;;-1:-1:-1;;;16275:12:0;;;;;;;;;;;;;;;16259:29;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;16259:29:0;;;;-1:-1:-1;;16259:29:0;;;;;;;;;;16252:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16248:41;;16119:185;16330:1;16317:14;;;;;;;16100:3;;;;;:::i;:::-;;;;16066:276;;;;16367:1;16359:4;:9;16351:40;;;;-1:-1:-1;;;16351:40:0;;26316:2:8;16351:40:0;;;26298:21:8;26355:2;26335:18;;;26328:30;-1:-1:-1;;;26374:18:8;;;26367:48;26432:18;;16351:40:0;26288:168:8;16351:40:0;16401:7;15826:588;;;;;:::o;12680:1282::-;12933:7;12942;12961:12;12999:8;13024:14;13017:22;;-1:-1:-1;;;;;13009:31:0;;13042:4;12986:61;;;;;;;;;10133:19:8;;;10177:2;10168:12;;10161:28;;;;10214:2;10205:12;;10198:28;10251:2;10242:12;;10123:137;12986:61:0;;;;-1:-1:-1;;12986:61:0;;;;;;;;;12976:72;;12986:61;12976:72;;;;;-1:-1:-1;13058:18:0;13120:22;13103:13;:39;;;;;;-1:-1:-1;;;13103:39:0;;;;;;;;;;13099:822;;;13181:62;;;13202:22;;;;-1:-1:-1;;;;;;13194:31:0;13181:62;;;9853:19:8;9888:12;;;9881:28;;;9925:12;13181:62:0;;;;;;;;;;;;;13171:73;;;;;;13158:86;;13099:822;;;13282:21;13265:13;:38;;;;;;-1:-1:-1;;;13265:38:0;;;;;;;;;;13261:660;;;-1:-1:-1;13340:1:0;13261:660;;;13380:34;13363:13;:51;;;;;;-1:-1:-1;;;13363:51:0;;;;;;;;;;13359:562;;;13453:45;;;-1:-1:-1;;;;;;13474:22:0;;;;13466:31;13453:45;;;9638:19:8;9673:12;13453:45:0;9628:63:8;13359:562:0;13530:19;13598:13;13590:22;;;;;;-1:-1:-1;;;13590:22:0;;;;;;;;;13647:9;13639:18;;;;;;-1:-1:-1;;;13639:18:0;;;;;;;;;13631:27;;13692:15;13684:24;;-1:-1:-1;;;;;13676:33:0;;13735:7;13727:16;;13777:4;13769:13;;-1:-1:-1;;;;;13761:22:0;;13809:6;13801:15;;13834:4;;13552:300;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;13530:322;;13902:6;13889:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;13879:31;;;;;;13866:44;;13359:562;;13938:4;;;;-1:-1:-1;12680:1282:0;-1:-1:-1;;;;;;;;;;;;12680:1282:0:o;19846:1628::-;19963:6;;20000:41;;20017:24;20000:41;:14;:41;:::i;:::-;19985:56;-1:-1:-1;20051:11:0;20071:41;;20088:24;20071:41;:14;:41;:::i;:::-;20123:19;20145:18;;;:12;:18;;;;;20181:9;;20051:62;;-1:-1:-1;20145:18:0;20173:41;;;;-1:-1:-1;;;20173:41:0;;25269:2:8;20173:41:0;;;25251:21:8;25308:2;25288:18;;;25281:30;-1:-1:-1;;;25327:18:8;;;25320:45;25382:18;;20173:41:0;25241:165:8;20173:41:0;20229:8;20224:1209;20247:9;;20243:13;;;;20224:1209;;;20277:16;20296:2;20299:1;20296:5;;;;;;;;-1:-1:-1;;;20296:5:0;;;;;;;;;;;;;;;;;;;20277:24;;20315:32;20373:1;:12;;;20387:4;20360:32;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;20360:32:0;;;;;;;;;;;;;20350:43;;;;;;20315:78;;20433:24;20411:1;:18;;;:46;20407:134;;20518:8;;;;20407:134;20578:10;20562:1;:12;;;:26;20554:62;;;;-1:-1:-1;;;20554:62:0;;24917:2:8;20554:62:0;;;24899:21:8;24956:2;24936:18;;;24929:30;24995:25;24975:18;;;24968:53;25038:18;;20554:62:0;24889:173:8;20554:62:0;20647:11;;;;20630:14;;20672:2;;20647:22;;;20661:8;20647:22;;:11;;:22;:::i;:::-;:27;;;;:::i;:::-;20630:44;;20707:5;20696:16;;:7;:16;;;20688:55;;;;-1:-1:-1;;;20688:55:0;;25961:2:8;20688:55:0;;;25943:21:8;26000:2;25980:18;;;25973:30;26039:28;26019:18;;;26012:56;26085:18;;20688:55:0;25933:176:8;20688:55:0;20779:15;;;20757:19;20779:15;;;:6;:15;;;;;;;;;;;20816:22;;;-1:-1:-1;20816:22:0;20808:48;;;;-1:-1:-1;;;20808:48:0;;23170:2:8;20808:48:0;;;23152:21:8;23209:2;23189:18;;;23182:30;-1:-1:-1;;;23228:18:8;;;23221:43;23281:18;;20808:48:0;23142:163:8;20808:48:0;20879:11;;;;;;;;;20878:12;20870:49;;;;-1:-1:-1;;;20870:49:0;;24564:2:8;20870:49:0;;;24546:21:8;24603:2;24583:18;;;24576:30;24642:26;24622:18;;;24615:54;24686:18;;20870:49:0;24536:174:8;20870:49:0;21368:11;;;;21352:28;;21368:11;;21352:15;:28::i;:::-;21344:56;;;;-1:-1:-1;;;21344:56:0;;23871:2:8;21344:56:0;;;23853:21:8;23910:2;23890:18;;;23883:30;-1:-1:-1;;;23929:18:8;;;23922:45;23984:18;;21344:56:0;23843:165:8;21344:56:0;21421:1;21414:8;;;;;;;;;;;;20224:1209;20258:3;;;;:::i;:::-;;;;20224:1209;;;-1:-1:-1;21442:25:0;;-1:-1:-1;;;21442:25:0;;29213:2:8;21442:25:0;;;29195:21:8;29252:2;29232:18;;;29225:30;-1:-1:-1;;;29271:18:8;;;29264:45;29326:18;;21442:25:0;29185:165:8;19846:1628:0;;;;;;;:::o;21480:538::-;21564:19;21586:24;;;:12;:24;;;;;21628:9;;21620:45;;;;-1:-1:-1;;;21620:45:0;;28123:2:8;21620:45:0;;;28105:21:8;28162:2;28142:18;;;28135:30;-1:-1:-1;;;28181:18:8;;;28174:49;28240:18;;21620:45:0;28095:169:8;21620:45:0;21683:9;;:23;;;-1:-1:-1;21675:55:0;;;;-1:-1:-1;;;21675:55:0;;29557:2:8;21675:55:0;;;29539:21:8;29596:2;29576:18;;;29569:30;-1:-1:-1;;;29615:18:8;;;29608:49;29674:18;;21675:55:0;29529:169:8;21675:55:0;21740:16;21759:2;21762:11;21759:15;;;;;;;;-1:-1:-1;;;21759:15:0;;;;;;;;;;;;;;;;;;;;;;21792:11;;;;21759:15;;-1:-1:-1;21792:11:0;;21784:52;;;;-1:-1:-1;;;21784:52:0;;26663:2:8;21784:52:0;;;26645:21:8;26702:2;26682:18;;;26675:30;26741:26;26721:18;;;26714:54;26785:18;;21784:52:0;26635:174:8;21784:52:0;21897:11;;;;21875:12;;21923:2;;21890:30;;;21912:8;21890:30;;21897:11;;21890:30;:::i;:::-;:35;;;;:::i;:::-;21875:50;;21935:22;21951:5;21935:15;:22::i;:::-;21967:16;:14;:16::i;:::-;-1:-1:-1;21993:11:0;;:18;;-1:-1:-1;;21993:18:0;;;;;-1:-1:-1;;;21480:538:0:o;9045:596:1:-;9106:16;9132;9146:2;9132:4;:16;:::i;:::-;9106:43;-1:-1:-1;9185:4:1;9167:14;9106:43;9179:2;9167:14;:::i;:::-;:29;;;9159:78;;;;-1:-1:-1;;;9159:78:1;;;;;;;:::i;:::-;9252:8;9247:388;9270:9;9266:13;;:1;:13;;;9247:388;;;9300:19;9340:37;9350:4;;9355:6;:1;9359:2;9355:6;:::i;:::-;9350:26;;;9364:6;:1;9368:2;9364:6;:::i;:::-;:11;;9373:2;9364:11;:::i;:::-;9350:26;;;;;;;;;:::i;:::-;9340:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9340:9:1;;-1:-1:-1;;;9340:37:1:i;:::-;9322:57;;;;;;-1:-1:-1;;;9322:57:1;;;;;;;;;9300:79;-1:-1:-1;9393:23:1;9435:42;9445:4;;9450:6;:1;9454:2;9450:6;:::i;:::-;:11;;9459:2;9450:11;:::i;:::-;9445:31;;;9464:6;:1;9468:2;9464:6;:::i;:::-;:11;;9473:2;9464:11;:::i;9435:42::-;9419:60;;9393:86;;9493:15;9519:42;9529:4;;9534:1;9538:2;9534:6;;;;:::i;:::-;:11;;9543:2;9534:11;:::i;:::-;9529:31;;;9548:6;:1;9552:2;9548:6;:::i;:::-;:11;;9557:2;9548:11;:::i;9519:42::-;9511:51;-1:-1:-1;9576:48:1;9588:9;9599:15;9511:51;9576:11;:48::i;:::-;9247:388;;;9281:3;;;;;:::i;:::-;;;;9247:388;;5536:1613;5641:11;5694:9;5686:18;;;;;;-1:-1:-1;;;5686:18:1;;;;;;;;;5665:94;;;;;;10133:19:8;;;;5715:24:1;;;;-1:-1:-1;;;;;;5707:33:1;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;5665:94:1;;;-1:-1:-1;;5665:94:1;;;;;;;;;5655:105;;5665:94;5655:105;;;;5774:21;:26;;;;;;;;;:33;5655:105;;-1:-1:-1;5770:75:1;;5828:7;5536:1613;;;:::o;5770:75::-;5859:8;5854:1224;5877:21;:26;;;;;;;;;;:33;5873:37;;;;5854:1224;;;5931:9;5943:26;;;;;;;;;;:29;;;;;;;;;;-1:-1:-1;;;5943:29:1;;;;;;;;;;;;;;;;;5931:41;;6020:9;5990:39;;;;;;-1:-1:-1;;;5990:39:1;;;;;;;;;:13;6004:1;5990:16;;;;;;-1:-1:-1;;;5990:16:1;;;;;;;;;;;;;;;;;;;;;;:26;;;:39;;;;;;-1:-1:-1;;;5990:39:1;;;;;;;;;;5986:53;;6031:8;;;5986:53;6085:7;6057:13;6071:1;6057:16;;;;;;-1:-1:-1;;;6057:16:1;;;;;;;;;;;;;;;;;;;:24;;;:35;6053:49;;6094:8;;;6053:49;6156:15;-1:-1:-1;;;;;6120:51:1;:13;6134:1;6120:16;;;;;;-1:-1:-1;;;6120:16:1;;;;;;;;;;;;;;;;;;;;;;:32;;;;-1:-1:-1;;;;;6120:32:1;:51;6116:65;;6173:8;;;6116:65;6275:1;6252:20;;6226:23;;6252:24;;;:::i;:::-;6226:50;;6309:13;6323:15;6309:30;;;;;;-1:-1:-1;;;6309:30:1;;;;;;;;;;;;;;;;;;;6290:13;6304:1;6290:16;;;;;;-1:-1:-1;;;6290:16:1;;;;;;;;;;;;;;;;;:49;;:16;;;;;:49;;:16;;:49;;;:16;;-1:-1:-1;;6290:49:1;;;;;;;;;-1:-1:-1;;;6290:49:1;;;;;;;;;;;;;-1:-1:-1;6290:49:1;;;;-1:-1:-1;;;;;;6290:49:1;;;;;;-1:-1:-1;;;;;6290:49:1;;;;;;;-1:-1:-1;6290:49:1;;;;;;;;6413:16;;-1:-1:-1;;;6427:1:1;;6413:16;;;;-1:-1:-1;;;6413:16:1;;;;;;;;;;;;;;;;;;;;;;:26;;;6405:35;;;;;;-1:-1:-1;;;6405:35:1;;;;;;;;;6459:13;:16;;6473:1;;6459:16;;;;-1:-1:-1;;;6459:16:1;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;6459:32:1;6451:41;;-1:-1:-1;;;;;6443:50:1;;6503:13;6517:1;6503:16;;;;;;-1:-1:-1;;;6503:16:1;;;;;;;;;;;;;;;;;;;:24;;;6495:33;;6384:145;;;;;;;;;10133:19:8;;;10177:2;10168:12;;10161:28;;;;10214:2;10205:12;;10198:28;10251:2;10242:12;;10123:137;6384:145:1;;;;;;;;;;;;;6374:156;;;;;;6353:177;;6544:13;:19;;;;;-1:-1:-1;;;6544:19:1;;;;;;;;;;;;;;;;;-1:-1:-1;;6544:19:1;;;;;;;;;-1:-1:-1;;;;;;6544:19:1;;;;;;;;;;6577:244;6600:21;:33;;;;;;;;;;:40;6596:44;;;;6577:244;;;6709:15;6669:21;:33;6691:10;6669:33;;;;;;;;;;;6703:1;6669:36;;;;;;;;-1:-1:-1;;;6669:36:1;;;;;;;;;;;;;;;;;:55;6665:142;;;6787:1;6748:21;:33;6770:10;6748:33;;;;;;;;;;;6782:1;6748:36;;;;;;;;-1:-1:-1;;;6748:36:1;;;;;;;;;;;;;;;;;;:40;6665:142;6642:3;;;;:::i;:::-;;;;6577:244;;;-1:-1:-1;6866:21:1;:26;;;;;;;;;;6893:33;;:37;;6929:1;;6893:37;:::i;:::-;6866:65;;;;;;-1:-1:-1;;;6866:65:1;;;;;;;;;;;;;;;;;6834:21;:26;6856:3;6834:26;;;;;;;;;;;6861:1;6834:29;;;;;;-1:-1:-1;;;6834:29:1;;;;;;;;;;;;;;;;:97;;;;6945:21;:26;6967:3;6945:26;;;;;;;;;;;:32;;;;;-1:-1:-1;;;6945:32:1;;;;;;;;;;;;;;;;;;;;;;;;;;6996:51;7011:9;7022:15;7039:7;6996:51;;;;;;;;:::i;:::-;;;;;;;;7061:7;;;;;5536:1613;;;:::o;5854:1224::-;5912:3;;;;:::i;:::-;;;;5854:1224;;;;7092:50;7106:9;7117:15;7134:7;7092:50;;;;;;;;:::i;:::-;;;;;;;;5536:1613;;;;:::o;9647:600::-;9710:16;9736;9750:2;9736:4;:16;:::i;:::-;9710:43;-1:-1:-1;9789:4:1;9771:14;9710:43;9783:2;9771:14;:::i;:::-;:29;;;9763:78;;;;-1:-1:-1;;;9763:78:1;;;;;;;:::i;:::-;9856:8;9851:390;9874:9;9870:13;;:1;:13;;;9851:390;;;9904:19;9944:37;9954:4;;9959:6;:1;9963:2;9959:6;:::i;9944:37::-;9926:57;;;;;;-1:-1:-1;;;9926:57:1;;;;;;;;;9904:79;-1:-1:-1;9997:23:1;10039:42;10049:4;;10054:6;:1;10058:2;10054:6;:::i;10039:42::-;10023:60;;9997:86;;10097:15;10123:42;10133:4;;10138:1;10142:2;10138:6;;;;:::i;10123:42::-;10115:51;-1:-1:-1;10180:50:1;10194:9;10205:15;10115:51;10180:13;:50::i;:::-;9851:390;;;9885:3;;;;;:::i;:::-;;;;9851:390;;10618:1973:0;10790:15;10777:9;:28;;;;;;-1:-1:-1;;;10777:28:0;;;;;;;;;;10773:1812;;;10825:46;;-1:-1:-1;;;10825:46:0;;-1:-1:-1;;;;;13701:32:8;;;10825:46:0;;;13683:51:8;13750:18;;;13743:34;;;10825:32:0;;;;;13656:18:8;;10825:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10825:46:0;;;;;;;;-1:-1:-1;;10825:46:0;;;;;;;;;;;;:::i;:::-;;;10821:695;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;11306:77;11325:9;11336:15;11353:7;11362:4;11368:6;11376;11306:77;;;;;;;;;;;:::i;:::-;;;;;;;;11250:148;10773:1812;;10821:695;;;11428:73;11447:9;11458:15;11475:7;11484:4;11490:6;11428:73;;;;;;;;;;:::i;:::-;;;;;;;;10773:1812;;10821:695;10916:7;10912:230;;;10947:48;10959:9;10970:15;10987:7;10947:11;:48::i;:::-;11022:73;11045:9;11056:15;11073:7;11082:4;11088:6;11022:73;;;;;;;;;;:::i;10912:230::-;11164:70;11184:9;11195:15;11212:7;11221:4;11227:6;11164:70;;;;;;;;;;:::i;10773:1812::-;11549:16;11536:9;:29;;;;;;-1:-1:-1;;;11536:29:0;;;;;;;;;;11532:1053;;;11585:77;;-1:-1:-1;;;11585:77:0;;-1:-1:-1;;;;;11585:41:0;;;;;:77;;11635:4;;11642;;11648:7;;11657:4;;11585:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11581:459;;;;:::i;:::-;11685:73;11708:9;11719:15;11736:7;11745:4;11751:6;11685:73;;;;;;;;;;:::i;11532:1053::-;12073:17;12060:9;:30;;;;;;-1:-1:-1;;;12060:30:0;;;;;;;;;;12056:529;;;12110:86;;-1:-1:-1;;;12110:86:0;;-1:-1:-1;;;;;12110:42:0;;;;;:86;;12161:4;;12168;;12174:7;;12183:6;;12191:4;;12110:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12106:469;;;;:::i;:::-;12220:73;12243:9;12254:15;12271:7;12280:4;12286:6;12220:73;;;;;;;;;;:::i;:::-;;;;;;;;10618:1973;;;;;;:::o;8286:753:1:-;8359:16;8385;8399:2;8385:4;:16;:::i;:::-;8359:43;-1:-1:-1;8438:4:1;8420:14;8359:43;8432:2;8420:14;:::i;:::-;:29;;;8412:78;;;;-1:-1:-1;;;8412:78:1;;;;;;;:::i;:::-;8500:38;8560:9;8541:29;;-1:-1:-1;;;;;8541:29:1;;;;;-1:-1:-1;;;8541:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;8541:29:1;;-1:-1:-1;;8541:29:1;;;;;;;;;;;;8500:70;;8585:8;8580:411;8603:9;8599:13;;:1;:13;;;8580:411;;;8633:19;8673:37;8683:4;;8688:6;:1;8692:2;8688:6;:::i;8673:37::-;8655:57;;;;;;-1:-1:-1;;;8655:57:1;;;;;;;;;8633:79;-1:-1:-1;8726:23:1;8768:42;8778:4;;8783:6;:1;8787:2;8783:6;:::i;8768:42::-;8752:60;;8726:86;;8826:15;8852:42;8862:4;;8867:1;8871:2;8867:6;;;;:::i;8852:42::-;8844:51;;8826:69;;8931:49;;;;;;;;8944:9;8931:49;;;;;;-1:-1:-1;;;8931:49:1;;;;;;;;;;;;;8955:15;-1:-1:-1;;;;;8931:49:1;;;;;8972:7;8931:49;;;8909:16;8926:1;8909:19;;;;;;;;-1:-1:-1;;;8909:19:1;;;;;;;;;;;;;;:71;;;;8580:411;;;8614:3;;;;;:::i;:::-;;;;8580:411;;;;9000:32;9015:16;9000:14;:32::i;9148:940:0:-;9223:4;;9259:33;2989:5;9259:15;:33;:::i;:::-;9313:15;;9239:54;;-1:-1:-1;9313:15:0;;;;9307:21;;;;9303:101;;;9357:1;9344:10;:14;9372:15;:21;;-1:-1:-1;;9372:21:0;;;;;;;9303:101;9439:10;;9430:6;9417:10;;:19;;;;:::i;:::-;:32;9413:148;;;9495:10;;9507;;9470:54;;;31119:25:8;;;31175:2;31160:18;;31153:34;;;;31203:18;;31196:34;-1:-1:-1;;;;;31266:32:8;;31261:2;31246:18;;31239:60;9470:54:0;;31106:3:8;31091:19;9470:54:0;;;;;;;;9545:5;9538:12;;;;;9413:148;9598:6;9574:21;:30;9570:145;;;9625:53;;;30732:25:8;;;9650:21:0;30788:2:8;30773:18;;30766:34;-1:-1:-1;;;;;30836:32:8;;30816:18;;;30809:60;;;;9625:53:0;;30720:2:8;30705:18;9625:53:0;30687:188:8;9570:145:0;9725:12;9742:4;-1:-1:-1;;;;;9742:9:0;9760:6;9742:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9724:47;;;9900:7;9895:96;;9928:26;;-1:-1:-1;;;;;11599:32:8;;11581:51;;9928:26:0;;11569:2:8;11554:18;9928:26:0;;;;;;;9975:5;9968:12;;;;;;9895:96;10014:6;10000:10;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;10035:25:0;;;29877::8;;;-1:-1:-1;;;;;29938:32:8;;29933:2;29918:18;;29911:60;10035:25:0;;29850:18:8;10035:25:0;;;;;;;-1:-1:-1;10077:4:0;;9148:940;-1:-1:-1;;;;9148:940:0:o;10094:295::-;10151:17;;10132:4;;-1:-1:-1;;;;;10151:17:0;10147:118;;10203:25;;;;;;;-1:-1:-1;10249:5:0;;10094:295::o;10147:118::-;10279:8;:6;:8::i;:::-;10274:88;;10308:17;;;;;;;-1:-1:-1;10346:5:0;;10094:295::o;10395:217::-;10487:17;;-1:-1:-1;;;;;10487:17:0;:31;10479:78;;;;-1:-1:-1;;;10479:78:0;;28810:2:8;10479:78:0;;;28792:21:8;28849:2;28829:18;;;28822:30;28888:34;28868:18;;;28861:62;-1:-1:-1;;;28939:18:8;;;28932:32;28981:19;;10479:78:0;28782:224:8;10479:78:0;10567:17;:38;;-1:-1:-1;;;;;;10567:38:0;-1:-1:-1;;;;;10567:38:0;;;;;;;;;;10395:217::o;16869:2529::-;16915:18;16966:15;17155:931;17176:7;:14;17162:28;;;;17155:931;;;17221:12;17236:7;17244:11;17236:20;;;;;;;;-1:-1:-1;;;17236:20:0;;;;;;;;;;;;;;;;;;;;;17292:18;;;:12;:18;;;;;;;17426:9;;17236:20;;-1:-1:-1;17292:18:0;17422:61;;17460:8;;;;17422:61;17928:16;17947:2;17950:1;17947:5;;;;;;-1:-1:-1;;;17947:5:0;;;;;;;;;;;;;;;;;17990:11;17947:5;;;;;17990:11;;;;17947:5;;-1:-1:-1;17990:36:0;-1:-1:-1;;18005:21:0;;17990:36;;:11;;:36;17986:80;;18046:5;;;;;17986:80;17155:931;;;;17192:13;;;;:::i;:::-;;;;17155:931;;;18245:16;;;18241:159;;18383:7;;16869:2529::o;18241:159::-;18520:8;18515:281;18538:11;18534:15;;:1;:15;;;18515:281;;;18570:12;18585:7;18593:1;18585:10;;;;;;;;-1:-1:-1;;;18585:10:0;;;;;;;;;;;;;;;;;;;;;18631:18;;;:12;:18;;;;;;18585:10;;-1:-1:-1;18631:18:0;18663:84;18686:9;;18682:13;;;;18663:84;;;18727:2;18730:1;18727:5;;;;;;;;-1:-1:-1;;;18727:5:0;;;;;;;;;;;;;;;;;;;;;18720:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18720:12:0;;;18697:3;;;;:::i;:::-;;;;18663:84;;;-1:-1:-1;18767:18:0;;;;:12;:18;;;;;18760:25;;;:::i;:::-;18515:281;;18551:3;;;;;:::i;:::-;;;;18515:281;;;-1:-1:-1;19001:7:0;:14;19042:11;19026:134;19059:3;19055:7;;:1;:7;;;19026:134;;;19129:7;19137:1;19129:10;;;;;;;;-1:-1:-1;;;19129:10:0;;;;;;;;;;;;;;;;;19102:7;19114:11;19110:1;:15;19102:24;;;;;;;;-1:-1:-1;;;19102:24:0;;;;;;;;;;;;;;;;;;:37;19064:3;;;;:::i;:::-;;;;19026:134;;;;19174:8;19169:79;19192:11;19188:15;;:1;:15;;;19169:79;;;19224:7;:13;;;;;-1:-1:-1;;;19224:13:0;;;;;;;;;;;;;;;;;;;;;;;;;;19205:3;;;;;:::i;:::-;;;;19169:79;;19404:156;19471:4;2947:2;19498:36;19524:10;19505:15;19498:36;:::i;:::-;:55;;;;19404:156;-1:-1:-1;;19404:156:0:o;23458:210::-;23526:13;;;23516:7;23526:13;;;:6;:13;;;;;;;;23553:6;23549:61;;23575:12;:24;;;;;;;-1:-1:-1;23575:24:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23549:61;23634:13;;;;;;;;;:6;:13;;;;;:21;;-1:-1:-1;;23634:21:0;23654:1;23650:5;;;23634:21;;;;;;;;23458:210::o;22278:1174::-;22323:11;22337:42;2947:2;22344:15;22337:42;:::i;:::-;22323:56;-1:-1:-1;22389:25:0;22417:15;;22424:8;22417:15;22323:56;22417:15;:::i;:::-;22389:43;;22442:15;22496:2;22475:23;;:18;:23;;;22471:88;;;22525:23;22546:2;22525:18;:23;:::i;:::-;22514:34;;22471:88;22613:12;:19;22568:29;;-1:-1:-1;;;;;22600:33:0;;;;;-1:-1:-1;;;22600:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22600:33:0;;22568:65;;22643:22;22684:7;22679:341;22701:12;:19;22697:23;;;;22679:341;;;22741:12;22756;22769:1;22756:15;;;;;;;;-1:-1:-1;;;22756:15:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22789:16:0;;;;22785:225;;;22832:13;;;;;;;:6;:13;;;;;22825:20;;-1:-1:-1;;22825:20:0;;;22785:225;;;22917:5;22884:13;22898:15;22884:30;;;;;;;;-1:-1:-1;;;22884:30:0;;;;;;;;;:38;;;;:30;;;;;;;;;;;:38;22964:17;;;;;22785:225;-1:-1:-1;22722:3:0;;;;:::i;:::-;;;;22679:341;;;;23236:28;23280:15;23267:29;;-1:-1:-1;;;;;23267:29:0;;;;;-1:-1:-1;;;23267:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23267:29:0;;23236:60;;23311:7;23306:103;23328:15;23324:19;;:1;:19;;;23306:103;;;23382:13;23396:1;23382:16;;;;;;;;-1:-1:-1;;;23382:16:0;;;;;;;;;;;;;;;23364:12;23377:1;23364:15;;;;;;;;-1:-1:-1;;;23364:15:0;;;;;;;;;:34;;;;:15;;;;;;;;;;;:34;23345:3;;;;:::i;:::-;;;;23306:103;;;-1:-1:-1;23418:27:0;;;;:12;;:27;;;;;:::i;:::-;;22278:1174;;;;;;:::o;10253:408:1:-;10311:7;10333:1;:8;10345:1;10333:13;10329:63;;;-1:-1:-1;10377:3:1;;10253:408;-1:-1:-1;10253:408:1:o;10329:63::-;10421:2;10409:1;:8;:14;;10401:47;;;;-1:-1:-1;;;10401:47:1;;24215:2:8;10401:47:1;;;24197:21:8;24254:2;24234:18;;;24227:30;-1:-1:-1;;;24273:18:8;;;24266:50;24333:18;;10401:47:1;24187:170:8;10401:47:1;10458:9;10477;10501:1;:8;10496:2;:13;;;;:::i;:::-;10495:19;;10513:1;10495:19;:::i;:::-;10565:2;10558:10;;;;10552:17;10587:11;;10616;;;;10253:408;-1:-1:-1;;;10253:408:1:o;7155:1125::-;7243:8;7238:431;7261:13;:20;7257:24;;;;7238:431;;;7302:19;7324:13;7338:1;7324:16;;;;;;;;-1:-1:-1;;;7324:16:1;;;;;;;;;;;;;;;;;;;;;:26;;7390:16;;7324:26;;;;;-1:-1:-1;7324:26:1;7390:16;;;;;;;;-1:-1:-1;;;7390:16:1;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;7390:32:1;7364:58;;7436:15;7454:13;7468:1;7454:16;;;;;;;;-1:-1:-1;;;7454:16:1;;;;;;;;;;;;;;;;;;;:24;;;7436:42;;7492:11;7545:9;7537:18;;;;;;-1:-1:-1;;;7537:18:1;;;;;;;;;7516:94;;;;;;10133:19:8;;;;7566:24:1;;;;-1:-1:-1;;;;;;7558:33:1;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;7516:94:1;;;-1:-1:-1;;7516:94:1;;;;;;;;;7506:105;;7516:94;7506:105;;;;7632:21;:26;;;;;;;;;;7506:105;;-1:-1:-1;7625:33:1;;;:::i;:::-;7238:431;;;;7283:3;;;;;:::i;:::-;;;;7238:431;;;-1:-1:-1;7678:20:1;7685:13;;7678:20;:::i;:::-;7713:8;7708:566;7731:16;:23;7727:1;:27;;;7708:566;;;7775:19;7797:16;7814:1;7797:19;;;;;;;;-1:-1:-1;;;7797:19:1;;;;;;;;;;;;;;;:29;;;7775:51;;7840:23;7866:16;7883:1;7866:19;;;;;;;;-1:-1:-1;;;7866:19:1;;;;;;;;;;;;;;;:35;;;7840:61;;7915:15;7933:16;7950:1;7933:19;;;;;;;;-1:-1:-1;;;7933:19:1;;;;;;;;;;;;;;;:27;;;7915:45;;7974:11;8027:9;8019:18;;;;;;-1:-1:-1;;;8019:18:1;;;;;;;;;7998:94;;;;;;10133:19:8;;;;8048:24:1;;;;-1:-1:-1;;;;;;8040:33:1;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;7998:94:1;;;;;;;;;;;;7988:105;;;;;;7974:119;;8107:21;8131:49;;;;;;;;8144:9;8131:49;;;;;;-1:-1:-1;;;8131:49:1;;;;;;;;;;;-1:-1:-1;;;;;8131:49:1;;;;;;;;;;;8194:13;:21;;;;;;;-1:-1:-1;8194:21:1;;;;;;;;;;;;;8107:73;;-1:-1:-1;8107:73:1;;8194:21;;;;-1:-1:-1;;8194:21:1;;;;;;;;;-1:-1:-1;;;8194:21:1;;;;;;;;;;;;;-1:-1:-1;8194:21:1;;;;;;;-1:-1:-1;;;;;8194:21:1;;;;;-1:-1:-1;;;;;;8194:21:1;;;;;;;;;;;;;;;;;8229:26;;;;;;;;;:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8261:1:1;;-1:-1:-1;7756:3:1;;-1:-1:-1;8261:1:1;;-1:-1:-1;7756:3:1;:::i;:::-;;;;7708:566;;;;7155:1125;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:134:8;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:395::-;216:8;226:6;280:3;273:4;265:6;261:17;257:27;247:2;;305:8;295;288:26;247:2;-1:-1:-1;335:20:8;;-1:-1:-1;;;;;367:30:8;;364:2;;;417:8;407;400:26;364:2;461:4;453:6;449:17;437:29;;521:3;514:4;504:6;501:1;497:14;489:6;485:27;481:38;478:47;475:2;;;538:1;535;528:12;475:2;237:311;;;;;:::o;553:375::-;604:8;614:6;668:3;661:4;653:6;649:17;645:27;635:2;;693:8;683;676:26;635:2;-1:-1:-1;723:20:8;;-1:-1:-1;;;;;755:30:8;;752:2;;;805:8;795;788:26;752:2;849:4;841:6;837:17;825:29;;901:3;894:4;885:6;877;873:19;869:30;866:39;863:2;;;918:1;915;908:12;933:154;1012:20;;1061:1;1051:12;;1041:2;;1077:1;1074;1067:12;1092:150;1167:20;;1216:1;1206:12;;1196:2;;1232:1;1229;1222:12;1247:163;1314:20;;1374:10;1363:22;;1353:33;;1343:2;;1400:1;1397;1390:12;1415:1378;1575:6;1583;1591;1599;1607;1615;1623;1631;1684:3;1672:9;1663:7;1659:23;1655:33;1652:2;;;1706:6;1698;1691:22;1652:2;1750:9;1737:23;1769:31;1794:5;1769:31;:::i;:::-;1819:5;-1:-1:-1;1876:2:8;1861:18;;1848:32;1889:33;1848:32;1889:33;:::i;:::-;1941:7;-1:-1:-1;1999:2:8;1984:18;;1971:32;-1:-1:-1;;;;;2052:14:8;;;2049:2;;;2084:6;2076;2069:22;2049:2;2128:70;2190:7;2181:6;2170:9;2166:22;2128:70;:::i;:::-;2217:8;;-1:-1:-1;2102:96:8;-1:-1:-1;2305:2:8;2290:18;;2277:32;;-1:-1:-1;2321:16:8;;;2318:2;;;2355:6;2347;2340:22;2318:2;2399:72;2463:7;2452:8;2441:9;2437:24;2399:72;:::i;:::-;2490:8;;-1:-1:-1;2373:98:8;-1:-1:-1;2578:3:8;2563:19;;2550:33;;-1:-1:-1;2595:16:8;;;2592:2;;;2629:6;2621;2614:22;2592:2;;2673:60;2725:7;2714:8;2703:9;2699:24;2673:60;:::i;:::-;1642:1151;;;;-1:-1:-1;1642:1151:8;;-1:-1:-1;1642:1151:8;;;;;;2752:8;-1:-1:-1;;;1642:1151:8:o;2798:774::-;2895:6;2903;2911;2919;2927;2980:3;2968:9;2959:7;2955:23;2951:33;2948:2;;;3002:6;2994;2987:22;2948:2;3046:9;3033:23;3065:31;3090:5;3065:31;:::i;:::-;3115:5;-1:-1:-1;3172:2:8;3157:18;;3144:32;3185:33;3144:32;3185:33;:::i;:::-;3237:7;-1:-1:-1;3291:2:8;3276:18;;3263:32;;-1:-1:-1;3346:2:8;3331:18;;3318:32;-1:-1:-1;;;;;3362:30:8;;3359:2;;;3410:6;3402;3395:22;3359:2;3454:58;3504:7;3495:6;3484:9;3480:22;3454:58;:::i;:::-;2938:634;;;;-1:-1:-1;2938:634:8;;-1:-1:-1;3531:8:8;;3428:84;2938:634;-1:-1:-1;;;2938:634:8:o;3577:843::-;3683:6;3691;3699;3707;3715;3723;3776:3;3764:9;3755:7;3751:23;3747:33;3744:2;;;3798:6;3790;3783:22;3744:2;3842:9;3829:23;3861:31;3886:5;3861:31;:::i;:::-;3911:5;-1:-1:-1;3968:2:8;3953:18;;3940:32;3981:33;3940:32;3981:33;:::i;:::-;4033:7;-1:-1:-1;4087:2:8;4072:18;;4059:32;;-1:-1:-1;4138:2:8;4123:18;;4110:32;;-1:-1:-1;4193:3:8;4178:19;;4165:33;-1:-1:-1;;;;;4210:30:8;;4207:2;;;4258:6;4250;4243:22;4207:2;4302:58;4352:7;4343:6;4332:9;4328:22;4302:58;:::i;:::-;3734:686;;;;-1:-1:-1;3734:686:8;;-1:-1:-1;3734:686:8;;4379:8;;3734:686;-1:-1:-1;;;3734:686:8:o;4425:1396::-;4641:6;4649;4657;4665;4673;4681;4689;4697;4705;4713;4721:7;4730;4784:3;4772:9;4763:7;4759:23;4755:33;4752:2;;;4806:6;4798;4791:22;4752:2;-1:-1:-1;;;;;4843:9:8;4830:23;4827:47;4824:2;;;4892:6;4884;4877:22;4824:2;4936:87;5015:7;5002:9;4989:23;4978:9;4974:39;4936:87;:::i;:::-;5042:8;;-1:-1:-1;5069:8:8;-1:-1:-1;5096:37:8;5129:2;5114:18;;5096:37;:::i;:::-;5086:47;;5180:2;5169:9;5165:18;5152:32;5142:42;;5203:49;5248:2;5237:9;5233:18;5203:49;:::i;:::-;5193:59;;5271:46;5312:3;5301:9;5297:19;5271:46;:::i;:::-;5261:56;;5336:39;5370:3;5359:9;5355:19;5336:39;:::i;:::-;5326:49;;5422:3;5411:9;5407:19;5394:33;5384:43;;5446:39;5480:3;5469:9;5465:19;5446:39;:::i;:::-;5436:49;;5532:3;5521:9;5517:19;5504:33;5494:43;;-1:-1:-1;;;;;5580:3:8;5569:9;5565:19;5552:33;5549:57;5546:2;;;5625:7;5616;5609:24;5546:2;5672:85;5749:7;5741:3;5730:9;5726:19;5713:33;5702:9;5698:49;5672:85;:::i;:::-;5777:9;5766:20;;5806:9;5795:20;;;;4742:1079;;;;;;;;;;;;;;:::o;5826:297::-;5893:6;5946:2;5934:9;5925:7;5921:23;5917:32;5914:2;;;5967:6;5959;5952:22;5914:2;6004:9;5998:16;6057:5;6050:13;6043:21;6036:5;6033:32;6023:2;;6084:6;6076;6069:22;6023:2;6112:5;5904:219;-1:-1:-1;;;5904:219:8:o;6128:190::-;6187:6;6240:2;6228:9;6219:7;6215:23;6211:32;6208:2;;;6261:6;6253;6246:22;6208:2;-1:-1:-1;6289:23:8;;6198:120;-1:-1:-1;6198:120:8:o;6323:194::-;6393:6;6446:2;6434:9;6425:7;6421:23;6417:32;6414:2;;;6467:6;6459;6452:22;6414:2;-1:-1:-1;6495:16:8;;6404:113;-1:-1:-1;6404:113:8:o;6522:326::-;6599:6;6607;6615;6668:2;6656:9;6647:7;6643:23;6639:32;6636:2;;;6689:6;6681;6674:22;6636:2;-1:-1:-1;;6717:23:8;;;6787:2;6772:18;;6759:32;;-1:-1:-1;6838:2:8;6823:18;;;6810:32;;6626:222;-1:-1:-1;6626:222:8:o;6853:255::-;6911:6;6964:2;6952:9;6943:7;6939:23;6935:32;6932:2;;;6985:6;6977;6970:22;6932:2;7029:9;7016:23;7048:30;7072:5;7048:30;:::i;7113:259::-;7182:6;7235:2;7223:9;7214:7;7210:23;7206:32;7203:2;;;7256:6;7248;7241:22;7203:2;7293:9;7287:16;7312:30;7336:5;7312:30;:::i;7377:450::-;7427:3;7465:5;7459:12;7492:6;7487:3;7480:19;7518:4;7547:2;7542:3;7538:12;7531:19;;7584:2;7577:5;7573:14;7605:3;7617:185;7631:6;7628:1;7625:13;7617:185;;;7706:13;;7699:21;7692:29;7680:42;;7742:12;;;;7777:15;;;;7653:1;7646:9;7617:185;;;-1:-1:-1;7818:3:8;;7435:392;-1:-1:-1;;;;;7435:392:8:o;7832:437::-;7885:3;7923:5;7917:12;7950:6;7945:3;7938:19;7976:4;8005:2;8000:3;7996:12;7989:19;;8042:2;8035:5;8031:14;8063:3;8075:169;8089:6;8086:1;8083:13;8075:169;;;8150:13;;8138:26;;8184:12;;;;8219:15;;;;8111:1;8104:9;8075:169;;8274:453;8326:3;8364:5;8358:12;8391:6;8386:3;8379:19;8417:4;8446:2;8441:3;8437:12;8430:19;;8483:2;8476:5;8472:14;8504:3;8516:186;8530:6;8527:1;8524:13;8516:186;;;8595:13;;8610:10;8591:30;8579:43;;8642:12;;;;8677:15;;;;8552:1;8545:9;8516:186;;8732:268;8820:6;8815:3;8808:19;8872:6;8865:5;8858:4;8853:3;8849:14;8836:43;-1:-1:-1;8790:3:8;8899:16;;;8917:4;8895:27;;;8888:40;;;;8982:2;8961:15;;;-1:-1:-1;;8957:29:8;8948:39;;;8944:50;;8798:202::o;9005:257::-;9046:3;9084:5;9078:12;9111:6;9106:3;9099:19;9127:63;9183:6;9176:4;9171:3;9167:14;9160:4;9153:5;9149:16;9127:63;:::i;:::-;9244:2;9223:15;-1:-1:-1;;9219:29:8;9210:39;;;;9251:4;9206:50;;9054:208;-1:-1:-1;;9054:208:8:o;9267:237::-;9348:1;9341:5;9338:12;9328:2;;9393:10;9388:3;9384:20;9381:1;9374:31;9428:4;9425:1;9418:15;9456:4;9453:1;9446:15;9328:2;9480:18;;9318:186::o;10265:676::-;10602:6;10597:3;10590:19;10639:6;10634:2;10629:3;10625:12;10618:28;10676:6;10671:2;10666:3;10662:12;10655:28;10713:6;10708:2;10703:3;10699:12;10692:28;10751:6;10745:3;10740;10736:13;10729:29;10789:6;10783:3;10778;10774:13;10767:29;10841:6;10833;10827:3;10822;10818:13;10805:43;10572:3;10871:16;;10889:3;10867:26;10902:15;;;10867:26;10580:361;-1:-1:-1;;;;;;;10580:361:8:o;10946:274::-;11075:3;11113:6;11107:13;11129:53;11175:6;11170:3;11163:4;11155:6;11151:17;11129:53;:::i;:::-;11198:16;;;;;11083:137;-1:-1:-1;;11083:137:8:o;11859:488::-;-1:-1:-1;;;;;12128:15:8;;;12110:34;;12180:15;;12175:2;12160:18;;12153:43;12227:2;12212:18;;12205:34;;;12275:3;12270:2;12255:18;;12248:31;;;12053:4;;12296:45;;12321:19;;12313:6;12296:45;:::i;:::-;12288:53;12062:285;-1:-1:-1;;;;;;12062:285:8:o;12352:587::-;-1:-1:-1;;;;;12659:15:8;;;12641:34;;12711:15;;12706:2;12691:18;;12684:43;12758:2;12743:18;;12736:34;;;12801:2;12786:18;;12779:34;;;12621:3;12844;12829:19;;12822:32;;;12584:4;;12871:62;;12913:19;;12905:6;12897;12871:62;:::i;:::-;12863:70;12593:346;-1:-1:-1;;;;;;;;12593:346:8:o;12944:560::-;-1:-1:-1;;;;;13241:15:8;;;13223:34;;13293:15;;13288:2;13273:18;;13266:43;13340:2;13325:18;;13318:34;;;13383:2;13368:18;;13361:34;;;13203:3;13426;13411:19;;13404:32;;;13166:4;;13453:45;;13478:19;;13470:6;13453:45;:::i;:::-;13445:53;13175:329;-1:-1:-1;;;;;;;13175:329:8:o;13788:1068::-;14271:3;14260:9;14253:22;14234:4;14298:57;14350:3;14339:9;14335:19;14327:6;14298:57;:::i;:::-;14403:9;14395:6;14391:22;14386:2;14375:9;14371:18;14364:50;14437:44;14474:6;14466;14437:44;:::i;:::-;14423:58;;14529:9;14521:6;14517:22;14512:2;14501:9;14497:18;14490:50;14563:44;14600:6;14592;14563:44;:::i;:::-;14549:58;;14655:9;14647:6;14643:22;14638:2;14627:9;14623:18;14616:50;14689:43;14725:6;14717;14689:43;:::i;:::-;14675:57;;14781:9;14773:6;14769:22;14763:3;14752:9;14748:19;14741:51;14809:41;14843:6;14835;14809:41;:::i;14861:863::-;15266:3;15255:9;15248:22;15229:4;15293:57;15345:3;15334:9;15330:19;15322:6;15293:57;:::i;:::-;15398:9;15390:6;15386:22;15381:2;15370:9;15366:18;15359:50;15432:44;15469:6;15461;15432:44;:::i;:::-;15418:58;;15524:9;15516:6;15512:22;15507:2;15496:9;15492:18;15485:50;15558:43;15594:6;15586;15558:43;:::i;:::-;15544:57;;15649:9;15641:6;15637:22;15632:2;15621:9;15617:18;15610:50;15677:41;15711:6;15703;15677:41;:::i;15729:1390::-;16087:2;16099:21;;;16169:13;;16072:18;;;16191:22;;;16039:4;;16267;;16244:3;16229:19;;;16294:15;;;16039:4;16340:188;16354:6;16351:1;16348:13;16340:188;;;16403:45;16444:3;16435:6;16429:13;16403:45;:::i;:::-;16468:12;;;;16503:15;;;;16376:1;16369:9;16340:188;;;-1:-1:-1;;;16564:19:8;;;16544:18;;;16537:47;16634:13;;16656:21;;;16732:15;;;;16695:12;;;16767:4;16780:215;16796:8;16791:3;16788:17;16780:215;;;16869:15;;-1:-1:-1;;;;;16865:41:8;16851:56;;16968:17;;;;16929:14;;;;16903:1;16815:11;16780:215;;;16784:3;;17042:9;17035:5;17031:21;17026:2;17015:9;17011:18;17004:49;17070:43;17107:5;17099:6;17070:43;:::i;18718:376::-;18920:2;18905:18;;18932:44;18909:9;18958:6;18932:44;:::i;:::-;-1:-1:-1;;;;;19012:32:8;;;;19007:2;18992:18;;18985:60;19076:2;19061:18;19054:34;18887:207;;-1:-1:-1;18887:207:8:o;19099:550::-;19357:3;19342:19;;19370:44;19346:9;19396:6;19370:44;:::i;:::-;-1:-1:-1;;;;;19488:15:8;;;19483:2;19468:18;;19461:43;19535:2;19520:18;;19513:34;;;;19583:15;;;;19578:2;19563:18;;19556:43;19630:3;19615:19;19608:35;;;;19324:325;;-1:-1:-1;19324:325:8:o;19654:665::-;19937:44;19971:9;19963:6;19937:44;:::i;:::-;-1:-1:-1;;;;;20055:15:8;;;20050:2;20035:18;;20028:43;20102:2;20087:18;;20080:34;;;20150:15;;20145:2;20130:18;;20123:43;20197:3;20182:19;;20175:35;;;20247:3;20008;20226:19;;20219:32;;;19918:4;;20268:45;;20293:19;;20285:6;20268:45;:::i;20324:734::-;20660:44;20694:9;20686:6;20660:44;:::i;:::-;-1:-1:-1;;;;;20778:15:8;;;20773:2;20758:18;;20751:43;20825:2;20810:18;;20803:34;;;;20873:15;;20868:2;20853:18;;20846:43;20920:3;20905:19;;20898:35;;;;20970:3;20731;20949:19;;20942:32;;;20641:4;20990:19;;;20983:33;21048:3;21033:19;;20650:408;-1:-1:-1;20650:408:8:o;21063:779::-;21390:44;21424:9;21416:6;21390:44;:::i;:::-;21465:2;21450:18;;21443:34;;;-1:-1:-1;;;;;21551:15:8;;;21546:2;21531:18;;21524:43;21603:15;;;21598:2;21583:18;;21576:43;21656:15;;21650:3;21635:19;;21628:44;21504:3;21688:19;;21681:35;;;21753:3;21747;21732:19;;21725:32;;;21371:4;;21774:62;;21816:19;;21808:6;21800;21774:62;:::i;:::-;21766:70;21380:462;-1:-1:-1;;;;;;;;;;21380:462:8:o;26814:400::-;27016:2;26998:21;;;27055:2;27035:18;;;27028:30;27094:34;27089:2;27074:18;;27067:62;-1:-1:-1;;;27160:2:8;27145:18;;27138:34;27204:3;27189:19;;26988:226::o;31795:363::-;31900:9;31911;31953:8;31941:10;31938:24;31935:2;;;31983:9;31972;31965:28;31935:2;32020:6;32010:8;32007:20;32004:2;;;32048:9;32037;32030:28;32004:2;-1:-1:-1;;32082:23:8;;;32127:25;;;;;-1:-1:-1;31925:233:8:o;32163:128::-;32203:3;32234:1;32230:6;32227:1;32224:13;32221:2;;;32240:18;;:::i;:::-;-1:-1:-1;32276:9:8;;32211:80::o;32296:228::-;32335:3;32363:10;32400:2;32397:1;32393:10;32430:2;32427:1;32423:10;32461:3;32457:2;32453:12;32448:3;32445:21;32442:2;;;32469:18;;:::i;:::-;32505:13;;32343:181;-1:-1:-1;;;;32343:181:8:o;32529:120::-;32569:1;32595;32585:2;;32600:18;;:::i;:::-;-1:-1:-1;32634:9:8;;32575:74::o;32654:191::-;32693:1;32719:10;32756:2;32753:1;32749:10;32778:3;32768:2;;32785:18;;:::i;:::-;32823:10;;32819:20;;;;;32699:146;-1:-1:-1;;32699:146:8:o;32850:168::-;32890:7;32956:1;32952;32948:6;32944:14;32941:1;32938:21;32933:1;32926:9;32919:17;32915:45;32912:2;;;32963:18;;:::i;:::-;-1:-1:-1;33003:9:8;;32902:116::o;33023:262::-;33062:7;33094:10;33131:2;33128:1;33124:10;33161:2;33158:1;33154:10;33217:3;33213:2;33209:12;33204:3;33201:21;33194:3;33187:11;33180:19;33176:47;33173:2;;;33226:18;;:::i;:::-;33266:13;;33074:211;-1:-1:-1;;;;33074:211:8:o;33290:125::-;33330:4;33358:1;33355;33352:8;33349:2;;;33363:18;;:::i;:::-;-1:-1:-1;33400:9:8;;33339:76::o;33420:221::-;33459:4;33488:10;33548;;;;33518;;33570:12;;;33567:2;;;33585:18;;:::i;:::-;33622:13;;33468:173;-1:-1:-1;;;33468:173:8:o;33646:195::-;33684:4;33721;33718:1;33714:12;33753:4;33750:1;33746:12;33778:3;33773;33770:12;33767:2;;;33785:18;;:::i;:::-;33822:13;;;33693:148;-1:-1:-1;;;33693:148:8:o;33846:258::-;33918:1;33928:113;33942:6;33939:1;33936:13;33928:113;;;34018:11;;;34012:18;33999:11;;;33992:39;33964:2;33957:10;33928:113;;;34059:6;34056:1;34053:13;34050:2;;;-1:-1:-1;;34094:1:8;34076:16;;34069:27;33899:205::o;34109:346::-;34219:2;34200:13;;-1:-1:-1;;34196:27:8;34184:40;;-1:-1:-1;;;;;34239:34:8;;34275:22;;;34236:62;34233:2;;;34340:10;34335:3;34331:20;34328:1;34321:31;34375:4;34372:1;34365:15;34403:4;34400:1;34393:15;34233:2;34434;34427:22;-1:-1:-1;;34156:299:8:o;34460:201::-;34498:3;34526:10;34571:2;34564:5;34560:14;34598:2;34589:7;34586:15;34583:2;;;34604:18;;:::i;:::-;34653:1;34640:15;;34506:155;-1:-1:-1;;;34506:155:8:o;34666:175::-;34703:3;34747:4;34740:5;34736:16;34776:4;34767:7;34764:17;34761:2;;;34784:18;;:::i;:::-;34833:1;34820:15;;34711:130;-1:-1:-1;;34711:130:8:o;34846:183::-;34877:1;34903:10;34940:2;34937:1;34933:10;34962:3;34952:2;;34969:18;;:::i;:::-;35007:10;;35003:20;;;;;34883:146;-1:-1:-1;;34883:146:8:o;35034:127::-;35095:10;35090:3;35086:20;35083:1;35076:31;35126:4;35123:1;35116:15;35150:4;35147:1;35140:15;35166:127;35227:10;35222:3;35218:20;35215:1;35208:31;35258:4;35255:1;35248:15;35282:4;35279:1;35272:15;35298:185;35333:3;35375:1;35357:16;35354:23;35351:2;;;35425:1;35420:3;35415;35400:27;35456:10;35451:3;35447:20;35351:2;35341:142;:::o;35488:671::-;35527:3;35569:4;35551:16;35548:26;35545:2;;;35535:624;:::o;35545:2::-;35611;35605:9;-1:-1:-1;;35676:16:8;35672:25;;35669:1;35605:9;35648:50;35727:4;35721:11;35751:16;-1:-1:-1;;;;;35857:2:8;35850:4;35842:6;35838:17;35835:25;35830:2;35822:6;35819:14;35816:45;35813:2;;;35864:5;;;;;35535:624;:::o;35813:2::-;35901:6;35895:4;35891:17;35880:28;;35937:3;35931:10;35964:2;35956:6;35953:14;35950:2;;;35970:5;;;;;;35535:624;:::o;35950:2::-;36054;36035:16;36029:4;36025:27;36021:36;36014:4;36005:6;36000:3;35996:16;35992:27;35989:69;35986:2;;;36061:5;;;;;;35535:624;:::o;35986:2::-;36077:57;36128:4;36119:6;36111;36107:19;36103:30;36097:4;36077:57;:::i;:::-;-1:-1:-1;36150:3:8;;35535:624;-1:-1:-1;;;;;35535:624:8:o;36164:131::-;-1:-1:-1;;;;;36239:31:8;;36229:42;;36219:2;;36285:1;36282;36275:12;36300:131;-1:-1:-1;;;;;;36374:32:8;;36364:43;;36354:2;;36421:1;36418;36411:12", - "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.4;\n\nimport \"./TokenTracker.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\ncontract ONEWallet is TokenTracker {\n event InsufficientFund(uint256 amount, uint256 balance, address dest);\n event ExceedDailyLimit(uint256 amount, uint256 limit, uint256 current, address dest);\n event UnknownTransferError(address dest);\n event LastResortAddressNotSet();\n event PaymentReceived(uint256 amount, address from);\n event PaymentSent(uint256 amount, address dest);\n event AutoRecoveryTriggered(address from);\n event RecoveryFailure();\n\n /// In future versions, it is planned that we may allow the user to extend the wallet's life through a function call. When that is implemented, the following variables may no longer be immutable, with the exception of root which shall serve as an identifier of the wallet\n bytes32 immutable root; // Note: @ivan brought up a good point in reducing this to 16-bytes so hash of two consecutive nodes can be done in a single word (to save gas and reduce blockchain clutter). Let's not worry about that for now and re-evalaute this later.\n uint8 immutable height; // including the root. e.g. for a tree with 4 leaves, the height is 3.\n uint8 immutable interval; // otp interval in seconds, default is 30\n uint32 immutable t0; // starting time block (effectiveTime (in ms) / interval)\n uint32 immutable lifespan; // in number of block (e.g. 1 block per [interval] seconds)\n uint8 immutable maxOperationsPerInterval; // number of transactions permitted per OTP interval. Each transaction shall have a unique nonce. The nonce is auto-incremented within each interval\n\n /// global mutable variables\n address payable lastResortAddress; // where money will be sent during a recovery process (or when the wallet is beyond its lifespan)\n uint256 dailyLimit; // uint128 is sufficient, but uint256 is more efficient since EVM works with 32-byte words.\n uint256 spentToday; // note: instead of tracking the money spent for the last 24h, we are simply tracking money spent per 24h block based on UTC time. It is good enough for now, but we may want to change this later.\n uint32 lastTransferDay;\n\n /// nonce tracking\n mapping(uint32 => uint8) nonces; // keys: otp index (=timestamp in seconds / interval - t0); values: the expected nonce for that otp interval. An reveal with a nonce less than the expected value will be rejected\n uint32[] nonceTracker; // list of nonces keys that have a non-zero value. keys cannot possibly result a successful reveal (indices beyond REVEAL_MAX_DELAY old) are auto-deleted during a clean up procedure that is called every time the nonces are incremented for some key. For each deleted key, the corresponding key in nonces will also be deleted. So the size of nonceTracker and nonces are both bounded.\n\n // constants\n uint32 constant REVEAL_MAX_DELAY = 60;\n uint32 constant SECONDS_PER_DAY = 86400;\n uint256 constant AUTO_RECOVERY_TRIGGER_AMOUNT = 1 ether;\n uint32 constant MAX_COMMIT_SIZE = 120;\n\n uint32 constant majorVersion = 0x7; // a change would require client to migrate\n uint32 constant minorVersion = 0x1; // a change would not require the client to migrate\n\n enum OperationType {\n TRACK, UNTRACK, TRANSFER_TOKEN, OVERRIDE_TRACK, TRANSFER, SET_RECOVERY_ADDRESS, RECOVER\n }\n /// commit management\n struct Commit {\n bytes32 hash;\n bytes32 paramsHash;\n bytes32 verificationHash;\n uint32 timestamp;\n bool completed;\n }\n\n bytes32[] commits; // self-clean on commit (auto delete commits that are beyond REVEAL_MAX_DELAY), so it's bounded by the number of commits an attacker can spam within REVEAL_MAX_DELAY time in the worst case, which is not too bad.\n mapping(bytes32 => Commit[]) commitLocker;\n\n\n constructor(bytes32 root_, uint8 height_, uint8 interval_, uint32 t0_, uint32 lifespan_, uint8 maxOperationsPerInterval_,\n address payable lastResortAddress_, uint256 dailyLimit_)\n {\n root = root_;\n height = height_;\n interval = interval_;\n t0 = t0_;\n lifespan = lifespan_;\n lastResortAddress = lastResortAddress_;\n dailyLimit = dailyLimit_;\n maxOperationsPerInterval = maxOperationsPerInterval_;\n }\n\n receive() external payable {\n emit PaymentReceived(msg.value, msg.sender);\n if (msg.value != AUTO_RECOVERY_TRIGGER_AMOUNT) {\n return;\n }\n if (msg.sender != lastResortAddress) {\n return;\n }\n if (lastResortAddress == address(0)) {\n return;\n }\n if (msg.sender == address(this)) {\n return;\n }\n emit AutoRecoveryTriggered(msg.sender);\n require(_drain());\n }\n\n\n function retire() external returns (bool)\n {\n require(uint32(block.timestamp / interval) - t0 > lifespan, \"Too early to retire\");\n require(lastResortAddress != address(0), \"Last resort address is not set\");\n require(_drain(), \"Recovery failed\");\n return true;\n }\n\n function getInfo() external view returns (bytes32, uint8, uint8, uint32, uint32, uint8, address, uint256)\n {\n return (root, height, interval, t0, lifespan, maxOperationsPerInterval, lastResortAddress, dailyLimit);\n }\n\n function getVersion() external pure returns (uint32, uint32)\n {\n return (majorVersion, minorVersion);\n }\n\n function getCurrentSpending() external view returns (uint256, uint256)\n {\n return (spentToday, lastTransferDay);\n }\n\n function getNonce() external view returns (uint8)\n {\n uint32 index = uint32(block.timestamp) / interval - t0;\n return nonces[index];\n }\n\n function getCommits() external pure returns (bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory){\n revert(\"Deprecated\");\n }\n\n function getAllCommits() external view returns (bytes32[] memory, bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory)\n {\n uint32 numCommits = 0;\n for (uint32 i = 0; i < commits.length; i++) {\n Commit[] storage cc = commitLocker[commits[i]];\n numCommits += uint32(cc.length);\n }\n bytes32[] memory hashes = new bytes32[](numCommits);\n bytes32[] memory paramHashes = new bytes32[](numCommits);\n bytes32[] memory verificationHashes = new bytes32[](numCommits);\n uint32[] memory timestamps = new uint32[](numCommits);\n bool[] memory completed = new bool[](numCommits);\n uint32 index = 0;\n for (uint32 i = 0; i < commits.length; i++) {\n Commit[] storage cc = commitLocker[commits[i]];\n for (uint32 j = 0; j < cc.length; j++) {\n Commit storage c = cc[j];\n hashes[index] = c.hash;\n paramHashes[index] = c.paramsHash;\n verificationHashes[index] = c.verificationHash;\n timestamps[index] = c.timestamp;\n completed[index] = c.completed;\n index++;\n }\n }\n return (hashes, paramHashes, verificationHashes, timestamps, completed);\n }\n\n function findCommit(bytes32 /*hash*/) external pure returns (bytes32, bytes32, uint32, bool){\n revert(\"Deprecated\");\n }\n\n function lookupCommit(bytes32 hash) external view returns (bytes32[] memory, bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory){\n Commit[] storage cc = commitLocker[hash];\n bytes32[] memory hashes = new bytes32[](cc.length);\n bytes32[] memory paramHashes = new bytes32[](cc.length);\n bytes32[] memory verificationHashes = new bytes32[](cc.length);\n uint32[] memory timestamps = new uint32[](cc.length);\n bool[] memory completed = new bool[](cc.length);\n for (uint32 i = 0; i < cc.length; i++) {\n Commit storage c = cc[i];\n hashes[i] = c.hash;\n paramHashes[i] = c.paramsHash;\n verificationHashes[i] = c.verificationHash;\n timestamps[i] = c.timestamp;\n completed[i] = c.completed;\n }\n return (hashes, paramHashes, verificationHashes, timestamps, completed);\n }\n\n function commit(bytes32 hash, bytes32 paramsHash, bytes32 verificationHash) external {\n _cleanupCommits();\n Commit memory nc = Commit(hash, paramsHash, verificationHash, uint32(block.timestamp), false);\n require(commits.length < MAX_COMMIT_SIZE, \"Too many commits\");\n commits.push(hash);\n commitLocker[hash].push(nc);\n }\n\n /// This function sends all remaining funds of the wallet to `lastResortAddress`. The caller should verify that `lastResortAddress` is not null.\n /// TODO: also transfer all tracked ERC20, 721, 1155 tokens to `lastResortAddress`\n function _drain() internal returns (bool) {\n // this may be triggered after revealing the proof, and we must prevent revert in all cases\n (bool success,) = lastResortAddress.call{value : address(this).balance}(\"\");\n return success;\n }\n\n function _transfer(address payable dest, uint256 amount) internal returns (bool) {\n uint32 day = uint32(block.timestamp / SECONDS_PER_DAY);\n if (day > lastTransferDay) {\n spentToday = 0;\n lastTransferDay = day;\n }\n if (spentToday + amount > dailyLimit) {\n emit ExceedDailyLimit(amount, dailyLimit, spentToday, dest);\n return false;\n }\n if (address(this).balance < amount) {\n emit InsufficientFund(amount, address(this).balance, dest);\n return false;\n }\n (bool success,) = dest.call{value : amount}(\"\");\n // we do not want to revert the whole transaction if this operation fails, since EOTP is already revealed\n if (!success) {\n emit UnknownTransferError(dest);\n return false;\n }\n spentToday += amount;\n emit PaymentSent(amount, dest);\n return true;\n }\n\n function _recover() internal returns (bool){\n if (lastResortAddress == address(0)) {\n emit LastResortAddressNotSet();\n return false;\n }\n if (!_drain()) {\n emit RecoveryFailure();\n return false;\n }\n return true;\n }\n\n function _setRecoveryAddress(address payable lastResortAddress_) internal {\n require(lastResortAddress == address(0), \"Last resort address is already set\");\n lastResortAddress = lastResortAddress_;\n }\n\n function _transferToken(TokenType tokenType, address contractAddress, uint256 tokenId, address dest, uint256 amount, bytes memory data) internal {\n if (tokenType == TokenType.ERC20) {\n try IERC20(contractAddress).transfer(dest, amount) returns (bool success){\n if (success) {\n _trackToken(tokenType, contractAddress, tokenId);\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n return;\n }\n emit TokenTransferFailed(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n } else if (tokenType == TokenType.ERC721) {\n try IERC721(contractAddress).safeTransferFrom(address(this), dest, tokenId, data){\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n } else if (tokenType == TokenType.ERC1155) {\n try IERC1155(contractAddress).safeTransferFrom(address(this), dest, tokenId, amount, data) {\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n }\n }\n\n /// Provides commitHash, paramsHash, and verificationHash given the parameters\n function _getRevealHash(bytes32 neighbor, uint32 indexWithNonce, bytes32 eotp,\n OperationType operationType, TokenType tokenType, address contractAddress, uint256 tokenId, address dest, uint256 amount, bytes calldata data) pure internal returns (bytes32, bytes32) {\n bytes32 hash = keccak256(bytes.concat(neighbor, bytes32(bytes4(indexWithNonce)), eotp));\n bytes32 paramsHash = bytes32(0);\n if (operationType == OperationType.TRANSFER) {\n paramsHash = keccak256(bytes.concat(bytes32(bytes20(address(dest))), bytes32(amount)));\n } else if (operationType == OperationType.RECOVER) {\n paramsHash = bytes32(0);\n } else if (operationType == OperationType.SET_RECOVERY_ADDRESS) {\n paramsHash = keccak256(bytes.concat(bytes32(bytes20(address(dest)))));\n } else {\n bytes memory packed = bytes.concat(\n bytes32(uint256(operationType)),\n bytes32(uint256(tokenType)),\n bytes32(bytes20(contractAddress)),\n bytes32(tokenId),\n bytes32(bytes20(dest)),\n bytes32(amount),\n data\n );\n paramsHash = keccak256(bytes.concat(packed));\n }\n return (hash, paramsHash);\n }\n\n\n function reveal(bytes32[] calldata neighbors, uint32 indexWithNonce, bytes32 eotp,\n OperationType operationType, TokenType tokenType, address contractAddress, uint256 tokenId, address payable dest, uint256 amount, bytes calldata data)\n external {\n _isCorrectProof(neighbors, indexWithNonce, eotp);\n (bytes32 commitHash, bytes32 paramsHash) = _getRevealHash(neighbors[0], indexWithNonce, eotp,\n operationType, tokenType, contractAddress, tokenId, dest, amount, data);\n uint32 commitIndex = _verifyReveal(commitHash, indexWithNonce, paramsHash, eotp);\n _completeReveal(commitHash, commitIndex);\n // No revert should occur below this point\n if (operationType == OperationType.TRACK) {\n if (data.length > 0) {\n _multiTrack(data);\n } else {\n _trackToken(tokenType, contractAddress, tokenId);\n }\n } else if (operationType == OperationType.UNTRACK) {\n if (data.length > 0) {\n _untrackToken(tokenType, contractAddress, tokenId);\n } else {\n _multiUntrack(data);\n }\n } else if (operationType == OperationType.TRANSFER_TOKEN) {\n _transferToken(tokenType, contractAddress, tokenId, dest, amount, data);\n } else if (operationType == OperationType.OVERRIDE_TRACK) {\n _overrideTrackWithBytes(data);\n } else if (operationType == OperationType.TRANSFER) {\n _transfer(dest, amount);\n } else if (operationType == OperationType.RECOVER) {\n _recover();\n } else if (operationType == OperationType.SET_RECOVERY_ADDRESS) {\n _setRecoveryAddress(dest);\n }\n }\n\n /// This is just a wrapper around a modifier previously called `isCorrectProof`, to avoid \"Stack too deep\" error. Duh.\n function _isCorrectProof(bytes32[] calldata neighbors, uint32 position, bytes32 eotp) view internal {\n require(neighbors.length == height - 1, \"Not enough neighbors provided\");\n bytes32 h = sha256(bytes.concat(eotp));\n for (uint8 i = 0; i < height - 1; i++) {\n if ((position & 0x01) == 0x01) {\n h = sha256(bytes.concat(neighbors[i], h));\n } else {\n h = sha256(bytes.concat(h, neighbors[i]));\n }\n position >>= 1;\n }\n require(root == h, \"Proof is incorrect\");\n return;\n }\n\n /// Remove old commits from storage, where the commit's timestamp is older than block.timestamp - REVEAL_MAX_DELAY. The purpose is to remove dangling data from blockchain, and prevent commits grow unbounded. This is executed at commit time. The committer pays for the gas of this cleanup. Therefore, any attacker who intend to spam commits would be disincentivized. The attacker would not succeed in preventing any normal operation by the user.\n function _cleanupCommits() internal {\n uint32 timelyIndex = 0;\n uint32 bt = uint32(block.timestamp);\n // go through past commits chronologically, starting from the oldest, and find the first commit that is not older than block.timestamp - REVEAL_MAX_DELAY.\n for (; timelyIndex < commits.length; timelyIndex++) {\n bytes32 hash = commits[timelyIndex];\n Commit[] storage cc = commitLocker[hash];\n // We may skip because the commit is already cleaned up and is considered \"untimely\".\n if (cc.length == 0) {\n continue;\n }\n // We take the first entry in `cc` as the timestamp for all commits under commit hash `hash`, because the first entry represents the oldest commit and only commit if an attacker is not attacking this wallet. If an attacker is front-running commits, the first entry may be from the attacker, but its timestamp should be identical to the user's commit (or close enough to the user's commit, if network is a bit congested)\n Commit storage c = cc[0];\n unchecked {\n if (c.timestamp >= bt - REVEAL_MAX_DELAY) {\n break;\n }\n }\n }\n // Now `timelyIndex` holds the index of the first commit that is timely. All commits at an index less than `timelyIndex` must be deleted;\n if (timelyIndex == 0) {\n // no commit is older than block.timestamp - REVEAL_MAX_DELAY. Nothing needs to be cleaned up\n return;\n }\n // Delete Commit instances for commits that are are older than block.timestamp - REVEAL_MAX_DELAY\n for (uint32 i = 0; i < timelyIndex; i++) {\n bytes32 hash = commits[i];\n Commit[] storage cc = commitLocker[hash];\n for (uint32 j = 0; j < cc.length; j++) {\n delete cc[j];\n }\n delete commitLocker[hash];\n }\n // Shift all commit hashes up by `timelyIndex` positions, and discard `commitIndex` number of hashes at the end of the array\n // This process erases old commits\n uint32 len = uint32(commits.length);\n for (uint32 i = timelyIndex; i < len; i++) {\n unchecked{\n commits[i - timelyIndex] = commits[i];\n }\n }\n for (uint32 i = 0; i < timelyIndex; i++) {\n commits.pop();\n }\n // TODO (@polymorpher): upgrade the above code after solidity implements proper support for struct-array memory-storage copy operation.\n }\n\n function _isRevealTimely(uint32 commitTime) view internal returns (bool)\n {\n return uint32(block.timestamp) - commitTime < REVEAL_MAX_DELAY;\n }\n\n /// This function verifies that the first valid entry with respect to the given `eotp` in `commitLocker[hash]` matches the provided `paramsHash` and `verificationHash`. An entry is valid with respect to `eotp` iff `h3(entry.paramsHash . eotp)` equals `entry.verificationHash`\n function _verifyReveal(bytes32 hash, uint32 indexWithNonce, bytes32 paramsHash, bytes32 eotp) view internal returns (uint32)\n {\n uint32 index = indexWithNonce / maxOperationsPerInterval;\n uint8 nonce = uint8(indexWithNonce % maxOperationsPerInterval);\n Commit[] storage cc = commitLocker[hash];\n require(cc.length > 0, \"No commit found\");\n for (uint32 i = 0; i < cc.length; i++) {\n Commit storage c = cc[i];\n bytes32 expectedVerificationHash = keccak256(bytes.concat(c.paramsHash, eotp));\n if (c.verificationHash != expectedVerificationHash) {\n // Invalid entry. Ignore\n continue;\n }\n require(c.paramsHash == paramsHash, \"Parameter hash mismatch\");\n uint32 counter = c.timestamp / interval - t0;\n require(counter == index, \"Index - timestamp mismatch\");\n uint8 expectedNonce = nonces[counter];\n require(nonce >= expectedNonce, \"Nonce too low\");\n require(!c.completed, \"Commit already completed\");\n // This normally should not happen, but when the network is congested (regardless of whether due to an attacker's malicious acts or not), the legitimate reveal may become untimely. This may happen before the old commit is cleaned up by another fresh commit. We enforce this restriction so that the attacker would not have a lot of time to reverse-engineer a single EOTP or leaf using an old commit.\n require(_isRevealTimely(c.timestamp), \"Reveal too late\");\n return i;\n }\n revert(\"No valid commit\");\n }\n\n function _completeReveal(bytes32 commitHash, uint32 commitIndex) internal {\n Commit[] storage cc = commitLocker[commitHash];\n require(cc.length > 0, \"Invalid commit hash\");\n require(cc.length > commitIndex, \"Invalid commitIndex\");\n Commit storage c = cc[commitIndex];\n require(c.timestamp > 0, \"Invalid commit timestamp\");\n // should not happen\n uint32 index = uint32(c.timestamp) / interval - t0;\n _incrementNonce(index);\n _cleanupNonces();\n c.completed = true;\n }\n\n /// This function removes all tracked nonce values correspond to interval blocks that are older than block.timestamp - REVEAL_MAX_DELAY. In doing so, extraneous data in the blockchain is removed, and both nonces and nonceTracker are bounded in size.\n function _cleanupNonces() internal {\n uint32 tMin = uint32(block.timestamp) - REVEAL_MAX_DELAY;\n uint32 indexMinUnadjusted = tMin / interval;\n uint32 indexMin = 0;\n if (indexMinUnadjusted > t0) {\n indexMin = indexMinUnadjusted - t0;\n }\n uint32[] memory nonZeroNonces = new uint32[](nonceTracker.length);\n uint32 numValidIndices = 0;\n for (uint8 i = 0; i < nonceTracker.length; i++) {\n uint32 index = nonceTracker[i];\n if (index < indexMin) {\n delete nonces[index];\n } else {\n nonZeroNonces[numValidIndices] = index;\n unchecked {\n numValidIndices++;\n }\n }\n }\n // TODO (@polymorpher): This can be later made more efficient by inline assembly. https://ethereum.stackexchange.com/questions/51891/how-to-pop-from-decrease-the-length-of-a-memory-array-in-solidity\n uint32[] memory reducedArray = new uint32[](numValidIndices);\n for (uint8 i = 0; i < numValidIndices; i++) {\n reducedArray[i] = nonZeroNonces[i];\n }\n nonceTracker = reducedArray;\n }\n\n function _incrementNonce(uint32 index) internal {\n uint8 v = nonces[index];\n if (v == 0) {\n nonceTracker.push(index);\n }\n unchecked{\n nonces[index] = v + 1;\n }\n }\n}\n", + "sourceMap": "151:24059:6:-:0;;;4057:517;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4258:12;;;;4280:16;;;;;;;;;4306:20;;;;;;;-1:-1:-1;;;;;;4336:8:6;;;;;;;;4354:20;;;;;;4384:17;:38;;-1:-1:-1;;;;;4384:38:6;;-1:-1:-1;;;;;;4384:38:6;;;;;;4432:10;:24;;;4466:52;;;;;;4554:11;4384:38;4289:7;4554:11;:::i;:::-;4548:18;;:1;:18;:::i;:::-;4528:39;;-1:-1:-1;;;;;;4528:39:6;;;-1:-1:-1;151:24059:6;;-1:-1:-1;;;;;;;151:24059:6;14:167:8;92:13;;145:10;134:22;;124:33;;114:2;;171:1;168;161:12;114:2;73:108;;;:::o;186:160::-;263:13;;316:4;305:16;;295:27;;285:2;;336:1;333;326:12;351:854;484:6;492;500;508;516;524;532;540;593:3;581:9;572:7;568:23;564:33;561:2;;;615:6;607;600:22;561:2;649:9;643:16;633:26;;678:47;721:2;710:9;706:18;678:47;:::i;:::-;668:57;;744:47;787:2;776:9;772:18;744:47;:::i;:::-;734:57;;810:48;854:2;843:9;839:18;810:48;:::i;:::-;800:58;;877:49;921:3;910:9;906:19;877:49;:::i;:::-;867:59;;945:48;988:3;977:9;973:19;945:48;:::i;:::-;1036:3;1021:19;;1015:26;935:58;;-1:-1:-1;;;;;;1070:31:8;;1060:42;;1050:2;;1121:6;1113;1106:22;1050:2;1149:5;1139:15;;;1194:3;1183:9;1179:19;1173:26;1163:36;;551:654;;;;;;;;;;;:::o;1210:422::-;1299:1;1342:5;1299:1;1356:270;1377:7;1367:8;1364:21;1356:270;;;1436:4;1432:1;1428:6;1424:17;1418:4;1415:27;1412:2;;;1445:18;;:::i;:::-;1495:7;1485:8;1481:22;1478:2;;;1515:16;;;;1478:2;1594:22;;;;1554:15;;;;1356:270;;;1360:3;1274:358;;;;;:::o;1637:140::-;1695:5;1724:47;1765:4;1755:8;1751:19;1745:4;1724:47;:::i;:::-;1715:56;1705:72;-1:-1:-1;;;1705:72:8:o;1782:806::-;1831:5;1861:8;1851:2;;-1:-1:-1;1902:1:8;1916:5;;1851:2;1950:4;1940:2;;-1:-1:-1;1987:1:8;2001:5;;1940:2;2032:4;2050:1;2045:59;;;;2118:1;2113:130;;;;2025:218;;2045:59;2075:1;2066:10;;2089:5;;;2113:130;2150:3;2140:8;2137:17;2134:2;;;2157:18;;:::i;:::-;-1:-1:-1;;2213:1:8;2199:16;;2228:5;;2025:218;;2327:2;2317:8;2314:16;2308:3;2302:4;2299:13;2295:36;2289:2;2279:8;2276:16;2271:2;2265:4;2262:12;2258:35;2255:77;2252:2;;;-1:-1:-1;2364:19:8;;;2396:5;;2252:2;2443:34;2468:8;2462:4;2443:34;:::i;:::-;2513:6;2509:1;2505:6;2501:19;2492:7;2489:32;2486:2;;;2524:18;;:::i;:::-;2562:20;;-1:-1:-1;1841:747:8;;;;;:::o;2593:195::-;2631:4;2668;2665:1;2661:12;2700:4;2697:1;2693:12;2725:3;2720;2717:12;2714:2;;;2732:18;;:::i;:::-;2769:13;;;2640:148;-1:-1:-1;;;2640:148:8:o;2793:127::-;2854:10;2849:3;2845:20;2842:1;2835:31;2885:4;2882:1;2875:15;2909:4;2906:1;2899:15;2825:95;151:24059:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "151:24059:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4622:38;;;4638:9;30559:25:8;;4649:10:6;30615:2:8;30600:18;;30593:60;4622:38:6;;30532:18:8;4622:38:6;;;;;;;3102:7;4674:9;:41;4670:78;;151:24059;4670:78;4775:17;;-1:-1:-1;;;;;4775:17:6;4761:10;:31;4757:68;;151:24059;4757:68;4838:17;;-1:-1:-1;;;;;4838:17:6;4834:68;;151:24059;4834:68;4915:10;4937:4;4915:27;4911:64;;;151:24059;4911:64;4989:33;;5011:10;11859:51:8;;4989:33:6;;11847:2:8;11832:18;4989:33:6;;;;;;;5040:8;:6;:8::i;:::-;5032:17;;;;;;151:24059;;;;;3101:270:7;;;;;;;;;;-1:-1:-1;3101:270:7;;;;;:::i;:::-;;:::i;:::-;;;17567:14:8;;17560:22;17542:41;;17530:2;17515:18;3101:270:7;;;;;;;;5600:117:6;;;;;;;;;;-1:-1:-1;5600:117:6;;;3190:3;32191:34:8;;3274:3:6;32256:2:8;32241:18;;32234:43;32135:18;5600:117:6;32117:166:8;3460:374:7;;;;;;;;;;-1:-1:-1;3460:374:7;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;18951:33:8;;;18933:52;;18921:2;18906:18;3460:374:7;18888:103:8;7462:129:6;;;;;;;;;;-1:-1:-1;7462:129:6;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;17817:25:8;;;17873:2;17858:18;;17851:34;;;;17933:10;17921:23;17916:2;17901:18;;17894:51;17988:14;17981:22;17976:2;17961:18;;17954:50;17804:3;17789:19;;17771:239;5723:128:6;;;;;;;;;;-1:-1:-1;5816:10:6;;5828:15;;5723:128;;;31125:25:8;;;5828:15:6;;;;31181:2:8;31166:18;;31159:34;31098:18;5723:128:6;31080:119:8;6018:149:6;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;5365:229::-;;;;;;;;;;;;5557:17;;5576:10;;5493:4;;5499:6;;5507:8;;5517:2;;5521:8;;5531:24;;-1:-1:-1;;;;;5557:17:6;;;;5365:229;;;;;18342:25:8;;;18415:4;18403:17;;;18398:2;18383:18;;18376:45;18457:17;;;18437:18;;;18430:45;;;;18494:10;18540:15;;;18535:2;18520:18;;18513:43;18593:15;;;;18587:3;18572:19;;18565:44;18646:17;;18640:3;18625:19;;18618:46;-1:-1:-1;;;;;18701:32:8;;;18695:3;18680:19;;18673:61;18765:3;18750:19;;18743:35;18329:3;18314:19;5365:229:6;18296:488:8;3840:652:7;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;6173:1283:6:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;5063:296::-;;;;;;;;;;;;;:::i;2728:367:7:-;;;;;;;;;;-1:-1:-1;2728:367:7;;;;;:::i;:::-;;:::i;14235:1886:6:-;;;;;;;;;;-1:-1:-1;14235:1886:6;;;;;:::i;:::-;;:::i;5857:155::-;;;;;;;;;;;;;:::i;:::-;;;32460:4:8;32448:17;;;32430:36;;32418:2;32403:18;5857:155:6;32385:87:8;7597:907:6;;;;;;;;;;-1:-1:-1;7597:907:6;;;;;:::i;:::-;;:::i;8510:358::-;;;;;;;;;;-1:-1:-1;8510:358:6;;;;;:::i;:::-;;:::i;2332:390:7:-;;;;;;;;;;-1:-1:-1;2332:390:7;;;;;:::i;:::-;;:::i;9110:258:6:-;9280:17;;:57;;9146:4;;;;-1:-1:-1;;;;;9280:17:6;;;;9311:21;;9146:4;9280:57;9146:4;9280:57;9311:21;9280:17;:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9262:75:6;;9110:258;-1:-1:-1;;;9110:258:6:o;3101:270:7:-;3180:4;-1:-1:-1;;;;;;3203:46:7;;-1:-1:-1;;;3203:46:7;;:104;;-1:-1:-1;;;;;;;3261:46:7;;-1:-1:-1;;;3261:46:7;3203:104;:161;;;-1:-1:-1;;;;;;;3319:45:7;;-1:-1:-1;;;3319:45:7;3203:161;3196:168;3101:270;-1:-1:-1;;3101:270:7:o;3460:374::-;3621:6;3643:77;3657:16;3675:1;3678:4;3684:10;3696:8;3706:7;3715:4;;3643:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;3730:50;3742:16;3760:10;3772:7;3730:11;:50::i;:::-;-1:-1:-1;;;;3460:374:7;;;;;;;:::o;7462:129:6:-;7523:7;7532;7541:6;7549:4;7564:20;;-1:-1:-1;;;7564:20:6;;;;;;28749:2:8;28731:21;;;28788:2;28768:18;;;28761:30;-1:-1:-1;;;28822:2:8;28807:18;;28800:40;28872:2;28857:18;;28721:160;7564:20:6;;;;;;;;6018:149;6063:16;6081;6099:15;6116:13;6140:20;;-1:-1:-1;;;6140:20:6;;;;;;28749:2:8;28731:21;;;28788:2;28768:18;;;28761:30;-1:-1:-1;;;28822:2:8;28807:18;;28800:40;28872:2;28857:18;;28721:160;3840:652:7;3891:18;3911:16;3929;3956:29;4004:13;:20;;;;-1:-1:-1;;;;;3988:37:7;;;;;-1:-1:-1;;;3988:37:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3988:37:7;-1:-1:-1;4086:13:7;:20;3956:69;;-1:-1:-1;4035:34:7;;-1:-1:-1;;;;;4072:35:7;;;;;-1:-1:-1;;;4072:35:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4072:35:7;-1:-1:-1;4159:13:7;:20;4035:72;;-1:-1:-1;4117:25:7;;-1:-1:-1;;;;;4145:35:7;;;;;-1:-1:-1;;;4145:35:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4145:35:7;;4117:63;;4195:8;4190:238;4213:13;:20;4209:24;;;;4190:238;;;4270:13;4284:1;4270:16;;;;;;;;-1:-1:-1;;;4270:16:7;;;;;;;;;;;;;;;;;;;;;;:26;4254:13;;4270:26;;;;;4254:10;;:13;;;;;;;;-1:-1:-1;;;4254:13:7;;;;;;;;;;;;;;:42;;;;;;;-1:-1:-1;;;4254:42:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;4254:42:7;;;;;;;;;;;;;4333:13;4347:1;4333:16;;;;;;;;-1:-1:-1;;;4333:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;4333:32:7;4310:17;4328:1;4310:20;;;;;;;;-1:-1:-1;;;4310:20:7;;;;;;;;;;;;;;:55;-1:-1:-1;;;;;4310:55:7;;;-1:-1:-1;;;;;4310:55:7;;;;;4393:13;4407:1;4393:16;;;;;;;;-1:-1:-1;;;4393:16:7;;;;;;;;;;;;;;;;;;;:24;;;4379:8;4388:1;4379:11;;;;;;;;-1:-1:-1;;;4379:11:7;;;;;;;;;;;;;;;;;;:38;4235:3;;;;:::i;:::-;;;;4190:238;;;-1:-1:-1;4445:10:7;;4457:17;;-1:-1:-1;4476:8:7;;-1:-1:-1;3840:652:7;-1:-1:-1;3840:652:7:o;6173:1283:6:-;6221:16;6239;6257;6275:15;6292:13;6321:17;6357:8;6352:160;6375:7;:14;6371:18;;;;6352:160;;;6410:19;6432:12;:24;6445:7;6453:1;6445:10;;;;;;;;-1:-1:-1;;;6445:10:6;;;;;;;;;;;;;;;;;6432:24;;;;;;;;;;;6410:46;;6491:2;:9;;;;6470:31;;;;;:::i;:::-;;;6352:160;6391:3;;;;;:::i;:::-;;;;6352:160;;;;6521:23;6561:10;6547:25;;-1:-1:-1;;;;;6547:25:6;;;;;-1:-1:-1;;;6547:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6547:25:6;;6521:51;;6582:28;6627:10;6613:25;;-1:-1:-1;;;;;6613:25:6;;;;;-1:-1:-1;;;6613:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6613:25:6;;6582:56;;6648:35;6700:10;6686:25;;-1:-1:-1;;;;;6686:25:6;;;;;-1:-1:-1;;;6686:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6686:25:6;;6648:63;;6721:26;6763:10;6750:24;;-1:-1:-1;;;;;6750:24:6;;;;;-1:-1:-1;;;6750:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6750:24:6;;6721:53;;6784:23;6821:10;6810:22;;-1:-1:-1;;;;;6810:22:6;;;;;-1:-1:-1;;;6810:22:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6810:22:6;;6784:48;;6842:12;6873:8;6868:501;6891:7;:14;6887:18;;;;6868:501;;;6926:19;6948:12;:24;6961:7;6969:1;6961:10;;;;;;;;-1:-1:-1;;;6961:10:6;;;;;;;;;;;;;;;;;6948:24;;;;;;;;;;;6926:46;;6991:8;6986:373;7009:9;;7005:13;;;;6986:373;;;7043:16;7062:2;7065:1;7062:5;;;;;;;;-1:-1:-1;;;7062:5:6;;;;;;;;;;;;;;;;;;;7043:24;;7101:1;:6;;;7085;7092:5;7085:13;;;;;;;;-1:-1:-1;;;7085:13:6;;;;;;;;;;;;;;:22;;;;;7146:1;:12;;;7125:11;7137:5;7125:18;;;;;;;;-1:-1:-1;;;7125:18:6;;;;;;;;;;;;;;:33;;;;;7204:1;:18;;;7176;7195:5;7176:25;;;;;;;;-1:-1:-1;;;7176:25:6;;;;;;;;;;;;;;;;;;:46;7260:11;;;;7240:17;;7260:11;;;;;7240:10;;:17;;;;;;;;-1:-1:-1;;;7240:17:6;;;;;;;;;;;;;;:31;;;;;;;;;;;7308:1;:11;;;;;;;;;;;;7289:9;7299:5;7289:16;;;;;;;;-1:-1:-1;;;7289:16:6;;;;;;;;;:30;;;:16;;;;;;;;;;;:30;7337:7;;;;:::i;:::-;;;;6986:373;7020:3;;;;;:::i;:::-;;;;6986:373;;;;6868:501;6907:3;;;;;:::i;:::-;;;;6868:501;;;-1:-1:-1;7386:6:6;;7394:11;;-1:-1:-1;7407:18:6;;-1:-1:-1;7407:18:6;-1:-1:-1;7394:11:6;-1:-1:-1;6173:1283:6;-1:-1:-1;;;6173:1283:6:o;5063:296::-;5099:4;5127:50;5169:8;5127:50;5164:2;5134:26;;5152:8;5134:26;:15;:26;:::i;:::-;5127:39;;;;:::i;:::-;:50;;;5119:82;;;;-1:-1:-1;;;5119:82:6;;25891:2:8;5119:82:6;;;25873:21:8;25930:2;25910:18;;;25903:30;-1:-1:-1;;;25949:18:8;;;25942:49;26008:18;;5119:82:6;25863:169:8;5119:82:6;5219:17;;-1:-1:-1;;;;;5219:17:6;5211:74;;;;-1:-1:-1;;;5211:74:6;;23790:2:8;5211:74:6;;;23772:21:8;23829:2;23809:18;;;23802:30;23868:32;23848:18;;;23841:60;23918:18;;5211:74:6;23762:180:8;5211:74:6;5303:8;:6;:8::i;:::-;5295:36;;;;-1:-1:-1;;;5295:36:6;;28057:2:8;5295:36:6;;;28039:21:8;28096:2;28076:18;;;28069:30;-1:-1:-1;;;28115:18:8;;;28108:45;28170:18;;5295:36:6;28029:165:8;5295:36:6;-1:-1:-1;5348:4:6;;5063:296::o;2728:367:7:-;2891:6;;2908:128;2927:14;;;;-1:-1:-1;2908:128:7;;;2962:4;:22;2985:8;2995:4;3001:3;;:6;;;;;;;;-1:-1:-1;;;3001:6:7;;;;;;;;;;;;;;;3009;;3016:1;3009:9;;;;;;;-1:-1:-1;;;3009:9:7;;;;;;;;;;;;;;;3020:4;;2962:63;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2943:3:7;;;;:::i;:::-;;;;2908:128;;;-1:-1:-1;;;;3052:36:7;2728:367;-1:-1:-1;;;;;;;;;2728:367:7:o;14235:1886:6:-;14500:48;14516:9;;14527:14;14543:4;14500:15;:48::i;:::-;14580:14;14593:1;14580:10;:14;:::i;:::-;14562:32;;:14;:32;;;14558:149;;;14635:21;14618:13;:38;;;;;;-1:-1:-1;;;14618:38:6;;;;;;;;;;14610:86;;;;-1:-1:-1;;;14610:86:6;;30183:2:8;14610:86:6;;;30165:21:8;30222:2;30202:18;;;30195:30;30261:34;30241:18;;;30234:62;-1:-1:-1;;;30312:18:8;;;30305:33;30355:19;;14610:86:6;30155:225:8;14610:86:6;14717:18;14737;14759:134;14774:9;;14784:1;14774:12;;;;;-1:-1:-1;;;14774:12:6;;;;;;;;;;;;;;;14788:14;14804:4;14822:13;14837:9;14848:15;14865:7;14874:4;14880:6;14888:4;;14759:14;:134::i;:::-;14716:177;;;;14903:18;14924:59;14938:10;14950:14;14966:10;14978:4;14924:13;:59::i;:::-;14903:80;;14993:40;15009:10;15021:11;14993:15;:40::i;:::-;15115:19;15098:13;:36;;;;;;-1:-1:-1;;;15098:36:6;;;;;;;;;;15094:1021;;;15154:15;;15150:158;;15189:17;15201:4;;15189:11;:17::i;:::-;15094:1021;;15150:158;15245:48;15257:9;15268:15;15285:7;15245:11;:48::i;15094:1021::-;15345:21;15328:13;:38;;;;;;-1:-1:-1;;;15328:38:6;;;;;;;;;;15324:791;;;15386:15;;15382:162;;15421:50;15435:9;15446:15;15463:7;15421:13;:50::i;15382:162::-;15510:19;15524:4;;15510:13;:19::i;15324:791::-;15581:28;15564:13;:45;;;;;;-1:-1:-1;;;15564:45:6;;;;;;;;;;15560:555;;;15625:71;15640:9;15651:15;15668:7;15677:4;15683:6;15691:4;;15625:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15625:14:6;;-1:-1:-1;;;15625:71:6:i;15560:555::-;15734:28;15717:13;:45;;;;;;-1:-1:-1;;;15717:45:6;;;;;;;;;;15713:402;;;15778:29;15802:4;;15778:23;:29::i;15713:402::-;15845:22;15828:13;:39;;;;;;-1:-1:-1;;;15828:39:6;;;;;;;;;;15824:291;;;15883:23;15893:4;15899:6;15883:9;:23::i;:::-;;15824:291;;;15944:21;15927:13;:38;;;;;;-1:-1:-1;;;15927:38:6;;;;;;;;;;15923:192;;;15981:10;:8;:10::i;15923:192::-;16029:34;16012:13;:51;;;;;;-1:-1:-1;;;16012:51:6;;;;;;;;;;16008:107;;;16079:25;16099:4;16079:19;:25::i;:::-;14235:1886;;;;;;;;;;;;;;;:::o;5857:155::-;5900:5;;5973:2;5936:34;;5962:8;5936:34;5943:15;5936:34;:::i;:::-;:39;;;;:::i;:::-;5992:13;;;;;;:6;:13;;;;;;;;;5857:155;-1:-1:-1;;5857:155:6:o;7597:907::-;7751:19;7773:18;;;:12;:18;;;;;7841:9;;7656:16;;;;;;;;;;7773:18;-1:-1:-1;;;;;7827:24:6;;;;;-1:-1:-1;;;7827:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7827:24:6;-1:-1:-1;7906:9:6;;7801:50;;-1:-1:-1;7861:28:6;;-1:-1:-1;;;;;7892:24:6;;;;;-1:-1:-1;;;7892:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7892:24:6;-1:-1:-1;7978:9:6;;7861:55;;-1:-1:-1;7926:35:6;;-1:-1:-1;;;;;7964:24:6;;;;;-1:-1:-1;;;7964:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7964:24:6;-1:-1:-1;8040:9:6;;7926:62;;-1:-1:-1;7998:26:6;;-1:-1:-1;;;;;8027:23:6;;;;;-1:-1:-1;;;8027:23:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8027:23:6;-1:-1:-1;8097:9:6;;7998:52;;-1:-1:-1;8060:23:6;;-1:-1:-1;;;;;8086:21:6;;;;;-1:-1:-1;;;8086:21:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8086:21:6;;8060:47;;8122:8;8117:300;8140:9;;8136:13;;;;8117:300;;;8170:16;8189:2;8192:1;8189:5;;;;;;;;-1:-1:-1;;;8189:5:6;;;;;;;;;;;;;;;;;;;8170:24;;8220:1;:6;;;8208;8215:1;8208:9;;;;;;;;-1:-1:-1;;;8208:9:6;;;;;;;;;;;;;;:18;;;;;8257:1;:12;;;8240:11;8252:1;8240:14;;;;;;;;-1:-1:-1;;;8240:14:6;;;;;;;;;;;;;;:29;;;;;8307:1;:18;;;8283;8302:1;8283:21;;;;;;;;-1:-1:-1;;;8283:21:6;;;;;;;;;;;;;;;;;;:42;8355:11;;;;8339:13;;8355:11;;;;;8339:10;;:13;;;;;;;;-1:-1:-1;;;8339:13:6;;;;;;;;;;;;;;:27;;;;;;;;;;;8395:1;:11;;;;;;;;;;;;8380:9;8390:1;8380:12;;;;;;;;-1:-1:-1;;;8380:12:6;;;;;;;;;:26;;;:12;;;;;;;;;;;:26;-1:-1:-1;8151:3:6;;;;:::i;:::-;;;;8117:300;;;-1:-1:-1;8434:6:6;;8442:11;;-1:-1:-1;8455:18:6;;-1:-1:-1;8442:11:6;-1:-1:-1;8434:6:6;;-1:-1:-1;7597:907:6;-1:-1:-1;;;7597:907:6:o;8510:358::-;8605:17;:15;:17::i;:::-;8651:74;;;;;;;;;;;;;;;;;;;;;;;;8701:15;8651:74;;;;;8632:16;8651:74;;;;8743:7;:14;3149:3;-1:-1:-1;8735:61:6;;;;-1:-1:-1;;;8735:61:6;;23103:2:8;8735:61:6;;;23085:21:8;23142:2;23122:18;;;23115:30;-1:-1:-1;;;23161:18:8;;;23154:46;23217:18;;8735:61:6;23075:166:8;8735:61:6;8806:7;:18;;;;;;;;;;;;;;-1:-1:-1;8834:18:6;;;:12;8806:18;8834;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8834:27:6;;;;;;;;;;;;;;;-1:-1:-1;;8510:358:6:o;2332:390:7:-;2512:6;2534:77;2548:17;2567:5;2574:4;2580:10;2592:8;2602:2;2606:4;;2534:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;2621:46;2633:17;2652:10;2664:2;2621:11;:46::i;:::-;-1:-1:-1;;;;2332:390:7;;;;;;;;:::o;4500:1030::-;4603:11;4656:9;4648:18;;;;;;-1:-1:-1;;;4648:18:7;;;;;;;;;4627:94;;;;;;10133:19:8;;;;4677:24:7;;;;-1:-1:-1;;;;;;4669:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;4627:94:7;;;-1:-1:-1;;4627:94:7;;;;;;;;;4617:105;;4627:94;4617:105;;;;4772:1;4736:26;;;;;;;;;:33;4617:105;;-1:-1:-1;4736:37:7;4732:549;;4794:8;4789:482;4812:21;:26;;;;;;;;;;:33;4808:37;;;;4789:482;;;4870:9;4882:26;;;;;;;;;;:29;;;;;;;;;;-1:-1:-1;;;4882:29:7;;;;;;;;;;;;;;;;;4870:41;;4963:9;4933:39;;;;;;-1:-1:-1;;;4933:39:7;;;;;;;;;:13;4947:1;4933:16;;;;;;-1:-1:-1;;;4933:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;:39;;;;;;-1:-1:-1;;;4933:39:7;;;;;;;;;;4929:53;;4974:8;;;4929:53;5032:7;5004:13;5018:1;5004:16;;;;;;-1:-1:-1;;;5004:16:7;;;;;;;;;;;;;;;;;;;:24;;;:35;5000:49;;5041:8;;;5000:49;5107:15;-1:-1:-1;;;;;5071:51:7;:13;5085:1;5071:16;;;;;;-1:-1:-1;;;5071:16:7;;;;;;;;;;;;;;;;;;;;;;:32;;;;-1:-1:-1;;;;;5071:32:7;:51;5067:65;;5124:8;;;5067:65;5250:7;;;4500:1030;;;:::o;4789:482::-;4847:3;;;;:::i;:::-;;;;4789:482;;;;4732:549;5290:22;5315:49;;;;;;;;5328:9;5315:49;;;;;;-1:-1:-1;;;5315:49:7;;;;;;;;;;;-1:-1:-1;;;;;5315:49:7;;;;;;;;;;;;;;;;;-1:-1:-1;5374:26:7;;;;;;;;;5406:13;:20;;5374:53;;;;;;;;;;;;;;;;;;;;5437:22;;;;;;;;;;;;;;;;;;;;;5290:74;;-1:-1:-1;5290:74:7;;5437:22;;;;;-1:-1:-1;;5437:22:7;;;;;;;;;-1:-1:-1;;;5437:22:7;;;;;;;;;;;;;-1:-1:-1;5437:22:7;;;;;;-1:-1:-1;;;;;5437:22:7;;;;;-1:-1:-1;;;;;;5437:22:7;;;;;;;;;;;;;;;;5474:49;;;;;5487:9;;5498:15;;5515:7;;5474:49;:::i;:::-;;;;;;;;4500:1030;;;;;:::o;16250:704:6:-;16388:10;16397:1;16388:6;:10;:::i;:::-;16368:30;;;;16360:72;;;;-1:-1:-1;;;16360:72:6;;27699:2:8;16360:72:6;;;27681:21:8;27738:2;27718:18;;;27711:30;27777:31;27757:18;;;27750:59;27826:18;;16360:72:6;27671:179:8;16360:72:6;16442:9;16454:26;16474:4;16461:18;;;;;;9638:19:8;;9682:2;9673:12;;9628:63;16461:18:6;;;;-1:-1:-1;;16461:18:6;;;;;;;;;;16454:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16442:38;-1:-1:-1;16506:14:6;16519:1;16506:10;:14;:::i;:::-;16494:26;;:8;:26;;;16490:107;;;-1:-1:-1;16582:4:6;16490:107;16611:7;16606:276;16628:10;16637:1;16628:6;:10;:::i;:::-;16624:14;;:1;:14;;;16606:276;;;16675:4;16664:15;;;16663:25;16659:185;;;16712:37;16732:9;;16742:1;16732:12;;;;;;;-1:-1:-1;;;16732:12:6;;;;;;;;;;;;;;;16746:1;16719:29;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;16719:29:6;;;;-1:-1:-1;;16719:29:6;;;;;;;;;;16712:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16708:41;;16659:185;;;16792:37;16812:1;16815:9;;16825:1;16815:12;;;;;;;-1:-1:-1;;;16815:12:6;;;;;;;;;;;;;;;16799:29;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;16799:29:6;;;;-1:-1:-1;;16799:29:6;;;;;;;;;;16792:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16788:41;;16659:185;16870:1;16857:14;;;;;;;16640:3;;;;;:::i;:::-;;;;16606:276;;;;16907:1;16899:4;:9;16891:40;;;;-1:-1:-1;;;16891:40:6;;26594:2:8;16891:40:6;;;26576:21:8;26633:2;26613:18;;;26606:30;-1:-1:-1;;;26652:18:8;;;26645:48;26710:18;;16891:40:6;26566:168:8;16891:40:6;16941:7;16250:704;;;;;:::o;12941:1287::-;13194:7;13203;13222:12;13260:8;13285:14;13278:22;;-1:-1:-1;;;;;13270:31:6;;13303:4;13247:61;;;;;;;;;10133:19:8;;;10177:2;10168:12;;10161:28;;;;10214:2;10205:12;;10198:28;10251:2;10242:12;;10123:137;13247:61:6;;;;-1:-1:-1;;13247:61:6;;;;;;;;;13237:72;;13247:61;13237:72;;;;;-1:-1:-1;13319:18:6;13381:22;13364:13;:39;;;;;;-1:-1:-1;;;13364:39:6;;;;;;;;;;13360:827;;;13442:62;;;13463:22;;;;-1:-1:-1;;;;;;13455:31:6;13442:62;;;9853:19:8;9888:12;;;9881:28;;;9925:12;13442:62:6;;;;;;;;;;;;;13432:73;;;;;;13419:86;;13360:827;;;13543:21;13526:13;:38;;;;;;-1:-1:-1;;;13526:38:6;;;;;;;;;;13522:665;;;13603:4;;13593:15;;;;;;;:::i;:::-;;;;;;;;13580:28;;13522:665;;;13646:34;13629:13;:51;;;;;;-1:-1:-1;;;13629:51:6;;;;;;;;;;13625:562;;;13719:45;;;-1:-1:-1;;;;;;13740:22:6;;;;13732:31;13719:45;;;9638:19:8;9673:12;13719:45:6;9628:63:8;13625:562:6;13796:19;13864:13;13856:22;;;;;;-1:-1:-1;;;13856:22:6;;;;;;;;;13913:9;13905:18;;;;;;-1:-1:-1;;;13905:18:6;;;;;;;;;13897:27;;13958:15;13950:24;;-1:-1:-1;;;;;13942:33:6;;14001:7;13993:16;;14043:4;14035:13;;-1:-1:-1;;;;;14027:22:6;;14075:6;14067:15;;14100:4;;13818:300;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;13796:322;;14168:6;14155:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;14145:31;;;;;;14132:44;;13625:562;;14204:4;;;;-1:-1:-1;12941:1287:6;-1:-1:-1;;;;;;;;;;;;12941:1287:6:o;20386:1628::-;20503:6;;20540:41;;20557:24;20540:41;:14;:41;:::i;:::-;20525:56;-1:-1:-1;20591:11:6;20611:41;;20628:24;20611:41;:14;:41;:::i;:::-;20663:19;20685:18;;;:12;:18;;;;;20721:9;;20591:62;;-1:-1:-1;20685:18:6;20713:41;;;;-1:-1:-1;;;20713:41:6;;25547:2:8;20713:41:6;;;25529:21:8;25586:2;25566:18;;;25559:30;-1:-1:-1;;;25605:18:8;;;25598:45;25660:18;;20713:41:6;25519:165:8;20713:41:6;20769:8;20764:1209;20787:9;;20783:13;;;;20764:1209;;;20817:16;20836:2;20839:1;20836:5;;;;;;;;-1:-1:-1;;;20836:5:6;;;;;;;;;;;;;;;;;;;20817:24;;20855:32;20913:1;:12;;;20927:4;20900:32;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;20900:32:6;;;;;;;;;;;;;20890:43;;;;;;20855:78;;20973:24;20951:1;:18;;;:46;20947:134;;21058:8;;;;20947:134;21118:10;21102:1;:12;;;:26;21094:62;;;;-1:-1:-1;;;21094:62:6;;25195:2:8;21094:62:6;;;25177:21:8;25234:2;25214:18;;;25207:30;25273:25;25253:18;;;25246:53;25316:18;;21094:62:6;25167:173:8;21094:62:6;21187:11;;;;21170:14;;21212:2;;21187:22;;;21201:8;21187:22;;:11;;:22;:::i;:::-;:27;;;;:::i;:::-;21170:44;;21247:5;21236:16;;:7;:16;;;21228:55;;;;-1:-1:-1;;;21228:55:6;;26239:2:8;21228:55:6;;;26221:21:8;26278:2;26258:18;;;26251:30;26317:28;26297:18;;;26290:56;26363:18;;21228:55:6;26211:176:8;21228:55:6;21319:15;;;21297:19;21319:15;;;:6;:15;;;;;;;;;;;21356:22;;;-1:-1:-1;21356:22:6;21348:48;;;;-1:-1:-1;;;21348:48:6;;23448:2:8;21348:48:6;;;23430:21:8;23487:2;23467:18;;;23460:30;-1:-1:-1;;;23506:18:8;;;23499:43;23559:18;;21348:48:6;23420:163:8;21348:48:6;21419:11;;;;;;;;;21418:12;21410:49;;;;-1:-1:-1;;;21410:49:6;;24842:2:8;21410:49:6;;;24824:21:8;24881:2;24861:18;;;24854:30;24920:26;24900:18;;;24893:54;24964:18;;21410:49:6;24814:174:8;21410:49:6;21908:11;;;;21892:28;;21908:11;;21892:15;:28::i;:::-;21884:56;;;;-1:-1:-1;;;21884:56:6;;24149:2:8;21884:56:6;;;24131:21:8;24188:2;24168:18;;;24161:30;-1:-1:-1;;;24207:18:8;;;24200:45;24262:18;;21884:56:6;24121:165:8;21884:56:6;21961:1;21954:8;;;;;;;;;;;;20764:1209;20798:3;;;;:::i;:::-;;;;20764:1209;;;-1:-1:-1;21982:25:6;;-1:-1:-1;;;21982:25:6;;29491:2:8;21982:25:6;;;29473:21:8;29530:2;29510:18;;;29503:30;-1:-1:-1;;;29549:18:8;;;29542:45;29604:18;;21982:25:6;29463:165:8;20386:1628:6;;;;;;;:::o;22020:538::-;22104:19;22126:24;;;:12;:24;;;;;22168:9;;22160:45;;;;-1:-1:-1;;;22160:45:6;;28401:2:8;22160:45:6;;;28383:21:8;28440:2;28420:18;;;28413:30;-1:-1:-1;;;28459:18:8;;;28452:49;28518:18;;22160:45:6;28373:169:8;22160:45:6;22223:9;;:23;;;-1:-1:-1;22215:55:6;;;;-1:-1:-1;;;22215:55:6;;29835:2:8;22215:55:6;;;29817:21:8;29874:2;29854:18;;;29847:30;-1:-1:-1;;;29893:18:8;;;29886:49;29952:18;;22215:55:6;29807:169:8;22215:55:6;22280:16;22299:2;22302:11;22299:15;;;;;;;;-1:-1:-1;;;22299:15:6;;;;;;;;;;;;;;;;;;;;;;22332:11;;;;22299:15;;-1:-1:-1;22332:11:6;;22324:52;;;;-1:-1:-1;;;22324:52:6;;26941:2:8;22324:52:6;;;26923:21:8;26980:2;26960:18;;;26953:30;27019:26;26999:18;;;26992:54;27063:18;;22324:52:6;26913:174:8;22324:52:6;22437:11;;;;22415:12;;22463:2;;22430:30;;;22452:8;22430:30;;22437:11;;22430:30;:::i;:::-;:35;;;;:::i;:::-;22415:50;;22475:22;22491:5;22475:15;:22::i;:::-;22507:16;:14;:16::i;:::-;-1:-1:-1;22533:11:6;;:18;;-1:-1:-1;;22533:18:6;;;;;-1:-1:-1;;;22020:538:6:o;9045:596:7:-;9106:16;9132;9146:2;9132:4;:16;:::i;:::-;9106:43;-1:-1:-1;9185:4:7;9167:14;9106:43;9179:2;9167:14;:::i;:::-;:29;;;9159:78;;;;-1:-1:-1;;;9159:78:7;;;;;;;:::i;:::-;9252:8;9247:388;9270:9;9266:13;;:1;:13;;;9247:388;;;9300:19;9340:37;9350:4;;9355:6;:1;9359:2;9355:6;:::i;:::-;9350:26;;;9364:6;:1;9368:2;9364:6;:::i;:::-;:11;;9373:2;9364:11;:::i;:::-;9350:26;;;;;;;;;:::i;:::-;9340:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9340:9:7;;-1:-1:-1;;;9340:37:7:i;:::-;9322:57;;;;;;-1:-1:-1;;;9322:57:7;;;;;;;;;9300:79;-1:-1:-1;9393:23:7;9435:42;9445:4;;9450:6;:1;9454:2;9450:6;:::i;:::-;:11;;9459:2;9450:11;:::i;:::-;9445:31;;;9464:6;:1;9468:2;9464:6;:::i;:::-;:11;;9473:2;9464:11;:::i;9435:42::-;9419:60;;9393:86;;9493:15;9519:42;9529:4;;9534:1;9538:2;9534:6;;;;:::i;:::-;:11;;9543:2;9534:11;:::i;:::-;9529:31;;;9548:6;:1;9552:2;9548:6;:::i;:::-;:11;;9557:2;9548:11;:::i;9519:42::-;9511:51;-1:-1:-1;9576:48:7;9588:9;9599:15;9511:51;9576:11;:48::i;:::-;9247:388;;;9281:3;;;;;:::i;:::-;;;;9247:388;;5536:1613;5641:11;5694:9;5686:18;;;;;;-1:-1:-1;;;5686:18:7;;;;;;;;;5665:94;;;;;;10133:19:8;;;;5715:24:7;;;;-1:-1:-1;;;;;;5707:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;5665:94:7;;;-1:-1:-1;;5665:94:7;;;;;;;;;5655:105;;5665:94;5655:105;;;;5774:21;:26;;;;;;;;;:33;5655:105;;-1:-1:-1;5770:75:7;;5828:7;5536:1613;;;:::o;5770:75::-;5859:8;5854:1224;5877:21;:26;;;;;;;;;;:33;5873:37;;;;5854:1224;;;5931:9;5943:26;;;;;;;;;;:29;;;;;;;;;;-1:-1:-1;;;5943:29:7;;;;;;;;;;;;;;;;;5931:41;;6020:9;5990:39;;;;;;-1:-1:-1;;;5990:39:7;;;;;;;;;:13;6004:1;5990:16;;;;;;-1:-1:-1;;;5990:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;:39;;;;;;-1:-1:-1;;;5990:39:7;;;;;;;;;;5986:53;;6031:8;;;5986:53;6085:7;6057:13;6071:1;6057:16;;;;;;-1:-1:-1;;;6057:16:7;;;;;;;;;;;;;;;;;;;:24;;;:35;6053:49;;6094:8;;;6053:49;6156:15;-1:-1:-1;;;;;6120:51:7;:13;6134:1;6120:16;;;;;;-1:-1:-1;;;6120:16:7;;;;;;;;;;;;;;;;;;;;;;:32;;;;-1:-1:-1;;;;;6120:32:7;:51;6116:65;;6173:8;;;6116:65;6275:1;6252:20;;6226:23;;6252:24;;;:::i;:::-;6226:50;;6309:13;6323:15;6309:30;;;;;;-1:-1:-1;;;6309:30:7;;;;;;;;;;;;;;;;;;;6290:13;6304:1;6290:16;;;;;;-1:-1:-1;;;6290:16:7;;;;;;;;;;;;;;;;;:49;;:16;;;;;:49;;:16;;:49;;;:16;;-1:-1:-1;;6290:49:7;;;;;;;;;-1:-1:-1;;;6290:49:7;;;;;;;;;;;;;-1:-1:-1;6290:49:7;;;;-1:-1:-1;;;;;;6290:49:7;;;;;;-1:-1:-1;;;;;6290:49:7;;;;;;;-1:-1:-1;6290:49:7;;;;;;;;6413:16;;-1:-1:-1;;;6427:1:7;;6413:16;;;;-1:-1:-1;;;6413:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;6405:35;;;;;;-1:-1:-1;;;6405:35:7;;;;;;;;;6459:13;:16;;6473:1;;6459:16;;;;-1:-1:-1;;;6459:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;6459:32:7;6451:41;;-1:-1:-1;;;;;6443:50:7;;6503:13;6517:1;6503:16;;;;;;-1:-1:-1;;;6503:16:7;;;;;;;;;;;;;;;;;;;:24;;;6495:33;;6384:145;;;;;;;;;10133:19:8;;;10177:2;10168:12;;10161:28;;;;10214:2;10205:12;;10198:28;10251:2;10242:12;;10123:137;6384:145:7;;;;;;;;;;;;;6374:156;;;;;;6353:177;;6544:13;:19;;;;;-1:-1:-1;;;6544:19:7;;;;;;;;;;;;;;;;;-1:-1:-1;;6544:19:7;;;;;;;;;-1:-1:-1;;;;;;6544:19:7;;;;;;;;;;6577:244;6600:21;:33;;;;;;;;;;:40;6596:44;;;;6577:244;;;6709:15;6669:21;:33;6691:10;6669:33;;;;;;;;;;;6703:1;6669:36;;;;;;;;-1:-1:-1;;;6669:36:7;;;;;;;;;;;;;;;;;:55;6665:142;;;6787:1;6748:21;:33;6770:10;6748:33;;;;;;;;;;;6782:1;6748:36;;;;;;;;-1:-1:-1;;;6748:36:7;;;;;;;;;;;;;;;;;;:40;6665:142;6642:3;;;;:::i;:::-;;;;6577:244;;;-1:-1:-1;6866:21:7;:26;;;;;;;;;;6893:33;;:37;;6929:1;;6893:37;:::i;:::-;6866:65;;;;;;-1:-1:-1;;;6866:65:7;;;;;;;;;;;;;;;;;6834:21;:26;6856:3;6834:26;;;;;;;;;;;6861:1;6834:29;;;;;;-1:-1:-1;;;6834:29:7;;;;;;;;;;;;;;;;:97;;;;6945:21;:26;6967:3;6945:26;;;;;;;;;;;:32;;;;;-1:-1:-1;;;6945:32:7;;;;;;;;;;;;;;;;;;;;;;;;;;6996:51;7011:9;7022:15;7039:7;6996:51;;;;;;;;:::i;:::-;;;;;;;;7061:7;;;;;5536:1613;;;:::o;5854:1224::-;5912:3;;;;:::i;:::-;;;;5854:1224;;;;7092:50;7106:9;7117:15;7134:7;7092:50;;;;;;;;:::i;:::-;;;;;;;;5536:1613;;;;:::o;9647:600::-;9710:16;9736;9750:2;9736:4;:16;:::i;:::-;9710:43;-1:-1:-1;9789:4:7;9771:14;9710:43;9783:2;9771:14;:::i;:::-;:29;;;9763:78;;;;-1:-1:-1;;;9763:78:7;;;;;;;:::i;:::-;9856:8;9851:390;9874:9;9870:13;;:1;:13;;;9851:390;;;9904:19;9944:37;9954:4;;9959:6;:1;9963:2;9959:6;:::i;9944:37::-;9926:57;;;;;;-1:-1:-1;;;9926:57:7;;;;;;;;;9904:79;-1:-1:-1;9997:23:7;10039:42;10049:4;;10054:6;:1;10058:2;10054:6;:::i;10039:42::-;10023:60;;9997:86;;10097:15;10123:42;10133:4;;10138:1;10142:2;10138:6;;;;:::i;10123:42::-;10115:51;-1:-1:-1;10180:50:7;10194:9;10205:15;10115:51;10180:13;:50::i;:::-;9851:390;;;9885:3;;;;;:::i;:::-;;;;9851:390;;10879:1973:6;11051:15;11038:9;:28;;;;;;-1:-1:-1;;;11038:28:6;;;;;;;;;;11034:1812;;;11086:46;;-1:-1:-1;;;11086:46:6;;-1:-1:-1;;;;;13979:32:8;;;11086:46:6;;;13961:51:8;14028:18;;;14021:34;;;11086:32:6;;;;;13934:18:8;;11086:46:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11086:46:6;;;;;;;;-1:-1:-1;;11086:46:6;;;;;;;;;;;;:::i;:::-;;;11082:695;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;11567:77;11586:9;11597:15;11614:7;11623:4;11629:6;11637;11567:77;;;;;;;;;;;:::i;:::-;;;;;;;;11511:148;11034:1812;;11082:695;;;11689:73;11708:9;11719:15;11736:7;11745:4;11751:6;11689:73;;;;;;;;;;:::i;:::-;;;;;;;;11034:1812;;11082:695;11177:7;11173:230;;;11208:48;11220:9;11231:15;11248:7;11208:11;:48::i;:::-;11283:73;11306:9;11317:15;11334:7;11343:4;11349:6;11283:73;;;;;;;;;;:::i;11173:230::-;11425:70;11445:9;11456:15;11473:7;11482:4;11488:6;11425:70;;;;;;;;;;:::i;11034:1812::-;11810:16;11797:9;:29;;;;;;-1:-1:-1;;;11797:29:6;;;;;;;;;;11793:1053;;;11846:77;;-1:-1:-1;;;11846:77:6;;-1:-1:-1;;;;;11846:41:6;;;;;:77;;11896:4;;11903;;11909:7;;11918:4;;11846:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11842:459;;;;:::i;:::-;11946:73;11969:9;11980:15;11997:7;12006:4;12012:6;11946:73;;;;;;;;;;:::i;11793:1053::-;12334:17;12321:9;:30;;;;;;-1:-1:-1;;;12321:30:6;;;;;;;;;;12317:529;;;12371:86;;-1:-1:-1;;;12371:86:6;;-1:-1:-1;;;;;12371:42:6;;;;;:86;;12422:4;;12429;;12435:7;;12444:6;;12452:4;;12371:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12367:469;;;;:::i;:::-;12481:73;12504:9;12515:15;12532:7;12541:4;12547:6;12481:73;;;;;;;;;;:::i;:::-;;;;;;;;10879:1973;;;;;;:::o;8286:753:7:-;8359:16;8385;8399:2;8385:4;:16;:::i;:::-;8359:43;-1:-1:-1;8438:4:7;8420:14;8359:43;8432:2;8420:14;:::i;:::-;:29;;;8412:78;;;;-1:-1:-1;;;8412:78:7;;;;;;;:::i;:::-;8500:38;8560:9;8541:29;;-1:-1:-1;;;;;8541:29:7;;;;;-1:-1:-1;;;8541:29:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;8541:29:7;;-1:-1:-1;;8541:29:7;;;;;;;;;;;;8500:70;;8585:8;8580:411;8603:9;8599:13;;:1;:13;;;8580:411;;;8633:19;8673:37;8683:4;;8688:6;:1;8692:2;8688:6;:::i;8673:37::-;8655:57;;;;;;-1:-1:-1;;;8655:57:7;;;;;;;;;8633:79;-1:-1:-1;8726:23:7;8768:42;8778:4;;8783:6;:1;8787:2;8783:6;:::i;8768:42::-;8752:60;;8726:86;;8826:15;8852:42;8862:4;;8867:1;8871:2;8867:6;;;;:::i;8852:42::-;8844:51;;8826:69;;8931:49;;;;;;;;8944:9;8931:49;;;;;;-1:-1:-1;;;8931:49:7;;;;;;;;;;;;;8955:15;-1:-1:-1;;;;;8931:49:7;;;;;8972:7;8931:49;;;8909:16;8926:1;8909:19;;;;;;;;-1:-1:-1;;;8909:19:7;;;;;;;;;;;;;;:71;;;;8580:411;;;8614:3;;;;;:::i;:::-;;;;8580:411;;;;9000:32;9015:16;9000:14;:32::i;9374:975:6:-;9449:4;;9485:33;3043:5;9485:15;:33;:::i;:::-;9539:15;;9465:54;;-1:-1:-1;9539:15:6;;;;9533:21;;;;9529:101;;;9583:1;9570:10;:14;9598:15;:21;;-1:-1:-1;;9598:21:6;;;;;;;9529:101;9665:10;;9656:6;9643:10;;:19;;;;:::i;:::-;:32;9639:148;;;9721:10;;9733;;9696:54;;;31801:25:8;;;31857:2;31842:18;;31835:34;;;;31885:18;;31878:34;-1:-1:-1;;;;;31948:32:8;;31943:2;31928:18;;31921:60;9696:54:6;;31788:3:8;31773:19;9696:54:6;;;;;;;;9771:5;9764:12;;;;;9639:148;9824:6;9800:21;:30;9796:145;;;9851:53;;;31414:25:8;;;9876:21:6;31470:2:8;31455:18;;31448:34;-1:-1:-1;;;;;31518:32:8;;31498:18;;;31491:60;;;;9851:53:6;;31402:2:8;31387:18;9851:53:6;31369:188:8;9796:145:6;9964:6;9950:10;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;9998:29:6;;9981:12;;-1:-1:-1;;;;;9998:9:6;;;10016:6;;9981:12;9998:29;9981:12;9998:29;10016:6;9998:9;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9980:47;;;10156:7;10151:130;;10193:6;10179:10;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;10218:26:6;;-1:-1:-1;;;;;11877:32:8;;11859:51;;10218:26:6;;11847:2:8;11832:18;10218:26:6;;;;;;;10265:5;10258:12;;;;;;10151:130;10296:25;;;30559::8;;;-1:-1:-1;;;;;30620:32:8;;30615:2;30600:18;;30593:60;10296:25:6;;30532:18:8;10296:25:6;;;;;;;-1:-1:-1;10338:4:6;;9374:975;-1:-1:-1;;;;9374:975:6:o;10355:295::-;10412:17;;10393:4;;-1:-1:-1;;;;;10412:17:6;10408:118;;10464:25;;;;;;;-1:-1:-1;10510:5:6;;10355:295::o;10408:118::-;10540:8;:6;:8::i;:::-;10535:88;;10569:17;;;;;;;-1:-1:-1;10607:5:6;;10355:295::o;10656:217::-;10748:17;;-1:-1:-1;;;;;10748:17:6;:31;10740:78;;;;-1:-1:-1;;;10740:78:6;;29088:2:8;10740:78:6;;;29070:21:8;29127:2;29107:18;;;29100:30;29166:34;29146:18;;;29139:62;-1:-1:-1;;;29217:18:8;;;29210:32;29259:19;;10740:78:6;29060:224:8;10740:78:6;10828:17;:38;;-1:-1:-1;;;;;;10828:38:6;-1:-1:-1;;;;;10828:38:6;;;;;;;;;;10656:217::o;17409:2529::-;17455:18;17506:15;17695:931;17716:7;:14;17702:28;;;;17695:931;;;17761:12;17776:7;17784:11;17776:20;;;;;;;;-1:-1:-1;;;17776:20:6;;;;;;;;;;;;;;;;;;;;;17832:18;;;:12;:18;;;;;;;17966:9;;17776:20;;-1:-1:-1;17832:18:6;17962:61;;18000:8;;;;17962:61;18468:16;18487:2;18490:1;18487:5;;;;;;-1:-1:-1;;;18487:5:6;;;;;;;;;;;;;;;;;18530:11;18487:5;;;;;18530:11;;;;18487:5;;-1:-1:-1;18530:36:6;-1:-1:-1;;18545:21:6;;18530:36;;:11;;:36;18526:80;;18586:5;;;;;18526:80;17695:931;;;;17732:13;;;;:::i;:::-;;;;17695:931;;;18785:16;;;18781:159;;18923:7;;17409:2529::o;18781:159::-;19060:8;19055:281;19078:11;19074:15;;:1;:15;;;19055:281;;;19110:12;19125:7;19133:1;19125:10;;;;;;;;-1:-1:-1;;;19125:10:6;;;;;;;;;;;;;;;;;;;;;19171:18;;;:12;:18;;;;;;19125:10;;-1:-1:-1;19171:18:6;19203:84;19226:9;;19222:13;;;;19203:84;;;19267:2;19270:1;19267:5;;;;;;;;-1:-1:-1;;;19267:5:6;;;;;;;;;;;;;;;;;;;;;19260:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19260:12:6;;;19237:3;;;;:::i;:::-;;;;19203:84;;;-1:-1:-1;19307:18:6;;;;:12;:18;;;;;19300:25;;;:::i;:::-;19055:281;;19091:3;;;;;:::i;:::-;;;;19055:281;;;-1:-1:-1;19541:7:6;:14;19582:11;19566:134;19599:3;19595:7;;:1;:7;;;19566:134;;;19669:7;19677:1;19669:10;;;;;;;;-1:-1:-1;;;19669:10:6;;;;;;;;;;;;;;;;;19642:7;19654:11;19650:1;:15;19642:24;;;;;;;;-1:-1:-1;;;19642:24:6;;;;;;;;;;;;;;;;;;:37;19604:3;;;;:::i;:::-;;;;19566:134;;;;19714:8;19709:79;19732:11;19728:15;;:1;:15;;;19709:79;;;19764:7;:13;;;;;-1:-1:-1;;;19764:13:6;;;;;;;;;;;;;;;;;;;;;;;;;;19745:3;;;;;:::i;:::-;;;;19709:79;;19944:156;20011:4;3001:2;20038:36;20064:10;20045:15;20038:36;:::i;:::-;:55;;;;19944:156;-1:-1:-1;;19944:156:6:o;23998:210::-;24066:13;;;24056:7;24066:13;;;:6;:13;;;;;;;;24093:6;24089:61;;24115:12;:24;;;;;;;-1:-1:-1;24115:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24089:61;24174:13;;;;;;;;;:6;:13;;;;;:21;;-1:-1:-1;;24174:21:6;24194:1;24190:5;;;24174:21;;;;;;;;23998:210::o;22818:1174::-;22863:11;22877:42;3001:2;22884:15;22877:42;:::i;:::-;22863:56;-1:-1:-1;22929:25:6;22957:15;;22964:8;22957:15;22863:56;22957:15;:::i;:::-;22929:43;;22982:15;23036:2;23015:23;;:18;:23;;;23011:88;;;23065:23;23086:2;23065:18;:23;:::i;:::-;23054:34;;23011:88;23153:12;:19;23108:29;;-1:-1:-1;;;;;23140:33:6;;;;;-1:-1:-1;;;23140:33:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23140:33:6;;23108:65;;23183:22;23224:7;23219:341;23241:12;:19;23237:23;;;;23219:341;;;23281:12;23296;23309:1;23296:15;;;;;;;;-1:-1:-1;;;23296:15:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23329:16:6;;;;23325:225;;;23372:13;;;;;;;:6;:13;;;;;23365:20;;-1:-1:-1;;23365:20:6;;;23325:225;;;23457:5;23424:13;23438:15;23424:30;;;;;;;;-1:-1:-1;;;23424:30:6;;;;;;;;;:38;;;;:30;;;;;;;;;;;:38;23504:17;;;;;23325:225;-1:-1:-1;23262:3:6;;;;:::i;:::-;;;;23219:341;;;;23776:28;23820:15;23807:29;;-1:-1:-1;;;;;23807:29:6;;;;;-1:-1:-1;;;23807:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23807:29:6;;23776:60;;23851:7;23846:103;23868:15;23864:19;;:1;:19;;;23846:103;;;23922:13;23936:1;23922:16;;;;;;;;-1:-1:-1;;;23922:16:6;;;;;;;;;;;;;;;23904:12;23917:1;23904:15;;;;;;;;-1:-1:-1;;;23904:15:6;;;;;;;;;:34;;;;:15;;;;;;;;;;;:34;23885:3;;;;:::i;:::-;;;;23846:103;;;-1:-1:-1;23958:27:6;;;;:12;;:27;;;;;:::i;:::-;;22818:1174;;;;;;:::o;10253:408:7:-;10311:7;10333:1;:8;10345:1;10333:13;10329:63;;;-1:-1:-1;10377:3:7;;10253:408;-1:-1:-1;10253:408:7:o;10329:63::-;10421:2;10409:1;:8;:14;;10401:47;;;;-1:-1:-1;;;10401:47:7;;24493:2:8;10401:47:7;;;24475:21:8;24532:2;24512:18;;;24505:30;-1:-1:-1;;;24551:18:8;;;24544:50;24611:18;;10401:47:7;24465:170:8;10401:47:7;10458:9;10477;10501:1;:8;10496:2;:13;;;;:::i;:::-;10495:19;;10513:1;10495:19;:::i;:::-;10565:2;10558:10;;;;10552:17;10587:11;;10616;;;;10253:408;-1:-1:-1;;;10253:408:7:o;7155:1125::-;7243:8;7238:431;7261:13;:20;7257:24;;;;7238:431;;;7302:19;7324:13;7338:1;7324:16;;;;;;;;-1:-1:-1;;;7324:16:7;;;;;;;;;;;;;;;;;;;;;:26;;7390:16;;7324:26;;;;;-1:-1:-1;7324:26:7;7390:16;;;;;;;;-1:-1:-1;;;7390:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;7390:32:7;7364:58;;7436:15;7454:13;7468:1;7454:16;;;;;;;;-1:-1:-1;;;7454:16:7;;;;;;;;;;;;;;;;;;;:24;;;7436:42;;7492:11;7545:9;7537:18;;;;;;-1:-1:-1;;;7537:18:7;;;;;;;;;7516:94;;;;;;10133:19:8;;;;7566:24:7;;;;-1:-1:-1;;;;;;7558:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;7516:94:7;;;-1:-1:-1;;7516:94:7;;;;;;;;;7506:105;;7516:94;7506:105;;;;7632:21;:26;;;;;;;;;;7506:105;;-1:-1:-1;7625:33:7;;;:::i;:::-;7238:431;;;;7283:3;;;;;:::i;:::-;;;;7238:431;;;-1:-1:-1;7678:20:7;7685:13;;7678:20;:::i;:::-;7713:8;7708:566;7731:16;:23;7727:1;:27;;;7708:566;;;7775:19;7797:16;7814:1;7797:19;;;;;;;;-1:-1:-1;;;7797:19:7;;;;;;;;;;;;;;;:29;;;7775:51;;7840:23;7866:16;7883:1;7866:19;;;;;;;;-1:-1:-1;;;7866:19:7;;;;;;;;;;;;;;;:35;;;7840:61;;7915:15;7933:16;7950:1;7933:19;;;;;;;;-1:-1:-1;;;7933:19:7;;;;;;;;;;;;;;;:27;;;7915:45;;7974:11;8027:9;8019:18;;;;;;-1:-1:-1;;;8019:18:7;;;;;;;;;7998:94;;;;;;10133:19:8;;;;8048:24:7;;;;-1:-1:-1;;;;;;8040:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;7998:94:7;;;;;;;;;;;;7988:105;;;;;;7974:119;;8107:21;8131:49;;;;;;;;8144:9;8131:49;;;;;;-1:-1:-1;;;8131:49:7;;;;;;;;;;;-1:-1:-1;;;;;8131:49:7;;;;;;;;;;;8194:13;:21;;;;;;;-1:-1:-1;8194:21:7;;;;;;;;;;;;;8107:73;;-1:-1:-1;8107:73:7;;8194:21;;;;-1:-1:-1;;8194:21:7;;;;;;;;;-1:-1:-1;;;8194:21:7;;;;;;;;;;;;;-1:-1:-1;8194:21:7;;;;;;;-1:-1:-1;;;;;8194:21:7;;;;;-1:-1:-1;;;;;;8194:21:7;;;;;;;;;;;;;;;;;8229:26;;;;;;;;;:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8261:1:7;;-1:-1:-1;7756:3:7;;-1:-1:-1;8261:1:7;;-1:-1:-1;7756:3:7;:::i;:::-;;;;7708:566;;;;7155:1125;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:134:8;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:395::-;216:8;226:6;280:3;273:4;265:6;261:17;257:27;247:2;;305:8;295;288:26;247:2;-1:-1:-1;335:20:8;;-1:-1:-1;;;;;367:30:8;;364:2;;;417:8;407;400:26;364:2;461:4;453:6;449:17;437:29;;521:3;514:4;504:6;501:1;497:14;489:6;485:27;481:38;478:47;475:2;;;538:1;535;528:12;475:2;237:311;;;;;:::o;553:375::-;604:8;614:6;668:3;661:4;653:6;649:17;645:27;635:2;;693:8;683;676:26;635:2;-1:-1:-1;723:20:8;;-1:-1:-1;;;;;755:30:8;;752:2;;;805:8;795;788:26;752:2;849:4;841:6;837:17;825:29;;901:3;894:4;885:6;877;873:19;869:30;866:39;863:2;;;918:1;915;908:12;933:154;1012:20;;1061:1;1051:12;;1041:2;;1077:1;1074;1067:12;1092:150;1167:20;;1216:1;1206:12;;1196:2;;1232:1;1229;1222:12;1247:163;1314:20;;1374:10;1363:22;;1353:33;;1343:2;;1400:1;1397;1390:12;1415:1378;1575:6;1583;1591;1599;1607;1615;1623;1631;1684:3;1672:9;1663:7;1659:23;1655:33;1652:2;;;1706:6;1698;1691:22;1652:2;1750:9;1737:23;1769:31;1794:5;1769:31;:::i;:::-;1819:5;-1:-1:-1;1876:2:8;1861:18;;1848:32;1889:33;1848:32;1889:33;:::i;:::-;1941:7;-1:-1:-1;1999:2:8;1984:18;;1971:32;-1:-1:-1;;;;;2052:14:8;;;2049:2;;;2084:6;2076;2069:22;2049:2;2128:70;2190:7;2181:6;2170:9;2166:22;2128:70;:::i;:::-;2217:8;;-1:-1:-1;2102:96:8;-1:-1:-1;2305:2:8;2290:18;;2277:32;;-1:-1:-1;2321:16:8;;;2318:2;;;2355:6;2347;2340:22;2318:2;2399:72;2463:7;2452:8;2441:9;2437:24;2399:72;:::i;:::-;2490:8;;-1:-1:-1;2373:98:8;-1:-1:-1;2578:3:8;2563:19;;2550:33;;-1:-1:-1;2595:16:8;;;2592:2;;;2629:6;2621;2614:22;2592:2;;2673:60;2725:7;2714:8;2703:9;2699:24;2673:60;:::i;:::-;1642:1151;;;;-1:-1:-1;1642:1151:8;;-1:-1:-1;1642:1151:8;;;;;;2752:8;-1:-1:-1;;;1642:1151:8:o;2798:774::-;2895:6;2903;2911;2919;2927;2980:3;2968:9;2959:7;2955:23;2951:33;2948:2;;;3002:6;2994;2987:22;2948:2;3046:9;3033:23;3065:31;3090:5;3065:31;:::i;:::-;3115:5;-1:-1:-1;3172:2:8;3157:18;;3144:32;3185:33;3144:32;3185:33;:::i;:::-;3237:7;-1:-1:-1;3291:2:8;3276:18;;3263:32;;-1:-1:-1;3346:2:8;3331:18;;3318:32;-1:-1:-1;;;;;3362:30:8;;3359:2;;;3410:6;3402;3395:22;3359:2;3454:58;3504:7;3495:6;3484:9;3480:22;3454:58;:::i;:::-;2938:634;;;;-1:-1:-1;2938:634:8;;-1:-1:-1;3531:8:8;;3428:84;2938:634;-1:-1:-1;;;2938:634:8:o;3577:843::-;3683:6;3691;3699;3707;3715;3723;3776:3;3764:9;3755:7;3751:23;3747:33;3744:2;;;3798:6;3790;3783:22;3744:2;3842:9;3829:23;3861:31;3886:5;3861:31;:::i;:::-;3911:5;-1:-1:-1;3968:2:8;3953:18;;3940:32;3981:33;3940:32;3981:33;:::i;:::-;4033:7;-1:-1:-1;4087:2:8;4072:18;;4059:32;;-1:-1:-1;4138:2:8;4123:18;;4110:32;;-1:-1:-1;4193:3:8;4178:19;;4165:33;-1:-1:-1;;;;;4210:30:8;;4207:2;;;4258:6;4250;4243:22;4207:2;4302:58;4352:7;4343:6;4332:9;4328:22;4302:58;:::i;:::-;3734:686;;;;-1:-1:-1;3734:686:8;;-1:-1:-1;3734:686:8;;4379:8;;3734:686;-1:-1:-1;;;3734:686:8:o;4425:1396::-;4641:6;4649;4657;4665;4673;4681;4689;4697;4705;4713;4721:7;4730;4784:3;4772:9;4763:7;4759:23;4755:33;4752:2;;;4806:6;4798;4791:22;4752:2;-1:-1:-1;;;;;4843:9:8;4830:23;4827:47;4824:2;;;4892:6;4884;4877:22;4824:2;4936:87;5015:7;5002:9;4989:23;4978:9;4974:39;4936:87;:::i;:::-;5042:8;;-1:-1:-1;5069:8:8;-1:-1:-1;5096:37:8;5129:2;5114:18;;5096:37;:::i;:::-;5086:47;;5180:2;5169:9;5165:18;5152:32;5142:42;;5203:49;5248:2;5237:9;5233:18;5203:49;:::i;:::-;5193:59;;5271:46;5312:3;5301:9;5297:19;5271:46;:::i;:::-;5261:56;;5336:39;5370:3;5359:9;5355:19;5336:39;:::i;:::-;5326:49;;5422:3;5411:9;5407:19;5394:33;5384:43;;5446:39;5480:3;5469:9;5465:19;5446:39;:::i;:::-;5436:49;;5532:3;5521:9;5517:19;5504:33;5494:43;;-1:-1:-1;;;;;5580:3:8;5569:9;5565:19;5552:33;5549:57;5546:2;;;5625:7;5616;5609:24;5546:2;5672:85;5749:7;5741:3;5730:9;5726:19;5713:33;5702:9;5698:49;5672:85;:::i;:::-;5777:9;5766:20;;5806:9;5795:20;;;;4742:1079;;;;;;;;;;;;;;:::o;5826:297::-;5893:6;5946:2;5934:9;5925:7;5921:23;5917:32;5914:2;;;5967:6;5959;5952:22;5914:2;6004:9;5998:16;6057:5;6050:13;6043:21;6036:5;6033:32;6023:2;;6084:6;6076;6069:22;6023:2;6112:5;5904:219;-1:-1:-1;;;5904:219:8:o;6128:190::-;6187:6;6240:2;6228:9;6219:7;6215:23;6211:32;6208:2;;;6261:6;6253;6246:22;6208:2;-1:-1:-1;6289:23:8;;6198:120;-1:-1:-1;6198:120:8:o;6323:194::-;6393:6;6446:2;6434:9;6425:7;6421:23;6417:32;6414:2;;;6467:6;6459;6452:22;6414:2;-1:-1:-1;6495:16:8;;6404:113;-1:-1:-1;6404:113:8:o;6522:326::-;6599:6;6607;6615;6668:2;6656:9;6647:7;6643:23;6639:32;6636:2;;;6689:6;6681;6674:22;6636:2;-1:-1:-1;;6717:23:8;;;6787:2;6772:18;;6759:32;;-1:-1:-1;6838:2:8;6823:18;;;6810:32;;6626:222;-1:-1:-1;6626:222:8:o;6853:255::-;6911:6;6964:2;6952:9;6943:7;6939:23;6935:32;6932:2;;;6985:6;6977;6970:22;6932:2;7029:9;7016:23;7048:30;7072:5;7048:30;:::i;7113:259::-;7182:6;7235:2;7223:9;7214:7;7210:23;7206:32;7203:2;;;7256:6;7248;7241:22;7203:2;7293:9;7287:16;7312:30;7336:5;7312:30;:::i;7377:450::-;7427:3;7465:5;7459:12;7492:6;7487:3;7480:19;7518:4;7547:2;7542:3;7538:12;7531:19;;7584:2;7577:5;7573:14;7605:3;7617:185;7631:6;7628:1;7625:13;7617:185;;;7706:13;;7699:21;7692:29;7680:42;;7742:12;;;;7777:15;;;;7653:1;7646:9;7617:185;;;-1:-1:-1;7818:3:8;;7435:392;-1:-1:-1;;;;;7435:392:8:o;7832:437::-;7885:3;7923:5;7917:12;7950:6;7945:3;7938:19;7976:4;8005:2;8000:3;7996:12;7989:19;;8042:2;8035:5;8031:14;8063:3;8075:169;8089:6;8086:1;8083:13;8075:169;;;8150:13;;8138:26;;8184:12;;;;8219:15;;;;8111:1;8104:9;8075:169;;8274:453;8326:3;8364:5;8358:12;8391:6;8386:3;8379:19;8417:4;8446:2;8441:3;8437:12;8430:19;;8483:2;8476:5;8472:14;8504:3;8516:186;8530:6;8527:1;8524:13;8516:186;;;8595:13;;8610:10;8591:30;8579:43;;8642:12;;;;8677:15;;;;8552:1;8545:9;8516:186;;8732:268;8820:6;8815:3;8808:19;8872:6;8865:5;8858:4;8853:3;8849:14;8836:43;-1:-1:-1;8790:3:8;8899:16;;;8917:4;8895:27;;;8888:40;;;;8982:2;8961:15;;;-1:-1:-1;;8957:29:8;8948:39;;;8944:50;;8798:202::o;9005:257::-;9046:3;9084:5;9078:12;9111:6;9106:3;9099:19;9127:63;9183:6;9176:4;9171:3;9167:14;9160:4;9153:5;9149:16;9127:63;:::i;:::-;9244:2;9223:15;-1:-1:-1;;9219:29:8;9210:39;;;;9251:4;9206:50;;9054:208;-1:-1:-1;;9054:208:8:o;9267:237::-;9348:1;9341:5;9338:12;9328:2;;9393:10;9388:3;9384:20;9381:1;9374:31;9428:4;9425:1;9418:15;9456:4;9453:1;9446:15;9328:2;9480:18;;9318:186::o;10265:676::-;10602:6;10597:3;10590:19;10639:6;10634:2;10629:3;10625:12;10618:28;10676:6;10671:2;10666:3;10662:12;10655:28;10713:6;10708:2;10703:3;10699:12;10692:28;10751:6;10745:3;10740;10736:13;10729:29;10789:6;10783:3;10778;10774:13;10767:29;10841:6;10833;10827:3;10822;10818:13;10805:43;10572:3;10871:16;;10889:3;10867:26;10902:15;;;10867:26;10580:361;-1:-1:-1;;;;;;;10580:361:8:o;10946:273::-;11129:6;11121;11116:3;11103:33;11085:3;11155:16;;11180:15;;;11155:16;11093:126;-1:-1:-1;11093:126:8:o;11224:274::-;11353:3;11391:6;11385:13;11407:53;11453:6;11448:3;11441:4;11433:6;11429:17;11407:53;:::i;:::-;11476:16;;;;;11361:137;-1:-1:-1;;11361:137:8:o;12137:488::-;-1:-1:-1;;;;;12406:15:8;;;12388:34;;12458:15;;12453:2;12438:18;;12431:43;12505:2;12490:18;;12483:34;;;12553:3;12548:2;12533:18;;12526:31;;;12331:4;;12574:45;;12599:19;;12591:6;12574:45;:::i;:::-;12566:53;12340:285;-1:-1:-1;;;;;;12340:285:8:o;12630:587::-;-1:-1:-1;;;;;12937:15:8;;;12919:34;;12989:15;;12984:2;12969:18;;12962:43;13036:2;13021:18;;13014:34;;;13079:2;13064:18;;13057:34;;;12899:3;13122;13107:19;;13100:32;;;12862:4;;13149:62;;13191:19;;13183:6;13175;13149:62;:::i;:::-;13141:70;12871:346;-1:-1:-1;;;;;;;;12871:346:8:o;13222:560::-;-1:-1:-1;;;;;13519:15:8;;;13501:34;;13571:15;;13566:2;13551:18;;13544:43;13618:2;13603:18;;13596:34;;;13661:2;13646:18;;13639:34;;;13481:3;13704;13689:19;;13682:32;;;13444:4;;13731:45;;13756:19;;13748:6;13731:45;:::i;:::-;13723:53;13453:329;-1:-1:-1;;;;;;;13453:329:8:o;14066:1068::-;14549:3;14538:9;14531:22;14512:4;14576:57;14628:3;14617:9;14613:19;14605:6;14576:57;:::i;:::-;14681:9;14673:6;14669:22;14664:2;14653:9;14649:18;14642:50;14715:44;14752:6;14744;14715:44;:::i;:::-;14701:58;;14807:9;14799:6;14795:22;14790:2;14779:9;14775:18;14768:50;14841:44;14878:6;14870;14841:44;:::i;:::-;14827:58;;14933:9;14925:6;14921:22;14916:2;14905:9;14901:18;14894:50;14967:43;15003:6;14995;14967:43;:::i;:::-;14953:57;;15059:9;15051:6;15047:22;15041:3;15030:9;15026:19;15019:51;15087:41;15121:6;15113;15087:41;:::i;15139:863::-;15544:3;15533:9;15526:22;15507:4;15571:57;15623:3;15612:9;15608:19;15600:6;15571:57;:::i;:::-;15676:9;15668:6;15664:22;15659:2;15648:9;15644:18;15637:50;15710:44;15747:6;15739;15710:44;:::i;:::-;15696:58;;15802:9;15794:6;15790:22;15785:2;15774:9;15770:18;15763:50;15836:43;15872:6;15864;15836:43;:::i;:::-;15822:57;;15927:9;15919:6;15915:22;15910:2;15899:9;15895:18;15888:50;15955:41;15989:6;15981;15955:41;:::i;16007:1390::-;16365:2;16377:21;;;16447:13;;16350:18;;;16469:22;;;16317:4;;16545;;16522:3;16507:19;;;16572:15;;;16317:4;16618:188;16632:6;16629:1;16626:13;16618:188;;;16681:45;16722:3;16713:6;16707:13;16681:45;:::i;:::-;16746:12;;;;16781:15;;;;16654:1;16647:9;16618:188;;;-1:-1:-1;;;16842:19:8;;;16822:18;;;16815:47;16912:13;;16934:21;;;17010:15;;;;16973:12;;;17045:4;17058:215;17074:8;17069:3;17066:17;17058:215;;;17147:15;;-1:-1:-1;;;;;17143:41:8;17129:56;;17246:17;;;;17207:14;;;;17181:1;17093:11;17058:215;;;17062:3;;17320:9;17313:5;17309:21;17304:2;17293:9;17289:18;17282:49;17348:43;17385:5;17377:6;17348:43;:::i;18996:376::-;19198:2;19183:18;;19210:44;19187:9;19236:6;19210:44;:::i;:::-;-1:-1:-1;;;;;19290:32:8;;;;19285:2;19270:18;;19263:60;19354:2;19339:18;19332:34;19165:207;;-1:-1:-1;19165:207:8:o;19377:550::-;19635:3;19620:19;;19648:44;19624:9;19674:6;19648:44;:::i;:::-;-1:-1:-1;;;;;19766:15:8;;;19761:2;19746:18;;19739:43;19813:2;19798:18;;19791:34;;;;19861:15;;;;19856:2;19841:18;;19834:43;19908:3;19893:19;19886:35;;;;19602:325;;-1:-1:-1;19602:325:8:o;19932:665::-;20215:44;20249:9;20241:6;20215:44;:::i;:::-;-1:-1:-1;;;;;20333:15:8;;;20328:2;20313:18;;20306:43;20380:2;20365:18;;20358:34;;;20428:15;;20423:2;20408:18;;20401:43;20475:3;20460:19;;20453:35;;;20525:3;20286;20504:19;;20497:32;;;20196:4;;20546:45;;20571:19;;20563:6;20546:45;:::i;20602:734::-;20938:44;20972:9;20964:6;20938:44;:::i;:::-;-1:-1:-1;;;;;21056:15:8;;;21051:2;21036:18;;21029:43;21103:2;21088:18;;21081:34;;;;21151:15;;21146:2;21131:18;;21124:43;21198:3;21183:19;;21176:35;;;;21248:3;21009;21227:19;;21220:32;;;20919:4;21268:19;;;21261:33;21326:3;21311:19;;20928:408;-1:-1:-1;20928:408:8:o;21341:779::-;21668:44;21702:9;21694:6;21668:44;:::i;:::-;21743:2;21728:18;;21721:34;;;-1:-1:-1;;;;;21829:15:8;;;21824:2;21809:18;;21802:43;21881:15;;;21876:2;21861:18;;21854:43;21934:15;;21928:3;21913:19;;21906:44;21782:3;21966:19;;21959:35;;;22031:3;22025;22010:19;;22003:32;;;21649:4;;22052:62;;22094:19;;22086:6;22078;22052:62;:::i;:::-;22044:70;21658:462;-1:-1:-1;;;;;;;;;;21658:462:8:o;27092:400::-;27294:2;27276:21;;;27333:2;27313:18;;;27306:30;27372:34;27367:2;27352:18;;27345:62;-1:-1:-1;;;27438:2:8;27423:18;;27416:34;27482:3;27467:19;;27266:226::o;32477:363::-;32582:9;32593;32635:8;32623:10;32620:24;32617:2;;;32665:9;32654;32647:28;32617:2;32702:6;32692:8;32689:20;32686:2;;;32730:9;32719;32712:28;32686:2;-1:-1:-1;;32764:23:8;;;32809:25;;;;;-1:-1:-1;32607:233:8:o;32845:128::-;32885:3;32916:1;32912:6;32909:1;32906:13;32903:2;;;32922:18;;:::i;:::-;-1:-1:-1;32958:9:8;;32893:80::o;32978:228::-;33017:3;33045:10;33082:2;33079:1;33075:10;33112:2;33109:1;33105:10;33143:3;33139:2;33135:12;33130:3;33127:21;33124:2;;;33151:18;;:::i;:::-;33187:13;;33025:181;-1:-1:-1;;;;33025:181:8:o;33211:120::-;33251:1;33277;33267:2;;33282:18;;:::i;:::-;-1:-1:-1;33316:9:8;;33257:74::o;33336:191::-;33375:1;33401:10;33438:2;33435:1;33431:10;33460:3;33450:2;;33467:18;;:::i;:::-;33505:10;;33501:20;;;;;33381:146;-1:-1:-1;;33381:146:8:o;33532:168::-;33572:7;33638:1;33634;33630:6;33626:14;33623:1;33620:21;33615:1;33608:9;33601:17;33597:45;33594:2;;;33645:18;;:::i;:::-;-1:-1:-1;33685:9:8;;33584:116::o;33705:262::-;33744:7;33776:10;33813:2;33810:1;33806:10;33843:2;33840:1;33836:10;33899:3;33895:2;33891:12;33886:3;33883:21;33876:3;33869:11;33862:19;33858:47;33855:2;;;33908:18;;:::i;:::-;33948:13;;33756:211;-1:-1:-1;;;;33756:211:8:o;33972:125::-;34012:4;34040:1;34037;34034:8;34031:2;;;34045:18;;:::i;:::-;-1:-1:-1;34082:9:8;;34021:76::o;34102:221::-;34141:4;34170:10;34230;;;;34200;;34252:12;;;34249:2;;;34267:18;;:::i;:::-;34304:13;;34150:173;-1:-1:-1;;;34150:173:8:o;34328:195::-;34366:4;34403;34400:1;34396:12;34435:4;34432:1;34428:12;34460:3;34455;34452:12;34449:2;;;34467:18;;:::i;:::-;34504:13;;;34375:148;-1:-1:-1;;;34375:148:8:o;34528:258::-;34600:1;34610:113;34624:6;34621:1;34618:13;34610:113;;;34700:11;;;34694:18;34681:11;;;34674:39;34646:2;34639:10;34610:113;;;34741:6;34738:1;34735:13;34732:2;;;-1:-1:-1;;34776:1:8;34758:16;;34751:27;34581:205::o;34791:346::-;34901:2;34882:13;;-1:-1:-1;;34878:27:8;34866:40;;-1:-1:-1;;;;;34921:34:8;;34957:22;;;34918:62;34915:2;;;35022:10;35017:3;35013:20;35010:1;35003:31;35057:4;35054:1;35047:15;35085:4;35082:1;35075:15;34915:2;35116;35109:22;-1:-1:-1;;34838:299:8:o;35142:201::-;35180:3;35208:10;35253:2;35246:5;35242:14;35280:2;35271:7;35268:15;35265:2;;;35286:18;;:::i;:::-;35335:1;35322:15;;35188:155;-1:-1:-1;;;35188:155:8:o;35348:175::-;35385:3;35429:4;35422:5;35418:16;35458:4;35449:7;35446:17;35443:2;;;35466:18;;:::i;:::-;35515:1;35502:15;;35393:130;-1:-1:-1;;35393:130:8:o;35528:183::-;35559:1;35585:10;35622:2;35619:1;35615:10;35644:3;35634:2;;35651:18;;:::i;:::-;35689:10;;35685:20;;;;;35565:146;-1:-1:-1;;35565:146:8:o;35716:127::-;35777:10;35772:3;35768:20;35765:1;35758:31;35808:4;35805:1;35798:15;35832:4;35829:1;35822:15;35848:127;35909:10;35904:3;35900:20;35897:1;35890:31;35940:4;35937:1;35930:15;35964:4;35961:1;35954:15;35980:185;36015:3;36057:1;36039:16;36036:23;36033:2;;;36107:1;36102:3;36097;36082:27;36138:10;36133:3;36129:20;36033:2;36023:142;:::o;36170:671::-;36209:3;36251:4;36233:16;36230:26;36227:2;;;36217:624;:::o;36227:2::-;36293;36287:9;-1:-1:-1;;36358:16:8;36354:25;;36351:1;36287:9;36330:50;36409:4;36403:11;36433:16;-1:-1:-1;;;;;36539:2:8;36532:4;36524:6;36520:17;36517:25;36512:2;36504:6;36501:14;36498:45;36495:2;;;36546:5;;;;;36217:624;:::o;36495:2::-;36583:6;36577:4;36573:17;36562:28;;36619:3;36613:10;36646:2;36638:6;36635:14;36632:2;;;36652:5;;;;;;36217:624;:::o;36632:2::-;36736;36717:16;36711:4;36707:27;36703:36;36696:4;36687:6;36682:3;36678:16;36674:27;36671:69;36668:2;;;36743:5;;;;;;36217:624;:::o;36668:2::-;36759:57;36810:4;36801:6;36793;36789:19;36785:30;36779:4;36759:57;:::i;:::-;-1:-1:-1;36832:3:8;;36217:624;-1:-1:-1;;;;;36217:624:8:o;36846:131::-;-1:-1:-1;;;;;36921:31:8;;36911:42;;36901:2;;36967:1;36964;36957:12;36982:131;-1:-1:-1;;;;;;37056:32:8;;37046:43;;37036:2;;37103:1;37100;37093:12", + "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.4;\n\nimport \"./TokenTracker.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\ncontract ONEWallet is TokenTracker {\n event InsufficientFund(uint256 amount, uint256 balance, address dest);\n event ExceedDailyLimit(uint256 amount, uint256 limit, uint256 current, address dest);\n event UnknownTransferError(address dest);\n event LastResortAddressNotSet();\n event PaymentReceived(uint256 amount, address from);\n event PaymentSent(uint256 amount, address dest);\n event AutoRecoveryTriggered(address from);\n event RecoveryFailure();\n\n /// In future versions, it is planned that we may allow the user to extend the wallet's life through a function call. When that is implemented, the following variables may no longer be immutable, with the exception of root which shall serve as an identifier of the wallet\n bytes32 immutable root; // Note: @ivan brought up a good point in reducing this to 16-bytes so hash of two consecutive nodes can be done in a single word (to save gas and reduce blockchain clutter). Let's not worry about that for now and re-evalaute this later.\n uint8 immutable height; // including the root. e.g. for a tree with 4 leaves, the height is 3.\n uint8 immutable interval; // otp interval in seconds, default is 30\n uint32 immutable t0; // starting time block (effectiveTime (in ms) / interval)\n uint32 immutable lifespan; // in number of block (e.g. 1 block per [interval] seconds)\n uint8 immutable maxOperationsPerInterval; // number of transactions permitted per OTP interval. Each transaction shall have a unique nonce. The nonce is auto-incremented within each interval\n uint32 immutable _numLeaves; // 2 ** (height - 1)\n\n /// global mutable variables\n address payable lastResortAddress; // where money will be sent during a recovery process (or when the wallet is beyond its lifespan)\n uint256 dailyLimit; // uint128 is sufficient, but uint256 is more efficient since EVM works with 32-byte words.\n uint256 spentToday; // note: instead of tracking the money spent for the last 24h, we are simply tracking money spent per 24h block based on UTC time. It is good enough for now, but we may want to change this later.\n uint32 lastTransferDay;\n\n /// nonce tracking\n mapping(uint32 => uint8) nonces; // keys: otp index (=timestamp in seconds / interval - t0); values: the expected nonce for that otp interval. An reveal with a nonce less than the expected value will be rejected\n uint32[] nonceTracker; // list of nonces keys that have a non-zero value. keys cannot possibly result a successful reveal (indices beyond REVEAL_MAX_DELAY old) are auto-deleted during a clean up procedure that is called every time the nonces are incremented for some key. For each deleted key, the corresponding key in nonces will also be deleted. So the size of nonceTracker and nonces are both bounded.\n\n // constants\n uint32 constant REVEAL_MAX_DELAY = 60;\n uint32 constant SECONDS_PER_DAY = 86400;\n uint256 constant AUTO_RECOVERY_TRIGGER_AMOUNT = 1 ether;\n uint32 constant MAX_COMMIT_SIZE = 120;\n\n uint32 constant majorVersion = 0x7; // a change would require client to migrate\n uint32 constant minorVersion = 0x3; // a change would not require the client to migrate\n\n enum OperationType {\n TRACK, UNTRACK, TRANSFER_TOKEN, OVERRIDE_TRACK, TRANSFER, SET_RECOVERY_ADDRESS, RECOVER,\n REPLACE // reserved, not implemented yet. This is for replacing the root and set up new parameters (t0, lifespan)\n }\n /// commit management\n struct Commit {\n bytes32 hash;\n bytes32 paramsHash;\n bytes32 verificationHash;\n uint32 timestamp;\n bool completed;\n }\n\n bytes32[] commits; // self-clean on commit (auto delete commits that are beyond REVEAL_MAX_DELAY), so it's bounded by the number of commits an attacker can spam within REVEAL_MAX_DELAY time in the worst case, which is not too bad.\n mapping(bytes32 => Commit[]) commitLocker;\n\n\n constructor(bytes32 root_, uint8 height_, uint8 interval_, uint32 t0_, uint32 lifespan_, uint8 maxOperationsPerInterval_,\n address payable lastResortAddress_, uint256 dailyLimit_)\n {\n root = root_;\n height = height_;\n interval = interval_;\n t0 = t0_;\n lifespan = lifespan_;\n lastResortAddress = lastResortAddress_;\n dailyLimit = dailyLimit_;\n maxOperationsPerInterval = maxOperationsPerInterval_;\n _numLeaves = uint32(2 ** (height_ - 1));\n }\n\n receive() external payable {\n emit PaymentReceived(msg.value, msg.sender);\n if (msg.value != AUTO_RECOVERY_TRIGGER_AMOUNT) {\n return;\n }\n if (msg.sender != lastResortAddress) {\n return;\n }\n if (lastResortAddress == address(0)) {\n return;\n }\n if (msg.sender == address(this)) {\n return;\n }\n emit AutoRecoveryTriggered(msg.sender);\n require(_drain());\n }\n\n\n function retire() external returns (bool)\n {\n require(uint32(block.timestamp / interval) - t0 > lifespan, \"Too early to retire\");\n require(lastResortAddress != address(0), \"Last resort address is not set\");\n require(_drain(), \"Recovery failed\");\n return true;\n }\n\n function getInfo() external view returns (bytes32, uint8, uint8, uint32, uint32, uint8, address, uint256)\n {\n return (root, height, interval, t0, lifespan, maxOperationsPerInterval, lastResortAddress, dailyLimit);\n }\n\n function getVersion() external pure returns (uint32, uint32)\n {\n return (majorVersion, minorVersion);\n }\n\n function getCurrentSpending() external view returns (uint256, uint256)\n {\n return (spentToday, lastTransferDay);\n }\n\n function getNonce() external view returns (uint8)\n {\n uint32 index = uint32(block.timestamp) / interval - t0;\n return nonces[index];\n }\n\n function getCommits() external pure returns (bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory){\n revert(\"Deprecated\");\n }\n\n function getAllCommits() external view returns (bytes32[] memory, bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory)\n {\n uint32 numCommits = 0;\n for (uint32 i = 0; i < commits.length; i++) {\n Commit[] storage cc = commitLocker[commits[i]];\n numCommits += uint32(cc.length);\n }\n bytes32[] memory hashes = new bytes32[](numCommits);\n bytes32[] memory paramHashes = new bytes32[](numCommits);\n bytes32[] memory verificationHashes = new bytes32[](numCommits);\n uint32[] memory timestamps = new uint32[](numCommits);\n bool[] memory completed = new bool[](numCommits);\n uint32 index = 0;\n for (uint32 i = 0; i < commits.length; i++) {\n Commit[] storage cc = commitLocker[commits[i]];\n for (uint32 j = 0; j < cc.length; j++) {\n Commit storage c = cc[j];\n hashes[index] = c.hash;\n paramHashes[index] = c.paramsHash;\n verificationHashes[index] = c.verificationHash;\n timestamps[index] = c.timestamp;\n completed[index] = c.completed;\n index++;\n }\n }\n return (hashes, paramHashes, verificationHashes, timestamps, completed);\n }\n\n function findCommit(bytes32 /*hash*/) external pure returns (bytes32, bytes32, uint32, bool){\n revert(\"Deprecated\");\n }\n\n function lookupCommit(bytes32 hash) external view returns (bytes32[] memory, bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory){\n Commit[] storage cc = commitLocker[hash];\n bytes32[] memory hashes = new bytes32[](cc.length);\n bytes32[] memory paramHashes = new bytes32[](cc.length);\n bytes32[] memory verificationHashes = new bytes32[](cc.length);\n uint32[] memory timestamps = new uint32[](cc.length);\n bool[] memory completed = new bool[](cc.length);\n for (uint32 i = 0; i < cc.length; i++) {\n Commit storage c = cc[i];\n hashes[i] = c.hash;\n paramHashes[i] = c.paramsHash;\n verificationHashes[i] = c.verificationHash;\n timestamps[i] = c.timestamp;\n completed[i] = c.completed;\n }\n return (hashes, paramHashes, verificationHashes, timestamps, completed);\n }\n\n function commit(bytes32 hash, bytes32 paramsHash, bytes32 verificationHash) external {\n _cleanupCommits();\n Commit memory nc = Commit(hash, paramsHash, verificationHash, uint32(block.timestamp), false);\n require(commits.length < MAX_COMMIT_SIZE, \"Too many commits\");\n commits.push(hash);\n commitLocker[hash].push(nc);\n }\n\n /// This function sends all remaining funds of the wallet to `lastResortAddress`. The caller should verify that `lastResortAddress` is not null.\n /// TODO: also transfer all tracked ERC20, 721, 1155 tokens to `lastResortAddress`\n function _drain() internal returns (bool) {\n // this may be triggered after revealing the proof, and we must prevent revert in all cases\n (bool success,) = lastResortAddress.call{value : address(this).balance}(\"\");\n return success;\n }\n\n function _transfer(address payable dest, uint256 amount) internal returns (bool) {\n uint32 day = uint32(block.timestamp / SECONDS_PER_DAY);\n if (day > lastTransferDay) {\n spentToday = 0;\n lastTransferDay = day;\n }\n if (spentToday + amount > dailyLimit) {\n emit ExceedDailyLimit(amount, dailyLimit, spentToday, dest);\n return false;\n }\n if (address(this).balance < amount) {\n emit InsufficientFund(amount, address(this).balance, dest);\n return false;\n }\n spentToday += amount;\n (bool success,) = dest.call{value : amount}(\"\");\n // we do not want to revert the whole transaction if this operation fails, since EOTP is already revealed\n if (!success) {\n spentToday -= amount;\n emit UnknownTransferError(dest);\n return false;\n }\n\n emit PaymentSent(amount, dest);\n return true;\n }\n\n function _recover() internal returns (bool){\n if (lastResortAddress == address(0)) {\n emit LastResortAddressNotSet();\n return false;\n }\n if (!_drain()) {\n emit RecoveryFailure();\n return false;\n }\n return true;\n }\n\n function _setRecoveryAddress(address payable lastResortAddress_) internal {\n require(lastResortAddress == address(0), \"Last resort address is already set\");\n lastResortAddress = lastResortAddress_;\n }\n\n function _transferToken(TokenType tokenType, address contractAddress, uint256 tokenId, address dest, uint256 amount, bytes memory data) internal {\n if (tokenType == TokenType.ERC20) {\n try IERC20(contractAddress).transfer(dest, amount) returns (bool success){\n if (success) {\n _trackToken(tokenType, contractAddress, tokenId);\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n return;\n }\n emit TokenTransferFailed(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n } else if (tokenType == TokenType.ERC721) {\n try IERC721(contractAddress).safeTransferFrom(address(this), dest, tokenId, data){\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n } else if (tokenType == TokenType.ERC1155) {\n try IERC1155(contractAddress).safeTransferFrom(address(this), dest, tokenId, amount, data) {\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n }\n }\n\n /// Provides commitHash, paramsHash, and verificationHash given the parameters\n function _getRevealHash(bytes32 neighbor, uint32 indexWithNonce, bytes32 eotp,\n OperationType operationType, TokenType tokenType, address contractAddress, uint256 tokenId, address dest, uint256 amount, bytes calldata data) pure internal returns (bytes32, bytes32) {\n bytes32 hash = keccak256(bytes.concat(neighbor, bytes32(bytes4(indexWithNonce)), eotp));\n bytes32 paramsHash = bytes32(0);\n if (operationType == OperationType.TRANSFER) {\n paramsHash = keccak256(bytes.concat(bytes32(bytes20(address(dest))), bytes32(amount)));\n } else if (operationType == OperationType.RECOVER) {\n paramsHash = keccak256(data);\n } else if (operationType == OperationType.SET_RECOVERY_ADDRESS) {\n paramsHash = keccak256(bytes.concat(bytes32(bytes20(address(dest)))));\n } else {\n bytes memory packed = bytes.concat(\n bytes32(uint256(operationType)),\n bytes32(uint256(tokenType)),\n bytes32(bytes20(contractAddress)),\n bytes32(tokenId),\n bytes32(bytes20(dest)),\n bytes32(amount),\n data\n );\n paramsHash = keccak256(bytes.concat(packed));\n }\n return (hash, paramsHash);\n }\n\n\n function reveal(bytes32[] calldata neighbors, uint32 indexWithNonce, bytes32 eotp,\n OperationType operationType, TokenType tokenType, address contractAddress, uint256 tokenId, address payable dest, uint256 amount, bytes calldata data)\n external {\n _isCorrectProof(neighbors, indexWithNonce, eotp);\n if (indexWithNonce == _numLeaves - 1) {\n require(operationType == OperationType.RECOVER, \"Last operation reserved for recover\");\n }\n (bytes32 commitHash, bytes32 paramsHash) = _getRevealHash(neighbors[0], indexWithNonce, eotp,\n operationType, tokenType, contractAddress, tokenId, dest, amount, data);\n uint32 commitIndex = _verifyReveal(commitHash, indexWithNonce, paramsHash, eotp);\n _completeReveal(commitHash, commitIndex);\n // No revert should occur below this point\n if (operationType == OperationType.TRACK) {\n if (data.length > 0) {\n _multiTrack(data);\n } else {\n _trackToken(tokenType, contractAddress, tokenId);\n }\n } else if (operationType == OperationType.UNTRACK) {\n if (data.length > 0) {\n _untrackToken(tokenType, contractAddress, tokenId);\n } else {\n _multiUntrack(data);\n }\n } else if (operationType == OperationType.TRANSFER_TOKEN) {\n _transferToken(tokenType, contractAddress, tokenId, dest, amount, data);\n } else if (operationType == OperationType.OVERRIDE_TRACK) {\n _overrideTrackWithBytes(data);\n } else if (operationType == OperationType.TRANSFER) {\n _transfer(dest, amount);\n } else if (operationType == OperationType.RECOVER) {\n _recover();\n } else if (operationType == OperationType.SET_RECOVERY_ADDRESS) {\n _setRecoveryAddress(dest);\n }\n }\n\n /// This is just a wrapper around a modifier previously called `isCorrectProof`, to avoid \"Stack too deep\" error. Duh.\n function _isCorrectProof(bytes32[] calldata neighbors, uint32 position, bytes32 eotp) view internal {\n require(neighbors.length == height - 1, \"Not enough neighbors provided\");\n bytes32 h = sha256(bytes.concat(eotp));\n if (position == _numLeaves - 1) {\n // special case: recover only\n h = eotp;\n }\n for (uint8 i = 0; i < height - 1; i++) {\n if ((position & 0x01) == 0x01) {\n h = sha256(bytes.concat(neighbors[i], h));\n } else {\n h = sha256(bytes.concat(h, neighbors[i]));\n }\n position >>= 1;\n }\n require(root == h, \"Proof is incorrect\");\n return;\n }\n\n /// Remove old commits from storage, where the commit's timestamp is older than block.timestamp - REVEAL_MAX_DELAY. The purpose is to remove dangling data from blockchain, and prevent commits grow unbounded. This is executed at commit time. The committer pays for the gas of this cleanup. Therefore, any attacker who intend to spam commits would be disincentivized. The attacker would not succeed in preventing any normal operation by the user.\n function _cleanupCommits() internal {\n uint32 timelyIndex = 0;\n uint32 bt = uint32(block.timestamp);\n // go through past commits chronologically, starting from the oldest, and find the first commit that is not older than block.timestamp - REVEAL_MAX_DELAY.\n for (; timelyIndex < commits.length; timelyIndex++) {\n bytes32 hash = commits[timelyIndex];\n Commit[] storage cc = commitLocker[hash];\n // We may skip because the commit is already cleaned up and is considered \"untimely\".\n if (cc.length == 0) {\n continue;\n }\n // We take the first entry in `cc` as the timestamp for all commits under commit hash `hash`, because the first entry represents the oldest commit and only commit if an attacker is not attacking this wallet. If an attacker is front-running commits, the first entry may be from the attacker, but its timestamp should be identical to the user's commit (or close enough to the user's commit, if network is a bit congested)\n Commit storage c = cc[0];\n unchecked {\n if (c.timestamp >= bt - REVEAL_MAX_DELAY) {\n break;\n }\n }\n }\n // Now `timelyIndex` holds the index of the first commit that is timely. All commits at an index less than `timelyIndex` must be deleted;\n if (timelyIndex == 0) {\n // no commit is older than block.timestamp - REVEAL_MAX_DELAY. Nothing needs to be cleaned up\n return;\n }\n // Delete Commit instances for commits that are are older than block.timestamp - REVEAL_MAX_DELAY\n for (uint32 i = 0; i < timelyIndex; i++) {\n bytes32 hash = commits[i];\n Commit[] storage cc = commitLocker[hash];\n for (uint32 j = 0; j < cc.length; j++) {\n delete cc[j];\n }\n delete commitLocker[hash];\n }\n // Shift all commit hashes up by `timelyIndex` positions, and discard `commitIndex` number of hashes at the end of the array\n // This process erases old commits\n uint32 len = uint32(commits.length);\n for (uint32 i = timelyIndex; i < len; i++) {\n unchecked{\n commits[i - timelyIndex] = commits[i];\n }\n }\n for (uint32 i = 0; i < timelyIndex; i++) {\n commits.pop();\n }\n // TODO (@polymorpher): upgrade the above code after solidity implements proper support for struct-array memory-storage copy operation.\n }\n\n function _isRevealTimely(uint32 commitTime) view internal returns (bool)\n {\n return uint32(block.timestamp) - commitTime < REVEAL_MAX_DELAY;\n }\n\n /// This function verifies that the first valid entry with respect to the given `eotp` in `commitLocker[hash]` matches the provided `paramsHash` and `verificationHash`. An entry is valid with respect to `eotp` iff `h3(entry.paramsHash . eotp)` equals `entry.verificationHash`\n function _verifyReveal(bytes32 hash, uint32 indexWithNonce, bytes32 paramsHash, bytes32 eotp) view internal returns (uint32)\n {\n uint32 index = indexWithNonce / maxOperationsPerInterval;\n uint8 nonce = uint8(indexWithNonce % maxOperationsPerInterval);\n Commit[] storage cc = commitLocker[hash];\n require(cc.length > 0, \"No commit found\");\n for (uint32 i = 0; i < cc.length; i++) {\n Commit storage c = cc[i];\n bytes32 expectedVerificationHash = keccak256(bytes.concat(c.paramsHash, eotp));\n if (c.verificationHash != expectedVerificationHash) {\n // Invalid entry. Ignore\n continue;\n }\n require(c.paramsHash == paramsHash, \"Parameter hash mismatch\");\n uint32 counter = c.timestamp / interval - t0;\n require(counter == index, \"Index - timestamp mismatch\");\n uint8 expectedNonce = nonces[counter];\n require(nonce >= expectedNonce, \"Nonce too low\");\n require(!c.completed, \"Commit already completed\");\n // This normally should not happen, but when the network is congested (regardless of whether due to an attacker's malicious acts or not), the legitimate reveal may become untimely. This may happen before the old commit is cleaned up by another fresh commit. We enforce this restriction so that the attacker would not have a lot of time to reverse-engineer a single EOTP or leaf using an old commit.\n require(_isRevealTimely(c.timestamp), \"Reveal too late\");\n return i;\n }\n revert(\"No valid commit\");\n }\n\n function _completeReveal(bytes32 commitHash, uint32 commitIndex) internal {\n Commit[] storage cc = commitLocker[commitHash];\n require(cc.length > 0, \"Invalid commit hash\");\n require(cc.length > commitIndex, \"Invalid commitIndex\");\n Commit storage c = cc[commitIndex];\n require(c.timestamp > 0, \"Invalid commit timestamp\");\n // should not happen\n uint32 index = uint32(c.timestamp) / interval - t0;\n _incrementNonce(index);\n _cleanupNonces();\n c.completed = true;\n }\n\n /// This function removes all tracked nonce values correspond to interval blocks that are older than block.timestamp - REVEAL_MAX_DELAY. In doing so, extraneous data in the blockchain is removed, and both nonces and nonceTracker are bounded in size.\n function _cleanupNonces() internal {\n uint32 tMin = uint32(block.timestamp) - REVEAL_MAX_DELAY;\n uint32 indexMinUnadjusted = tMin / interval;\n uint32 indexMin = 0;\n if (indexMinUnadjusted > t0) {\n indexMin = indexMinUnadjusted - t0;\n }\n uint32[] memory nonZeroNonces = new uint32[](nonceTracker.length);\n uint32 numValidIndices = 0;\n for (uint8 i = 0; i < nonceTracker.length; i++) {\n uint32 index = nonceTracker[i];\n if (index < indexMin) {\n delete nonces[index];\n } else {\n nonZeroNonces[numValidIndices] = index;\n unchecked {\n numValidIndices++;\n }\n }\n }\n // TODO (@polymorpher): This can be later made more efficient by inline assembly. https://ethereum.stackexchange.com/questions/51891/how-to-pop-from-decrease-the-length-of-a-memory-array-in-solidity\n uint32[] memory reducedArray = new uint32[](numValidIndices);\n for (uint8 i = 0; i < numValidIndices; i++) {\n reducedArray[i] = nonZeroNonces[i];\n }\n nonceTracker = reducedArray;\n }\n\n function _incrementNonce(uint32 index) internal {\n uint8 v = nonces[index];\n if (v == 0) {\n nonceTracker.push(index);\n }\n unchecked{\n nonces[index] = v + 1;\n }\n }\n}\n", "sourcePath": "/Users/polymorpher/git/one-wallet/code/contracts/ONEWallet.sol", "ast": { - "absolutePath": "/Users/polymorpher/git/one-wallet/code/contracts/ONEWallet.sol", + "absolutePath": "project:/contracts/ONEWallet.sol", "exportedSymbols": { "IERC1155": [ - 3551 + 121 ], "IERC1155Receiver": [ - 3592 + 162 ], "IERC165": [ - 3816 + 386 ], "IERC20": [ - 3670 + 240 ], "IERC721": [ - 3786 + 356 ], "IERC721Receiver": [ - 3804 + 374 ], "ONEWallet": [ - 2161 + 2592 ], "TokenTracker": [ - 3429 + 3860 ] }, - "id": 2162, + "id": 2593, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { - "id": 1, + "id": 388, "literals": [ "solidity", "^", @@ -26324,29 +28008,29 @@ ".4" ], "nodeType": "PragmaDirective", - "src": "39:23:0" + "src": "39:23:6" }, { - "absolutePath": "/Users/polymorpher/git/one-wallet/code/contracts/TokenTracker.sol", + "absolutePath": "project:/contracts/TokenTracker.sol", "file": "./TokenTracker.sol", - "id": 2, + "id": 389, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2162, - "sourceUnit": 3430, - "src": "64:28:0", + "scope": 2593, + "sourceUnit": 3861, + "src": "64:28:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "id": 3, + "id": 390, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2162, - "sourceUnit": 3671, - "src": "93:56:0", + "scope": 2593, + "sourceUnit": 241, + "src": "93:56:6", "symbolAliases": [], "unitAlias": "" }, @@ -26355,52 +28039,52 @@ "baseContracts": [ { "baseName": { - "id": 4, + "id": 391, "name": "TokenTracker", "nodeType": "IdentifierPath", - "referencedDeclaration": 3429, - "src": "173:12:0" + "referencedDeclaration": 3860, + "src": "173:12:6" }, - "id": 5, + "id": 392, "nodeType": "InheritanceSpecifier", - "src": "173:12:0" + "src": "173:12:6" } ], "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 2161, + "id": 2592, "linearizedBaseContracts": [ - 2161, - 3429, - 3592, - 3816, - 3804 + 2592, + 3860, + 162, + 386, + 374 ], "name": "ONEWallet", - "nameLocation": "160:9:0", + "nameLocation": "160:9:6", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, - "id": 13, + "id": 400, "name": "InsufficientFund", - "nameLocation": "198:16:0", + "nameLocation": "198:16:6", "nodeType": "EventDefinition", "parameters": { - "id": 12, + "id": 399, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7, + "id": 394, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "223:6:0", + "nameLocation": "223:6:6", "nodeType": "VariableDeclaration", - "scope": 13, - "src": "215:14:0", + "scope": 400, + "src": "215:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26408,10 +28092,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6, + "id": 393, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "215:7:0", + "src": "215:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26421,14 +28105,14 @@ }, { "constant": false, - "id": 9, + "id": 396, "indexed": false, "mutability": "mutable", "name": "balance", - "nameLocation": "239:7:0", + "nameLocation": "239:7:6", "nodeType": "VariableDeclaration", - "scope": 13, - "src": "231:15:0", + "scope": 400, + "src": "231:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26436,10 +28120,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8, + "id": 395, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "231:7:0", + "src": "231:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26449,14 +28133,14 @@ }, { "constant": false, - "id": 11, + "id": 398, "indexed": false, "mutability": "mutable", "name": "dest", - "nameLocation": "256:4:0", + "nameLocation": "256:4:6", "nodeType": "VariableDeclaration", - "scope": 13, - "src": "248:12:0", + "scope": 400, + "src": "248:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26464,10 +28148,10 @@ "typeString": "address" }, "typeName": { - "id": 10, + "id": 397, "name": "address", "nodeType": "ElementaryTypeName", - "src": "248:7:0", + "src": "248:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -26477,30 +28161,30 @@ "visibility": "internal" } ], - "src": "214:47:0" + "src": "214:47:6" }, - "src": "192:70:0" + "src": "192:70:6" }, { "anonymous": false, - "id": 23, + "id": 410, "name": "ExceedDailyLimit", - "nameLocation": "273:16:0", + "nameLocation": "273:16:6", "nodeType": "EventDefinition", "parameters": { - "id": 22, + "id": 409, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 15, + "id": 402, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "298:6:0", + "nameLocation": "298:6:6", "nodeType": "VariableDeclaration", - "scope": 23, - "src": "290:14:0", + "scope": 410, + "src": "290:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26508,10 +28192,10 @@ "typeString": "uint256" }, "typeName": { - "id": 14, + "id": 401, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "290:7:0", + "src": "290:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26521,14 +28205,14 @@ }, { "constant": false, - "id": 17, + "id": 404, "indexed": false, "mutability": "mutable", "name": "limit", - "nameLocation": "314:5:0", + "nameLocation": "314:5:6", "nodeType": "VariableDeclaration", - "scope": 23, - "src": "306:13:0", + "scope": 410, + "src": "306:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26536,10 +28220,10 @@ "typeString": "uint256" }, "typeName": { - "id": 16, + "id": 403, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "306:7:0", + "src": "306:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26549,14 +28233,14 @@ }, { "constant": false, - "id": 19, + "id": 406, "indexed": false, "mutability": "mutable", "name": "current", - "nameLocation": "329:7:0", + "nameLocation": "329:7:6", "nodeType": "VariableDeclaration", - "scope": 23, - "src": "321:15:0", + "scope": 410, + "src": "321:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26564,10 +28248,10 @@ "typeString": "uint256" }, "typeName": { - "id": 18, + "id": 405, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "321:7:0", + "src": "321:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26577,14 +28261,14 @@ }, { "constant": false, - "id": 21, + "id": 408, "indexed": false, "mutability": "mutable", "name": "dest", - "nameLocation": "346:4:0", + "nameLocation": "346:4:6", "nodeType": "VariableDeclaration", - "scope": 23, - "src": "338:12:0", + "scope": 410, + "src": "338:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26592,10 +28276,10 @@ "typeString": "address" }, "typeName": { - "id": 20, + "id": 407, "name": "address", "nodeType": "ElementaryTypeName", - "src": "338:7:0", + "src": "338:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -26605,30 +28289,30 @@ "visibility": "internal" } ], - "src": "289:62:0" + "src": "289:62:6" }, - "src": "267:85:0" + "src": "267:85:6" }, { "anonymous": false, - "id": 27, + "id": 414, "name": "UnknownTransferError", - "nameLocation": "363:20:0", + "nameLocation": "363:20:6", "nodeType": "EventDefinition", "parameters": { - "id": 26, + "id": 413, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25, + "id": 412, "indexed": false, "mutability": "mutable", "name": "dest", - "nameLocation": "392:4:0", + "nameLocation": "392:4:6", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "384:12:0", + "scope": 414, + "src": "384:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26636,10 +28320,10 @@ "typeString": "address" }, "typeName": { - "id": 24, + "id": 411, "name": "address", "nodeType": "ElementaryTypeName", - "src": "384:7:0", + "src": "384:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -26649,44 +28333,44 @@ "visibility": "internal" } ], - "src": "383:14:0" + "src": "383:14:6" }, - "src": "357:41:0" + "src": "357:41:6" }, { "anonymous": false, - "id": 29, + "id": 416, "name": "LastResortAddressNotSet", - "nameLocation": "409:23:0", + "nameLocation": "409:23:6", "nodeType": "EventDefinition", "parameters": { - "id": 28, + "id": 415, "nodeType": "ParameterList", "parameters": [], - "src": "432:2:0" + "src": "432:2:6" }, - "src": "403:32:0" + "src": "403:32:6" }, { "anonymous": false, - "id": 35, + "id": 422, "name": "PaymentReceived", - "nameLocation": "446:15:0", + "nameLocation": "446:15:6", "nodeType": "EventDefinition", "parameters": { - "id": 34, + "id": 421, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 31, + "id": 418, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "470:6:0", + "nameLocation": "470:6:6", "nodeType": "VariableDeclaration", - "scope": 35, - "src": "462:14:0", + "scope": 422, + "src": "462:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26694,10 +28378,10 @@ "typeString": "uint256" }, "typeName": { - "id": 30, + "id": 417, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "462:7:0", + "src": "462:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26707,14 +28391,14 @@ }, { "constant": false, - "id": 33, + "id": 420, "indexed": false, "mutability": "mutable", "name": "from", - "nameLocation": "486:4:0", + "nameLocation": "486:4:6", "nodeType": "VariableDeclaration", - "scope": 35, - "src": "478:12:0", + "scope": 422, + "src": "478:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26722,10 +28406,10 @@ "typeString": "address" }, "typeName": { - "id": 32, + "id": 419, "name": "address", "nodeType": "ElementaryTypeName", - "src": "478:7:0", + "src": "478:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -26735,30 +28419,30 @@ "visibility": "internal" } ], - "src": "461:30:0" + "src": "461:30:6" }, - "src": "440:52:0" + "src": "440:52:6" }, { "anonymous": false, - "id": 41, + "id": 428, "name": "PaymentSent", - "nameLocation": "503:11:0", + "nameLocation": "503:11:6", "nodeType": "EventDefinition", "parameters": { - "id": 40, + "id": 427, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 37, + "id": 424, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "523:6:0", + "nameLocation": "523:6:6", "nodeType": "VariableDeclaration", - "scope": 41, - "src": "515:14:0", + "scope": 428, + "src": "515:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26766,10 +28450,10 @@ "typeString": "uint256" }, "typeName": { - "id": 36, + "id": 423, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "515:7:0", + "src": "515:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26779,14 +28463,14 @@ }, { "constant": false, - "id": 39, + "id": 426, "indexed": false, "mutability": "mutable", "name": "dest", - "nameLocation": "539:4:0", + "nameLocation": "539:4:6", "nodeType": "VariableDeclaration", - "scope": 41, - "src": "531:12:0", + "scope": 428, + "src": "531:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26794,10 +28478,10 @@ "typeString": "address" }, "typeName": { - "id": 38, + "id": 425, "name": "address", "nodeType": "ElementaryTypeName", - "src": "531:7:0", + "src": "531:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -26807,30 +28491,30 @@ "visibility": "internal" } ], - "src": "514:30:0" + "src": "514:30:6" }, - "src": "497:48:0" + "src": "497:48:6" }, { "anonymous": false, - "id": 45, + "id": 432, "name": "AutoRecoveryTriggered", - "nameLocation": "556:21:0", + "nameLocation": "556:21:6", "nodeType": "EventDefinition", "parameters": { - "id": 44, + "id": 431, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 43, + "id": 430, "indexed": false, "mutability": "mutable", "name": "from", - "nameLocation": "586:4:0", + "nameLocation": "586:4:6", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "578:12:0", + "scope": 432, + "src": "578:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26838,10 +28522,10 @@ "typeString": "address" }, "typeName": { - "id": 42, + "id": 429, "name": "address", "nodeType": "ElementaryTypeName", - "src": "578:7:0", + "src": "578:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -26851,39 +28535,39 @@ "visibility": "internal" } ], - "src": "577:14:0" + "src": "577:14:6" }, - "src": "550:42:0" + "src": "550:42:6" }, { "anonymous": false, - "id": 47, + "id": 434, "name": "RecoveryFailure", - "nameLocation": "603:15:0", + "nameLocation": "603:15:6", "nodeType": "EventDefinition", "parameters": { - "id": 46, + "id": 433, "nodeType": "ParameterList", "parameters": [], - "src": "618:2:0" + "src": "618:2:6" }, - "src": "597:24:0" + "src": "597:24:6" }, { "constant": false, "documentation": { - "id": 48, + "id": 435, "nodeType": "StructuredDocumentation", - "src": "627:271:0", + "src": "627:271:6", "text": "In future versions, it is planned that we may allow the user to extend the wallet's life through a function call. When that is implemented, the following variables may no longer be immutable, with the exception of root which shall serve as an identifier of the wallet" }, - "id": 50, + "id": 437, "mutability": "immutable", "name": "root", - "nameLocation": "921:4:0", + "nameLocation": "921:4:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "903:22:0", + "scope": 2592, + "src": "903:22:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -26891,10 +28575,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 49, + "id": 436, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "903:7:0", + "src": "903:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -26904,13 +28588,13 @@ }, { "constant": false, - "id": 52, + "id": 439, "mutability": "immutable", "name": "height", - "nameLocation": "1185:6:0", + "nameLocation": "1185:6:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1169:22:0", + "scope": 2592, + "src": "1169:22:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -26918,10 +28602,10 @@ "typeString": "uint8" }, "typeName": { - "id": 51, + "id": 438, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1169:5:0", + "src": "1169:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -26931,13 +28615,13 @@ }, { "constant": false, - "id": 54, + "id": 441, "mutability": "immutable", "name": "interval", - "nameLocation": "1284:8:0", + "nameLocation": "1284:8:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1268:24:0", + "scope": 2592, + "src": "1268:24:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -26945,10 +28629,10 @@ "typeString": "uint8" }, "typeName": { - "id": 53, + "id": 440, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1268:5:0", + "src": "1268:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -26958,13 +28642,13 @@ }, { "constant": false, - "id": 56, + "id": 443, "mutability": "immutable", "name": "t0", - "nameLocation": "1357:2:0", + "nameLocation": "1357:2:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1340:19:0", + "scope": 2592, + "src": "1340:19:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -26972,10 +28656,10 @@ "typeString": "uint32" }, "typeName": { - "id": 55, + "id": 442, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1340:6:0", + "src": "1340:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -26985,13 +28669,13 @@ }, { "constant": false, - "id": 58, + "id": 445, "mutability": "immutable", "name": "lifespan", - "nameLocation": "1440:8:0", + "nameLocation": "1440:8:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1423:25:0", + "scope": 2592, + "src": "1423:25:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -26999,10 +28683,10 @@ "typeString": "uint32" }, "typeName": { - "id": 57, + "id": 444, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1423:6:0", + "src": "1423:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -27012,13 +28696,13 @@ }, { "constant": false, - "id": 60, + "id": 447, "mutability": "immutable", "name": "maxOperationsPerInterval", - "nameLocation": "1531:24:0", + "nameLocation": "1531:24:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1515:40:0", + "scope": 2592, + "src": "1515:40:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -27026,10 +28710,10 @@ "typeString": "uint8" }, "typeName": { - "id": 59, + "id": 446, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1515:5:0", + "src": "1515:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -27037,21 +28721,48 @@ }, "visibility": "internal" }, + { + "constant": false, + "id": 449, + "mutability": "immutable", + "name": "_numLeaves", + "nameLocation": "1727:10:6", + "nodeType": "VariableDeclaration", + "scope": 2592, + "src": "1710:27:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 448, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1710:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, { "constant": false, "documentation": { - "id": 61, + "id": 450, "nodeType": "StructuredDocumentation", - "src": "1711:28:0", + "src": "1765:28:6", "text": "global mutable variables" }, - "id": 63, + "id": 452, "mutability": "mutable", "name": "lastResortAddress", - "nameLocation": "1760:17:0", + "nameLocation": "1814:17:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1744:33:0", + "scope": 2592, + "src": "1798:33:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -27059,10 +28770,10 @@ "typeString": "address payable" }, "typeName": { - "id": 62, + "id": 451, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1744:15:0", + "src": "1798:15:6", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -27073,13 +28784,13 @@ }, { "constant": false, - "id": 65, + "id": 454, "mutability": "mutable", "name": "dailyLimit", - "nameLocation": "1889:10:0", + "nameLocation": "1943:10:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1881:18:0", + "scope": 2592, + "src": "1935:18:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -27087,10 +28798,10 @@ "typeString": "uint256" }, "typeName": { - "id": 64, + "id": 453, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1881:7:0", + "src": "1935:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27100,13 +28811,13 @@ }, { "constant": false, - "id": 67, + "id": 456, "mutability": "mutable", "name": "spentToday", - "nameLocation": "2005:10:0", + "nameLocation": "2059:10:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1997:18:0", + "scope": 2592, + "src": "2051:18:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -27114,10 +28825,10 @@ "typeString": "uint256" }, "typeName": { - "id": 66, + "id": 455, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1997:7:0", + "src": "2051:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27127,13 +28838,13 @@ }, { "constant": false, - "id": 69, + "id": 458, "mutability": "mutable", "name": "lastTransferDay", - "nameLocation": "2224:15:0", + "nameLocation": "2278:15:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "2217:22:0", + "scope": 2592, + "src": "2271:22:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -27141,10 +28852,10 @@ "typeString": "uint32" }, "typeName": { - "id": 68, + "id": 457, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2217:6:0", + "src": "2271:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -27155,18 +28866,18 @@ { "constant": false, "documentation": { - "id": 70, + "id": 459, "nodeType": "StructuredDocumentation", - "src": "2246:18:0", + "src": "2300:18:6", "text": "nonce tracking" }, - "id": 74, + "id": 463, "mutability": "mutable", "name": "nonces", - "nameLocation": "2294:6:0", + "nameLocation": "2348:6:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "2269:31:0", + "scope": 2592, + "src": "2323:31:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -27174,28 +28885,28 @@ "typeString": "mapping(uint32 => uint8)" }, "typeName": { - "id": 73, + "id": 462, "keyType": { - "id": 71, + "id": 460, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2277:6:0", + "src": "2331:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Mapping", - "src": "2269:24:0", + "src": "2323:24:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" }, "valueType": { - "id": 72, + "id": 461, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2287:5:0", + "src": "2341:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -27206,13 +28917,13 @@ }, { "constant": false, - "id": 77, + "id": 466, "mutability": "mutable", "name": "nonceTracker", - "nameLocation": "2494:12:0", + "nameLocation": "2548:12:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "2485:21:0", + "scope": 2592, + "src": "2539:21:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -27221,18 +28932,18 @@ }, "typeName": { "baseType": { - "id": 75, + "id": 464, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2485:6:0", + "src": "2539:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 76, + "id": 465, "nodeType": "ArrayTypeName", - "src": "2485:8:0", + "src": "2539:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -27242,13 +28953,13 @@ }, { "constant": true, - "id": 80, + "id": 469, "mutability": "constant", "name": "REVEAL_MAX_DELAY", - "nameLocation": "2928:16:0", + "nameLocation": "2982:16:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "2912:37:0", + "scope": 2592, + "src": "2966:37:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -27256,10 +28967,10 @@ "typeString": "uint32" }, "typeName": { - "id": 78, + "id": 467, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2912:6:0", + "src": "2966:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -27267,14 +28978,14 @@ }, "value": { "hexValue": "3630", - "id": 79, + "id": 468, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2947:2:0", + "src": "3001:2:6", "typeDescriptions": { "typeIdentifier": "t_rational_60_by_1", "typeString": "int_const 60" @@ -27285,13 +28996,13 @@ }, { "constant": true, - "id": 83, + "id": 472, "mutability": "constant", "name": "SECONDS_PER_DAY", - "nameLocation": "2971:15:0", + "nameLocation": "3025:15:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "2955:39:0", + "scope": 2592, + "src": "3009:39:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -27299,10 +29010,10 @@ "typeString": "uint32" }, "typeName": { - "id": 81, + "id": 470, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2955:6:0", + "src": "3009:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -27310,14 +29021,14 @@ }, "value": { "hexValue": "3836343030", - "id": 82, + "id": 471, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2989:5:0", + "src": "3043:5:6", "typeDescriptions": { "typeIdentifier": "t_rational_86400_by_1", "typeString": "int_const 86400" @@ -27328,13 +29039,13 @@ }, { "constant": true, - "id": 86, + "id": 475, "mutability": "constant", "name": "AUTO_RECOVERY_TRIGGER_AMOUNT", - "nameLocation": "3017:28:0", + "nameLocation": "3071:28:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "3000:55:0", + "scope": 2592, + "src": "3054:55:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -27342,10 +29053,10 @@ "typeString": "uint256" }, "typeName": { - "id": 84, + "id": 473, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3000:7:0", + "src": "3054:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27353,14 +29064,14 @@ }, "value": { "hexValue": "31", - "id": 85, + "id": 474, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3048:7:0", + "src": "3102:7:6", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -27372,13 +29083,13 @@ }, { "constant": true, - "id": 89, + "id": 478, "mutability": "constant", "name": "MAX_COMMIT_SIZE", - "nameLocation": "3077:15:0", + "nameLocation": "3131:15:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "3061:37:0", + "scope": 2592, + "src": "3115:37:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -27386,10 +29097,10 @@ "typeString": "uint32" }, "typeName": { - "id": 87, + "id": 476, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3061:6:0", + "src": "3115:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -27397,14 +29108,14 @@ }, "value": { "hexValue": "313230", - "id": 88, + "id": 477, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3095:3:0", + "src": "3149:3:6", "typeDescriptions": { "typeIdentifier": "t_rational_120_by_1", "typeString": "int_const 120" @@ -27415,13 +29126,13 @@ }, { "constant": true, - "id": 92, + "id": 481, "mutability": "constant", "name": "majorVersion", - "nameLocation": "3121:12:0", + "nameLocation": "3175:12:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "3105:34:0", + "scope": 2592, + "src": "3159:34:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -27429,10 +29140,10 @@ "typeString": "uint32" }, "typeName": { - "id": 90, + "id": 479, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3105:6:0", + "src": "3159:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -27440,14 +29151,14 @@ }, "value": { "hexValue": "307837", - "id": 91, + "id": 480, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3136:3:0", + "src": "3190:3:6", "typeDescriptions": { "typeIdentifier": "t_rational_7_by_1", "typeString": "int_const 7" @@ -27458,13 +29169,13 @@ }, { "constant": true, - "id": 95, + "id": 484, "mutability": "constant", "name": "minorVersion", - "nameLocation": "3205:12:0", + "nameLocation": "3259:12:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "3189:34:0", + "scope": 2592, + "src": "3243:34:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -27472,105 +29183,112 @@ "typeString": "uint32" }, "typeName": { - "id": 93, + "id": 482, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3189:6:0", + "src": "3243:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { - "hexValue": "307831", - "id": 94, + "hexValue": "307833", + "id": 483, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3220:3:0", + "src": "3274:3:6", "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" }, - "value": "0x1" + "value": "0x3" }, "visibility": "internal" }, { "canonicalName": "ONEWallet.OperationType", - "id": 103, + "id": 493, "members": [ { - "id": 96, + "id": 485, "name": "TRACK", - "nameLocation": "3311:5:0", + "nameLocation": "3365:5:6", "nodeType": "EnumValue", - "src": "3311:5:0" + "src": "3365:5:6" }, { - "id": 97, + "id": 486, "name": "UNTRACK", - "nameLocation": "3318:7:0", + "nameLocation": "3372:7:6", "nodeType": "EnumValue", - "src": "3318:7:0" + "src": "3372:7:6" }, { - "id": 98, + "id": 487, "name": "TRANSFER_TOKEN", - "nameLocation": "3327:14:0", + "nameLocation": "3381:14:6", "nodeType": "EnumValue", - "src": "3327:14:0" + "src": "3381:14:6" }, { - "id": 99, + "id": 488, "name": "OVERRIDE_TRACK", - "nameLocation": "3343:14:0", + "nameLocation": "3397:14:6", "nodeType": "EnumValue", - "src": "3343:14:0" + "src": "3397:14:6" }, { - "id": 100, + "id": 489, "name": "TRANSFER", - "nameLocation": "3359:8:0", + "nameLocation": "3413:8:6", "nodeType": "EnumValue", - "src": "3359:8:0" + "src": "3413:8:6" }, { - "id": 101, + "id": 490, "name": "SET_RECOVERY_ADDRESS", - "nameLocation": "3369:20:0", + "nameLocation": "3423:20:6", "nodeType": "EnumValue", - "src": "3369:20:0" + "src": "3423:20:6" }, { - "id": 102, + "id": 491, "name": "RECOVER", - "nameLocation": "3391:7:0", + "nameLocation": "3445:7:6", + "nodeType": "EnumValue", + "src": "3445:7:6" + }, + { + "id": 492, + "name": "REPLACE", + "nameLocation": "3462:7:6", "nodeType": "EnumValue", - "src": "3391:7:0" + "src": "3462:7:6" } ], "name": "OperationType", - "nameLocation": "3287:13:0", + "nameLocation": "3341:13:6", "nodeType": "EnumDefinition", - "src": "3282:122:0" + "src": "3336:245:6" }, { "canonicalName": "ONEWallet.Commit", - "id": 114, + "id": 504, "members": [ { "constant": false, - "id": 105, + "id": 495, "mutability": "mutable", "name": "hash", - "nameLocation": "3467:4:0", + "nameLocation": "3644:4:6", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "3459:12:0", + "scope": 504, + "src": "3636:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27578,10 +29296,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 104, + "id": 494, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3459:7:0", + "src": "3636:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27591,13 +29309,13 @@ }, { "constant": false, - "id": 107, + "id": 497, "mutability": "mutable", "name": "paramsHash", - "nameLocation": "3489:10:0", + "nameLocation": "3666:10:6", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "3481:18:0", + "scope": 504, + "src": "3658:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27605,10 +29323,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 106, + "id": 496, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3481:7:0", + "src": "3658:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27618,13 +29336,13 @@ }, { "constant": false, - "id": 109, + "id": 499, "mutability": "mutable", "name": "verificationHash", - "nameLocation": "3517:16:0", + "nameLocation": "3694:16:6", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "3509:24:0", + "scope": 504, + "src": "3686:24:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27632,10 +29350,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 108, + "id": 498, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3509:7:0", + "src": "3686:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27645,13 +29363,13 @@ }, { "constant": false, - "id": 111, + "id": 501, "mutability": "mutable", "name": "timestamp", - "nameLocation": "3550:9:0", + "nameLocation": "3727:9:6", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "3543:16:0", + "scope": 504, + "src": "3720:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27659,10 +29377,10 @@ "typeString": "uint32" }, "typeName": { - "id": 110, + "id": 500, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3543:6:0", + "src": "3720:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -27672,13 +29390,13 @@ }, { "constant": false, - "id": 113, + "id": 503, "mutability": "mutable", "name": "completed", - "nameLocation": "3574:9:0", + "nameLocation": "3751:9:6", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "3569:14:0", + "scope": 504, + "src": "3746:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27686,10 +29404,10 @@ "typeString": "bool" }, "typeName": { - "id": 112, + "id": 502, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3569:4:0", + "src": "3746:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27699,21 +29417,21 @@ } ], "name": "Commit", - "nameLocation": "3442:6:0", + "nameLocation": "3619:6:6", "nodeType": "StructDefinition", - "scope": 2161, - "src": "3435:155:0", + "scope": 2592, + "src": "3612:155:6", "visibility": "public" }, { "constant": false, - "id": 117, + "id": 507, "mutability": "mutable", "name": "commits", - "nameLocation": "3606:7:0", + "nameLocation": "3783:7:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "3596:17:0", + "scope": 2592, + "src": "3773:17:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -27722,18 +29440,18 @@ }, "typeName": { "baseType": { - "id": 115, + "id": 505, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3596:7:0", + "src": "3773:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 116, + "id": 506, "nodeType": "ArrayTypeName", - "src": "3596:9:0", + "src": "3773:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -27743,60 +29461,60 @@ }, { "constant": false, - "id": 123, + "id": 513, "mutability": "mutable", "name": "commitLocker", - "nameLocation": "3860:12:0", + "nameLocation": "4037:12:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "3831:41:0", + "scope": 2592, + "src": "4008:41:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit[])" }, "typeName": { - "id": 122, + "id": 512, "keyType": { - "id": 118, + "id": 508, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3839:7:0", + "src": "4016:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "3831:28:0", + "src": "4008:28:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit[])" }, "valueType": { "baseType": { - "id": 120, + "id": 510, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 119, + "id": 509, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "3850:6:0" + "referencedDeclaration": 504, + "src": "4027:6:6" }, - "referencedDeclaration": 114, - "src": "3850:6:0", + "referencedDeclaration": 504, + "src": "4027:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 121, + "id": 511, "nodeType": "ArrayTypeName", - "src": "3850:8:0", + "src": "4027:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } } @@ -27805,24 +29523,24 @@ }, { "body": { - "id": 174, + "id": 576, "nodeType": "Block", - "src": "4071:277:0", + "src": "4248:326:6", "statements": [ { "expression": { - "id": 144, + "id": 534, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 142, + "id": 532, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "4081:4:0", + "referencedDeclaration": 437, + "src": "4258:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -27831,41 +29549,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 143, + "id": 533, "name": "root_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "4088:5:0", + "referencedDeclaration": 515, + "src": "4265:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "4081:12:0", + "src": "4258:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 145, + "id": 535, "nodeType": "ExpressionStatement", - "src": "4081:12:0" + "src": "4258:12:6" }, { "expression": { - "id": 148, + "id": 538, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 146, + "id": 536, "name": "height", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "4103:6:0", + "referencedDeclaration": 439, + "src": "4280:6:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -27874,41 +29592,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 147, + "id": 537, "name": "height_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "4112:7:0", + "referencedDeclaration": 517, + "src": "4289:7:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4103:16:0", + "src": "4280:16:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 149, + "id": 539, "nodeType": "ExpressionStatement", - "src": "4103:16:0" + "src": "4280:16:6" }, { "expression": { - "id": 152, + "id": 542, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 150, + "id": 540, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "4129:8:0", + "referencedDeclaration": 441, + "src": "4306:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -27917,41 +29635,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 151, + "id": 541, "name": "interval_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "4140:9:0", + "referencedDeclaration": 519, + "src": "4317:9:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4129:20:0", + "src": "4306:20:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 153, + "id": 543, "nodeType": "ExpressionStatement", - "src": "4129:20:0" + "src": "4306:20:6" }, { "expression": { - "id": 156, + "id": 546, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 154, + "id": 544, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "4159:2:0", + "referencedDeclaration": 443, + "src": "4336:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -27960,41 +29678,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 155, + "id": 545, "name": "t0_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "4164:3:0", + "referencedDeclaration": 521, + "src": "4341:3:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4159:8:0", + "src": "4336:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 157, + "id": 547, "nodeType": "ExpressionStatement", - "src": "4159:8:0" + "src": "4336:8:6" }, { "expression": { - "id": 160, + "id": 550, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 158, + "id": 548, "name": "lifespan", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "4177:8:0", + "referencedDeclaration": 445, + "src": "4354:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28003,41 +29721,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 159, + "id": 549, "name": "lifespan_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "4188:9:0", + "referencedDeclaration": 523, + "src": "4365:9:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4177:20:0", + "src": "4354:20:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 161, + "id": 551, "nodeType": "ExpressionStatement", - "src": "4177:20:0" + "src": "4354:20:6" }, { "expression": { - "id": 164, + "id": 554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 162, + "id": 552, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "4207:17:0", + "referencedDeclaration": 452, + "src": "4384:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -28046,41 +29764,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 163, + "id": 553, "name": "lastResortAddress_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "4227:18:0", + "referencedDeclaration": 527, + "src": "4404:18:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "4207:38:0", + "src": "4384:38:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 165, + "id": 555, "nodeType": "ExpressionStatement", - "src": "4207:38:0" + "src": "4384:38:6" }, { "expression": { - "id": 168, + "id": 558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 166, + "id": 556, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "4255:10:0", + "referencedDeclaration": 454, + "src": "4432:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28089,41 +29807,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 167, + "id": 557, "name": "dailyLimit_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "4268:11:0", + "referencedDeclaration": 529, + "src": "4445:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4255:24:0", + "src": "4432:24:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 169, + "id": 559, "nodeType": "ExpressionStatement", - "src": "4255:24:0" + "src": "4432:24:6" }, { "expression": { - "id": 172, + "id": 562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 170, + "id": 560, "name": "maxOperationsPerInterval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "4289:24:0", + "referencedDeclaration": 447, + "src": "4466:24:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -28132,30 +29850,201 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 171, + "id": 561, "name": "maxOperationsPerInterval_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "4316:25:0", + "referencedDeclaration": 525, + "src": "4493:25:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4289:52:0", + "src": "4466:52:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 173, + "id": 563, "nodeType": "ExpressionStatement", - "src": "4289:52:0" + "src": "4466:52:6" + }, + { + "expression": { + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 564, + "name": "_numLeaves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "4528:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4548:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 568, + "name": "height_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "4554:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 569, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4564:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4554:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 571, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4553:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4548:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4541:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 565, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4541:6:6", + "typeDescriptions": {} + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4541:26:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "4528:39:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 575, + "nodeType": "ExpressionStatement", + "src": "4528:39:6" } ] }, - "id": 175, + "id": 577, "implemented": true, "kind": "constructor", "modifiers": [], @@ -28163,18 +30052,18 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 140, + "id": 530, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 125, + "id": 515, "mutability": "mutable", "name": "root_", - "nameLocation": "3900:5:0", + "nameLocation": "4077:5:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "3892:13:0", + "scope": 577, + "src": "4069:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28182,10 +30071,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 124, + "id": 514, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3892:7:0", + "src": "4069:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28195,13 +30084,13 @@ }, { "constant": false, - "id": 127, + "id": 517, "mutability": "mutable", "name": "height_", - "nameLocation": "3913:7:0", + "nameLocation": "4090:7:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "3907:13:0", + "scope": 577, + "src": "4084:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28209,10 +30098,10 @@ "typeString": "uint8" }, "typeName": { - "id": 126, + "id": 516, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3907:5:0", + "src": "4084:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -28222,13 +30111,13 @@ }, { "constant": false, - "id": 129, + "id": 519, "mutability": "mutable", "name": "interval_", - "nameLocation": "3928:9:0", + "nameLocation": "4105:9:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "3922:15:0", + "scope": 577, + "src": "4099:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28236,10 +30125,10 @@ "typeString": "uint8" }, "typeName": { - "id": 128, + "id": 518, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3922:5:0", + "src": "4099:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -28249,13 +30138,13 @@ }, { "constant": false, - "id": 131, + "id": 521, "mutability": "mutable", "name": "t0_", - "nameLocation": "3946:3:0", + "nameLocation": "4123:3:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "3939:10:0", + "scope": 577, + "src": "4116:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28263,10 +30152,10 @@ "typeString": "uint32" }, "typeName": { - "id": 130, + "id": 520, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3939:6:0", + "src": "4116:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28276,13 +30165,13 @@ }, { "constant": false, - "id": 133, + "id": 523, "mutability": "mutable", "name": "lifespan_", - "nameLocation": "3958:9:0", + "nameLocation": "4135:9:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "3951:16:0", + "scope": 577, + "src": "4128:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28290,10 +30179,10 @@ "typeString": "uint32" }, "typeName": { - "id": 132, + "id": 522, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3951:6:0", + "src": "4128:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28303,13 +30192,13 @@ }, { "constant": false, - "id": 135, + "id": 525, "mutability": "mutable", "name": "maxOperationsPerInterval_", - "nameLocation": "3975:25:0", + "nameLocation": "4152:25:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "3969:31:0", + "scope": 577, + "src": "4146:31:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28317,10 +30206,10 @@ "typeString": "uint8" }, "typeName": { - "id": 134, + "id": 524, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3969:5:0", + "src": "4146:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -28330,13 +30219,13 @@ }, { "constant": false, - "id": 137, + "id": 527, "mutability": "mutable", "name": "lastResortAddress_", - "nameLocation": "4026:18:0", + "nameLocation": "4203:18:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "4010:34:0", + "scope": 577, + "src": "4187:34:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28344,10 +30233,10 @@ "typeString": "address payable" }, "typeName": { - "id": 136, + "id": 526, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4010:15:0", + "src": "4187:15:6", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -28358,13 +30247,13 @@ }, { "constant": false, - "id": 139, + "id": 529, "mutability": "mutable", "name": "dailyLimit_", - "nameLocation": "4054:11:0", + "nameLocation": "4231:11:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "4046:19:0", + "scope": 577, + "src": "4223:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28372,10 +30261,10 @@ "typeString": "uint256" }, "typeName": { - "id": 138, + "id": 528, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4046:7:0", + "src": "4223:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28384,50 +30273,50 @@ "visibility": "internal" } ], - "src": "3891:175:0" + "src": "4068:175:6" }, "returnParameters": { - "id": 141, + "id": 531, "nodeType": "ParameterList", "parameters": [], - "src": "4071:0:0" + "src": "4248:0:6" }, - "scope": 2161, - "src": "3880:468:0", + "scope": 2592, + "src": "4057:517:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 228, + "id": 630, "nodeType": "Block", - "src": "4381:449:0", + "src": "4607:449:6", "statements": [ { "eventCall": { "arguments": [ { "expression": { - "id": 179, + "id": 581, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "4412:3:0", + "src": "4638:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 180, + "id": 582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "src": "4412:9:0", + "src": "4638:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28435,25 +30324,25 @@ }, { "expression": { - "id": 181, + "id": 583, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "4423:3:0", + "src": "4649:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 182, + "id": 584, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "4423:10:0", + "src": "4649:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -28471,18 +30360,18 @@ "typeString": "address" } ], - "id": 178, + "id": 580, "name": "PaymentReceived", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "4396:15:0", + "referencedDeclaration": 422, + "src": "4622:15:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, - "id": 183, + "id": 585, "isConstant": false, "isLValue": false, "isPure": false, @@ -28490,16 +30379,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4396:38:0", + "src": "4622:38:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 184, + "id": 586, "nodeType": "EmitStatement", - "src": "4391:43:0" + "src": "4617:43:6" }, { "condition": { @@ -28507,32 +30396,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 188, + "id": 590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 185, + "id": 587, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "4448:3:0", + "src": "4674:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 186, + "id": 588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "src": "4448:9:0", + "src": "4674:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28541,36 +30430,36 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 187, + "id": 589, "name": "AUTO_RECOVERY_TRIGGER_AMOUNT", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "4461:28:0", + "referencedDeclaration": 475, + "src": "4687:28:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4448:41:0", + "src": "4674:41:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 191, + "id": 593, "nodeType": "IfStatement", - "src": "4444:78:0", + "src": "4670:78:6", "trueBody": { - "id": 190, + "id": 592, "nodeType": "Block", - "src": "4491:31:0", + "src": "4717:31:6", "statements": [ { - "functionReturnParameters": 177, - "id": 189, + "functionReturnParameters": 579, + "id": 591, "nodeType": "Return", - "src": "4505:7:0" + "src": "4731:7:6" } ] } @@ -28581,32 +30470,32 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 195, + "id": 597, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 192, + "id": 594, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "4535:3:0", + "src": "4761:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 193, + "id": 595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "4535:10:0", + "src": "4761:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -28615,36 +30504,36 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 194, + "id": 596, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "4549:17:0", + "referencedDeclaration": 452, + "src": "4775:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "4535:31:0", + "src": "4761:31:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 198, + "id": 600, "nodeType": "IfStatement", - "src": "4531:68:0", + "src": "4757:68:6", "trueBody": { - "id": 197, + "id": 599, "nodeType": "Block", - "src": "4568:31:0", + "src": "4794:31:6", "statements": [ { - "functionReturnParameters": 177, - "id": 196, + "functionReturnParameters": 579, + "id": 598, "nodeType": "Return", - "src": "4582:7:0" + "src": "4808:7:6" } ] } @@ -28655,18 +30544,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 204, + "id": 606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 199, + "id": 601, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "4612:17:0", + "referencedDeclaration": 452, + "src": "4838:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -28678,14 +30567,14 @@ "arguments": [ { "hexValue": "30", - "id": 202, + "id": 604, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4641:1:0", + "src": "4867:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -28700,26 +30589,26 @@ "typeString": "int_const 0" } ], - "id": 201, + "id": 603, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4633:7:0", + "src": "4859:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 200, + "id": 602, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4633:7:0", + "src": "4859:7:6", "typeDescriptions": {} } }, - "id": 203, + "id": 605, "isConstant": false, "isLValue": false, "isPure": true, @@ -28727,32 +30616,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4633:10:0", + "src": "4859:10:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4612:31:0", + "src": "4838:31:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 207, + "id": 609, "nodeType": "IfStatement", - "src": "4608:68:0", + "src": "4834:68:6", "trueBody": { - "id": 206, + "id": 608, "nodeType": "Block", - "src": "4645:31:0", + "src": "4871:31:6", "statements": [ { - "functionReturnParameters": 177, - "id": 205, + "functionReturnParameters": 579, + "id": 607, "nodeType": "Return", - "src": "4659:7:0" + "src": "4885:7:6" } ] } @@ -28763,32 +30652,32 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 214, + "id": 616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 208, + "id": 610, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "4689:3:0", + "src": "4915:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 209, + "id": 611, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "4689:10:0", + "src": "4915:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -28799,14 +30688,14 @@ "rightExpression": { "arguments": [ { - "id": 212, + "id": 614, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "4711:4:0", + "src": "4937:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } } @@ -28814,30 +30703,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } ], - "id": 211, + "id": 613, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4703:7:0", + "src": "4929:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 210, + "id": 612, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4703:7:0", + "src": "4929:7:6", "typeDescriptions": {} } }, - "id": 213, + "id": 615, "isConstant": false, "isLValue": false, "isPure": false, @@ -28845,32 +30734,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4703:13:0", + "src": "4929:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4689:27:0", + "src": "4915:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 217, + "id": 619, "nodeType": "IfStatement", - "src": "4685:64:0", + "src": "4911:64:6", "trueBody": { - "id": 216, + "id": 618, "nodeType": "Block", - "src": "4718:31:0", + "src": "4944:31:6", "statements": [ { - "functionReturnParameters": 177, - "id": 215, + "functionReturnParameters": 579, + "id": 617, "nodeType": "Return", - "src": "4732:7:0" + "src": "4958:7:6" } ] } @@ -28880,25 +30769,25 @@ "arguments": [ { "expression": { - "id": 219, + "id": 621, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "4785:3:0", + "src": "5011:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 220, + "id": 622, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "4785:10:0", + "src": "5011:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -28912,18 +30801,18 @@ "typeString": "address" } ], - "id": 218, + "id": 620, "name": "AutoRecoveryTriggered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45, - "src": "4763:21:0", + "referencedDeclaration": 432, + "src": "4989:21:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 221, + "id": 623, "isConstant": false, "isLValue": false, "isPure": false, @@ -28931,16 +30820,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4763:33:0", + "src": "4989:33:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 222, + "id": 624, "nodeType": "EmitStatement", - "src": "4758:38:0" + "src": "4984:38:6" }, { "expression": { @@ -28949,18 +30838,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 224, + "id": 626, "name": "_drain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 808, - "src": "4814:6:0", + "referencedDeclaration": 1210, + "src": "5040:6:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_bool_$", "typeString": "function () returns (bool)" } }, - "id": 225, + "id": 627, "isConstant": false, "isLValue": false, "isPure": false, @@ -28968,7 +30857,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4814:8:0", + "src": "5040:8:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -28983,7 +30872,7 @@ "typeString": "bool" } ], - "id": 223, + "id": 625, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -28991,13 +30880,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4806:7:0", + "src": "5032:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 226, + "id": 628, "isConstant": false, "isLValue": false, "isPure": false, @@ -29005,20 +30894,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4806:17:0", + "src": "5032:17:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 227, + "id": 629, "nodeType": "ExpressionStatement", - "src": "4806:17:0" + "src": "5032:17:6" } ] }, - "id": 229, + "id": 631, "implemented": true, "kind": "receive", "modifiers": [], @@ -29026,28 +30915,28 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 176, + "id": 578, "nodeType": "ParameterList", "parameters": [], - "src": "4361:2:0" + "src": "4587:2:6" }, "returnParameters": { - "id": 177, + "id": 579, "nodeType": "ParameterList", "parameters": [], - "src": "4381:0:0" + "src": "4607:0:6" }, - "scope": 2161, - "src": "4354:476:0", + "scope": 2592, + "src": "4580:476:6", "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "body": { - "id": 267, + "id": 669, "nodeType": "Block", - "src": "4883:250:0", + "src": "5109:250:6", "statements": [ { "expression": { @@ -29057,7 +30946,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 245, + "id": 647, "isConstant": false, "isLValue": false, "isPure": false, @@ -29067,7 +30956,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 243, + "id": 645, "isConstant": false, "isLValue": false, "isPure": false, @@ -29079,32 +30968,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 240, + "id": 642, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 237, + "id": 639, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "4908:5:0", + "src": "5134:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 238, + "id": 640, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "4908:15:0", + "src": "5134:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29113,18 +31002,18 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 239, + "id": 641, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "4926:8:0", + "referencedDeclaration": 441, + "src": "5152:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4908:26:0", + "src": "5134:26:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29138,26 +31027,26 @@ "typeString": "uint256" } ], - "id": 236, + "id": 638, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4901:6:0", + "src": "5127:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 235, + "id": 637, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4901:6:0", + "src": "5127:6:6", "typeDescriptions": {} } }, - "id": 241, + "id": 643, "isConstant": false, "isLValue": false, "isPure": false, @@ -29165,7 +31054,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4901:34:0", + "src": "5127:34:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -29175,18 +31064,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 242, + "id": 644, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "4938:2:0", + "referencedDeclaration": 443, + "src": "5164:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4901:39:0", + "src": "5127:39:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -29195,18 +31084,18 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 244, + "id": 646, "name": "lifespan", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "4943:8:0", + "referencedDeclaration": 445, + "src": "5169:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4901:50:0", + "src": "5127:50:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29214,14 +31103,14 @@ }, { "hexValue": "546f6f206561726c7920746f20726574697265", - "id": 246, + "id": 648, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4953:21:0", + "src": "5179:21:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_50d19c134c4136d96b547b25b22aa8e1363529709733541230ebfa41cb82b262", "typeString": "literal_string \"Too early to retire\"" @@ -29240,7 +31129,7 @@ "typeString": "literal_string \"Too early to retire\"" } ], - "id": 234, + "id": 636, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -29248,13 +31137,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4893:7:0", + "src": "5119:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 247, + "id": 649, "isConstant": false, "isLValue": false, "isPure": false, @@ -29262,16 +31151,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4893:82:0", + "src": "5119:82:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 248, + "id": 650, "nodeType": "ExpressionStatement", - "src": "4893:82:0" + "src": "5119:82:6" }, { "expression": { @@ -29281,18 +31170,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 255, + "id": 657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 250, + "id": 652, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "4993:17:0", + "referencedDeclaration": 452, + "src": "5219:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -29304,14 +31193,14 @@ "arguments": [ { "hexValue": "30", - "id": 253, + "id": 655, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5022:1:0", + "src": "5248:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -29326,26 +31215,26 @@ "typeString": "int_const 0" } ], - "id": 252, + "id": 654, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5014:7:0", + "src": "5240:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 251, + "id": 653, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5014:7:0", + "src": "5240:7:6", "typeDescriptions": {} } }, - "id": 254, + "id": 656, "isConstant": false, "isLValue": false, "isPure": true, @@ -29353,14 +31242,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5014:10:0", + "src": "5240:10:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4993:31:0", + "src": "5219:31:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29368,14 +31257,14 @@ }, { "hexValue": "4c617374207265736f72742061646472657373206973206e6f7420736574", - "id": 256, + "id": 658, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5026:32:0", + "src": "5252:32:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_1c2d20c6fc3078eff495891b6caa29a7be172ac7018d2f6172fb68ba87240f3d", "typeString": "literal_string \"Last resort address is not set\"" @@ -29394,7 +31283,7 @@ "typeString": "literal_string \"Last resort address is not set\"" } ], - "id": 249, + "id": 651, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -29402,13 +31291,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4985:7:0", + "src": "5211:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 257, + "id": 659, "isConstant": false, "isLValue": false, "isPure": false, @@ -29416,16 +31305,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4985:74:0", + "src": "5211:74:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 258, + "id": 660, "nodeType": "ExpressionStatement", - "src": "4985:74:0" + "src": "5211:74:6" }, { "expression": { @@ -29434,18 +31323,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 260, + "id": 662, "name": "_drain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 808, - "src": "5077:6:0", + "referencedDeclaration": 1210, + "src": "5303:6:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_bool_$", "typeString": "function () returns (bool)" } }, - "id": 261, + "id": 663, "isConstant": false, "isLValue": false, "isPure": false, @@ -29453,7 +31342,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5077:8:0", + "src": "5303:8:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -29462,14 +31351,14 @@ }, { "hexValue": "5265636f76657279206661696c6564", - "id": 262, + "id": 664, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5087:17:0", + "src": "5313:17:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_887bc482e9abfdf76109db32e10c15ef35a028513416621efc881c8a92574313", "typeString": "literal_string \"Recovery failed\"" @@ -29488,7 +31377,7 @@ "typeString": "literal_string \"Recovery failed\"" } ], - "id": 259, + "id": 661, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -29496,13 +31385,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5069:7:0", + "src": "5295:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 263, + "id": 665, "isConstant": false, "isLValue": false, "isPure": false, @@ -29510,68 +31399,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5069:36:0", + "src": "5295:36:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 264, + "id": 666, "nodeType": "ExpressionStatement", - "src": "5069:36:0" + "src": "5295:36:6" }, { "expression": { "hexValue": "74727565", - "id": 265, + "id": 667, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5122:4:0", + "src": "5348:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 233, - "id": 266, + "functionReturnParameters": 635, + "id": 668, "nodeType": "Return", - "src": "5115:11:0" + "src": "5341:11:6" } ] }, "functionSelector": "a4874d77", - "id": 268, + "id": 670, "implemented": true, "kind": "function", "modifiers": [], "name": "retire", - "nameLocation": "4846:6:0", + "nameLocation": "5072:6:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 230, + "id": 632, "nodeType": "ParameterList", "parameters": [], - "src": "4852:2:0" + "src": "5078:2:6" }, "returnParameters": { - "id": 233, + "id": 635, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 232, + "id": 634, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 268, - "src": "4873:4:0", + "scope": 670, + "src": "5099:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29579,10 +31468,10 @@ "typeString": "bool" }, "typeName": { - "id": 231, + "id": 633, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4873:4:0", + "src": "5099:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -29591,167 +31480,167 @@ "visibility": "internal" } ], - "src": "4872:6:0" + "src": "5098:6:6" }, - "scope": 2161, - "src": "4837:296:0", + "scope": 2592, + "src": "5063:296:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 297, + "id": 699, "nodeType": "Block", - "src": "5249:119:0", + "src": "5475:119:6", "statements": [ { "expression": { "components": [ { - "id": 287, + "id": 689, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "5267:4:0", + "referencedDeclaration": 437, + "src": "5493:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 288, + "id": 690, "name": "height", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "5273:6:0", + "referencedDeclaration": 439, + "src": "5499:6:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { - "id": 289, + "id": 691, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "5281:8:0", + "referencedDeclaration": 441, + "src": "5507:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { - "id": 290, + "id": 692, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "5291:2:0", + "referencedDeclaration": 443, + "src": "5517:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { - "id": 291, + "id": 693, "name": "lifespan", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "5295:8:0", + "referencedDeclaration": 445, + "src": "5521:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { - "id": 292, + "id": 694, "name": "maxOperationsPerInterval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "5305:24:0", + "referencedDeclaration": 447, + "src": "5531:24:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { - "id": 293, + "id": 695, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "5331:17:0", + "referencedDeclaration": 452, + "src": "5557:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 294, + "id": 696, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "5350:10:0", + "referencedDeclaration": 454, + "src": "5576:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 295, + "id": 697, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5266:95:0", + "src": "5492:95:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bytes32_$_t_uint8_$_t_uint8_$_t_uint32_$_t_uint32_$_t_uint8_$_t_address_payable_$_t_uint256_$", "typeString": "tuple(bytes32,uint8,uint8,uint32,uint32,uint8,address payable,uint256)" } }, - "functionReturnParameters": 286, - "id": 296, + "functionReturnParameters": 688, + "id": 698, "nodeType": "Return", - "src": "5259:102:0" + "src": "5485:102:6" } ] }, "functionSelector": "5a9b0b89", - "id": 298, + "id": 700, "implemented": true, "kind": "function", "modifiers": [], "name": "getInfo", - "nameLocation": "5148:7:0", + "nameLocation": "5374:7:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 269, + "id": 671, "nodeType": "ParameterList", "parameters": [], - "src": "5155:2:0" + "src": "5381:2:6" }, "returnParameters": { - "id": 286, + "id": 688, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 271, + "id": 673, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5181:7:0", + "scope": 700, + "src": "5407:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29759,10 +31648,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 270, + "id": 672, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5181:7:0", + "src": "5407:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29772,13 +31661,13 @@ }, { "constant": false, - "id": 273, + "id": 675, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5190:5:0", + "scope": 700, + "src": "5416:5:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29786,10 +31675,10 @@ "typeString": "uint8" }, "typeName": { - "id": 272, + "id": 674, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5190:5:0", + "src": "5416:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -29799,13 +31688,13 @@ }, { "constant": false, - "id": 275, + "id": 677, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5197:5:0", + "scope": 700, + "src": "5423:5:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29813,10 +31702,10 @@ "typeString": "uint8" }, "typeName": { - "id": 274, + "id": 676, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5197:5:0", + "src": "5423:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -29826,13 +31715,13 @@ }, { "constant": false, - "id": 277, + "id": 679, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5204:6:0", + "scope": 700, + "src": "5430:6:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29840,10 +31729,10 @@ "typeString": "uint32" }, "typeName": { - "id": 276, + "id": 678, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5204:6:0", + "src": "5430:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -29853,13 +31742,13 @@ }, { "constant": false, - "id": 279, + "id": 681, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5212:6:0", + "scope": 700, + "src": "5438:6:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29867,10 +31756,10 @@ "typeString": "uint32" }, "typeName": { - "id": 278, + "id": 680, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5212:6:0", + "src": "5438:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -29880,13 +31769,13 @@ }, { "constant": false, - "id": 281, + "id": 683, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5220:5:0", + "scope": 700, + "src": "5446:5:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29894,10 +31783,10 @@ "typeString": "uint8" }, "typeName": { - "id": 280, + "id": 682, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5220:5:0", + "src": "5446:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -29907,13 +31796,13 @@ }, { "constant": false, - "id": 283, + "id": 685, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5227:7:0", + "scope": 700, + "src": "5453:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29921,10 +31810,10 @@ "typeString": "address" }, "typeName": { - "id": 282, + "id": 684, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5227:7:0", + "src": "5453:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -29935,13 +31824,13 @@ }, { "constant": false, - "id": 285, + "id": 687, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5236:7:0", + "scope": 700, + "src": "5462:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29949,10 +31838,10 @@ "typeString": "uint256" }, "typeName": { - "id": 284, + "id": 686, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5236:7:0", + "src": "5462:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29961,95 +31850,95 @@ "visibility": "internal" } ], - "src": "5180:64:0" + "src": "5406:64:6" }, - "scope": 2161, - "src": "5139:229:0", + "scope": 2592, + "src": "5365:229:6", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 309, + "id": 711, "nodeType": "Block", - "src": "5439:52:0", + "src": "5665:52:6", "statements": [ { "expression": { "components": [ { - "id": 305, + "id": 707, "name": "majorVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "5457:12:0", + "referencedDeclaration": 481, + "src": "5683:12:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { - "id": 306, + "id": 708, "name": "minorVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "5471:12:0", + "referencedDeclaration": 484, + "src": "5697:12:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], - "id": 307, + "id": 709, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5456:28:0", + "src": "5682:28:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", "typeString": "tuple(uint32,uint32)" } }, - "functionReturnParameters": 304, - "id": 308, + "functionReturnParameters": 706, + "id": 710, "nodeType": "Return", - "src": "5449:35:0" + "src": "5675:35:6" } ] }, "functionSelector": "0d8e6e2c", - "id": 310, + "id": 712, "implemented": true, "kind": "function", "modifiers": [], "name": "getVersion", - "nameLocation": "5383:10:0", + "nameLocation": "5609:10:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 299, + "id": 701, "nodeType": "ParameterList", "parameters": [], - "src": "5393:2:0" + "src": "5619:2:6" }, "returnParameters": { - "id": 304, + "id": 706, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 301, + "id": 703, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 310, - "src": "5419:6:0", + "scope": 712, + "src": "5645:6:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30057,10 +31946,10 @@ "typeString": "uint32" }, "typeName": { - "id": 300, + "id": 702, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5419:6:0", + "src": "5645:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -30070,13 +31959,13 @@ }, { "constant": false, - "id": 303, + "id": 705, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 310, - "src": "5427:6:0", + "scope": 712, + "src": "5653:6:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30084,10 +31973,10 @@ "typeString": "uint32" }, "typeName": { - "id": 302, + "id": 704, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5427:6:0", + "src": "5653:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -30096,95 +31985,95 @@ "visibility": "internal" } ], - "src": "5418:16:0" + "src": "5644:16:6" }, - "scope": 2161, - "src": "5374:117:0", + "scope": 2592, + "src": "5600:117:6", "stateMutability": "pure", "virtual": false, "visibility": "external" }, { "body": { - "id": 321, + "id": 723, "nodeType": "Block", - "src": "5572:53:0", + "src": "5798:53:6", "statements": [ { "expression": { "components": [ { - "id": 317, + "id": 719, "name": "spentToday", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "5590:10:0", + "referencedDeclaration": 456, + "src": "5816:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 318, + "id": 720, "name": "lastTransferDay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "5602:15:0", + "referencedDeclaration": 458, + "src": "5828:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], - "id": 319, + "id": 721, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5589:29:0", + "src": "5815:29:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$", "typeString": "tuple(uint256,uint32)" } }, - "functionReturnParameters": 316, - "id": 320, + "functionReturnParameters": 718, + "id": 722, "nodeType": "Return", - "src": "5582:36:0" + "src": "5808:36:6" } ] }, "functionSelector": "2293d3fb", - "id": 322, + "id": 724, "implemented": true, "kind": "function", "modifiers": [], "name": "getCurrentSpending", - "nameLocation": "5506:18:0", + "nameLocation": "5732:18:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 311, + "id": 713, "nodeType": "ParameterList", "parameters": [], - "src": "5524:2:0" + "src": "5750:2:6" }, "returnParameters": { - "id": 316, + "id": 718, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 313, + "id": 715, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 322, - "src": "5550:7:0", + "scope": 724, + "src": "5776:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30192,10 +32081,10 @@ "typeString": "uint256" }, "typeName": { - "id": 312, + "id": 714, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5550:7:0", + "src": "5776:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30205,13 +32094,13 @@ }, { "constant": false, - "id": 315, + "id": 717, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 322, - "src": "5559:7:0", + "scope": 724, + "src": "5785:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30219,10 +32108,10 @@ "typeString": "uint256" }, "typeName": { - "id": 314, + "id": 716, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5559:7:0", + "src": "5785:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30231,34 +32120,34 @@ "visibility": "internal" } ], - "src": "5549:18:0" + "src": "5775:18:6" }, - "scope": 2161, - "src": "5497:128:0", + "scope": 2592, + "src": "5723:128:6", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 343, + "id": 745, "nodeType": "Block", - "src": "5685:101:0", + "src": "5911:101:6", "statements": [ { "assignments": [ - 328 + 730 ], "declarations": [ { "constant": false, - "id": 328, + "id": 730, "mutability": "mutable", "name": "index", - "nameLocation": "5702:5:0", + "nameLocation": "5928:5:6", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "5695:12:0", + "scope": 745, + "src": "5921:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30266,10 +32155,10 @@ "typeString": "uint32" }, "typeName": { - "id": 327, + "id": 729, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5695:6:0", + "src": "5921:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -30278,13 +32167,13 @@ "visibility": "internal" } ], - "id": 338, + "id": 740, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 337, + "id": 739, "isConstant": false, "isLValue": false, "isPure": false, @@ -30294,7 +32183,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 335, + "id": 737, "isConstant": false, "isLValue": false, "isPure": false, @@ -30303,25 +32192,25 @@ "arguments": [ { "expression": { - "id": 331, + "id": 733, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "5717:5:0", + "src": "5943:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 332, + "id": 734, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "5717:15:0", + "src": "5943:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30335,26 +32224,26 @@ "typeString": "uint256" } ], - "id": 330, + "id": 732, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5710:6:0", + "src": "5936:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 329, + "id": 731, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5710:6:0", + "src": "5936:6:6", "typeDescriptions": {} } }, - "id": 333, + "id": 735, "isConstant": false, "isLValue": false, "isPure": false, @@ -30362,7 +32251,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5710:23:0", + "src": "5936:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -30372,18 +32261,18 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 334, + "id": 736, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "5736:8:0", + "referencedDeclaration": 441, + "src": "5962:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5710:34:0", + "src": "5936:34:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -30392,48 +32281,48 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 336, + "id": 738, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "5747:2:0", + "referencedDeclaration": 443, + "src": "5973:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "5710:39:0", + "src": "5936:39:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "5695:54:0" + "src": "5921:54:6" }, { "expression": { "baseExpression": { - "id": 339, + "id": 741, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "5766:6:0", + "referencedDeclaration": 463, + "src": "5992:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 341, + "id": 743, "indexExpression": { - "id": 340, + "id": 742, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "5773:5:0", + "referencedDeclaration": 730, + "src": "5999:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -30444,46 +32333,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5766:13:0", + "src": "5992:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 326, - "id": 342, + "functionReturnParameters": 728, + "id": 744, "nodeType": "Return", - "src": "5759:20:0" + "src": "5985:20:6" } ] }, "functionSelector": "d087d288", - "id": 344, + "id": 746, "implemented": true, "kind": "function", "modifiers": [], "name": "getNonce", - "nameLocation": "5640:8:0", + "nameLocation": "5866:8:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 323, + "id": 725, "nodeType": "ParameterList", "parameters": [], - "src": "5648:2:0" + "src": "5874:2:6" }, "returnParameters": { - "id": 326, + "id": 728, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 325, + "id": 727, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "5674:5:0", + "scope": 746, + "src": "5900:5:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30491,10 +32380,10 @@ "typeString": "uint8" }, "typeName": { - "id": 324, + "id": 726, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5674:5:0", + "src": "5900:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -30503,33 +32392,33 @@ "visibility": "internal" } ], - "src": "5673:7:0" + "src": "5899:7:6" }, - "scope": 2161, - "src": "5631:155:0", + "scope": 2592, + "src": "5857:155:6", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 363, + "id": 765, "nodeType": "Block", - "src": "5904:37:0", + "src": "6130:37:6", "statements": [ { "expression": { "arguments": [ { "hexValue": "44657072656361746564", - "id": 360, + "id": 762, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5921:12:0", + "src": "6147:12:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b20dc6ef8ce4f94dd03e7dbd2b41776293fb93e4528d85e98acf1bfed3136f73", "typeString": "literal_string \"Deprecated\"" @@ -30544,7 +32433,7 @@ "typeString": "literal_string \"Deprecated\"" } ], - "id": 359, + "id": 761, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -30552,13 +32441,13 @@ 4294967277 ], "referencedDeclaration": 4294967277, - "src": "5914:6:0", + "src": "6140:6:6", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 361, + "id": 763, "isConstant": false, "isLValue": false, "isPure": false, @@ -30566,46 +32455,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5914:20:0", + "src": "6140:20:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 362, + "id": 764, "nodeType": "ExpressionStatement", - "src": "5914:20:0" + "src": "6140:20:6" } ] }, "functionSelector": "2f1f7520", - "id": 364, + "id": 766, "implemented": true, "kind": "function", "modifiers": [], "name": "getCommits", - "nameLocation": "5801:10:0", + "nameLocation": "6027:10:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 345, + "id": 747, "nodeType": "ParameterList", "parameters": [], - "src": "5811:2:0" + "src": "6037:2:6" }, "returnParameters": { - "id": 358, + "id": 760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 348, + "id": 750, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 364, - "src": "5837:16:0", + "scope": 766, + "src": "6063:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -30614,18 +32503,18 @@ }, "typeName": { "baseType": { - "id": 346, + "id": 748, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5837:7:0", + "src": "6063:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 347, + "id": 749, "nodeType": "ArrayTypeName", - "src": "5837:9:0", + "src": "6063:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -30635,13 +32524,13 @@ }, { "constant": false, - "id": 351, + "id": 753, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 364, - "src": "5855:16:0", + "scope": 766, + "src": "6081:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -30650,18 +32539,18 @@ }, "typeName": { "baseType": { - "id": 349, + "id": 751, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5855:7:0", + "src": "6081:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 350, + "id": 752, "nodeType": "ArrayTypeName", - "src": "5855:9:0", + "src": "6081:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -30671,13 +32560,13 @@ }, { "constant": false, - "id": 354, + "id": 756, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 364, - "src": "5873:15:0", + "scope": 766, + "src": "6099:15:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -30686,18 +32575,18 @@ }, "typeName": { "baseType": { - "id": 352, + "id": 754, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5873:6:0", + "src": "6099:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 353, + "id": 755, "nodeType": "ArrayTypeName", - "src": "5873:8:0", + "src": "6099:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -30707,13 +32596,13 @@ }, { "constant": false, - "id": 357, + "id": 759, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 364, - "src": "5890:13:0", + "scope": 766, + "src": "6116:13:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -30722,18 +32611,18 @@ }, "typeName": { "baseType": { - "id": 355, + "id": 757, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5890:4:0", + "src": "6116:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 356, + "id": 758, "nodeType": "ArrayTypeName", - "src": "5890:6:0", + "src": "6116:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" @@ -30742,34 +32631,34 @@ "visibility": "internal" } ], - "src": "5836:68:0" + "src": "6062:68:6" }, - "scope": 2161, - "src": "5792:149:0", + "scope": 2592, + "src": "6018:149:6", "stateMutability": "pure", "virtual": false, "visibility": "external" }, { "body": { - "id": 566, + "id": 968, "nodeType": "Block", - "src": "6085:1145:0", + "src": "6311:1145:6", "statements": [ { "assignments": [ - 383 + 785 ], "declarations": [ { "constant": false, - "id": 383, + "id": 785, "mutability": "mutable", "name": "numCommits", - "nameLocation": "6102:10:0", + "nameLocation": "6328:10:6", "nodeType": "VariableDeclaration", - "scope": 566, - "src": "6095:17:0", + "scope": 968, + "src": "6321:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30777,10 +32666,10 @@ "typeString": "uint32" }, "typeName": { - "id": 382, + "id": 784, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6095:6:0", + "src": "6321:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -30789,17 +32678,17 @@ "visibility": "internal" } ], - "id": 385, + "id": 787, "initialValue": { "hexValue": "30", - "id": 384, + "id": 786, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6115:1:0", + "src": "6341:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -30807,99 +32696,99 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6095:21:0" + "src": "6321:21:6" }, { "body": { - "id": 416, + "id": 818, "nodeType": "Block", - "src": "6170:116:0", + "src": "6396:116:6", "statements": [ { "assignments": [ - 401 + 803 ], "declarations": [ { "constant": false, - "id": 401, + "id": 803, "mutability": "mutable", "name": "cc", - "nameLocation": "6201:2:0", + "nameLocation": "6427:2:6", "nodeType": "VariableDeclaration", - "scope": 416, - "src": "6184:19:0", + "scope": 818, + "src": "6410:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" }, "typeName": { "baseType": { - "id": 399, + "id": 801, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 398, + "id": 800, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "6184:6:0" + "referencedDeclaration": 504, + "src": "6410:6:6" }, - "referencedDeclaration": 114, - "src": "6184:6:0", + "referencedDeclaration": 504, + "src": "6410:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 400, + "id": 802, "nodeType": "ArrayTypeName", - "src": "6184:8:0", + "src": "6410:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } }, "visibility": "internal" } ], - "id": 407, + "id": 809, "initialValue": { "baseExpression": { - "id": 402, + "id": 804, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "6206:12:0", + "referencedDeclaration": 513, + "src": "6432:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 406, + "id": 808, "indexExpression": { "baseExpression": { - "id": 403, + "id": 805, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "6219:7:0", + "referencedDeclaration": 507, + "src": "6445:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 405, + "id": 807, "indexExpression": { - "id": 404, + "id": 806, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "6227:1:0", + "referencedDeclaration": 789, + "src": "6453:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -30910,7 +32799,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6219:10:0", + "src": "6445:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30921,29 +32810,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6206:24:0", + "src": "6432:24:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "6184:46:0" + "src": "6410:46:6" }, { "expression": { - "id": 414, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 408, + "id": 810, "name": "numCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "6244:10:0", + "referencedDeclaration": 785, + "src": "6470:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -30955,25 +32844,25 @@ "arguments": [ { "expression": { - "id": 411, + "id": 813, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "6265:2:0", + "referencedDeclaration": 803, + "src": "6491:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 412, + "id": 814, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6265:9:0", + "src": "6491:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30987,26 +32876,26 @@ "typeString": "uint256" } ], - "id": 410, + "id": 812, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6258:6:0", + "src": "6484:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 409, + "id": 811, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6258:6:0", + "src": "6484:6:6", "typeDescriptions": {} } }, - "id": 413, + "id": 815, "isConstant": false, "isLValue": false, "isPure": false, @@ -31014,22 +32903,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6258:17:0", + "src": "6484:17:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "6244:31:0", + "src": "6470:31:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 415, + "id": 817, "nodeType": "ExpressionStatement", - "src": "6244:31:0" + "src": "6470:31:6" } ] }, @@ -31038,18 +32927,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 393, + "id": 795, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 390, + "id": 792, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "6145:1:0", + "referencedDeclaration": 789, + "src": "6371:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -31059,51 +32948,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 391, + "id": 793, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "6149:7:0", + "referencedDeclaration": 507, + "src": "6375:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 392, + "id": 794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6149:14:0", + "src": "6375:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6145:18:0", + "src": "6371:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 417, + "id": 819, "initializationExpression": { "assignments": [ - 387 + 789 ], "declarations": [ { "constant": false, - "id": 387, + "id": 789, "mutability": "mutable", "name": "i", - "nameLocation": "6138:1:0", + "nameLocation": "6364:1:6", "nodeType": "VariableDeclaration", - "scope": 417, - "src": "6131:8:0", + "scope": 819, + "src": "6357:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31111,10 +33000,10 @@ "typeString": "uint32" }, "typeName": { - "id": 386, + "id": 788, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6131:6:0", + "src": "6357:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -31123,17 +33012,17 @@ "visibility": "internal" } ], - "id": 389, + "id": 791, "initialValue": { "hexValue": "30", - "id": 388, + "id": 790, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6142:1:0", + "src": "6368:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -31141,11 +33030,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6131:12:0" + "src": "6357:12:6" }, "loopExpression": { "expression": { - "id": 395, + "id": 797, "isConstant": false, "isLValue": false, "isPure": false, @@ -31153,14 +33042,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6165:3:0", + "src": "6391:3:6", "subExpression": { - "id": 394, + "id": 796, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "6165:1:0", + "referencedDeclaration": 789, + "src": "6391:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -31171,27 +33060,27 @@ "typeString": "uint32" } }, - "id": 396, + "id": 798, "nodeType": "ExpressionStatement", - "src": "6165:3:0" + "src": "6391:3:6" }, "nodeType": "ForStatement", - "src": "6126:160:0" + "src": "6352:160:6" }, { "assignments": [ - 422 + 824 ], "declarations": [ { "constant": false, - "id": 422, + "id": 824, "mutability": "mutable", "name": "hashes", - "nameLocation": "6312:6:0", + "nameLocation": "6538:6:6", "nodeType": "VariableDeclaration", - "scope": 566, - "src": "6295:23:0", + "scope": 968, + "src": "6521:23:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -31200,18 +33089,18 @@ }, "typeName": { "baseType": { - "id": 420, + "id": 822, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6295:7:0", + "src": "6521:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 421, + "id": 823, "nodeType": "ArrayTypeName", - "src": "6295:9:0", + "src": "6521:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -31220,16 +33109,16 @@ "visibility": "internal" } ], - "id": 428, + "id": 830, "initialValue": { "arguments": [ { - "id": 426, + "id": 828, "name": "numCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "6335:10:0", + "referencedDeclaration": 785, + "src": "6561:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -31243,38 +33132,38 @@ "typeString": "uint32" } ], - "id": 425, + "id": 827, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6321:13:0", + "src": "6547:13:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes32[] memory)" }, "typeName": { "baseType": { - "id": 423, + "id": 825, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6325:7:0", + "src": "6551:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 424, + "id": 826, "nodeType": "ArrayTypeName", - "src": "6325:9:0", + "src": "6551:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" } } }, - "id": 427, + "id": 829, "isConstant": false, "isLValue": false, "isPure": false, @@ -31282,7 +33171,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6321:25:0", + "src": "6547:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", @@ -31290,22 +33179,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6295:51:0" + "src": "6521:51:6" }, { "assignments": [ - 433 + 835 ], "declarations": [ { "constant": false, - "id": 433, + "id": 835, "mutability": "mutable", "name": "paramHashes", - "nameLocation": "6373:11:0", + "nameLocation": "6599:11:6", "nodeType": "VariableDeclaration", - "scope": 566, - "src": "6356:28:0", + "scope": 968, + "src": "6582:28:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -31314,18 +33203,18 @@ }, "typeName": { "baseType": { - "id": 431, + "id": 833, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6356:7:0", + "src": "6582:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 432, + "id": 834, "nodeType": "ArrayTypeName", - "src": "6356:9:0", + "src": "6582:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -31334,16 +33223,16 @@ "visibility": "internal" } ], - "id": 439, + "id": 841, "initialValue": { "arguments": [ { - "id": 437, + "id": 839, "name": "numCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "6401:10:0", + "referencedDeclaration": 785, + "src": "6627:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -31357,38 +33246,38 @@ "typeString": "uint32" } ], - "id": 436, + "id": 838, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6387:13:0", + "src": "6613:13:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes32[] memory)" }, "typeName": { "baseType": { - "id": 434, + "id": 836, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6391:7:0", + "src": "6617:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 435, + "id": 837, "nodeType": "ArrayTypeName", - "src": "6391:9:0", + "src": "6617:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" } } }, - "id": 438, + "id": 840, "isConstant": false, "isLValue": false, "isPure": false, @@ -31396,7 +33285,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6387:25:0", + "src": "6613:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", @@ -31404,22 +33293,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6356:56:0" + "src": "6582:56:6" }, { "assignments": [ - 444 + 846 ], "declarations": [ { "constant": false, - "id": 444, + "id": 846, "mutability": "mutable", "name": "verificationHashes", - "nameLocation": "6439:18:0", + "nameLocation": "6665:18:6", "nodeType": "VariableDeclaration", - "scope": 566, - "src": "6422:35:0", + "scope": 968, + "src": "6648:35:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -31428,18 +33317,18 @@ }, "typeName": { "baseType": { - "id": 442, + "id": 844, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6422:7:0", + "src": "6648:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 443, + "id": 845, "nodeType": "ArrayTypeName", - "src": "6422:9:0", + "src": "6648:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -31448,16 +33337,16 @@ "visibility": "internal" } ], - "id": 450, + "id": 852, "initialValue": { "arguments": [ { - "id": 448, + "id": 850, "name": "numCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "6474:10:0", + "referencedDeclaration": 785, + "src": "6700:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -31471,38 +33360,38 @@ "typeString": "uint32" } ], - "id": 447, + "id": 849, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6460:13:0", + "src": "6686:13:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes32[] memory)" }, "typeName": { "baseType": { - "id": 445, + "id": 847, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6464:7:0", + "src": "6690:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 446, + "id": 848, "nodeType": "ArrayTypeName", - "src": "6464:9:0", + "src": "6690:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" } } }, - "id": 449, + "id": 851, "isConstant": false, "isLValue": false, "isPure": false, @@ -31510,7 +33399,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6460:25:0", + "src": "6686:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", @@ -31518,22 +33407,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6422:63:0" + "src": "6648:63:6" }, { "assignments": [ - 455 + 857 ], "declarations": [ { "constant": false, - "id": 455, + "id": 857, "mutability": "mutable", "name": "timestamps", - "nameLocation": "6511:10:0", + "nameLocation": "6737:10:6", "nodeType": "VariableDeclaration", - "scope": 566, - "src": "6495:26:0", + "scope": 968, + "src": "6721:26:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -31542,18 +33431,18 @@ }, "typeName": { "baseType": { - "id": 453, + "id": 855, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6495:6:0", + "src": "6721:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 454, + "id": 856, "nodeType": "ArrayTypeName", - "src": "6495:8:0", + "src": "6721:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -31562,16 +33451,16 @@ "visibility": "internal" } ], - "id": 461, + "id": 863, "initialValue": { "arguments": [ { - "id": 459, + "id": 861, "name": "numCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "6537:10:0", + "referencedDeclaration": 785, + "src": "6763:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -31585,38 +33474,38 @@ "typeString": "uint32" } ], - "id": 458, + "id": 860, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6524:12:0", + "src": "6750:12:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint32[] memory)" }, "typeName": { "baseType": { - "id": 456, + "id": 858, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6528:6:0", + "src": "6754:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 457, + "id": 859, "nodeType": "ArrayTypeName", - "src": "6528:8:0", + "src": "6754:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" } } }, - "id": 460, + "id": 862, "isConstant": false, "isLValue": false, "isPure": false, @@ -31624,7 +33513,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6524:24:0", + "src": "6750:24:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", @@ -31632,22 +33521,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6495:53:0" + "src": "6721:53:6" }, { "assignments": [ - 466 + 868 ], "declarations": [ { "constant": false, - "id": 466, + "id": 868, "mutability": "mutable", "name": "completed", - "nameLocation": "6572:9:0", + "nameLocation": "6798:9:6", "nodeType": "VariableDeclaration", - "scope": 566, - "src": "6558:23:0", + "scope": 968, + "src": "6784:23:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -31656,18 +33545,18 @@ }, "typeName": { "baseType": { - "id": 464, + "id": 866, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6558:4:0", + "src": "6784:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 465, + "id": 867, "nodeType": "ArrayTypeName", - "src": "6558:6:0", + "src": "6784:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" @@ -31676,16 +33565,16 @@ "visibility": "internal" } ], - "id": 472, + "id": 874, "initialValue": { "arguments": [ { - "id": 470, + "id": 872, "name": "numCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "6595:10:0", + "referencedDeclaration": 785, + "src": "6821:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -31699,38 +33588,38 @@ "typeString": "uint32" } ], - "id": 469, + "id": 871, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6584:10:0", + "src": "6810:10:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bool[] memory)" }, "typeName": { "baseType": { - "id": 467, + "id": 869, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6588:4:0", + "src": "6814:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 468, + "id": 870, "nodeType": "ArrayTypeName", - "src": "6588:6:0", + "src": "6814:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" } } }, - "id": 471, + "id": 873, "isConstant": false, "isLValue": false, "isPure": false, @@ -31738,7 +33627,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6584:22:0", + "src": "6810:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", @@ -31746,22 +33635,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6558:48:0" + "src": "6784:48:6" }, { "assignments": [ - 474 + 876 ], "declarations": [ { "constant": false, - "id": 474, + "id": 876, "mutability": "mutable", "name": "index", - "nameLocation": "6623:5:0", + "nameLocation": "6849:5:6", "nodeType": "VariableDeclaration", - "scope": 566, - "src": "6616:12:0", + "scope": 968, + "src": "6842:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31769,10 +33658,10 @@ "typeString": "uint32" }, "typeName": { - "id": 473, + "id": 875, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6616:6:0", + "src": "6842:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -31781,17 +33670,17 @@ "visibility": "internal" } ], - "id": 476, + "id": 878, "initialValue": { "hexValue": "30", - "id": 475, + "id": 877, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6631:1:0", + "src": "6857:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -31799,99 +33688,99 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6616:16:0" + "src": "6842:16:6" }, { "body": { - "id": 557, + "id": 959, "nodeType": "Block", - "src": "6686:457:0", + "src": "6912:457:6", "statements": [ { "assignments": [ - 492 + 894 ], "declarations": [ { "constant": false, - "id": 492, + "id": 894, "mutability": "mutable", "name": "cc", - "nameLocation": "6717:2:0", + "nameLocation": "6943:2:6", "nodeType": "VariableDeclaration", - "scope": 557, - "src": "6700:19:0", + "scope": 959, + "src": "6926:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" }, "typeName": { "baseType": { - "id": 490, + "id": 892, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 489, + "id": 891, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "6700:6:0" + "referencedDeclaration": 504, + "src": "6926:6:6" }, - "referencedDeclaration": 114, - "src": "6700:6:0", + "referencedDeclaration": 504, + "src": "6926:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 491, + "id": 893, "nodeType": "ArrayTypeName", - "src": "6700:8:0", + "src": "6926:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } }, "visibility": "internal" } ], - "id": 498, + "id": 900, "initialValue": { "baseExpression": { - "id": 493, + "id": 895, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "6722:12:0", + "referencedDeclaration": 513, + "src": "6948:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 497, + "id": 899, "indexExpression": { "baseExpression": { - "id": 494, + "id": 896, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "6735:7:0", + "referencedDeclaration": 507, + "src": "6961:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 496, + "id": 898, "indexExpression": { - "id": 495, + "id": 897, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "6743:1:0", + "referencedDeclaration": 880, + "src": "6969:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -31902,7 +33791,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6735:10:0", + "src": "6961:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -31913,83 +33802,83 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6722:24:0", + "src": "6948:24:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "6700:46:0" + "src": "6926:46:6" }, { "body": { - "id": 555, + "id": 957, "nodeType": "Block", - "src": "6799:334:0", + "src": "7025:334:6", "statements": [ { "assignments": [ - 512 + 914 ], "declarations": [ { "constant": false, - "id": 512, + "id": 914, "mutability": "mutable", "name": "c", - "nameLocation": "6832:1:0", + "nameLocation": "7058:1:6", "nodeType": "VariableDeclaration", - "scope": 555, - "src": "6817:16:0", + "scope": 957, + "src": "7043:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 511, + "id": 913, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 510, + "id": 912, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "6817:6:0" + "referencedDeclaration": 504, + "src": "7043:6:6" }, - "referencedDeclaration": 114, - "src": "6817:6:0", + "referencedDeclaration": 504, + "src": "7043:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, "visibility": "internal" } ], - "id": 516, + "id": 918, "initialValue": { "baseExpression": { - "id": 513, + "id": 915, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 492, - "src": "6836:2:0", + "referencedDeclaration": 894, + "src": "7062:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 515, + "id": 917, "indexExpression": { - "id": 514, + "id": 916, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 500, - "src": "6839:1:0", + "referencedDeclaration": 902, + "src": "7065:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32000,43 +33889,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6836:5:0", + "src": "7062:5:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage", + "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "6817:24:0" + "src": "7043:24:6" }, { "expression": { - "id": 522, + "id": 924, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 517, + "id": 919, "name": "hashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "6859:6:0", + "referencedDeclaration": 824, + "src": "7085:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 519, + "id": 921, "indexExpression": { - "id": 518, + "id": 920, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "6866:5:0", + "referencedDeclaration": 876, + "src": "7092:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32047,7 +33936,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6859:13:0", + "src": "7085:13:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32057,69 +33946,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 520, + "id": 922, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "6875:1:0", + "referencedDeclaration": 914, + "src": "7101:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 521, + "id": 923, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "hash", "nodeType": "MemberAccess", - "referencedDeclaration": 105, - "src": "6875:6:0", + "referencedDeclaration": 495, + "src": "7101:6:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "6859:22:0", + "src": "7085:22:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 523, + "id": 925, "nodeType": "ExpressionStatement", - "src": "6859:22:0" + "src": "7085:22:6" }, { "expression": { - "id": 529, + "id": 931, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 524, + "id": 926, "name": "paramHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 433, - "src": "6899:11:0", + "referencedDeclaration": 835, + "src": "7125:11:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 526, + "id": 928, "indexExpression": { - "id": 525, + "id": 927, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "6911:5:0", + "referencedDeclaration": 876, + "src": "7137:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32130,7 +34019,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6899:18:0", + "src": "7125:18:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32140,69 +34029,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 527, + "id": 929, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "6920:1:0", + "referencedDeclaration": 914, + "src": "7146:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 528, + "id": 930, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paramsHash", "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "6920:12:0", + "referencedDeclaration": 497, + "src": "7146:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "6899:33:0", + "src": "7125:33:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 530, + "id": 932, "nodeType": "ExpressionStatement", - "src": "6899:33:0" + "src": "7125:33:6" }, { "expression": { - "id": 536, + "id": 938, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 531, + "id": 933, "name": "verificationHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 444, - "src": "6950:18:0", + "referencedDeclaration": 846, + "src": "7176:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 533, + "id": 935, "indexExpression": { - "id": 532, + "id": 934, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "6969:5:0", + "referencedDeclaration": 876, + "src": "7195:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32213,7 +34102,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6950:25:0", + "src": "7176:25:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32223,69 +34112,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 534, + "id": 936, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "6978:1:0", + "referencedDeclaration": 914, + "src": "7204:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 535, + "id": 937, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "verificationHash", "nodeType": "MemberAccess", - "referencedDeclaration": 109, - "src": "6978:18:0", + "referencedDeclaration": 499, + "src": "7204:18:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "6950:46:0", + "src": "7176:46:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 537, + "id": 939, "nodeType": "ExpressionStatement", - "src": "6950:46:0" + "src": "7176:46:6" }, { "expression": { - "id": 543, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 538, + "id": 940, "name": "timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 455, - "src": "7014:10:0", + "referencedDeclaration": 857, + "src": "7240:10:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 540, + "id": 942, "indexExpression": { - "id": 539, + "id": 941, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "7025:5:0", + "referencedDeclaration": 876, + "src": "7251:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32296,7 +34185,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7014:17:0", + "src": "7240:17:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32306,69 +34195,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 541, + "id": 943, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "7034:1:0", + "referencedDeclaration": 914, + "src": "7260:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 542, + "id": 944, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 111, - "src": "7034:11:0", + "referencedDeclaration": 501, + "src": "7260:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "7014:31:0", + "src": "7240:31:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 544, + "id": 946, "nodeType": "ExpressionStatement", - "src": "7014:31:0" + "src": "7240:31:6" }, { "expression": { - "id": 550, + "id": 952, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 545, + "id": 947, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 466, - "src": "7063:9:0", + "referencedDeclaration": 868, + "src": "7289:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory" } }, - "id": 547, + "id": 949, "indexExpression": { - "id": 546, + "id": 948, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "7073:5:0", + "referencedDeclaration": 876, + "src": "7299:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32379,7 +34268,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7063:16:0", + "src": "7289:16:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -32389,44 +34278,44 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 548, + "id": 950, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "7082:1:0", + "referencedDeclaration": 914, + "src": "7308:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 549, + "id": 951, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "completed", "nodeType": "MemberAccess", - "referencedDeclaration": 113, - "src": "7082:11:0", + "referencedDeclaration": 503, + "src": "7308:11:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "7063:30:0", + "src": "7289:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 551, + "id": 953, "nodeType": "ExpressionStatement", - "src": "7063:30:0" + "src": "7289:30:6" }, { "expression": { - "id": 553, + "id": 955, "isConstant": false, "isLValue": false, "isPure": false, @@ -32434,14 +34323,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "7111:7:0", + "src": "7337:7:6", "subExpression": { - "id": 552, + "id": 954, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "7111:5:0", + "referencedDeclaration": 876, + "src": "7337:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32452,9 +34341,9 @@ "typeString": "uint32" } }, - "id": 554, + "id": 956, "nodeType": "ExpressionStatement", - "src": "7111:7:0" + "src": "7337:7:6" } ] }, @@ -32463,18 +34352,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 506, + "id": 908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 503, + "id": 905, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 500, - "src": "6779:1:0", + "referencedDeclaration": 902, + "src": "7005:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32484,51 +34373,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 504, + "id": 906, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 492, - "src": "6783:2:0", + "referencedDeclaration": 894, + "src": "7009:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 505, + "id": 907, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6783:9:0", + "src": "7009:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6779:13:0", + "src": "7005:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 556, + "id": 958, "initializationExpression": { "assignments": [ - 500 + 902 ], "declarations": [ { "constant": false, - "id": 500, + "id": 902, "mutability": "mutable", "name": "j", - "nameLocation": "6772:1:0", + "nameLocation": "6998:1:6", "nodeType": "VariableDeclaration", - "scope": 556, - "src": "6765:8:0", + "scope": 958, + "src": "6991:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32536,10 +34425,10 @@ "typeString": "uint32" }, "typeName": { - "id": 499, + "id": 901, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6765:6:0", + "src": "6991:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32548,17 +34437,17 @@ "visibility": "internal" } ], - "id": 502, + "id": 904, "initialValue": { "hexValue": "30", - "id": 501, + "id": 903, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6776:1:0", + "src": "7002:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -32566,11 +34455,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6765:12:0" + "src": "6991:12:6" }, "loopExpression": { "expression": { - "id": 508, + "id": 910, "isConstant": false, "isLValue": false, "isPure": false, @@ -32578,14 +34467,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6794:3:0", + "src": "7020:3:6", "subExpression": { - "id": 507, + "id": 909, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 500, - "src": "6794:1:0", + "referencedDeclaration": 902, + "src": "7020:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32596,12 +34485,12 @@ "typeString": "uint32" } }, - "id": 509, + "id": 911, "nodeType": "ExpressionStatement", - "src": "6794:3:0" + "src": "7020:3:6" }, "nodeType": "ForStatement", - "src": "6760:373:0" + "src": "6986:373:6" } ] }, @@ -32610,18 +34499,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 484, + "id": 886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 481, + "id": 883, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "6661:1:0", + "referencedDeclaration": 880, + "src": "6887:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32631,51 +34520,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 482, + "id": 884, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "6665:7:0", + "referencedDeclaration": 507, + "src": "6891:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 483, + "id": 885, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6665:14:0", + "src": "6891:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6661:18:0", + "src": "6887:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 558, + "id": 960, "initializationExpression": { "assignments": [ - 478 + 880 ], "declarations": [ { "constant": false, - "id": 478, + "id": 880, "mutability": "mutable", "name": "i", - "nameLocation": "6654:1:0", + "nameLocation": "6880:1:6", "nodeType": "VariableDeclaration", - "scope": 558, - "src": "6647:8:0", + "scope": 960, + "src": "6873:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32683,10 +34572,10 @@ "typeString": "uint32" }, "typeName": { - "id": 477, + "id": 879, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6647:6:0", + "src": "6873:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32695,17 +34584,17 @@ "visibility": "internal" } ], - "id": 480, + "id": 882, "initialValue": { "hexValue": "30", - "id": 479, + "id": 881, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6658:1:0", + "src": "6884:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -32713,11 +34602,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6647:12:0" + "src": "6873:12:6" }, "loopExpression": { "expression": { - "id": 486, + "id": 888, "isConstant": false, "isLValue": false, "isPure": false, @@ -32725,14 +34614,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6681:3:0", + "src": "6907:3:6", "subExpression": { - "id": 485, + "id": 887, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "6681:1:0", + "referencedDeclaration": 880, + "src": "6907:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32743,124 +34632,124 @@ "typeString": "uint32" } }, - "id": 487, + "id": 889, "nodeType": "ExpressionStatement", - "src": "6681:3:0" + "src": "6907:3:6" }, "nodeType": "ForStatement", - "src": "6642:501:0" + "src": "6868:501:6" }, { "expression": { "components": [ { - "id": 559, + "id": 961, "name": "hashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "7160:6:0", + "referencedDeclaration": 824, + "src": "7386:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, { - "id": 560, + "id": 962, "name": "paramHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 433, - "src": "7168:11:0", + "referencedDeclaration": 835, + "src": "7394:11:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, { - "id": 561, + "id": 963, "name": "verificationHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 444, - "src": "7181:18:0", + "referencedDeclaration": 846, + "src": "7407:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, { - "id": 562, + "id": 964, "name": "timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 455, - "src": "7201:10:0", + "referencedDeclaration": 857, + "src": "7427:10:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, { - "id": 563, + "id": 965, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 466, - "src": "7213:9:0", + "referencedDeclaration": 868, + "src": "7439:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory" } } ], - "id": 564, + "id": 966, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7159:64:0", + "src": "7385:64:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$", "typeString": "tuple(bytes32[] memory,bytes32[] memory,bytes32[] memory,uint32[] memory,bool[] memory)" } }, - "functionReturnParameters": 381, - "id": 565, + "functionReturnParameters": 783, + "id": 967, "nodeType": "Return", - "src": "7152:71:0" + "src": "7378:71:6" } ] }, "functionSelector": "a17027e1", - "id": 567, + "id": 969, "implemented": true, "kind": "function", "modifiers": [], "name": "getAllCommits", - "nameLocation": "5956:13:0", + "nameLocation": "6182:13:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 365, + "id": 767, "nodeType": "ParameterList", "parameters": [], - "src": "5969:2:0" + "src": "6195:2:6" }, "returnParameters": { - "id": 381, + "id": 783, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 368, + "id": 770, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 567, - "src": "5995:16:0", + "scope": 969, + "src": "6221:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -32869,18 +34758,18 @@ }, "typeName": { "baseType": { - "id": 366, + "id": 768, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5995:7:0", + "src": "6221:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 367, + "id": 769, "nodeType": "ArrayTypeName", - "src": "5995:9:0", + "src": "6221:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -32890,13 +34779,13 @@ }, { "constant": false, - "id": 371, + "id": 773, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 567, - "src": "6013:16:0", + "scope": 969, + "src": "6239:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -32905,18 +34794,18 @@ }, "typeName": { "baseType": { - "id": 369, + "id": 771, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6013:7:0", + "src": "6239:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 370, + "id": 772, "nodeType": "ArrayTypeName", - "src": "6013:9:0", + "src": "6239:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -32926,13 +34815,13 @@ }, { "constant": false, - "id": 374, + "id": 776, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 567, - "src": "6031:16:0", + "scope": 969, + "src": "6257:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -32941,18 +34830,18 @@ }, "typeName": { "baseType": { - "id": 372, + "id": 774, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6031:7:0", + "src": "6257:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 373, + "id": 775, "nodeType": "ArrayTypeName", - "src": "6031:9:0", + "src": "6257:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -32962,13 +34851,13 @@ }, { "constant": false, - "id": 377, + "id": 779, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 567, - "src": "6049:15:0", + "scope": 969, + "src": "6275:15:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -32977,18 +34866,18 @@ }, "typeName": { "baseType": { - "id": 375, + "id": 777, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6049:6:0", + "src": "6275:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 376, + "id": 778, "nodeType": "ArrayTypeName", - "src": "6049:8:0", + "src": "6275:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -32998,13 +34887,13 @@ }, { "constant": false, - "id": 380, + "id": 782, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 567, - "src": "6066:13:0", + "scope": 969, + "src": "6292:13:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -33013,18 +34902,18 @@ }, "typeName": { "baseType": { - "id": 378, + "id": 780, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6066:4:0", + "src": "6292:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 379, + "id": 781, "nodeType": "ArrayTypeName", - "src": "6066:6:0", + "src": "6292:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" @@ -33033,33 +34922,33 @@ "visibility": "internal" } ], - "src": "5994:86:0" + "src": "6220:86:6" }, - "scope": 2161, - "src": "5947:1283:0", + "scope": 2592, + "src": "6173:1283:6", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 584, + "id": 986, "nodeType": "Block", - "src": "7328:37:0", + "src": "7554:37:6", "statements": [ { "expression": { "arguments": [ { "hexValue": "44657072656361746564", - "id": 581, + "id": 983, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7345:12:0", + "src": "7571:12:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b20dc6ef8ce4f94dd03e7dbd2b41776293fb93e4528d85e98acf1bfed3136f73", "typeString": "literal_string \"Deprecated\"" @@ -33074,7 +34963,7 @@ "typeString": "literal_string \"Deprecated\"" } ], - "id": 580, + "id": 982, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -33082,13 +34971,13 @@ 4294967277 ], "referencedDeclaration": 4294967277, - "src": "7338:6:0", + "src": "7564:6:6", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 582, + "id": 984, "isConstant": false, "isLValue": false, "isPure": false, @@ -33096,40 +34985,40 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7338:20:0", + "src": "7564:20:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 583, + "id": 985, "nodeType": "ExpressionStatement", - "src": "7338:20:0" + "src": "7564:20:6" } ] }, "functionSelector": "1cf4ea05", - "id": 585, + "id": 987, "implemented": true, "kind": "function", "modifiers": [], "name": "findCommit", - "nameLocation": "7245:10:0", + "nameLocation": "7471:10:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 570, + "id": 972, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 569, + "id": 971, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "7256:7:0", + "scope": 987, + "src": "7482:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33137,10 +35026,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 568, + "id": 970, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7256:7:0", + "src": "7482:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33149,21 +35038,21 @@ "visibility": "internal" } ], - "src": "7255:18:0" + "src": "7481:18:6" }, "returnParameters": { - "id": 579, + "id": 981, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 572, + "id": 974, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "7297:7:0", + "scope": 987, + "src": "7523:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33171,10 +35060,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 571, + "id": 973, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7297:7:0", + "src": "7523:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33184,13 +35073,13 @@ }, { "constant": false, - "id": 574, + "id": 976, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "7306:7:0", + "scope": 987, + "src": "7532:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33198,10 +35087,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 573, + "id": 975, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7306:7:0", + "src": "7532:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33211,13 +35100,13 @@ }, { "constant": false, - "id": 576, + "id": 978, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "7315:6:0", + "scope": 987, + "src": "7541:6:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33225,10 +35114,10 @@ "typeString": "uint32" }, "typeName": { - "id": 575, + "id": 977, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7315:6:0", + "src": "7541:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -33238,13 +35127,13 @@ }, { "constant": false, - "id": 578, + "id": 980, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "7323:4:0", + "scope": 987, + "src": "7549:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33252,10 +35141,10 @@ "typeString": "bool" }, "typeName": { - "id": 577, + "id": 979, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7323:4:0", + "src": "7549:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -33264,91 +35153,91 @@ "visibility": "internal" } ], - "src": "7296:32:0" + "src": "7522:32:6" }, - "scope": 2161, - "src": "7236:129:0", + "scope": 2592, + "src": "7462:129:6", "stateMutability": "pure", "virtual": false, "visibility": "external" }, { "body": { - "id": 736, + "id": 1138, "nodeType": "Block", - "src": "7515:763:0", + "src": "7741:763:6", "statements": [ { "assignments": [ - 609 + 1011 ], "declarations": [ { "constant": false, - "id": 609, + "id": 1011, "mutability": "mutable", "name": "cc", - "nameLocation": "7542:2:0", + "nameLocation": "7768:2:6", "nodeType": "VariableDeclaration", - "scope": 736, - "src": "7525:19:0", + "scope": 1138, + "src": "7751:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" }, "typeName": { "baseType": { - "id": 607, + "id": 1009, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 606, + "id": 1008, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "7525:6:0" + "referencedDeclaration": 504, + "src": "7751:6:6" }, - "referencedDeclaration": 114, - "src": "7525:6:0", + "referencedDeclaration": 504, + "src": "7751:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 608, + "id": 1010, "nodeType": "ArrayTypeName", - "src": "7525:8:0", + "src": "7751:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } }, "visibility": "internal" } ], - "id": 613, + "id": 1015, "initialValue": { "baseExpression": { - "id": 610, + "id": 1012, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "7547:12:0", + "referencedDeclaration": 513, + "src": "7773:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 612, + "id": 1014, "indexExpression": { - "id": 611, + "id": 1013, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 587, - "src": "7560:4:0", + "referencedDeclaration": 989, + "src": "7786:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33359,29 +35248,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7547:18:0", + "src": "7773:18:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "7525:40:0" + "src": "7751:40:6" }, { "assignments": [ - 618 + 1020 ], "declarations": [ { "constant": false, - "id": 618, + "id": 1020, "mutability": "mutable", "name": "hashes", - "nameLocation": "7592:6:0", + "nameLocation": "7818:6:6", "nodeType": "VariableDeclaration", - "scope": 736, - "src": "7575:23:0", + "scope": 1138, + "src": "7801:23:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -33390,18 +35279,18 @@ }, "typeName": { "baseType": { - "id": 616, + "id": 1018, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7575:7:0", + "src": "7801:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 617, + "id": 1019, "nodeType": "ArrayTypeName", - "src": "7575:9:0", + "src": "7801:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -33410,30 +35299,30 @@ "visibility": "internal" } ], - "id": 625, + "id": 1027, "initialValue": { "arguments": [ { "expression": { - "id": 622, + "id": 1024, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "7615:2:0", + "referencedDeclaration": 1011, + "src": "7841:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 623, + "id": 1025, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7615:9:0", + "src": "7841:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33447,38 +35336,38 @@ "typeString": "uint256" } ], - "id": 621, + "id": 1023, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7601:13:0", + "src": "7827:13:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes32[] memory)" }, "typeName": { "baseType": { - "id": 619, + "id": 1021, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7605:7:0", + "src": "7831:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 620, + "id": 1022, "nodeType": "ArrayTypeName", - "src": "7605:9:0", + "src": "7831:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" } } }, - "id": 624, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": false, @@ -33486,7 +35375,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7601:24:0", + "src": "7827:24:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", @@ -33494,22 +35383,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7575:50:0" + "src": "7801:50:6" }, { "assignments": [ - 630 + 1032 ], "declarations": [ { "constant": false, - "id": 630, + "id": 1032, "mutability": "mutable", "name": "paramHashes", - "nameLocation": "7652:11:0", + "nameLocation": "7878:11:6", "nodeType": "VariableDeclaration", - "scope": 736, - "src": "7635:28:0", + "scope": 1138, + "src": "7861:28:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -33518,18 +35407,18 @@ }, "typeName": { "baseType": { - "id": 628, + "id": 1030, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7635:7:0", + "src": "7861:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 629, + "id": 1031, "nodeType": "ArrayTypeName", - "src": "7635:9:0", + "src": "7861:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -33538,30 +35427,30 @@ "visibility": "internal" } ], - "id": 637, + "id": 1039, "initialValue": { "arguments": [ { "expression": { - "id": 634, + "id": 1036, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "7680:2:0", + "referencedDeclaration": 1011, + "src": "7906:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 635, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7680:9:0", + "src": "7906:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33575,38 +35464,38 @@ "typeString": "uint256" } ], - "id": 633, + "id": 1035, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7666:13:0", + "src": "7892:13:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes32[] memory)" }, "typeName": { "baseType": { - "id": 631, + "id": 1033, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7670:7:0", + "src": "7896:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 632, + "id": 1034, "nodeType": "ArrayTypeName", - "src": "7670:9:0", + "src": "7896:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" } } }, - "id": 636, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -33614,7 +35503,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7666:24:0", + "src": "7892:24:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", @@ -33622,22 +35511,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7635:55:0" + "src": "7861:55:6" }, { "assignments": [ - 642 + 1044 ], "declarations": [ { "constant": false, - "id": 642, + "id": 1044, "mutability": "mutable", "name": "verificationHashes", - "nameLocation": "7717:18:0", + "nameLocation": "7943:18:6", "nodeType": "VariableDeclaration", - "scope": 736, - "src": "7700:35:0", + "scope": 1138, + "src": "7926:35:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -33646,18 +35535,18 @@ }, "typeName": { "baseType": { - "id": 640, + "id": 1042, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7700:7:0", + "src": "7926:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 641, + "id": 1043, "nodeType": "ArrayTypeName", - "src": "7700:9:0", + "src": "7926:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -33666,30 +35555,30 @@ "visibility": "internal" } ], - "id": 649, + "id": 1051, "initialValue": { "arguments": [ { "expression": { - "id": 646, + "id": 1048, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "7752:2:0", + "referencedDeclaration": 1011, + "src": "7978:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 647, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7752:9:0", + "src": "7978:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33703,38 +35592,38 @@ "typeString": "uint256" } ], - "id": 645, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7738:13:0", + "src": "7964:13:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes32[] memory)" }, "typeName": { "baseType": { - "id": 643, + "id": 1045, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7742:7:0", + "src": "7968:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 644, + "id": 1046, "nodeType": "ArrayTypeName", - "src": "7742:9:0", + "src": "7968:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" } } }, - "id": 648, + "id": 1050, "isConstant": false, "isLValue": false, "isPure": false, @@ -33742,7 +35631,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7738:24:0", + "src": "7964:24:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", @@ -33750,22 +35639,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7700:62:0" + "src": "7926:62:6" }, { "assignments": [ - 654 + 1056 ], "declarations": [ { "constant": false, - "id": 654, + "id": 1056, "mutability": "mutable", "name": "timestamps", - "nameLocation": "7788:10:0", + "nameLocation": "8014:10:6", "nodeType": "VariableDeclaration", - "scope": 736, - "src": "7772:26:0", + "scope": 1138, + "src": "7998:26:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -33774,18 +35663,18 @@ }, "typeName": { "baseType": { - "id": 652, + "id": 1054, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7772:6:0", + "src": "7998:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 653, + "id": 1055, "nodeType": "ArrayTypeName", - "src": "7772:8:0", + "src": "7998:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -33794,30 +35683,30 @@ "visibility": "internal" } ], - "id": 661, + "id": 1063, "initialValue": { "arguments": [ { "expression": { - "id": 658, + "id": 1060, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "7814:2:0", + "referencedDeclaration": 1011, + "src": "8040:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 659, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7814:9:0", + "src": "8040:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33831,38 +35720,38 @@ "typeString": "uint256" } ], - "id": 657, + "id": 1059, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7801:12:0", + "src": "8027:12:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint32[] memory)" }, "typeName": { "baseType": { - "id": 655, + "id": 1057, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7805:6:0", + "src": "8031:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 656, + "id": 1058, "nodeType": "ArrayTypeName", - "src": "7805:8:0", + "src": "8031:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" } } }, - "id": 660, + "id": 1062, "isConstant": false, "isLValue": false, "isPure": false, @@ -33870,7 +35759,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7801:23:0", + "src": "8027:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", @@ -33878,22 +35767,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7772:52:0" + "src": "7998:52:6" }, { "assignments": [ - 666 + 1068 ], "declarations": [ { "constant": false, - "id": 666, + "id": 1068, "mutability": "mutable", "name": "completed", - "nameLocation": "7848:9:0", + "nameLocation": "8074:9:6", "nodeType": "VariableDeclaration", - "scope": 736, - "src": "7834:23:0", + "scope": 1138, + "src": "8060:23:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -33902,18 +35791,18 @@ }, "typeName": { "baseType": { - "id": 664, + "id": 1066, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7834:4:0", + "src": "8060:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 665, + "id": 1067, "nodeType": "ArrayTypeName", - "src": "7834:6:0", + "src": "8060:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" @@ -33922,30 +35811,30 @@ "visibility": "internal" } ], - "id": 673, + "id": 1075, "initialValue": { "arguments": [ { "expression": { - "id": 670, + "id": 1072, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "7871:2:0", + "referencedDeclaration": 1011, + "src": "8097:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 671, + "id": 1073, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7871:9:0", + "src": "8097:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33959,38 +35848,38 @@ "typeString": "uint256" } ], - "id": 669, + "id": 1071, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7860:10:0", + "src": "8086:10:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bool[] memory)" }, "typeName": { "baseType": { - "id": 667, + "id": 1069, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7864:4:0", + "src": "8090:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 668, + "id": 1070, "nodeType": "ArrayTypeName", - "src": "7864:6:0", + "src": "8090:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" } } }, - "id": 672, + "id": 1074, "isConstant": false, "isLValue": false, "isPure": false, @@ -33998,7 +35887,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7860:21:0", + "src": "8086:21:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", @@ -34006,76 +35895,76 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7834:47:0" + "src": "8060:47:6" }, { "body": { - "id": 727, + "id": 1129, "nodeType": "Block", - "src": "7930:261:0", + "src": "8156:261:6", "statements": [ { "assignments": [ - 687 + 1089 ], "declarations": [ { "constant": false, - "id": 687, + "id": 1089, "mutability": "mutable", "name": "c", - "nameLocation": "7959:1:0", + "nameLocation": "8185:1:6", "nodeType": "VariableDeclaration", - "scope": 727, - "src": "7944:16:0", + "scope": 1129, + "src": "8170:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 686, + "id": 1088, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 685, + "id": 1087, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "7944:6:0" + "referencedDeclaration": 504, + "src": "8170:6:6" }, - "referencedDeclaration": 114, - "src": "7944:6:0", + "referencedDeclaration": 504, + "src": "8170:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, "visibility": "internal" } ], - "id": 691, + "id": 1093, "initialValue": { "baseExpression": { - "id": 688, + "id": 1090, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "7963:2:0", + "referencedDeclaration": 1011, + "src": "8189:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 690, + "id": 1092, "indexExpression": { - "id": 689, + "id": 1091, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "7966:1:0", + "referencedDeclaration": 1077, + "src": "8192:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34086,43 +35975,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7963:5:0", + "src": "8189:5:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage", + "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "7944:24:0" + "src": "8170:24:6" }, { "expression": { - "id": 697, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 692, + "id": 1094, "name": "hashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "7982:6:0", + "referencedDeclaration": 1020, + "src": "8208:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 694, + "id": 1096, "indexExpression": { - "id": 693, + "id": 1095, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "7989:1:0", + "referencedDeclaration": 1077, + "src": "8215:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34133,7 +36022,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7982:9:0", + "src": "8208:9:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -34143,69 +36032,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 695, + "id": 1097, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "7994:1:0", + "referencedDeclaration": 1089, + "src": "8220:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 696, + "id": 1098, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "hash", "nodeType": "MemberAccess", - "referencedDeclaration": 105, - "src": "7994:6:0", + "referencedDeclaration": 495, + "src": "8220:6:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "7982:18:0", + "src": "8208:18:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 698, + "id": 1100, "nodeType": "ExpressionStatement", - "src": "7982:18:0" + "src": "8208:18:6" }, { "expression": { - "id": 704, + "id": 1106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 699, + "id": 1101, "name": "paramHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "8014:11:0", + "referencedDeclaration": 1032, + "src": "8240:11:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 701, + "id": 1103, "indexExpression": { - "id": 700, + "id": 1102, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "8026:1:0", + "referencedDeclaration": 1077, + "src": "8252:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34216,7 +36105,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8014:14:0", + "src": "8240:14:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -34226,69 +36115,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 702, + "id": 1104, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "8031:1:0", + "referencedDeclaration": 1089, + "src": "8257:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 703, + "id": 1105, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paramsHash", "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "8031:12:0", + "referencedDeclaration": 497, + "src": "8257:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8014:29:0", + "src": "8240:29:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 705, + "id": 1107, "nodeType": "ExpressionStatement", - "src": "8014:29:0" + "src": "8240:29:6" }, { "expression": { - "id": 711, + "id": 1113, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 706, + "id": 1108, "name": "verificationHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "8057:18:0", + "referencedDeclaration": 1044, + "src": "8283:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 708, + "id": 1110, "indexExpression": { - "id": 707, + "id": 1109, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "8076:1:0", + "referencedDeclaration": 1077, + "src": "8302:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34299,7 +36188,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8057:21:0", + "src": "8283:21:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -34309,69 +36198,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 709, + "id": 1111, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "8081:1:0", + "referencedDeclaration": 1089, + "src": "8307:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 710, + "id": 1112, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "verificationHash", "nodeType": "MemberAccess", - "referencedDeclaration": 109, - "src": "8081:18:0", + "referencedDeclaration": 499, + "src": "8307:18:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8057:42:0", + "src": "8283:42:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 712, + "id": 1114, "nodeType": "ExpressionStatement", - "src": "8057:42:0" + "src": "8283:42:6" }, { "expression": { - "id": 718, + "id": 1120, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 713, + "id": 1115, "name": "timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "8113:10:0", + "referencedDeclaration": 1056, + "src": "8339:10:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 715, + "id": 1117, "indexExpression": { - "id": 714, + "id": 1116, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "8124:1:0", + "referencedDeclaration": 1077, + "src": "8350:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34382,7 +36271,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8113:13:0", + "src": "8339:13:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34392,69 +36281,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 716, + "id": 1118, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "8129:1:0", + "referencedDeclaration": 1089, + "src": "8355:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 717, + "id": 1119, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 111, - "src": "8129:11:0", + "referencedDeclaration": 501, + "src": "8355:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "8113:27:0", + "src": "8339:27:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 719, + "id": 1121, "nodeType": "ExpressionStatement", - "src": "8113:27:0" + "src": "8339:27:6" }, { "expression": { - "id": 725, + "id": 1127, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 720, + "id": 1122, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "8154:9:0", + "referencedDeclaration": 1068, + "src": "8380:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory" } }, - "id": 722, + "id": 1124, "indexExpression": { - "id": 721, + "id": 1123, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "8164:1:0", + "referencedDeclaration": 1077, + "src": "8390:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34465,7 +36354,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8154:12:0", + "src": "8380:12:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -34475,40 +36364,40 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 723, + "id": 1125, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "8169:1:0", + "referencedDeclaration": 1089, + "src": "8395:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 724, + "id": 1126, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "completed", "nodeType": "MemberAccess", - "referencedDeclaration": 113, - "src": "8169:11:0", + "referencedDeclaration": 503, + "src": "8395:11:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "8154:26:0", + "src": "8380:26:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 726, + "id": 1128, "nodeType": "ExpressionStatement", - "src": "8154:26:0" + "src": "8380:26:6" } ] }, @@ -34517,18 +36406,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 681, + "id": 1083, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 678, + "id": 1080, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "7910:1:0", + "referencedDeclaration": 1077, + "src": "8136:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34538,51 +36427,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 679, + "id": 1081, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "7914:2:0", + "referencedDeclaration": 1011, + "src": "8140:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 680, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7914:9:0", + "src": "8140:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7910:13:0", + "src": "8136:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 728, + "id": 1130, "initializationExpression": { "assignments": [ - 675 + 1077 ], "declarations": [ { "constant": false, - "id": 675, + "id": 1077, "mutability": "mutable", "name": "i", - "nameLocation": "7903:1:0", + "nameLocation": "8129:1:6", "nodeType": "VariableDeclaration", - "scope": 728, - "src": "7896:8:0", + "scope": 1130, + "src": "8122:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34590,10 +36479,10 @@ "typeString": "uint32" }, "typeName": { - "id": 674, + "id": 1076, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7896:6:0", + "src": "8122:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34602,17 +36491,17 @@ "visibility": "internal" } ], - "id": 677, + "id": 1079, "initialValue": { "hexValue": "30", - "id": 676, + "id": 1078, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7907:1:0", + "src": "8133:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -34620,11 +36509,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "7896:12:0" + "src": "8122:12:6" }, "loopExpression": { "expression": { - "id": 683, + "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, @@ -34632,14 +36521,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "7925:3:0", + "src": "8151:3:6", "subExpression": { - "id": 682, + "id": 1084, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "7925:1:0", + "referencedDeclaration": 1077, + "src": "8151:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34650,118 +36539,118 @@ "typeString": "uint32" } }, - "id": 684, + "id": 1086, "nodeType": "ExpressionStatement", - "src": "7925:3:0" + "src": "8151:3:6" }, "nodeType": "ForStatement", - "src": "7891:300:0" + "src": "8117:300:6" }, { "expression": { "components": [ { - "id": 729, + "id": 1131, "name": "hashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "8208:6:0", + "referencedDeclaration": 1020, + "src": "8434:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, { - "id": 730, + "id": 1132, "name": "paramHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "8216:11:0", + "referencedDeclaration": 1032, + "src": "8442:11:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, { - "id": 731, + "id": 1133, "name": "verificationHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "8229:18:0", + "referencedDeclaration": 1044, + "src": "8455:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, { - "id": 732, + "id": 1134, "name": "timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "8249:10:0", + "referencedDeclaration": 1056, + "src": "8475:10:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, { - "id": 733, + "id": 1135, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "8261:9:0", + "referencedDeclaration": 1068, + "src": "8487:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory" } } ], - "id": 734, + "id": 1136, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "8207:64:0", + "src": "8433:64:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$", "typeString": "tuple(bytes32[] memory,bytes32[] memory,bytes32[] memory,uint32[] memory,bool[] memory)" } }, - "functionReturnParameters": 604, - "id": 735, + "functionReturnParameters": 1006, + "id": 1137, "nodeType": "Return", - "src": "8200:71:0" + "src": "8426:71:6" } ] }, "functionSelector": "d87458a3", - "id": 737, + "id": 1139, "implemented": true, "kind": "function", "modifiers": [], "name": "lookupCommit", - "nameLocation": "7380:12:0", + "nameLocation": "7606:12:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 588, + "id": 990, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 587, + "id": 989, "mutability": "mutable", "name": "hash", - "nameLocation": "7401:4:0", + "nameLocation": "7627:4:6", "nodeType": "VariableDeclaration", - "scope": 737, - "src": "7393:12:0", + "scope": 1139, + "src": "7619:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34769,10 +36658,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 586, + "id": 988, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7393:7:0", + "src": "7619:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -34781,21 +36670,21 @@ "visibility": "internal" } ], - "src": "7392:14:0" + "src": "7618:14:6" }, "returnParameters": { - "id": 604, + "id": 1006, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 591, + "id": 993, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 737, - "src": "7430:16:0", + "scope": 1139, + "src": "7656:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -34804,18 +36693,18 @@ }, "typeName": { "baseType": { - "id": 589, + "id": 991, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7430:7:0", + "src": "7656:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 590, + "id": 992, "nodeType": "ArrayTypeName", - "src": "7430:9:0", + "src": "7656:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -34825,13 +36714,13 @@ }, { "constant": false, - "id": 594, + "id": 996, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 737, - "src": "7448:16:0", + "scope": 1139, + "src": "7674:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -34840,18 +36729,18 @@ }, "typeName": { "baseType": { - "id": 592, + "id": 994, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7448:7:0", + "src": "7674:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 593, + "id": 995, "nodeType": "ArrayTypeName", - "src": "7448:9:0", + "src": "7674:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -34861,13 +36750,13 @@ }, { "constant": false, - "id": 597, + "id": 999, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 737, - "src": "7466:16:0", + "scope": 1139, + "src": "7692:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -34876,18 +36765,18 @@ }, "typeName": { "baseType": { - "id": 595, + "id": 997, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7466:7:0", + "src": "7692:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 596, + "id": 998, "nodeType": "ArrayTypeName", - "src": "7466:9:0", + "src": "7692:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -34897,13 +36786,13 @@ }, { "constant": false, - "id": 600, + "id": 1002, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 737, - "src": "7484:15:0", + "scope": 1139, + "src": "7710:15:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -34912,18 +36801,18 @@ }, "typeName": { "baseType": { - "id": 598, + "id": 1000, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7484:6:0", + "src": "7710:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 599, + "id": 1001, "nodeType": "ArrayTypeName", - "src": "7484:8:0", + "src": "7710:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -34933,13 +36822,13 @@ }, { "constant": false, - "id": 603, + "id": 1005, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 737, - "src": "7501:13:0", + "scope": 1139, + "src": "7727:13:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -34948,18 +36837,18 @@ }, "typeName": { "baseType": { - "id": 601, + "id": 1003, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7501:4:0", + "src": "7727:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 602, + "id": 1004, "nodeType": "ArrayTypeName", - "src": "7501:6:0", + "src": "7727:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" @@ -34968,37 +36857,37 @@ "visibility": "internal" } ], - "src": "7429:86:0" + "src": "7655:86:6" }, - "scope": 2161, - "src": "7371:907:0", + "scope": 2592, + "src": "7597:907:6", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 785, + "id": 1187, "nodeType": "Block", - "src": "8369:273:0", + "src": "8595:273:6", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 746, + "id": 1148, "name": "_cleanupCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "8379:15:0", + "referencedDeclaration": 2197, + "src": "8605:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 747, + "id": 1149, "isConstant": false, "isLValue": false, "isPure": false, @@ -35006,91 +36895,91 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8379:17:0", + "src": "8605:17:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 748, + "id": 1150, "nodeType": "ExpressionStatement", - "src": "8379:17:0" + "src": "8605:17:6" }, { "assignments": [ - 751 + 1153 ], "declarations": [ { "constant": false, - "id": 751, + "id": 1153, "mutability": "mutable", "name": "nc", - "nameLocation": "8420:2:0", + "nameLocation": "8646:2:6", "nodeType": "VariableDeclaration", - "scope": 785, - "src": "8406:16:0", + "scope": 1187, + "src": "8632:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_memory_ptr", + "typeIdentifier": "t_struct$_Commit_$504_memory_ptr", "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 750, + "id": 1152, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 749, + "id": 1151, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "8406:6:0" + "referencedDeclaration": 504, + "src": "8632:6:6" }, - "referencedDeclaration": 114, - "src": "8406:6:0", + "referencedDeclaration": 504, + "src": "8632:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, "visibility": "internal" } ], - "id": 763, + "id": 1165, "initialValue": { "arguments": [ { - "id": 753, + "id": 1155, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "8432:4:0", + "referencedDeclaration": 1141, + "src": "8658:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 754, + "id": 1156, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "8438:10:0", + "referencedDeclaration": 1143, + "src": "8664:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 755, + "id": 1157, "name": "verificationHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 743, - "src": "8450:16:0", + "referencedDeclaration": 1145, + "src": "8676:16:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -35100,25 +36989,25 @@ "arguments": [ { "expression": { - "id": 758, + "id": 1160, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "8475:5:0", + "src": "8701:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 759, + "id": 1161, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "8475:15:0", + "src": "8701:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35132,26 +37021,26 @@ "typeString": "uint256" } ], - "id": 757, + "id": 1159, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8468:6:0", + "src": "8694:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 756, + "id": 1158, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "8468:6:0", + "src": "8694:6:6", "typeDescriptions": {} } }, - "id": 760, + "id": 1162, "isConstant": false, "isLValue": false, "isPure": false, @@ -35159,7 +37048,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8468:23:0", + "src": "8694:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -35168,14 +37057,14 @@ }, { "hexValue": "66616c7365", - "id": 761, + "id": 1163, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8493:5:0", + "src": "8719:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -35206,18 +37095,18 @@ "typeString": "bool" } ], - "id": 752, + "id": 1154, "name": "Commit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "8425:6:0", + "referencedDeclaration": 504, + "src": "8651:6:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Commit_$114_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Commit_$504_storage_ptr_$", "typeString": "type(struct ONEWallet.Commit storage pointer)" } }, - "id": 762, + "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, @@ -35225,15 +37114,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8425:74:0", + "src": "8651:74:6", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_memory_ptr", + "typeIdentifier": "t_struct$_Commit_$504_memory_ptr", "typeString": "struct ONEWallet.Commit memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "8406:93:0" + "src": "8632:93:6" }, { "expression": { @@ -35243,32 +37132,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 768, + "id": 1170, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 765, + "id": 1167, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "8517:7:0", + "referencedDeclaration": 507, + "src": "8743:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 766, + "id": 1168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "8517:14:0", + "src": "8743:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35277,18 +37166,18 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 767, + "id": 1169, "name": "MAX_COMMIT_SIZE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 89, - "src": "8534:15:0", + "referencedDeclaration": 478, + "src": "8760:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "8517:32:0", + "src": "8743:32:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -35296,14 +37185,14 @@ }, { "hexValue": "546f6f206d616e7920636f6d6d697473", - "id": 769, + "id": 1171, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8551:18:0", + "src": "8777:18:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0c1004916946b89dffc8743f953d4885accbd82403cd8bd9e53f384fa95731af", "typeString": "literal_string \"Too many commits\"" @@ -35322,7 +37211,7 @@ "typeString": "literal_string \"Too many commits\"" } ], - "id": 764, + "id": 1166, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -35330,13 +37219,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "8509:7:0", + "src": "8735:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 770, + "id": 1172, "isConstant": false, "isLValue": false, "isPure": false, @@ -35344,27 +37233,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8509:61:0", + "src": "8735:61:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 771, + "id": 1173, "nodeType": "ExpressionStatement", - "src": "8509:61:0" + "src": "8735:61:6" }, { "expression": { "arguments": [ { - "id": 775, + "id": 1177, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "8593:4:0", + "referencedDeclaration": 1141, + "src": "8819:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -35379,31 +37268,31 @@ } ], "expression": { - "id": 772, + "id": 1174, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "8580:7:0", + "referencedDeclaration": 507, + "src": "8806:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 774, + "id": 1176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "8580:12:0", + "src": "8806:12:6", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$", "typeString": "function (bytes32[] storage pointer,bytes32)" } }, - "id": 776, + "id": 1178, "isConstant": false, "isLValue": false, "isPure": false, @@ -35411,29 +37300,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8580:18:0", + "src": "8806:18:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 777, + "id": 1179, "nodeType": "ExpressionStatement", - "src": "8580:18:0" + "src": "8806:18:6" }, { "expression": { "arguments": [ { - "id": 782, + "id": 1184, "name": "nc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "8632:2:0", + "referencedDeclaration": 1153, + "src": "8858:2:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_memory_ptr", + "typeIdentifier": "t_struct$_Commit_$504_memory_ptr", "typeString": "struct ONEWallet.Commit memory" } } @@ -35441,31 +37330,31 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Commit_$114_memory_ptr", + "typeIdentifier": "t_struct$_Commit_$504_memory_ptr", "typeString": "struct ONEWallet.Commit memory" } ], "expression": { "baseExpression": { - "id": 778, + "id": 1180, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "8608:12:0", + "referencedDeclaration": 513, + "src": "8834:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 780, + "id": 1182, "indexExpression": { - "id": 779, + "id": 1181, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "8621:4:0", + "referencedDeclaration": 1141, + "src": "8847:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -35476,26 +37365,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8608:18:0", + "src": "8834:18:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, - "id": 781, + "id": 1183, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "8608:23:0", + "src": "8834:23:6", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr_$_t_struct$_Commit_$114_storage_$returns$__$bound_to$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr_$", + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr_$_t_struct$_Commit_$504_storage_$returns$__$bound_to$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr_$", "typeString": "function (struct ONEWallet.Commit storage ref[] storage pointer,struct ONEWallet.Commit storage ref)" } }, - "id": 783, + "id": 1185, "isConstant": false, "isLValue": false, "isPure": false, @@ -35503,40 +37392,40 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8608:27:0", + "src": "8834:27:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 784, + "id": 1186, "nodeType": "ExpressionStatement", - "src": "8608:27:0" + "src": "8834:27:6" } ] }, "functionSelector": "e4e5b258", - "id": 786, + "id": 1188, "implemented": true, "kind": "function", "modifiers": [], "name": "commit", - "nameLocation": "8293:6:0", + "nameLocation": "8519:6:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 744, + "id": 1146, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 739, + "id": 1141, "mutability": "mutable", "name": "hash", - "nameLocation": "8308:4:0", + "nameLocation": "8534:4:6", "nodeType": "VariableDeclaration", - "scope": 786, - "src": "8300:12:0", + "scope": 1188, + "src": "8526:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35544,10 +37433,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 738, + "id": 1140, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8300:7:0", + "src": "8526:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -35557,13 +37446,13 @@ }, { "constant": false, - "id": 741, + "id": 1143, "mutability": "mutable", "name": "paramsHash", - "nameLocation": "8322:10:0", + "nameLocation": "8548:10:6", "nodeType": "VariableDeclaration", - "scope": 786, - "src": "8314:18:0", + "scope": 1188, + "src": "8540:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35571,10 +37460,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 740, + "id": 1142, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8314:7:0", + "src": "8540:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -35584,13 +37473,13 @@ }, { "constant": false, - "id": 743, + "id": 1145, "mutability": "mutable", "name": "verificationHash", - "nameLocation": "8342:16:0", + "nameLocation": "8568:16:6", "nodeType": "VariableDeclaration", - "scope": 786, - "src": "8334:24:0", + "scope": 1188, + "src": "8560:24:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35598,10 +37487,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 742, + "id": 1144, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8334:7:0", + "src": "8560:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -35610,41 +37499,41 @@ "visibility": "internal" } ], - "src": "8299:60:0" + "src": "8525:60:6" }, "returnParameters": { - "id": 745, + "id": 1147, "nodeType": "ParameterList", "parameters": [], - "src": "8369:0:0" + "src": "8595:0:6" }, - "scope": 2161, - "src": "8284:358:0", + "scope": 2592, + "src": "8510:358:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 807, + "id": 1209, "nodeType": "Block", - "src": "8926:216:0", + "src": "9152:216:6", "statements": [ { "assignments": [ - 793, + 1195, null ], "declarations": [ { "constant": false, - "id": 793, + "id": 1195, "mutability": "mutable", "name": "success", - "nameLocation": "9042:7:0", + "nameLocation": "9268:7:6", "nodeType": "VariableDeclaration", - "scope": 807, - "src": "9037:12:0", + "scope": 1209, + "src": "9263:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35652,10 +37541,10 @@ "typeString": "bool" }, "typeName": { - "id": 792, + "id": 1194, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9037:4:0", + "src": "9263:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -35665,19 +37554,19 @@ }, null ], - "id": 804, + "id": 1206, "initialValue": { "arguments": [ { "hexValue": "", - "id": 802, + "id": 1204, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9108:2:0", + "src": "9334:2:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -35700,31 +37589,31 @@ } ], "expression": { - "id": 794, + "id": 1196, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "9054:17:0", + "referencedDeclaration": 452, + "src": "9280:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 795, + "id": 1197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "call", "nodeType": "MemberAccess", - "src": "9054:22:0", + "src": "9280:22:6", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 801, + "id": 1203, "isConstant": false, "isLValue": false, "isPure": false, @@ -35738,14 +37627,14 @@ "expression": { "arguments": [ { - "id": 798, + "id": 1200, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "9093:4:0", + "src": "9319:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } } @@ -35753,30 +37642,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } ], - "id": 797, + "id": 1199, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9085:7:0", + "src": "9311:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 796, + "id": 1198, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9085:7:0", + "src": "9311:7:6", "typeDescriptions": {} } }, - "id": 799, + "id": 1201, "isConstant": false, "isLValue": false, "isPure": false, @@ -35784,34 +37673,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9085:13:0", + "src": "9311:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 800, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "src": "9085:21:0", + "src": "9311:21:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "9054:53:0", + "src": "9280:53:6", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 803, + "id": 1205, "isConstant": false, "isLValue": false, "isPure": false, @@ -35819,7 +37708,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9054:57:0", + "src": "9280:57:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", @@ -35827,60 +37716,60 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9036:75:0" + "src": "9262:75:6" }, { "expression": { - "id": 805, + "id": 1207, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "9128:7:0", + "referencedDeclaration": 1195, + "src": "9354:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 791, - "id": 806, + "functionReturnParameters": 1193, + "id": 1208, "nodeType": "Return", - "src": "9121:14:0" + "src": "9347:14:6" } ] }, "documentation": { - "id": 787, + "id": 1189, "nodeType": "StructuredDocumentation", - "src": "8648:231:0", + "src": "8874:231:6", "text": "This function sends all remaining funds of the wallet to `lastResortAddress`. The caller should verify that `lastResortAddress` is not null.\n TODO: also transfer all tracked ERC20, 721, 1155 tokens to `lastResortAddress`" }, - "id": 808, + "id": 1210, "implemented": true, "kind": "function", "modifiers": [], "name": "_drain", - "nameLocation": "8893:6:0", + "nameLocation": "9119:6:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 788, + "id": 1190, "nodeType": "ParameterList", "parameters": [], - "src": "8899:2:0" + "src": "9125:2:6" }, "returnParameters": { - "id": 791, + "id": 1193, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 790, + "id": 1192, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 808, - "src": "8920:4:0", + "scope": 1210, + "src": "9146:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35888,10 +37777,10 @@ "typeString": "bool" }, "typeName": { - "id": 789, + "id": 1191, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8920:4:0", + "src": "9146:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -35900,34 +37789,34 @@ "visibility": "internal" } ], - "src": "8919:6:0" + "src": "9145:6:6" }, - "scope": 2161, - "src": "8884:258:0", + "scope": 2592, + "src": "9110:258:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 907, + "id": 1313, "nodeType": "Block", - "src": "9229:859:0", + "src": "9455:894:6", "statements": [ { "assignments": [ - 818 + 1220 ], "declarations": [ { "constant": false, - "id": 818, + "id": 1220, "mutability": "mutable", "name": "day", - "nameLocation": "9246:3:0", + "nameLocation": "9472:3:6", "nodeType": "VariableDeclaration", - "scope": 907, - "src": "9239:10:0", + "scope": 1313, + "src": "9465:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35935,10 +37824,10 @@ "typeString": "uint32" }, "typeName": { - "id": 817, + "id": 1219, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9239:6:0", + "src": "9465:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -35947,7 +37836,7 @@ "visibility": "internal" } ], - "id": 826, + "id": 1228, "initialValue": { "arguments": [ { @@ -35955,32 +37844,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 824, + "id": 1226, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 821, + "id": 1223, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "9259:5:0", + "src": "9485:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 822, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "9259:15:0", + "src": "9485:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35989,18 +37878,18 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 823, + "id": 1225, "name": "SECONDS_PER_DAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 83, - "src": "9277:15:0", + "referencedDeclaration": 472, + "src": "9503:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "9259:33:0", + "src": "9485:33:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36014,26 +37903,26 @@ "typeString": "uint256" } ], - "id": 820, + "id": 1222, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9252:6:0", + "src": "9478:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 819, + "id": 1221, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9252:6:0", + "src": "9478:6:6", "typeDescriptions": {} } }, - "id": 825, + "id": 1227, "isConstant": false, "isLValue": false, "isPure": false, @@ -36041,7 +37930,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9252:41:0", + "src": "9478:41:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -36049,7 +37938,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9239:54:0" + "src": "9465:54:6" }, { "condition": { @@ -36057,18 +37946,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 829, + "id": 1231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 827, + "id": 1229, "name": "day", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, - "src": "9307:3:0", + "referencedDeclaration": 1220, + "src": "9533:3:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36077,45 +37966,45 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 828, + "id": 1230, "name": "lastTransferDay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "9313:15:0", + "referencedDeclaration": 458, + "src": "9539:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "9307:21:0", + "src": "9533:21:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 839, + "id": 1241, "nodeType": "IfStatement", - "src": "9303:101:0", + "src": "9529:101:6", "trueBody": { - "id": 838, + "id": 1240, "nodeType": "Block", - "src": "9330:74:0", + "src": "9556:74:6", "statements": [ { "expression": { - "id": 832, + "id": 1234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 830, + "id": 1232, "name": "spentToday", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9344:10:0", + "referencedDeclaration": 456, + "src": "9570:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36125,44 +38014,44 @@ "operator": "=", "rightHandSide": { "hexValue": "30", - "id": 831, + "id": 1233, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9357:1:0", + "src": "9583:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "9344:14:0", + "src": "9570:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 833, + "id": 1235, "nodeType": "ExpressionStatement", - "src": "9344:14:0" + "src": "9570:14:6" }, { "expression": { - "id": 836, + "id": 1238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 834, + "id": 1236, "name": "lastTransferDay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "9372:15:0", + "referencedDeclaration": 458, + "src": "9598:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36171,26 +38060,26 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 835, + "id": 1237, "name": "day", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, - "src": "9390:3:0", + "referencedDeclaration": 1220, + "src": "9616:3:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "9372:21:0", + "src": "9598:21:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 837, + "id": 1239, "nodeType": "ExpressionStatement", - "src": "9372:21:0" + "src": "9598:21:6" } ] } @@ -36201,7 +38090,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 844, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -36211,18 +38100,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 842, + "id": 1244, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 840, + "id": 1242, "name": "spentToday", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9417:10:0", + "referencedDeclaration": 456, + "src": "9643:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36231,18 +38120,18 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 841, + "id": 1243, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 812, - "src": "9430:6:0", + "referencedDeclaration": 1214, + "src": "9656:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9417:19:0", + "src": "9643:19:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36251,77 +38140,77 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 843, + "id": 1245, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "9439:10:0", + "referencedDeclaration": 454, + "src": "9665:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9417:32:0", + "src": "9643:32:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 855, + "id": 1257, "nodeType": "IfStatement", - "src": "9413:148:0", + "src": "9639:148:6", "trueBody": { - "id": 854, + "id": 1256, "nodeType": "Block", - "src": "9451:110:0", + "src": "9677:110:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 846, + "id": 1248, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 812, - "src": "9487:6:0", + "referencedDeclaration": 1214, + "src": "9713:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 847, + "id": 1249, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "9495:10:0", + "referencedDeclaration": 454, + "src": "9721:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 848, + "id": 1250, "name": "spentToday", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9507:10:0", + "referencedDeclaration": 456, + "src": "9733:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 849, + "id": 1251, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 810, - "src": "9519:4:0", + "referencedDeclaration": 1212, + "src": "9745:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -36347,18 +38236,18 @@ "typeString": "address payable" } ], - "id": 845, + "id": 1247, "name": "ExceedDailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "9470:16:0", + "referencedDeclaration": 410, + "src": "9696:16:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,uint256,uint256,address)" } }, - "id": 850, + "id": 1252, "isConstant": false, "isLValue": false, "isPure": false, @@ -36366,38 +38255,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9470:54:0", + "src": "9696:54:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 851, + "id": 1253, "nodeType": "EmitStatement", - "src": "9465:59:0" + "src": "9691:59:6" }, { "expression": { "hexValue": "66616c7365", - "id": 852, + "id": 1254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9545:5:0", + "src": "9771:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 816, - "id": 853, + "functionReturnParameters": 1218, + "id": 1255, "nodeType": "Return", - "src": "9538:12:0" + "src": "9764:12:6" } ] } @@ -36408,7 +38297,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 862, + "id": 1264, "isConstant": false, "isLValue": false, "isPure": false, @@ -36417,14 +38306,14 @@ "expression": { "arguments": [ { - "id": 858, + "id": 1260, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "9582:4:0", + "src": "9808:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } } @@ -36432,30 +38321,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } ], - "id": 857, + "id": 1259, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9574:7:0", + "src": "9800:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 856, + "id": 1258, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9574:7:0", + "src": "9800:7:6", "typeDescriptions": {} } }, - "id": 859, + "id": 1261, "isConstant": false, "isLValue": false, "isPure": false, @@ -36463,21 +38352,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9574:13:0", + "src": "9800:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 860, + "id": 1262, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "src": "9574:21:0", + "src": "9800:21:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36486,41 +38375,41 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 861, + "id": 1263, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 812, - "src": "9598:6:0", + "referencedDeclaration": 1214, + "src": "9824:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9574:30:0", + "src": "9800:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 876, + "id": 1278, "nodeType": "IfStatement", - "src": "9570:145:0", + "src": "9796:145:6", "trueBody": { - "id": 875, + "id": 1277, "nodeType": "Block", - "src": "9606:109:0", + "src": "9832:109:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 864, + "id": 1266, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 812, - "src": "9642:6:0", + "referencedDeclaration": 1214, + "src": "9868:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36530,14 +38419,14 @@ "expression": { "arguments": [ { - "id": 867, + "id": 1269, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "9658:4:0", + "src": "9884:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } } @@ -36545,30 +38434,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } ], - "id": 866, + "id": 1268, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9650:7:0", + "src": "9876:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 865, + "id": 1267, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9650:7:0", + "src": "9876:7:6", "typeDescriptions": {} } }, - "id": 868, + "id": 1270, "isConstant": false, "isLValue": false, "isPure": false, @@ -36576,33 +38465,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9650:13:0", + "src": "9876:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 869, + "id": 1271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "src": "9650:21:0", + "src": "9876:21:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 870, + "id": 1272, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 810, - "src": "9673:4:0", + "referencedDeclaration": 1212, + "src": "9899:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -36624,18 +38513,18 @@ "typeString": "address payable" } ], - "id": 863, + "id": 1265, "name": "InsufficientFund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 13, - "src": "9625:16:0", + "referencedDeclaration": 400, + "src": "9851:16:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,uint256,address)" } }, - "id": 871, + "id": 1273, "isConstant": false, "isLValue": false, "isPure": false, @@ -36643,57 +38532,100 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9625:53:0", + "src": "9851:53:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 872, + "id": 1274, "nodeType": "EmitStatement", - "src": "9620:58:0" + "src": "9846:58:6" }, { "expression": { "hexValue": "66616c7365", - "id": 873, + "id": 1275, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9699:5:0", + "src": "9925:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 816, - "id": 874, + "functionReturnParameters": 1218, + "id": 1276, "nodeType": "Return", - "src": "9692:12:0" + "src": "9918:12:6" } ] } }, + { + "expression": { + "id": 1281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1279, + "name": "spentToday", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 456, + "src": "9950:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1280, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1214, + "src": "9964:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9950:20:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1282, + "nodeType": "ExpressionStatement", + "src": "9950:20:6" + }, { "assignments": [ - 878, + 1284, null ], "declarations": [ { "constant": false, - "id": 878, + "id": 1284, "mutability": "mutable", "name": "success", - "nameLocation": "9730:7:0", + "nameLocation": "9986:7:6", "nodeType": "VariableDeclaration", - "scope": 907, - "src": "9725:12:0", + "scope": 1313, + "src": "9981:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36701,10 +38633,10 @@ "typeString": "bool" }, "typeName": { - "id": 877, + "id": 1283, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9725:4:0", + "src": "9981:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -36714,19 +38646,19 @@ }, null ], - "id": 885, + "id": 1291, "initialValue": { "arguments": [ { "hexValue": "", - "id": 883, + "id": 1289, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9768:2:0", + "src": "10024:2:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -36749,31 +38681,31 @@ } ], "expression": { - "id": 879, + "id": 1285, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 810, - "src": "9742:4:0", + "referencedDeclaration": 1212, + "src": "9998:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 880, + "id": 1286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "call", "nodeType": "MemberAccess", - "src": "9742:9:0", + "src": "9998:9:6", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 882, + "id": 1288, "isConstant": false, "isLValue": false, "isPure": false, @@ -36784,25 +38716,25 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 881, + "id": 1287, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 812, - "src": "9760:6:0", + "referencedDeclaration": 1214, + "src": "10016:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "9742:25:0", + "src": "9998:25:6", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 884, + "id": 1290, "isConstant": false, "isLValue": false, "isPure": false, @@ -36810,7 +38742,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9742:29:0", + "src": "9998:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", @@ -36818,11 +38750,11 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9724:47:0" + "src": "9980:47:6" }, { "condition": { - "id": 887, + "id": 1293, "isConstant": false, "isLValue": false, "isPure": false, @@ -36830,14 +38762,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "9899:8:0", + "src": "10155:8:6", "subExpression": { - "id": 886, + "id": 1292, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "9900:7:0", + "referencedDeclaration": 1284, + "src": "10156:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -36848,24 +38780,67 @@ "typeString": "bool" } }, - "id": 895, + "id": 1305, "nodeType": "IfStatement", - "src": "9895:96:0", + "src": "10151:130:6", "trueBody": { - "id": 894, + "id": 1304, "nodeType": "Block", - "src": "9909:82:0", + "src": "10165:116:6", "statements": [ + { + "expression": { + "id": 1296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1294, + "name": "spentToday", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 456, + "src": "10179:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 1295, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1214, + "src": "10193:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10179:20:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1297, + "nodeType": "ExpressionStatement", + "src": "10179:20:6" + }, { "eventCall": { "arguments": [ { - "id": 889, + "id": 1299, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 810, - "src": "9949:4:0", + "referencedDeclaration": 1212, + "src": "10239:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -36879,18 +38854,18 @@ "typeString": "address payable" } ], - "id": 888, + "id": 1298, "name": "UnknownTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "9928:20:0", + "referencedDeclaration": 414, + "src": "10218:20:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 890, + "id": 1300, "isConstant": false, "isLValue": false, "isPure": false, @@ -36898,107 +38873,64 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9928:26:0", + "src": "10218:26:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 891, + "id": 1301, "nodeType": "EmitStatement", - "src": "9923:31:0" + "src": "10213:31:6" }, { "expression": { "hexValue": "66616c7365", - "id": 892, + "id": 1302, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9975:5:0", + "src": "10265:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 816, - "id": 893, + "functionReturnParameters": 1218, + "id": 1303, "nodeType": "Return", - "src": "9968:12:0" + "src": "10258:12:6" } ] } }, - { - "expression": { - "id": 898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 896, - "name": "spentToday", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "10000:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 897, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 812, - "src": "10014:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10000:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 899, - "nodeType": "ExpressionStatement", - "src": "10000:20:0" - }, { "eventCall": { "arguments": [ { - "id": 901, + "id": 1307, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 812, - "src": "10047:6:0", + "referencedDeclaration": 1214, + "src": "10308:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 902, + "id": 1308, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 810, - "src": "10055:4:0", + "referencedDeclaration": 1212, + "src": "10316:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -37016,18 +38948,18 @@ "typeString": "address payable" } ], - "id": 900, + "id": 1306, "name": "PaymentSent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "10035:11:0", + "referencedDeclaration": 428, + "src": "10296:11:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, - "id": 903, + "id": 1309, "isConstant": false, "isLValue": false, "isPure": false, @@ -37035,61 +38967,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10035:25:0", + "src": "10296:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 904, + "id": 1310, "nodeType": "EmitStatement", - "src": "10030:30:0" + "src": "10291:30:6" }, { "expression": { "hexValue": "74727565", - "id": 905, + "id": 1311, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10077:4:0", + "src": "10338:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 816, - "id": 906, + "functionReturnParameters": 1218, + "id": 1312, "nodeType": "Return", - "src": "10070:11:0" + "src": "10331:11:6" } ] }, - "id": 908, + "id": 1314, "implemented": true, "kind": "function", "modifiers": [], "name": "_transfer", - "nameLocation": "9157:9:0", + "nameLocation": "9383:9:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 813, + "id": 1215, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 810, + "id": 1212, "mutability": "mutable", "name": "dest", - "nameLocation": "9183:4:0", + "nameLocation": "9409:4:6", "nodeType": "VariableDeclaration", - "scope": 908, - "src": "9167:20:0", + "scope": 1314, + "src": "9393:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -37097,10 +39029,10 @@ "typeString": "address payable" }, "typeName": { - "id": 809, + "id": 1211, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9167:15:0", + "src": "9393:15:6", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -37111,13 +39043,13 @@ }, { "constant": false, - "id": 812, + "id": 1214, "mutability": "mutable", "name": "amount", - "nameLocation": "9197:6:0", + "nameLocation": "9423:6:6", "nodeType": "VariableDeclaration", - "scope": 908, - "src": "9189:14:0", + "scope": 1314, + "src": "9415:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -37125,10 +39057,10 @@ "typeString": "uint256" }, "typeName": { - "id": 811, + "id": 1213, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9189:7:0", + "src": "9415:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37137,21 +39069,21 @@ "visibility": "internal" } ], - "src": "9166:38:0" + "src": "9392:38:6" }, "returnParameters": { - "id": 816, + "id": 1218, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 815, + "id": 1217, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 908, - "src": "9223:4:0", + "scope": 1314, + "src": "9449:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -37159,10 +39091,10 @@ "typeString": "bool" }, "typeName": { - "id": 814, + "id": 1216, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9223:4:0", + "src": "9449:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -37171,19 +39103,19 @@ "visibility": "internal" } ], - "src": "9222:6:0" + "src": "9448:6:6" }, - "scope": 2161, - "src": "9148:940:0", + "scope": 2592, + "src": "9374:975:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 938, + "id": 1344, "nodeType": "Block", - "src": "10137:252:0", + "src": "10398:252:6", "statements": [ { "condition": { @@ -37191,18 +39123,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 918, + "id": 1324, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 913, + "id": 1319, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "10151:17:0", + "referencedDeclaration": 452, + "src": "10412:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -37214,14 +39146,14 @@ "arguments": [ { "hexValue": "30", - "id": 916, + "id": 1322, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10180:1:0", + "src": "10441:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -37236,26 +39168,26 @@ "typeString": "int_const 0" } ], - "id": 915, + "id": 1321, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10172:7:0", + "src": "10433:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 914, + "id": 1320, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10172:7:0", + "src": "10433:7:6", "typeDescriptions": {} } }, - "id": 917, + "id": 1323, "isConstant": false, "isLValue": false, "isPure": true, @@ -37263,44 +39195,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10172:10:0", + "src": "10433:10:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "10151:31:0", + "src": "10412:31:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 925, + "id": 1331, "nodeType": "IfStatement", - "src": "10147:118:0", + "src": "10408:118:6", "trueBody": { - "id": 924, + "id": 1330, "nodeType": "Block", - "src": "10184:81:0", + "src": "10445:81:6", "statements": [ { "eventCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 919, + "id": 1325, "name": "LastResortAddressNotSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29, - "src": "10203:23:0", + "referencedDeclaration": 416, + "src": "10464:23:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 920, + "id": 1326, "isConstant": false, "isLValue": false, "isPure": false, @@ -37308,45 +39240,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10203:25:0", + "src": "10464:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 921, + "id": 1327, "nodeType": "EmitStatement", - "src": "10198:30:0" + "src": "10459:30:6" }, { "expression": { "hexValue": "66616c7365", - "id": 922, + "id": 1328, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10249:5:0", + "src": "10510:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 912, - "id": 923, + "functionReturnParameters": 1318, + "id": 1329, "nodeType": "Return", - "src": "10242:12:0" + "src": "10503:12:6" } ] } }, { "condition": { - "id": 928, + "id": 1334, "isConstant": false, "isLValue": false, "isPure": false, @@ -37354,23 +39286,23 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "10278:9:0", + "src": "10539:9:6", "subExpression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 926, + "id": 1332, "name": "_drain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 808, - "src": "10279:6:0", + "referencedDeclaration": 1210, + "src": "10540:6:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_bool_$", "typeString": "function () returns (bool)" } }, - "id": 927, + "id": 1333, "isConstant": false, "isLValue": false, "isPure": false, @@ -37378,7 +39310,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10279:8:0", + "src": "10540:8:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -37390,31 +39322,31 @@ "typeString": "bool" } }, - "id": 935, + "id": 1341, "nodeType": "IfStatement", - "src": "10274:88:0", + "src": "10535:88:6", "trueBody": { - "id": 934, + "id": 1340, "nodeType": "Block", - "src": "10289:73:0", + "src": "10550:73:6", "statements": [ { "eventCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 929, + "id": 1335, "name": "RecoveryFailure", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 47, - "src": "10308:15:0", + "referencedDeclaration": 434, + "src": "10569:15:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 930, + "id": 1336, "isConstant": false, "isLValue": false, "isPure": false, @@ -37422,38 +39354,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10308:17:0", + "src": "10569:17:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 931, + "id": 1337, "nodeType": "EmitStatement", - "src": "10303:22:0" + "src": "10564:22:6" }, { "expression": { "hexValue": "66616c7365", - "id": 932, + "id": 1338, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10346:5:0", + "src": "10607:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 912, - "id": 933, + "functionReturnParameters": 1318, + "id": 1339, "nodeType": "Return", - "src": "10339:12:0" + "src": "10600:12:6" } ] } @@ -37461,53 +39393,53 @@ { "expression": { "hexValue": "74727565", - "id": 936, + "id": 1342, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10378:4:0", + "src": "10639:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 912, - "id": 937, + "functionReturnParameters": 1318, + "id": 1343, "nodeType": "Return", - "src": "10371:11:0" + "src": "10632:11:6" } ] }, - "id": 939, + "id": 1345, "implemented": true, "kind": "function", "modifiers": [], "name": "_recover", - "nameLocation": "10103:8:0", + "nameLocation": "10364:8:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 909, + "id": 1315, "nodeType": "ParameterList", "parameters": [], - "src": "10111:2:0" + "src": "10372:2:6" }, "returnParameters": { - "id": 912, + "id": 1318, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 911, + "id": 1317, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "10132:4:0", + "scope": 1345, + "src": "10393:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -37515,10 +39447,10 @@ "typeString": "bool" }, "typeName": { - "id": 910, + "id": 1316, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "10132:4:0", + "src": "10393:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -37527,19 +39459,19 @@ "visibility": "internal" } ], - "src": "10131:6:0" + "src": "10392:6:6" }, - "scope": 2161, - "src": "10094:295:0", + "scope": 2592, + "src": "10355:295:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 958, + "id": 1364, "nodeType": "Block", - "src": "10469:143:0", + "src": "10730:143:6", "statements": [ { "expression": { @@ -37549,18 +39481,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 950, + "id": 1356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 945, + "id": 1351, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "10487:17:0", + "referencedDeclaration": 452, + "src": "10748:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -37572,14 +39504,14 @@ "arguments": [ { "hexValue": "30", - "id": 948, + "id": 1354, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10516:1:0", + "src": "10777:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -37594,26 +39526,26 @@ "typeString": "int_const 0" } ], - "id": 947, + "id": 1353, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10508:7:0", + "src": "10769:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 946, + "id": 1352, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10508:7:0", + "src": "10769:7:6", "typeDescriptions": {} } }, - "id": 949, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": true, @@ -37621,14 +39553,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10508:10:0", + "src": "10769:10:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "10487:31:0", + "src": "10748:31:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -37636,14 +39568,14 @@ }, { "hexValue": "4c617374207265736f7274206164647265737320697320616c726561647920736574", - "id": 951, + "id": 1357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10520:36:0", + "src": "10781:36:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_bc3ff827c71f29679c970d77c58ec807a06259e86e9cd823a8554b04d0d6f030", "typeString": "literal_string \"Last resort address is already set\"" @@ -37662,7 +39594,7 @@ "typeString": "literal_string \"Last resort address is already set\"" } ], - "id": 944, + "id": 1350, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -37670,13 +39602,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "10479:7:0", + "src": "10740:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 952, + "id": 1358, "isConstant": false, "isLValue": false, "isPure": false, @@ -37684,31 +39616,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10479:78:0", + "src": "10740:78:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 953, + "id": 1359, "nodeType": "ExpressionStatement", - "src": "10479:78:0" + "src": "10740:78:6" }, { "expression": { - "id": 956, + "id": 1362, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 954, + "id": 1360, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "10567:17:0", + "referencedDeclaration": 452, + "src": "10828:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -37717,49 +39649,49 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 955, + "id": 1361, "name": "lastResortAddress_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 941, - "src": "10587:18:0", + "referencedDeclaration": 1347, + "src": "10848:18:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "10567:38:0", + "src": "10828:38:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 957, + "id": 1363, "nodeType": "ExpressionStatement", - "src": "10567:38:0" + "src": "10828:38:6" } ] }, - "id": 959, + "id": 1365, "implemented": true, "kind": "function", "modifiers": [], "name": "_setRecoveryAddress", - "nameLocation": "10404:19:0", + "nameLocation": "10665:19:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 942, + "id": 1348, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 941, + "id": 1347, "mutability": "mutable", "name": "lastResortAddress_", - "nameLocation": "10440:18:0", + "nameLocation": "10701:18:6", "nodeType": "VariableDeclaration", - "scope": 959, - "src": "10424:34:0", + "scope": 1365, + "src": "10685:34:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -37767,10 +39699,10 @@ "typeString": "address payable" }, "typeName": { - "id": 940, + "id": 1346, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10424:15:0", + "src": "10685:15:6", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -37780,46 +39712,46 @@ "visibility": "internal" } ], - "src": "10423:36:0" + "src": "10684:36:6" }, "returnParameters": { - "id": 943, + "id": 1349, "nodeType": "ParameterList", "parameters": [], - "src": "10469:0:0" + "src": "10730:0:6" }, - "scope": 2161, - "src": "10395:217:0", + "scope": 2592, + "src": "10656:217:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1154, + "id": 1560, "nodeType": "Block", - "src": "10763:1828:0", + "src": "11024:1828:6", "statements": [ { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, - "id": 978, + "id": 1384, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 975, + "id": 1381, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "10777:9:0", + "referencedDeclaration": 1368, + "src": "11038:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -37827,32 +39759,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 976, + "id": 1382, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "10790:9:0", + "referencedDeclaration": 2607, + "src": "11051:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2176_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 977, + "id": 1383, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ERC20", "nodeType": "MemberAccess", - "referencedDeclaration": 2172, - "src": "10790:15:0", + "referencedDeclaration": 2603, + "src": "11051:15:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "src": "10777:28:0", + "src": "11038:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -37861,23 +39793,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, - "id": 1047, + "id": 1453, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1044, + "id": 1450, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11536:9:0", + "referencedDeclaration": 1368, + "src": "11797:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -37885,32 +39817,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1045, + "id": 1451, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "11549:9:0", + "referencedDeclaration": 2607, + "src": "11810:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2176_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 1046, + "id": 1452, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ERC721", "nodeType": "MemberAccess", - "referencedDeclaration": 2173, - "src": "11549:16:0", + "referencedDeclaration": 2604, + "src": "11810:16:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "src": "11536:29:0", + "src": "11797:29:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -37919,23 +39851,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, - "id": 1100, + "id": 1506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1097, + "id": 1503, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "12060:9:0", + "referencedDeclaration": 1368, + "src": "12321:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -37943,111 +39875,111 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1098, + "id": 1504, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "12073:9:0", + "referencedDeclaration": 2607, + "src": "12334:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2176_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 1099, + "id": 1505, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ERC1155", "nodeType": "MemberAccess", - "referencedDeclaration": 2174, - "src": "12073:17:0", + "referencedDeclaration": 2605, + "src": "12334:17:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "src": "12060:30:0", + "src": "12321:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1151, + "id": 1557, "nodeType": "IfStatement", - "src": "12056:529:0", + "src": "12317:529:6", "trueBody": { - "id": 1150, + "id": 1556, "nodeType": "Block", - "src": "12092:493:0", + "src": "12353:493:6", "statements": [ { "clauses": [ { "block": { - "id": 1122, + "id": 1528, "nodeType": "Block", - "src": "12197:111:0", + "src": "12458:111:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1115, + "id": 1521, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "12243:9:0", + "referencedDeclaration": 1368, + "src": "12504:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1116, + "id": 1522, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "12254:15:0", + "referencedDeclaration": 1370, + "src": "12515:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1117, + "id": 1523, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "12271:7:0", + "referencedDeclaration": 1372, + "src": "12532:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1118, + "id": 1524, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "12280:4:0", + "referencedDeclaration": 1374, + "src": "12541:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1119, + "id": 1525, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "12286:6:0", + "referencedDeclaration": 1376, + "src": "12547:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38057,7 +39989,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -38077,18 +40009,18 @@ "typeString": "uint256" } ], - "id": 1114, + "id": 1520, "name": "TokenTransferSucceeded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2261, - "src": "12220:22:0", + "referencedDeclaration": 2692, + "src": "12481:22:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, - "id": 1120, + "id": 1526, "isConstant": false, "isLValue": false, "isPure": false, @@ -38096,100 +40028,100 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12220:73:0", + "src": "12481:73:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1121, + "id": 1527, "nodeType": "EmitStatement", - "src": "12215:78:0" + "src": "12476:78:6" } ] }, "errorName": "", - "id": 1123, + "id": 1529, "nodeType": "TryCatchClause", - "src": "12197:111:0" + "src": "12458:111:6" }, { "block": { - "id": 1136, + "id": 1542, "nodeType": "Block", - "src": "12342:115:0", + "src": "12603:115:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1128, + "id": 1534, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "12384:9:0", + "referencedDeclaration": 1368, + "src": "12645:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1129, + "id": 1535, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "12395:15:0", + "referencedDeclaration": 1370, + "src": "12656:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1130, + "id": 1536, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "12412:7:0", + "referencedDeclaration": 1372, + "src": "12673:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1131, + "id": 1537, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "12421:4:0", + "referencedDeclaration": 1374, + "src": "12682:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1132, + "id": 1538, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "12427:6:0", + "referencedDeclaration": 1376, + "src": "12688:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1133, + "id": 1539, "name": "reason", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1125, - "src": "12435:6:0", + "referencedDeclaration": 1531, + "src": "12696:6:6", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -38199,7 +40131,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -38223,18 +40155,18 @@ "typeString": "string memory" } ], - "id": 1127, + "id": 1533, "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "12365:18:0", + "referencedDeclaration": 2679, + "src": "12626:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, - "id": 1134, + "id": 1540, "isConstant": false, "isLValue": false, "isPure": false, @@ -38242,35 +40174,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12365:77:0", + "src": "12626:77:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1135, + "id": 1541, "nodeType": "EmitStatement", - "src": "12360:82:0" + "src": "12621:82:6" } ] }, "errorName": "Error", - "id": 1137, + "id": 1543, "nodeType": "TryCatchClause", "parameters": { - "id": 1126, + "id": 1532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1125, + "id": 1531, "mutability": "mutable", "name": "reason", - "nameLocation": "12335:6:0", + "nameLocation": "12596:6:6", "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "12321:20:0", + "scope": 1543, + "src": "12582:20:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -38278,10 +40210,10 @@ "typeString": "string" }, "typeName": { - "id": 1124, + "id": 1530, "name": "string", "nodeType": "ElementaryTypeName", - "src": "12321:6:0", + "src": "12582:6:6", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -38290,74 +40222,74 @@ "visibility": "internal" } ], - "src": "12320:22:0" + "src": "12581:22:6" }, - "src": "12309:148:0" + "src": "12570:148:6" }, { "block": { - "id": 1147, + "id": 1553, "nodeType": "Block", - "src": "12464:111:0", + "src": "12725:111:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1139, + "id": 1545, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "12506:9:0", + "referencedDeclaration": 1368, + "src": "12767:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1140, + "id": 1546, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "12517:15:0", + "referencedDeclaration": 1370, + "src": "12778:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1141, + "id": 1547, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "12534:7:0", + "referencedDeclaration": 1372, + "src": "12795:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1142, + "id": 1548, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "12543:4:0", + "referencedDeclaration": 1374, + "src": "12804:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1143, + "id": 1549, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "12549:6:0", + "referencedDeclaration": 1376, + "src": "12810:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38365,14 +40297,14 @@ }, { "hexValue": "", - "id": 1144, + "id": 1550, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12557:2:0", + "src": "12818:2:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -38383,7 +40315,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -38407,18 +40339,18 @@ "typeString": "literal_string \"\"" } ], - "id": 1138, + "id": 1544, "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "12487:18:0", + "referencedDeclaration": 2679, + "src": "12748:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, - "id": 1145, + "id": 1551, "isConstant": false, "isLValue": false, "isPure": false, @@ -38426,23 +40358,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12487:73:0", + "src": "12748:73:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1146, + "id": 1552, "nodeType": "EmitStatement", - "src": "12482:78:0" + "src": "12743:78:6" } ] }, "errorName": "", - "id": 1148, + "id": 1554, "nodeType": "TryCatchClause", - "src": "12458:117:0" + "src": "12719:117:6" } ], "externalCall": { @@ -38450,14 +40382,14 @@ { "arguments": [ { - "id": 1107, + "id": 1513, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "12161:4:0", + "src": "12422:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } } @@ -38465,30 +40397,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } ], - "id": 1106, + "id": 1512, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12153:7:0", + "src": "12414:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1105, + "id": 1511, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12153:7:0", + "src": "12414:7:6", "typeDescriptions": {} } }, - "id": 1108, + "id": 1514, "isConstant": false, "isLValue": false, "isPure": false, @@ -38496,7 +40428,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12153:13:0", + "src": "12414:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -38504,48 +40436,48 @@ } }, { - "id": 1109, + "id": 1515, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "12168:4:0", + "referencedDeclaration": 1374, + "src": "12429:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1110, + "id": 1516, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "12174:7:0", + "referencedDeclaration": 1372, + "src": "12435:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1111, + "id": 1517, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "12183:6:0", + "referencedDeclaration": 1376, + "src": "12444:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1112, + "id": 1518, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 972, - "src": "12191:4:0", + "referencedDeclaration": 1378, + "src": "12452:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -38578,12 +40510,12 @@ "expression": { "arguments": [ { - "id": 1102, + "id": 1508, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "12119:15:0", + "referencedDeclaration": 1370, + "src": "12380:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -38597,18 +40529,18 @@ "typeString": "address" } ], - "id": 1101, + "id": 1507, "name": "IERC1155", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "12110:8:0", + "referencedDeclaration": 121, + "src": "12371:8:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC1155_$3551_$", + "typeIdentifier": "t_type$_t_contract$_IERC1155_$121_$", "typeString": "type(contract IERC1155)" } }, - "id": 1103, + "id": 1509, "isConstant": false, "isLValue": false, "isPure": false, @@ -38616,28 +40548,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12110:25:0", + "src": "12371:25:6", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC1155_$3551", + "typeIdentifier": "t_contract$_IERC1155_$121", "typeString": "contract IERC1155" } }, - "id": 1104, + "id": 1510, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 3534, - "src": "12110:42:0", + "referencedDeclaration": 104, + "src": "12371:42:6", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,uint256,bytes memory) external" } }, - "id": 1113, + "id": 1519, "isConstant": false, "isLValue": false, "isPure": false, @@ -38645,94 +40577,94 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12110:86:0", + "src": "12371:86:6", "tryCall": true, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1149, + "id": 1555, "nodeType": "TryStatement", - "src": "12106:469:0" + "src": "12367:469:6" } ] } }, - "id": 1152, + "id": 1558, "nodeType": "IfStatement", - "src": "11532:1053:0", + "src": "11793:1053:6", "trueBody": { - "id": 1096, + "id": 1502, "nodeType": "Block", - "src": "11567:483:0", + "src": "11828:483:6", "statements": [ { "clauses": [ { "block": { - "id": 1068, + "id": 1474, "nodeType": "Block", - "src": "11662:111:0", + "src": "11923:111:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1061, + "id": 1467, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11708:9:0", + "referencedDeclaration": 1368, + "src": "11969:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1062, + "id": 1468, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11719:15:0", + "referencedDeclaration": 1370, + "src": "11980:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1063, + "id": 1469, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11736:7:0", + "referencedDeclaration": 1372, + "src": "11997:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1064, + "id": 1470, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "11745:4:0", + "referencedDeclaration": 1374, + "src": "12006:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1065, + "id": 1471, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "11751:6:0", + "referencedDeclaration": 1376, + "src": "12012:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38742,7 +40674,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -38762,18 +40694,18 @@ "typeString": "uint256" } ], - "id": 1060, + "id": 1466, "name": "TokenTransferSucceeded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2261, - "src": "11685:22:0", + "referencedDeclaration": 2692, + "src": "11946:22:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, - "id": 1066, + "id": 1472, "isConstant": false, "isLValue": false, "isPure": false, @@ -38781,100 +40713,100 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11685:73:0", + "src": "11946:73:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1067, + "id": 1473, "nodeType": "EmitStatement", - "src": "11680:78:0" + "src": "11941:78:6" } ] }, "errorName": "", - "id": 1069, + "id": 1475, "nodeType": "TryCatchClause", - "src": "11662:111:0" + "src": "11923:111:6" }, { "block": { - "id": 1082, + "id": 1488, "nodeType": "Block", - "src": "11807:115:0", + "src": "12068:115:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1074, + "id": 1480, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11849:9:0", + "referencedDeclaration": 1368, + "src": "12110:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1075, + "id": 1481, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11860:15:0", + "referencedDeclaration": 1370, + "src": "12121:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1076, + "id": 1482, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11877:7:0", + "referencedDeclaration": 1372, + "src": "12138:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1077, + "id": 1483, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "11886:4:0", + "referencedDeclaration": 1374, + "src": "12147:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1078, + "id": 1484, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "11892:6:0", + "referencedDeclaration": 1376, + "src": "12153:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1079, + "id": 1485, "name": "reason", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "11900:6:0", + "referencedDeclaration": 1477, + "src": "12161:6:6", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -38884,7 +40816,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -38908,18 +40840,18 @@ "typeString": "string memory" } ], - "id": 1073, + "id": 1479, "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "11830:18:0", + "referencedDeclaration": 2679, + "src": "12091:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, - "id": 1080, + "id": 1486, "isConstant": false, "isLValue": false, "isPure": false, @@ -38927,35 +40859,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11830:77:0", + "src": "12091:77:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1081, + "id": 1487, "nodeType": "EmitStatement", - "src": "11825:82:0" + "src": "12086:82:6" } ] }, "errorName": "Error", - "id": 1083, + "id": 1489, "nodeType": "TryCatchClause", "parameters": { - "id": 1072, + "id": 1478, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1071, + "id": 1477, "mutability": "mutable", "name": "reason", - "nameLocation": "11800:6:0", + "nameLocation": "12061:6:6", "nodeType": "VariableDeclaration", - "scope": 1083, - "src": "11786:20:0", + "scope": 1489, + "src": "12047:20:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -38963,10 +40895,10 @@ "typeString": "string" }, "typeName": { - "id": 1070, + "id": 1476, "name": "string", "nodeType": "ElementaryTypeName", - "src": "11786:6:0", + "src": "12047:6:6", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -38975,74 +40907,74 @@ "visibility": "internal" } ], - "src": "11785:22:0" + "src": "12046:22:6" }, - "src": "11774:148:0" + "src": "12035:148:6" }, { "block": { - "id": 1093, + "id": 1499, "nodeType": "Block", - "src": "11929:111:0", + "src": "12190:111:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1085, + "id": 1491, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11971:9:0", + "referencedDeclaration": 1368, + "src": "12232:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1086, + "id": 1492, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11982:15:0", + "referencedDeclaration": 1370, + "src": "12243:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1087, + "id": 1493, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11999:7:0", + "referencedDeclaration": 1372, + "src": "12260:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1088, + "id": 1494, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "12008:4:0", + "referencedDeclaration": 1374, + "src": "12269:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1089, + "id": 1495, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "12014:6:0", + "referencedDeclaration": 1376, + "src": "12275:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39050,14 +40982,14 @@ }, { "hexValue": "", - "id": 1090, + "id": 1496, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12022:2:0", + "src": "12283:2:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -39068,7 +41000,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -39092,18 +41024,18 @@ "typeString": "literal_string \"\"" } ], - "id": 1084, + "id": 1490, "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "11952:18:0", + "referencedDeclaration": 2679, + "src": "12213:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, - "id": 1091, + "id": 1497, "isConstant": false, "isLValue": false, "isPure": false, @@ -39111,23 +41043,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11952:73:0", + "src": "12213:73:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1092, + "id": 1498, "nodeType": "EmitStatement", - "src": "11947:78:0" + "src": "12208:78:6" } ] }, "errorName": "", - "id": 1094, + "id": 1500, "nodeType": "TryCatchClause", - "src": "11923:117:0" + "src": "12184:117:6" } ], "externalCall": { @@ -39135,14 +41067,14 @@ { "arguments": [ { - "id": 1054, + "id": 1460, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "11635:4:0", + "src": "11896:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } } @@ -39150,30 +41082,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } ], - "id": 1053, + "id": 1459, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "11627:7:0", + "src": "11888:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1052, + "id": 1458, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11627:7:0", + "src": "11888:7:6", "typeDescriptions": {} } }, - "id": 1055, + "id": 1461, "isConstant": false, "isLValue": false, "isPure": false, @@ -39181,7 +41113,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11627:13:0", + "src": "11888:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -39189,36 +41121,36 @@ } }, { - "id": 1056, + "id": 1462, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "11642:4:0", + "referencedDeclaration": 1374, + "src": "11903:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1057, + "id": 1463, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11648:7:0", + "referencedDeclaration": 1372, + "src": "11909:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1058, + "id": 1464, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 972, - "src": "11657:4:0", + "referencedDeclaration": 1378, + "src": "11918:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -39247,12 +41179,12 @@ "expression": { "arguments": [ { - "id": 1049, + "id": 1455, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11593:15:0", + "referencedDeclaration": 1370, + "src": "11854:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -39266,18 +41198,18 @@ "typeString": "address" } ], - "id": 1048, + "id": 1454, "name": "IERC721", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3786, - "src": "11585:7:0", + "referencedDeclaration": 356, + "src": "11846:7:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721_$3786_$", + "typeIdentifier": "t_type$_t_contract$_IERC721_$356_$", "typeString": "type(contract IERC721)" } }, - "id": 1050, + "id": 1456, "isConstant": false, "isLValue": false, "isPure": false, @@ -39285,28 +41217,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11585:24:0", + "src": "11846:24:6", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$3786", + "typeIdentifier": "t_contract$_IERC721_$356", "typeString": "contract IERC721" } }, - "id": 1051, + "id": 1457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 3785, - "src": "11585:41:0", + "referencedDeclaration": 355, + "src": "11846:41:6", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,bytes memory) external" } }, - "id": 1059, + "id": 1465, "isConstant": false, "isLValue": false, "isPure": false, @@ -39314,91 +41246,91 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11585:77:0", + "src": "11846:77:6", "tryCall": true, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1095, + "id": 1501, "nodeType": "TryStatement", - "src": "11581:459:0" + "src": "11842:459:6" } ] } }, - "id": 1153, + "id": 1559, "nodeType": "IfStatement", - "src": "10773:1812:0", + "src": "11034:1812:6", "trueBody": { - "id": 1043, + "id": 1449, "nodeType": "Block", - "src": "10807:719:0", + "src": "11068:719:6", "statements": [ { "clauses": [ { "block": { - "id": 1015, + "id": 1421, "nodeType": "Block", - "src": "10894:355:0", + "src": "11155:355:6", "statements": [ { "condition": { - "id": 989, + "id": 1395, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "10916:7:0", + "referencedDeclaration": 1393, + "src": "11177:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1006, + "id": 1412, "nodeType": "IfStatement", - "src": "10912:230:0", + "src": "11173:230:6", "trueBody": { - "id": 1005, + "id": 1411, "nodeType": "Block", - "src": "10925:217:0", + "src": "11186:217:6", "statements": [ { "expression": { "arguments": [ { - "id": 991, + "id": 1397, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "10959:9:0", + "referencedDeclaration": 1368, + "src": "11220:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 992, + "id": 1398, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "10970:15:0", + "referencedDeclaration": 1370, + "src": "11231:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 993, + "id": 1399, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "10987:7:0", + "referencedDeclaration": 1372, + "src": "11248:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39408,7 +41340,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -39420,18 +41352,18 @@ "typeString": "uint256" } ], - "id": 990, + "id": 1396, "name": "_trackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2658, - "src": "10947:11:0", + "referencedDeclaration": 3089, + "src": "11208:11:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 994, + "id": 1400, "isConstant": false, "isLValue": false, "isPure": false, @@ -39439,75 +41371,75 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10947:48:0", + "src": "11208:48:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 995, + "id": 1401, "nodeType": "ExpressionStatement", - "src": "10947:48:0" + "src": "11208:48:6" }, { "eventCall": { "arguments": [ { - "id": 997, + "id": 1403, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11045:9:0", + "referencedDeclaration": 1368, + "src": "11306:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 998, + "id": 1404, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11056:15:0", + "referencedDeclaration": 1370, + "src": "11317:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 999, + "id": 1405, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11073:7:0", + "referencedDeclaration": 1372, + "src": "11334:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1000, + "id": 1406, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "11082:4:0", + "referencedDeclaration": 1374, + "src": "11343:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1001, + "id": 1407, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "11088:6:0", + "referencedDeclaration": 1376, + "src": "11349:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39517,7 +41449,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -39537,18 +41469,18 @@ "typeString": "uint256" } ], - "id": 996, + "id": 1402, "name": "TokenTransferSucceeded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2261, - "src": "11022:22:0", + "referencedDeclaration": 2692, + "src": "11283:22:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, - "id": 1002, + "id": 1408, "isConstant": false, "isLValue": false, "isPure": false, @@ -39556,22 +41488,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11022:73:0", + "src": "11283:73:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1003, + "id": 1409, "nodeType": "EmitStatement", - "src": "11017:78:0" + "src": "11278:78:6" }, { - "functionReturnParameters": 974, - "id": 1004, + "functionReturnParameters": 1380, + "id": 1410, "nodeType": "Return", - "src": "11117:7:0" + "src": "11378:7:6" } ] } @@ -39580,60 +41512,60 @@ "eventCall": { "arguments": [ { - "id": 1008, + "id": 1414, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11184:9:0", + "referencedDeclaration": 1368, + "src": "11445:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1009, + "id": 1415, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11195:15:0", + "referencedDeclaration": 1370, + "src": "11456:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1010, + "id": 1416, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11212:7:0", + "referencedDeclaration": 1372, + "src": "11473:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1011, + "id": 1417, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "11221:4:0", + "referencedDeclaration": 1374, + "src": "11482:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1012, + "id": 1418, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "11227:6:0", + "referencedDeclaration": 1376, + "src": "11488:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39643,7 +41575,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -39663,18 +41595,18 @@ "typeString": "uint256" } ], - "id": 1007, + "id": 1413, "name": "TokenTransferFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2233, - "src": "11164:19:0", + "referencedDeclaration": 2664, + "src": "11425:19:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, - "id": 1013, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, @@ -39682,35 +41614,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11164:70:0", + "src": "11425:70:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1014, + "id": 1420, "nodeType": "EmitStatement", - "src": "11159:75:0" + "src": "11420:75:6" } ] }, "errorName": "", - "id": 1016, + "id": 1422, "nodeType": "TryCatchClause", "parameters": { - "id": 988, + "id": 1394, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 987, + "id": 1393, "mutability": "mutable", "name": "success", - "nameLocation": "10886:7:0", + "nameLocation": "11147:7:6", "nodeType": "VariableDeclaration", - "scope": 1016, - "src": "10881:12:0", + "scope": 1422, + "src": "11142:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -39718,10 +41650,10 @@ "typeString": "bool" }, "typeName": { - "id": 986, + "id": 1392, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "10881:4:0", + "src": "11142:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -39730,86 +41662,86 @@ "visibility": "internal" } ], - "src": "10880:14:0" + "src": "11141:14:6" }, - "src": "10872:377:0" + "src": "11133:377:6" }, { "block": { - "id": 1029, + "id": 1435, "nodeType": "Block", - "src": "11283:115:0", + "src": "11544:115:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1021, + "id": 1427, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11325:9:0", + "referencedDeclaration": 1368, + "src": "11586:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1022, + "id": 1428, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11336:15:0", + "referencedDeclaration": 1370, + "src": "11597:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1023, + "id": 1429, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11353:7:0", + "referencedDeclaration": 1372, + "src": "11614:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1024, + "id": 1430, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "11362:4:0", + "referencedDeclaration": 1374, + "src": "11623:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1025, + "id": 1431, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "11368:6:0", + "referencedDeclaration": 1376, + "src": "11629:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1026, + "id": 1432, "name": "reason", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1018, - "src": "11376:6:0", + "referencedDeclaration": 1424, + "src": "11637:6:6", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -39819,7 +41751,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -39843,18 +41775,18 @@ "typeString": "string memory" } ], - "id": 1020, + "id": 1426, "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "11306:18:0", + "referencedDeclaration": 2679, + "src": "11567:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, - "id": 1027, + "id": 1433, "isConstant": false, "isLValue": false, "isPure": false, @@ -39862,35 +41794,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11306:77:0", + "src": "11567:77:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1028, + "id": 1434, "nodeType": "EmitStatement", - "src": "11301:82:0" + "src": "11562:82:6" } ] }, "errorName": "Error", - "id": 1030, + "id": 1436, "nodeType": "TryCatchClause", "parameters": { - "id": 1019, + "id": 1425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1018, + "id": 1424, "mutability": "mutable", "name": "reason", - "nameLocation": "11276:6:0", + "nameLocation": "11537:6:6", "nodeType": "VariableDeclaration", - "scope": 1030, - "src": "11262:20:0", + "scope": 1436, + "src": "11523:20:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -39898,10 +41830,10 @@ "typeString": "string" }, "typeName": { - "id": 1017, + "id": 1423, "name": "string", "nodeType": "ElementaryTypeName", - "src": "11262:6:0", + "src": "11523:6:6", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -39910,74 +41842,74 @@ "visibility": "internal" } ], - "src": "11261:22:0" + "src": "11522:22:6" }, - "src": "11250:148:0" + "src": "11511:148:6" }, { "block": { - "id": 1040, + "id": 1446, "nodeType": "Block", - "src": "11405:111:0", + "src": "11666:111:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1032, + "id": 1438, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11447:9:0", + "referencedDeclaration": 1368, + "src": "11708:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1033, + "id": 1439, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11458:15:0", + "referencedDeclaration": 1370, + "src": "11719:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1034, + "id": 1440, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11475:7:0", + "referencedDeclaration": 1372, + "src": "11736:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1035, + "id": 1441, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "11484:4:0", + "referencedDeclaration": 1374, + "src": "11745:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1036, + "id": 1442, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "11490:6:0", + "referencedDeclaration": 1376, + "src": "11751:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39985,14 +41917,14 @@ }, { "hexValue": "", - "id": 1037, + "id": 1443, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "11498:2:0", + "src": "11759:2:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -40003,7 +41935,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -40027,18 +41959,18 @@ "typeString": "literal_string \"\"" } ], - "id": 1031, + "id": 1437, "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "11428:18:0", + "referencedDeclaration": 2679, + "src": "11689:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, - "id": 1038, + "id": 1444, "isConstant": false, "isLValue": false, "isPure": false, @@ -40046,46 +41978,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11428:73:0", + "src": "11689:73:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1039, + "id": 1445, "nodeType": "EmitStatement", - "src": "11423:78:0" + "src": "11684:78:6" } ] }, "errorName": "", - "id": 1041, + "id": 1447, "nodeType": "TryCatchClause", - "src": "11399:117:0" + "src": "11660:117:6" } ], "externalCall": { "arguments": [ { - "id": 983, + "id": 1389, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "10858:4:0", + "referencedDeclaration": 1374, + "src": "11119:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 984, + "id": 1390, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "10864:6:0", + "referencedDeclaration": 1376, + "src": "11125:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40106,12 +42038,12 @@ "expression": { "arguments": [ { - "id": 980, + "id": 1386, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "10832:15:0", + "referencedDeclaration": 1370, + "src": "11093:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -40125,18 +42057,18 @@ "typeString": "address" } ], - "id": 979, + "id": 1385, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3670, - "src": "10825:6:0", + "referencedDeclaration": 240, + "src": "11086:6:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$3670_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$240_$", "typeString": "type(contract IERC20)" } }, - "id": 981, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": false, @@ -40144,28 +42076,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10825:23:0", + "src": "11086:23:6", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$3670", + "typeIdentifier": "t_contract$_IERC20_$240", "typeString": "contract IERC20" } }, - "id": 982, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 3619, - "src": "10825:32:0", + "referencedDeclaration": 189, + "src": "11086:32:6", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 985, + "id": 1391, "isConstant": false, "isLValue": false, "isPure": false, @@ -40173,62 +42105,62 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10825:46:0", + "src": "11086:46:6", "tryCall": true, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1042, + "id": 1448, "nodeType": "TryStatement", - "src": "10821:695:0" + "src": "11082:695:6" } ] } } ] }, - "id": 1155, + "id": 1561, "implemented": true, "kind": "function", "modifiers": [], "name": "_transferToken", - "nameLocation": "10627:14:0", + "nameLocation": "10888:14:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 973, + "id": 1379, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 962, + "id": 1368, "mutability": "mutable", "name": "tokenType", - "nameLocation": "10652:9:0", + "nameLocation": "10913:9:6", "nodeType": "VariableDeclaration", - "scope": 1155, - "src": "10642:19:0", + "scope": 1561, + "src": "10903:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 961, + "id": 1367, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 960, + "id": 1366, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2176, - "src": "10642:9:0" + "referencedDeclaration": 2607, + "src": "10903:9:6" }, - "referencedDeclaration": 2176, - "src": "10642:9:0", + "referencedDeclaration": 2607, + "src": "10903:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -40236,13 +42168,13 @@ }, { "constant": false, - "id": 964, + "id": 1370, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "10671:15:0", + "nameLocation": "10932:15:6", "nodeType": "VariableDeclaration", - "scope": 1155, - "src": "10663:23:0", + "scope": 1561, + "src": "10924:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40250,10 +42182,10 @@ "typeString": "address" }, "typeName": { - "id": 963, + "id": 1369, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10663:7:0", + "src": "10924:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -40264,13 +42196,13 @@ }, { "constant": false, - "id": 966, + "id": 1372, "mutability": "mutable", "name": "tokenId", - "nameLocation": "10696:7:0", + "nameLocation": "10957:7:6", "nodeType": "VariableDeclaration", - "scope": 1155, - "src": "10688:15:0", + "scope": 1561, + "src": "10949:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40278,10 +42210,10 @@ "typeString": "uint256" }, "typeName": { - "id": 965, + "id": 1371, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10688:7:0", + "src": "10949:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40291,13 +42223,13 @@ }, { "constant": false, - "id": 968, + "id": 1374, "mutability": "mutable", "name": "dest", - "nameLocation": "10713:4:0", + "nameLocation": "10974:4:6", "nodeType": "VariableDeclaration", - "scope": 1155, - "src": "10705:12:0", + "scope": 1561, + "src": "10966:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40305,10 +42237,10 @@ "typeString": "address" }, "typeName": { - "id": 967, + "id": 1373, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10705:7:0", + "src": "10966:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -40319,13 +42251,13 @@ }, { "constant": false, - "id": 970, + "id": 1376, "mutability": "mutable", "name": "amount", - "nameLocation": "10727:6:0", + "nameLocation": "10988:6:6", "nodeType": "VariableDeclaration", - "scope": 1155, - "src": "10719:14:0", + "scope": 1561, + "src": "10980:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40333,10 +42265,10 @@ "typeString": "uint256" }, "typeName": { - "id": 969, + "id": 1375, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10719:7:0", + "src": "10980:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40346,13 +42278,13 @@ }, { "constant": false, - "id": 972, + "id": 1378, "mutability": "mutable", "name": "data", - "nameLocation": "10748:4:0", + "nameLocation": "11009:4:6", "nodeType": "VariableDeclaration", - "scope": 1155, - "src": "10735:17:0", + "scope": 1561, + "src": "10996:17:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -40360,10 +42292,10 @@ "typeString": "bytes" }, "typeName": { - "id": 971, + "id": 1377, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10735:5:0", + "src": "10996:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -40372,40 +42304,40 @@ "visibility": "internal" } ], - "src": "10641:112:0" + "src": "10902:112:6" }, "returnParameters": { - "id": 974, + "id": 1380, "nodeType": "ParameterList", "parameters": [], - "src": "10763:0:0" + "src": "11024:0:6" }, - "scope": 2161, - "src": "10618:1973:0", + "scope": 2592, + "src": "10879:1973:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1336, + "id": 1741, "nodeType": "Block", - "src": "12951:1011:0", + "src": "13212:1016:6", "statements": [ { "assignments": [ - 1186 + 1592 ], "declarations": [ { "constant": false, - "id": 1186, + "id": 1592, "mutability": "mutable", "name": "hash", - "nameLocation": "12969:4:0", + "nameLocation": "13230:4:6", "nodeType": "VariableDeclaration", - "scope": 1336, - "src": "12961:12:0", + "scope": 1741, + "src": "13222:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40413,10 +42345,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1185, + "id": 1591, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12961:7:0", + "src": "13222:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -40425,18 +42357,18 @@ "visibility": "internal" } ], - "id": 1202, + "id": 1608, "initialValue": { "arguments": [ { "arguments": [ { - "id": 1191, + "id": 1597, "name": "neighbor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, - "src": "12999:8:0", + "referencedDeclaration": 1564, + "src": "13260:8:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -40447,12 +42379,12 @@ { "arguments": [ { - "id": 1196, + "id": 1602, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "13024:14:0", + "referencedDeclaration": 1566, + "src": "13285:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -40466,26 +42398,26 @@ "typeString": "uint32" } ], - "id": 1195, + "id": 1601, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13017:6:0", + "src": "13278:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes4_$", "typeString": "type(bytes4)" }, "typeName": { - "id": 1194, + "id": 1600, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "13017:6:0", + "src": "13278:6:6", "typeDescriptions": {} } }, - "id": 1197, + "id": 1603, "isConstant": false, "isLValue": false, "isPure": false, @@ -40493,7 +42425,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13017:22:0", + "src": "13278:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -40508,26 +42440,26 @@ "typeString": "bytes4" } ], - "id": 1193, + "id": 1599, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13009:7:0", + "src": "13270:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1192, + "id": 1598, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13009:7:0", + "src": "13270:7:6", "typeDescriptions": {} } }, - "id": 1198, + "id": 1604, "isConstant": false, "isLValue": false, "isPure": false, @@ -40535,7 +42467,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13009:31:0", + "src": "13270:31:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -40543,12 +42475,12 @@ } }, { - "id": 1199, + "id": 1605, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1162, - "src": "13042:4:0", + "referencedDeclaration": 1568, + "src": "13303:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -40571,39 +42503,39 @@ } ], "expression": { - "id": 1189, + "id": 1595, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12986:5:0", + "src": "13247:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1188, + "id": 1594, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12986:5:0", + "src": "13247:5:6", "typeDescriptions": {} } }, - "id": 1190, + "id": 1596, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "12986:12:0", + "src": "13247:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1200, + "id": 1606, "isConstant": false, "isLValue": false, "isPure": false, @@ -40611,7 +42543,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12986:61:0", + "src": "13247:61:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -40626,18 +42558,18 @@ "typeString": "bytes memory" } ], - "id": 1187, + "id": 1593, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "12976:9:0", + "src": "13237:9:6", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1201, + "id": 1607, "isConstant": false, "isLValue": false, "isPure": false, @@ -40645,7 +42577,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12976:72:0", + "src": "13237:72:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -40653,22 +42585,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "12961:87:0" + "src": "13222:87:6" }, { "assignments": [ - 1204 + 1610 ], "declarations": [ { "constant": false, - "id": 1204, + "id": 1610, "mutability": "mutable", "name": "paramsHash", - "nameLocation": "13066:10:0", + "nameLocation": "13327:10:6", "nodeType": "VariableDeclaration", - "scope": 1336, - "src": "13058:18:0", + "scope": 1741, + "src": "13319:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40676,10 +42608,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1203, + "id": 1609, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13058:7:0", + "src": "13319:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -40688,19 +42620,19 @@ "visibility": "internal" } ], - "id": 1209, + "id": 1615, "initialValue": { "arguments": [ { "hexValue": "30", - "id": 1207, + "id": 1613, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13087:1:0", + "src": "13348:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -40715,26 +42647,26 @@ "typeString": "int_const 0" } ], - "id": 1206, + "id": 1612, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13079:7:0", + "src": "13340:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1205, + "id": 1611, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13079:7:0", + "src": "13340:7:6", "typeDescriptions": {} } }, - "id": 1208, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": true, @@ -40742,7 +42674,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13079:10:0", + "src": "13340:10:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -40750,28 +42682,28 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "13058:31:0" + "src": "13319:31:6" }, { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1213, + "id": 1619, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1210, + "id": 1616, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "13103:13:0", + "referencedDeclaration": 1571, + "src": "13364:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -40779,32 +42711,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1211, + "id": 1617, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "13120:13:0", + "referencedDeclaration": 493, + "src": "13381:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1212, + "id": 1618, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "TRANSFER", "nodeType": "MemberAccess", - "referencedDeclaration": 100, - "src": "13120:22:0", + "referencedDeclaration": 489, + "src": "13381:22:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "13103:39:0", + "src": "13364:39:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -40813,23 +42745,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1241, + "id": 1647, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1238, + "id": 1644, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "13265:13:0", + "referencedDeclaration": 1571, + "src": "13526:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -40837,32 +42769,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1239, + "id": 1645, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "13282:13:0", + "referencedDeclaration": 493, + "src": "13543:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1240, + "id": 1646, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "RECOVER", "nodeType": "MemberAccess", - "referencedDeclaration": 102, - "src": "13282:21:0", + "referencedDeclaration": 491, + "src": "13543:21:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "13265:38:0", + "src": "13526:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -40871,23 +42803,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1253, + "id": 1658, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1250, + "id": 1655, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "13363:13:0", + "referencedDeclaration": 1571, + "src": "13629:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -40895,56 +42827,56 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1251, + "id": 1656, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "13380:13:0", + "referencedDeclaration": 493, + "src": "13646:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1252, + "id": 1657, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "SET_RECOVERY_ADDRESS", "nodeType": "MemberAccess", - "referencedDeclaration": 101, - "src": "13380:34:0", + "referencedDeclaration": 490, + "src": "13646:34:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "13363:51:0", + "src": "13629:51:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1328, + "id": 1733, "nodeType": "Block", - "src": "13516:405:0", + "src": "13782:405:6", "statements": [ { "assignments": [ - 1275 + 1680 ], "declarations": [ { "constant": false, - "id": 1275, + "id": 1680, "mutability": "mutable", "name": "packed", - "nameLocation": "13543:6:0", + "nameLocation": "13809:6:6", "nodeType": "VariableDeclaration", - "scope": 1328, - "src": "13530:19:0", + "scope": 1733, + "src": "13796:19:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -40952,10 +42884,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1274, + "id": 1679, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "13530:5:0", + "src": "13796:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -40964,7 +42896,7 @@ "visibility": "internal" } ], - "id": 1317, + "id": 1722, "initialValue": { "arguments": [ { @@ -40972,14 +42904,14 @@ { "arguments": [ { - "id": 1283, + "id": 1688, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "13598:13:0", + "referencedDeclaration": 1571, + "src": "13864:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } } @@ -40987,30 +42919,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } ], - "id": 1282, + "id": 1687, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13590:7:0", + "src": "13856:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1281, + "id": 1686, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13590:7:0", + "src": "13856:7:6", "typeDescriptions": {} } }, - "id": 1284, + "id": 1689, "isConstant": false, "isLValue": false, "isPure": false, @@ -41018,7 +42950,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13590:22:0", + "src": "13856:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -41033,26 +42965,26 @@ "typeString": "uint256" } ], - "id": 1280, + "id": 1685, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13582:7:0", + "src": "13848:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1279, + "id": 1684, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13582:7:0", + "src": "13848:7:6", "typeDescriptions": {} } }, - "id": 1285, + "id": 1690, "isConstant": false, "isLValue": false, "isPure": false, @@ -41060,7 +42992,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13582:31:0", + "src": "13848:31:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -41072,14 +43004,14 @@ { "arguments": [ { - "id": 1290, + "id": 1695, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1168, - "src": "13647:9:0", + "referencedDeclaration": 1574, + "src": "13913:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } } @@ -41087,30 +43019,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } ], - "id": 1289, + "id": 1694, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13639:7:0", + "src": "13905:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1288, + "id": 1693, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13639:7:0", + "src": "13905:7:6", "typeDescriptions": {} } }, - "id": 1291, + "id": 1696, "isConstant": false, "isLValue": false, "isPure": false, @@ -41118,7 +43050,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13639:18:0", + "src": "13905:18:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -41133,26 +43065,26 @@ "typeString": "uint256" } ], - "id": 1287, + "id": 1692, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13631:7:0", + "src": "13897:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1286, + "id": 1691, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13631:7:0", + "src": "13897:7:6", "typeDescriptions": {} } }, - "id": 1292, + "id": 1697, "isConstant": false, "isLValue": false, "isPure": false, @@ -41160,7 +43092,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13631:27:0", + "src": "13897:27:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -41172,12 +43104,12 @@ { "arguments": [ { - "id": 1297, + "id": 1702, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1170, - "src": "13692:15:0", + "referencedDeclaration": 1576, + "src": "13958:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -41191,26 +43123,26 @@ "typeString": "address" } ], - "id": 1296, + "id": 1701, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13684:7:0", + "src": "13950:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 1295, + "id": 1700, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "13684:7:0", + "src": "13950:7:6", "typeDescriptions": {} } }, - "id": 1298, + "id": 1703, "isConstant": false, "isLValue": false, "isPure": false, @@ -41218,7 +43150,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13684:24:0", + "src": "13950:24:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -41233,26 +43165,26 @@ "typeString": "bytes20" } ], - "id": 1294, + "id": 1699, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13676:7:0", + "src": "13942:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1293, + "id": 1698, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13676:7:0", + "src": "13942:7:6", "typeDescriptions": {} } }, - "id": 1299, + "id": 1704, "isConstant": false, "isLValue": false, "isPure": false, @@ -41260,7 +43192,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13676:33:0", + "src": "13942:33:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -41270,12 +43202,12 @@ { "arguments": [ { - "id": 1302, + "id": 1707, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1172, - "src": "13735:7:0", + "referencedDeclaration": 1578, + "src": "14001:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41289,26 +43221,26 @@ "typeString": "uint256" } ], - "id": 1301, + "id": 1706, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13727:7:0", + "src": "13993:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1300, + "id": 1705, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13727:7:0", + "src": "13993:7:6", "typeDescriptions": {} } }, - "id": 1303, + "id": 1708, "isConstant": false, "isLValue": false, "isPure": false, @@ -41316,7 +43248,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13727:16:0", + "src": "13993:16:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -41328,12 +43260,12 @@ { "arguments": [ { - "id": 1308, + "id": 1713, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1174, - "src": "13777:4:0", + "referencedDeclaration": 1580, + "src": "14043:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -41347,26 +43279,26 @@ "typeString": "address" } ], - "id": 1307, + "id": 1712, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13769:7:0", + "src": "14035:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 1306, + "id": 1711, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "13769:7:0", + "src": "14035:7:6", "typeDescriptions": {} } }, - "id": 1309, + "id": 1714, "isConstant": false, "isLValue": false, "isPure": false, @@ -41374,7 +43306,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13769:13:0", + "src": "14035:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -41389,26 +43321,26 @@ "typeString": "bytes20" } ], - "id": 1305, + "id": 1710, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13761:7:0", + "src": "14027:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1304, + "id": 1709, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13761:7:0", + "src": "14027:7:6", "typeDescriptions": {} } }, - "id": 1310, + "id": 1715, "isConstant": false, "isLValue": false, "isPure": false, @@ -41416,7 +43348,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13761:22:0", + "src": "14027:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -41426,12 +43358,12 @@ { "arguments": [ { - "id": 1313, + "id": 1718, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "13809:6:0", + "referencedDeclaration": 1582, + "src": "14075:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -41445,26 +43377,26 @@ "typeString": "uint256" } ], - "id": 1312, + "id": 1717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13801:7:0", + "src": "14067:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1311, + "id": 1716, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13801:7:0", + "src": "14067:7:6", "typeDescriptions": {} } }, - "id": 1314, + "id": 1719, "isConstant": false, "isLValue": false, "isPure": false, @@ -41472,7 +43404,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13801:15:0", + "src": "14067:15:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -41480,12 +43412,12 @@ } }, { - "id": 1315, + "id": 1720, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "13834:4:0", + "referencedDeclaration": 1584, + "src": "14100:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -41524,39 +43456,39 @@ } ], "expression": { - "id": 1277, + "id": 1682, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13552:5:0", + "src": "13818:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1276, + "id": 1681, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "13552:5:0", + "src": "13818:5:6", "typeDescriptions": {} } }, - "id": 1278, + "id": 1683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "13552:12:0", + "src": "13818:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1316, + "id": 1721, "isConstant": false, "isLValue": false, "isPure": false, @@ -41564,7 +43496,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13552:300:0", + "src": "13818:300:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -41572,22 +43504,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "13530:322:0" + "src": "13796:322:6" }, { "expression": { - "id": 1326, + "id": 1731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1318, + "id": 1723, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1204, - "src": "13866:10:0", + "referencedDeclaration": 1610, + "src": "14132:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -41600,12 +43532,12 @@ { "arguments": [ { - "id": 1323, + "id": 1728, "name": "packed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1275, - "src": "13902:6:0", + "referencedDeclaration": 1680, + "src": "14168:6:6", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -41620,39 +43552,39 @@ } ], "expression": { - "id": 1321, + "id": 1726, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13889:5:0", + "src": "14155:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1320, + "id": 1725, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "13889:5:0", + "src": "14155:5:6", "typeDescriptions": {} } }, - "id": 1322, + "id": 1727, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "13889:12:0", + "src": "14155:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1324, + "id": 1729, "isConstant": false, "isLValue": false, "isPure": false, @@ -41660,7 +43592,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13889:20:0", + "src": "14155:20:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -41675,18 +43607,18 @@ "typeString": "bytes memory" } ], - "id": 1319, + "id": 1724, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "13879:9:0", + "src": "14145:9:6", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1325, + "id": 1730, "isConstant": false, "isLValue": false, "isPure": false, @@ -41694,47 +43626,47 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13879:31:0", + "src": "14145:31:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "13866:44:0", + "src": "14132:44:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1327, + "id": 1732, "nodeType": "ExpressionStatement", - "src": "13866:44:0" + "src": "14132:44:6" } ] }, - "id": 1329, + "id": 1734, "nodeType": "IfStatement", - "src": "13359:562:0", + "src": "13625:562:6", "trueBody": { - "id": 1273, + "id": 1678, "nodeType": "Block", - "src": "13416:94:0", + "src": "13682:94:6", "statements": [ { "expression": { - "id": 1271, + "id": 1676, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1254, + "id": 1659, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1204, - "src": "13430:10:0", + "referencedDeclaration": 1610, + "src": "13696:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -41753,12 +43685,12 @@ { "arguments": [ { - "id": 1265, + "id": 1670, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1174, - "src": "13490:4:0", + "referencedDeclaration": 1580, + "src": "13756:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -41772,26 +43704,26 @@ "typeString": "address" } ], - "id": 1264, + "id": 1669, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13482:7:0", + "src": "13748:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1263, + "id": 1668, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13482:7:0", + "src": "13748:7:6", "typeDescriptions": {} } }, - "id": 1266, + "id": 1671, "isConstant": false, "isLValue": false, "isPure": false, @@ -41799,7 +43731,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13482:13:0", + "src": "13748:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -41814,26 +43746,26 @@ "typeString": "address" } ], - "id": 1262, + "id": 1667, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13474:7:0", + "src": "13740:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 1261, + "id": 1666, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "13474:7:0", + "src": "13740:7:6", "typeDescriptions": {} } }, - "id": 1267, + "id": 1672, "isConstant": false, "isLValue": false, "isPure": false, @@ -41841,7 +43773,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13474:22:0", + "src": "13740:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -41856,26 +43788,26 @@ "typeString": "bytes20" } ], - "id": 1260, + "id": 1665, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13466:7:0", + "src": "13732:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1259, + "id": 1664, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13466:7:0", + "src": "13732:7:6", "typeDescriptions": {} } }, - "id": 1268, + "id": 1673, "isConstant": false, "isLValue": false, "isPure": false, @@ -41883,7 +43815,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13466:31:0", + "src": "13732:31:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -41899,39 +43831,39 @@ } ], "expression": { - "id": 1257, + "id": 1662, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13453:5:0", + "src": "13719:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1256, + "id": 1661, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "13453:5:0", + "src": "13719:5:6", "typeDescriptions": {} } }, - "id": 1258, + "id": 1663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "13453:12:0", + "src": "13719:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1269, + "id": 1674, "isConstant": false, "isLValue": false, "isPure": false, @@ -41939,7 +43871,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13453:45:0", + "src": "13719:45:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -41954,18 +43886,18 @@ "typeString": "bytes memory" } ], - "id": 1255, + "id": 1660, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "13443:9:0", + "src": "13709:9:6", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1270, + "id": 1675, "isConstant": false, "isLValue": false, "isPure": false, @@ -41973,48 +43905,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13443:56:0", + "src": "13709:56:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "13430:69:0", + "src": "13696:69:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1272, + "id": 1677, "nodeType": "ExpressionStatement", - "src": "13430:69:0" + "src": "13696:69:6" } ] } }, - "id": 1330, + "id": 1735, "nodeType": "IfStatement", - "src": "13261:660:0", + "src": "13522:665:6", "trueBody": { - "id": 1249, + "id": 1654, "nodeType": "Block", - "src": "13305:48:0", + "src": "13566:53:6", "statements": [ { "expression": { - "id": 1247, + "id": 1652, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1242, + "id": 1648, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1204, - "src": "13319:10:0", + "referencedDeclaration": 1610, + "src": "13580:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -42025,98 +43957,86 @@ "rightHandSide": { "arguments": [ { - "hexValue": "30", - "id": 1245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13340:1:0", + "id": 1650, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1584, + "src": "13603:4:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } ], - "id": 1244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13332:7:0", + "id": 1649, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "13593:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 1243, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "13332:7:0", - "typeDescriptions": {} + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1246, + "id": 1651, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "typeConversion", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13332:10:0", + "src": "13593:15:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "13319:23:0", + "src": "13580:28:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1248, + "id": 1653, "nodeType": "ExpressionStatement", - "src": "13319:23:0" + "src": "13580:28:6" } ] } }, - "id": 1331, + "id": 1736, "nodeType": "IfStatement", - "src": "13099:822:0", + "src": "13360:827:6", "trueBody": { - "id": 1237, + "id": 1643, "nodeType": "Block", - "src": "13144:111:0", + "src": "13405:111:6", "statements": [ { "expression": { - "id": 1235, + "id": 1641, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1214, + "id": 1620, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1204, - "src": "13158:10:0", + "referencedDeclaration": 1610, + "src": "13419:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -42135,12 +44055,12 @@ { "arguments": [ { - "id": 1225, + "id": 1631, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1174, - "src": "13218:4:0", + "referencedDeclaration": 1580, + "src": "13479:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -42154,26 +44074,26 @@ "typeString": "address" } ], - "id": 1224, + "id": 1630, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13210:7:0", + "src": "13471:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1223, + "id": 1629, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13210:7:0", + "src": "13471:7:6", "typeDescriptions": {} } }, - "id": 1226, + "id": 1632, "isConstant": false, "isLValue": false, "isPure": false, @@ -42181,7 +44101,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13210:13:0", + "src": "13471:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -42196,26 +44116,26 @@ "typeString": "address" } ], - "id": 1222, + "id": 1628, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13202:7:0", + "src": "13463:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 1221, + "id": 1627, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "13202:7:0", + "src": "13463:7:6", "typeDescriptions": {} } }, - "id": 1227, + "id": 1633, "isConstant": false, "isLValue": false, "isPure": false, @@ -42223,7 +44143,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13202:22:0", + "src": "13463:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -42238,26 +44158,26 @@ "typeString": "bytes20" } ], - "id": 1220, + "id": 1626, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13194:7:0", + "src": "13455:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1219, + "id": 1625, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13194:7:0", + "src": "13455:7:6", "typeDescriptions": {} } }, - "id": 1228, + "id": 1634, "isConstant": false, "isLValue": false, "isPure": false, @@ -42265,7 +44185,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13194:31:0", + "src": "13455:31:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -42275,12 +44195,12 @@ { "arguments": [ { - "id": 1231, + "id": 1637, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "13235:6:0", + "referencedDeclaration": 1582, + "src": "13496:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42294,26 +44214,26 @@ "typeString": "uint256" } ], - "id": 1230, + "id": 1636, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13227:7:0", + "src": "13488:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1229, + "id": 1635, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13227:7:0", + "src": "13488:7:6", "typeDescriptions": {} } }, - "id": 1232, + "id": 1638, "isConstant": false, "isLValue": false, "isPure": false, @@ -42321,7 +44241,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13227:15:0", + "src": "13488:15:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -42341,39 +44261,39 @@ } ], "expression": { - "id": 1217, + "id": 1623, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13181:5:0", + "src": "13442:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1216, + "id": 1622, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "13181:5:0", + "src": "13442:5:6", "typeDescriptions": {} } }, - "id": 1218, + "id": 1624, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "13181:12:0", + "src": "13442:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1233, + "id": 1639, "isConstant": false, "isLValue": false, "isPure": false, @@ -42381,7 +44301,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13181:62:0", + "src": "13442:62:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -42396,18 +44316,18 @@ "typeString": "bytes memory" } ], - "id": 1215, + "id": 1621, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "13171:9:0", + "src": "13432:9:6", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1234, + "id": 1640, "isConstant": false, "isLValue": false, "isPure": false, @@ -42415,22 +44335,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13171:73:0", + "src": "13432:73:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "13158:86:0", + "src": "13419:86:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1236, + "id": 1642, "nodeType": "ExpressionStatement", - "src": "13158:86:0" + "src": "13419:86:6" } ] } @@ -42439,76 +44359,76 @@ "expression": { "components": [ { - "id": 1332, + "id": 1737, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1186, - "src": "13938:4:0", + "referencedDeclaration": 1592, + "src": "14204:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1333, + "id": 1738, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1204, - "src": "13944:10:0", + "referencedDeclaration": 1610, + "src": "14210:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 1334, + "id": 1739, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "13937:18:0", + "src": "14203:18:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(bytes32,bytes32)" } }, - "functionReturnParameters": 1184, - "id": 1335, + "functionReturnParameters": 1590, + "id": 1740, "nodeType": "Return", - "src": "13930:25:0" + "src": "14196:25:6" } ] }, "documentation": { - "id": 1156, + "id": 1562, "nodeType": "StructuredDocumentation", - "src": "12597:78:0", + "src": "12858:78:6", "text": "Provides commitHash, paramsHash, and verificationHash given the parameters" }, - "id": 1337, + "id": 1742, "implemented": true, "kind": "function", "modifiers": [], "name": "_getRevealHash", - "nameLocation": "12689:14:0", + "nameLocation": "12950:14:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1179, + "id": 1585, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1158, + "id": 1564, "mutability": "mutable", "name": "neighbor", - "nameLocation": "12712:8:0", + "nameLocation": "12973:8:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12704:16:0", + "scope": 1742, + "src": "12965:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42516,10 +44436,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1157, + "id": 1563, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12704:7:0", + "src": "12965:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -42529,13 +44449,13 @@ }, { "constant": false, - "id": 1160, + "id": 1566, "mutability": "mutable", "name": "indexWithNonce", - "nameLocation": "12729:14:0", + "nameLocation": "12990:14:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12722:21:0", + "scope": 1742, + "src": "12983:21:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42543,10 +44463,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1159, + "id": 1565, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "12722:6:0", + "src": "12983:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -42556,13 +44476,13 @@ }, { "constant": false, - "id": 1162, + "id": 1568, "mutability": "mutable", "name": "eotp", - "nameLocation": "12753:4:0", + "nameLocation": "13014:4:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12745:12:0", + "scope": 1742, + "src": "13006:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42570,10 +44490,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1161, + "id": 1567, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12745:7:0", + "src": "13006:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -42583,33 +44503,33 @@ }, { "constant": false, - "id": 1165, + "id": 1571, "mutability": "mutable", "name": "operationType", - "nameLocation": "12781:13:0", + "nameLocation": "13042:13:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12767:27:0", + "scope": 1742, + "src": "13028:27:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, "typeName": { - "id": 1164, + "id": 1570, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1163, + "id": 1569, "name": "OperationType", "nodeType": "IdentifierPath", - "referencedDeclaration": 103, - "src": "12767:13:0" + "referencedDeclaration": 493, + "src": "13028:13:6" }, - "referencedDeclaration": 103, - "src": "12767:13:0", + "referencedDeclaration": 493, + "src": "13028:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -42617,33 +44537,33 @@ }, { "constant": false, - "id": 1168, + "id": 1574, "mutability": "mutable", "name": "tokenType", - "nameLocation": "12806:9:0", + "nameLocation": "13067:9:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12796:19:0", + "scope": 1742, + "src": "13057:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 1167, + "id": 1573, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1166, + "id": 1572, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2176, - "src": "12796:9:0" + "referencedDeclaration": 2607, + "src": "13057:9:6" }, - "referencedDeclaration": 2176, - "src": "12796:9:0", + "referencedDeclaration": 2607, + "src": "13057:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -42651,13 +44571,13 @@ }, { "constant": false, - "id": 1170, + "id": 1576, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "12825:15:0", + "nameLocation": "13086:15:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12817:23:0", + "scope": 1742, + "src": "13078:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42665,10 +44585,10 @@ "typeString": "address" }, "typeName": { - "id": 1169, + "id": 1575, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12817:7:0", + "src": "13078:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -42679,13 +44599,13 @@ }, { "constant": false, - "id": 1172, + "id": 1578, "mutability": "mutable", "name": "tokenId", - "nameLocation": "12850:7:0", + "nameLocation": "13111:7:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12842:15:0", + "scope": 1742, + "src": "13103:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42693,10 +44613,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1171, + "id": 1577, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12842:7:0", + "src": "13103:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42706,13 +44626,13 @@ }, { "constant": false, - "id": 1174, + "id": 1580, "mutability": "mutable", "name": "dest", - "nameLocation": "12867:4:0", + "nameLocation": "13128:4:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12859:12:0", + "scope": 1742, + "src": "13120:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42720,10 +44640,10 @@ "typeString": "address" }, "typeName": { - "id": 1173, + "id": 1579, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12859:7:0", + "src": "13120:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -42734,13 +44654,13 @@ }, { "constant": false, - "id": 1176, + "id": 1582, "mutability": "mutable", "name": "amount", - "nameLocation": "12881:6:0", + "nameLocation": "13142:6:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12873:14:0", + "scope": 1742, + "src": "13134:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42748,10 +44668,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1175, + "id": 1581, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12873:7:0", + "src": "13134:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -42761,13 +44681,13 @@ }, { "constant": false, - "id": 1178, + "id": 1584, "mutability": "mutable", "name": "data", - "nameLocation": "12904:4:0", + "nameLocation": "13165:4:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12889:19:0", + "scope": 1742, + "src": "13150:19:6", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -42775,10 +44695,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1177, + "id": 1583, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12889:5:0", + "src": "13150:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -42787,21 +44707,21 @@ "visibility": "internal" } ], - "src": "12703:206:0" + "src": "12964:206:6" }, "returnParameters": { - "id": 1184, + "id": 1590, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1181, + "id": 1587, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12933:7:0", + "scope": 1742, + "src": "13194:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42809,10 +44729,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1180, + "id": 1586, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12933:7:0", + "src": "13194:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -42822,13 +44742,13 @@ }, { "constant": false, - "id": 1183, + "id": 1589, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12942:7:0", + "scope": 1742, + "src": "13203:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42836,10 +44756,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1182, + "id": 1588, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12942:7:0", + "src": "13203:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -42848,54 +44768,54 @@ "visibility": "internal" } ], - "src": "12932:18:0" + "src": "13193:18:6" }, - "scope": 2161, - "src": "12680:1282:0", + "scope": 2592, + "src": "12941:1287:6", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1503, + "id": 1923, "nodeType": "Block", - "src": "14224:1473:0", + "src": "14490:1631:6", "statements": [ { "expression": { "arguments": [ { - "id": 1364, + "id": 1769, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1340, - "src": "14250:9:0", + "referencedDeclaration": 1745, + "src": "14516:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, { - "id": 1365, + "id": 1770, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1342, - "src": "14261:14:0", + "referencedDeclaration": 1747, + "src": "14527:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { - "id": 1366, + "id": 1771, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "14277:4:0", + "referencedDeclaration": 1749, + "src": "14543:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -42917,18 +44837,18 @@ "typeString": "bytes32" } ], - "id": 1363, + "id": 1768, "name": "_isCorrectProof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1597, - "src": "14234:15:0", + "referencedDeclaration": 2028, + "src": "14500:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_uint32_$_t_bytes32_$returns$__$", "typeString": "function (bytes32[] calldata,uint32,bytes32) view" } }, - "id": 1367, + "id": 1772, "isConstant": false, "isLValue": false, "isPure": false, @@ -42936,32 +44856,241 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14234:48:0", + "src": "14500:48:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1368, + "id": 1773, "nodeType": "ExpressionStatement", - "src": "14234:48:0" + "src": "14500:48:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1774, + "name": "indexWithNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "14562:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1775, + "name": "_numLeaves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "14580:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14593:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14580:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14562:32:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1788, + "nodeType": "IfStatement", + "src": "14558:149:6", + "trueBody": { + "id": 1787, + "nodeType": "Block", + "src": "14596:111:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + }, + "id": 1783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1780, + "name": "operationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1752, + "src": "14618:13:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 1781, + "name": "OperationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 493, + "src": "14635:13:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", + "typeString": "type(enum ONEWallet.OperationType)" + } + }, + "id": 1782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "RECOVER", + "nodeType": "MemberAccess", + "referencedDeclaration": 491, + "src": "14635:21:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } + }, + "src": "14618:38:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4c617374206f7065726174696f6e20726573657276656420666f72207265636f766572", + "id": 1784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14658:37:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fab9828a623b3dec5ff9fd3a2c3a6f583ee6577f264fc8a5c168e0454ba5a4ba", + "typeString": "literal_string \"Last operation reserved for recover\"" + }, + "value": "Last operation reserved for recover" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fab9828a623b3dec5ff9fd3a2c3a6f583ee6577f264fc8a5c168e0454ba5a4ba", + "typeString": "literal_string \"Last operation reserved for recover\"" + } + ], + "id": 1779, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14610:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14610:86:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1786, + "nodeType": "ExpressionStatement", + "src": "14610:86:6" + } + ] + } }, { "assignments": [ - 1370, - 1372 + 1790, + 1792 ], "declarations": [ { "constant": false, - "id": 1370, + "id": 1790, "mutability": "mutable", "name": "commitHash", - "nameLocation": "14301:10:0", + "nameLocation": "14725:10:6", "nodeType": "VariableDeclaration", - "scope": 1503, - "src": "14293:18:0", + "scope": 1923, + "src": "14717:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42969,10 +45098,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1369, + "id": 1789, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "14293:7:0", + "src": "14717:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -42982,13 +45111,13 @@ }, { "constant": false, - "id": 1372, + "id": 1792, "mutability": "mutable", "name": "paramsHash", - "nameLocation": "14321:10:0", + "nameLocation": "14745:10:6", "nodeType": "VariableDeclaration", - "scope": 1503, - "src": "14313:18:0", + "scope": 1923, + "src": "14737:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -42996,10 +45125,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1371, + "id": 1791, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "14313:7:0", + "src": "14737:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -43008,33 +45137,33 @@ "visibility": "internal" } ], - "id": 1387, + "id": 1807, "initialValue": { "arguments": [ { "baseExpression": { - "id": 1374, + "id": 1794, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1340, - "src": "14350:9:0", + "referencedDeclaration": 1745, + "src": "14774:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1376, + "id": 1796, "indexExpression": { "hexValue": "30", - "id": 1375, + "id": 1795, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14360:1:0", + "src": "14784:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -43046,115 +45175,115 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14350:12:0", + "src": "14774:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1377, + "id": 1797, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1342, - "src": "14364:14:0", + "referencedDeclaration": 1747, + "src": "14788:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { - "id": 1378, + "id": 1798, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "14380:4:0", + "referencedDeclaration": 1749, + "src": "14804:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1379, + "id": 1799, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "14398:13:0", + "referencedDeclaration": 1752, + "src": "14822:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, { - "id": 1380, + "id": 1800, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1350, - "src": "14413:9:0", + "referencedDeclaration": 1755, + "src": "14837:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1381, + "id": 1801, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "14424:15:0", + "referencedDeclaration": 1757, + "src": "14848:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1382, + "id": 1802, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, - "src": "14441:7:0", + "referencedDeclaration": 1759, + "src": "14865:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1383, + "id": 1803, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "14450:4:0", + "referencedDeclaration": 1761, + "src": "14874:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 1384, + "id": 1804, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "14456:6:0", + "referencedDeclaration": 1763, + "src": "14880:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1385, + "id": 1805, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "14464:4:0", + "referencedDeclaration": 1765, + "src": "14888:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -43176,11 +45305,11 @@ "typeString": "bytes32" }, { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -43204,18 +45333,18 @@ "typeString": "bytes calldata" } ], - "id": 1373, + "id": 1793, "name": "_getRevealHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1337, - "src": "14335:14:0", + "referencedDeclaration": 1742, + "src": "14759:14:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint32_$_t_bytes32_$_t_enum$_OperationType_$103_$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes32_$_t_bytes32_$", + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint32_$_t_bytes32_$_t_enum$_OperationType_$493_$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes32_$_t_bytes32_$", "typeString": "function (bytes32,uint32,bytes32,enum ONEWallet.OperationType,enum TokenTracker.TokenType,address,uint256,address,uint256,bytes calldata) pure returns (bytes32,bytes32)" } }, - "id": 1386, + "id": 1806, "isConstant": false, "isLValue": false, "isPure": false, @@ -43223,7 +45352,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14335:134:0", + "src": "14759:134:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", @@ -43231,22 +45360,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "14292:177:0" + "src": "14716:177:6" }, { "assignments": [ - 1389 + 1809 ], "declarations": [ { "constant": false, - "id": 1389, + "id": 1809, "mutability": "mutable", "name": "commitIndex", - "nameLocation": "14486:11:0", + "nameLocation": "14910:11:6", "nodeType": "VariableDeclaration", - "scope": 1503, - "src": "14479:18:0", + "scope": 1923, + "src": "14903:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -43254,10 +45383,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1388, + "id": 1808, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "14479:6:0", + "src": "14903:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -43266,52 +45395,52 @@ "visibility": "internal" } ], - "id": 1396, + "id": 1816, "initialValue": { "arguments": [ { - "id": 1391, + "id": 1811, "name": "commitHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1370, - "src": "14514:10:0", + "referencedDeclaration": 1790, + "src": "14938:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1392, + "id": 1812, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1342, - "src": "14526:14:0", + "referencedDeclaration": 1747, + "src": "14950:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { - "id": 1393, + "id": 1813, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1372, - "src": "14542:10:0", + "referencedDeclaration": 1792, + "src": "14966:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1394, + "id": 1814, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "14554:4:0", + "referencedDeclaration": 1749, + "src": "14978:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -43337,18 +45466,18 @@ "typeString": "bytes32" } ], - "id": 1390, + "id": 1810, "name": "_verifyReveal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1928, - "src": "14500:13:0", + "referencedDeclaration": 2359, + "src": "14924:13:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint32_$_t_bytes32_$_t_bytes32_$returns$_t_uint32_$", "typeString": "function (bytes32,uint32,bytes32,bytes32) view returns (uint32)" } }, - "id": 1395, + "id": 1815, "isConstant": false, "isLValue": false, "isPure": false, @@ -43356,7 +45485,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14500:59:0", + "src": "14924:59:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -43364,30 +45493,30 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "14479:80:0" + "src": "14903:80:6" }, { "expression": { "arguments": [ { - "id": 1398, + "id": 1818, "name": "commitHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1370, - "src": "14585:10:0", + "referencedDeclaration": 1790, + "src": "15009:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1399, + "id": 1819, "name": "commitIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1389, - "src": "14597:11:0", + "referencedDeclaration": 1809, + "src": "15021:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -43405,18 +45534,18 @@ "typeString": "uint32" } ], - "id": 1397, + "id": 1817, "name": "_completeReveal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "14569:15:0", + "referencedDeclaration": 2432, + "src": "14993:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint32_$returns$__$", "typeString": "function (bytes32,uint32)" } }, - "id": 1400, + "id": 1820, "isConstant": false, "isLValue": false, "isPure": false, @@ -43424,37 +45553,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14569:40:0", + "src": "14993:40:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1401, + "id": 1821, "nodeType": "ExpressionStatement", - "src": "14569:40:0" + "src": "14993:40:6" }, { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1405, + "id": 1825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1402, + "id": 1822, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "14674:13:0", + "referencedDeclaration": 1752, + "src": "15098:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -43462,32 +45591,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1403, + "id": 1823, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "14691:13:0", + "referencedDeclaration": 493, + "src": "15115:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1404, + "id": 1824, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "TRACK", "nodeType": "MemberAccess", - "referencedDeclaration": 96, - "src": "14691:19:0", + "referencedDeclaration": 485, + "src": "15115:19:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "14674:36:0", + "src": "15098:36:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -43496,23 +45625,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1427, + "id": 1847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1424, + "id": 1844, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "14904:13:0", + "referencedDeclaration": 1752, + "src": "15328:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -43520,32 +45649,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1425, + "id": 1845, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "14921:13:0", + "referencedDeclaration": 493, + "src": "15345:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1426, + "id": 1846, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "UNTRACK", "nodeType": "MemberAccess", - "referencedDeclaration": 97, - "src": "14921:21:0", + "referencedDeclaration": 486, + "src": "15345:21:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "14904:38:0", + "src": "15328:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -43554,23 +45683,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1449, + "id": 1869, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1446, + "id": 1866, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "15140:13:0", + "referencedDeclaration": 1752, + "src": "15564:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -43578,32 +45707,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1447, + "id": 1867, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "15157:13:0", + "referencedDeclaration": 493, + "src": "15581:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1448, + "id": 1868, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "TRANSFER_TOKEN", "nodeType": "MemberAccess", - "referencedDeclaration": 98, - "src": "15157:28:0", + "referencedDeclaration": 487, + "src": "15581:28:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15140:45:0", + "src": "15564:45:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -43612,23 +45741,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1463, + "id": 1883, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1460, + "id": 1880, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "15293:13:0", + "referencedDeclaration": 1752, + "src": "15717:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -43636,32 +45765,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1461, + "id": 1881, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "15310:13:0", + "referencedDeclaration": 493, + "src": "15734:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1462, + "id": 1882, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "OVERRIDE_TRACK", "nodeType": "MemberAccess", - "referencedDeclaration": 99, - "src": "15310:28:0", + "referencedDeclaration": 488, + "src": "15734:28:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15293:45:0", + "src": "15717:45:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -43670,23 +45799,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1472, + "id": 1892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1469, + "id": 1889, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "15404:13:0", + "referencedDeclaration": 1752, + "src": "15828:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -43694,32 +45823,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1470, + "id": 1890, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "15421:13:0", + "referencedDeclaration": 493, + "src": "15845:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1471, + "id": 1891, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "TRANSFER", "nodeType": "MemberAccess", - "referencedDeclaration": 100, - "src": "15421:22:0", + "referencedDeclaration": 489, + "src": "15845:22:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15404:39:0", + "src": "15828:39:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -43728,23 +45857,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1482, + "id": 1902, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1479, + "id": 1899, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "15503:13:0", + "referencedDeclaration": 1752, + "src": "15927:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -43752,32 +45881,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1480, + "id": 1900, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "15520:13:0", + "referencedDeclaration": 493, + "src": "15944:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1481, + "id": 1901, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "RECOVER", "nodeType": "MemberAccess", - "referencedDeclaration": 102, - "src": "15520:21:0", + "referencedDeclaration": 491, + "src": "15944:21:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15503:38:0", + "src": "15927:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -43786,23 +45915,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1490, + "id": 1910, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1487, + "id": 1907, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "15588:13:0", + "referencedDeclaration": 1752, + "src": "16012:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -43810,55 +45939,55 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1488, + "id": 1908, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "15605:13:0", + "referencedDeclaration": 493, + "src": "16029:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1489, + "id": 1909, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "SET_RECOVERY_ADDRESS", "nodeType": "MemberAccess", - "referencedDeclaration": 101, - "src": "15605:34:0", + "referencedDeclaration": 490, + "src": "16029:34:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15588:51:0", + "src": "16012:51:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1496, + "id": 1916, "nodeType": "IfStatement", - "src": "15584:107:0", + "src": "16008:107:6", "trueBody": { - "id": 1495, + "id": 1915, "nodeType": "Block", - "src": "15641:50:0", + "src": "16065:50:6", "statements": [ { "expression": { "arguments": [ { - "id": 1492, + "id": 1912, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "15675:4:0", + "referencedDeclaration": 1761, + "src": "16099:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -43872,18 +46001,18 @@ "typeString": "address payable" } ], - "id": 1491, + "id": 1911, "name": "_setRecoveryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "15655:19:0", + "referencedDeclaration": 1365, + "src": "16079:19:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$returns$__$", "typeString": "function (address payable)" } }, - "id": 1493, + "id": 1913, "isConstant": false, "isLValue": false, "isPure": false, @@ -43891,45 +46020,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15655:25:0", + "src": "16079:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1494, + "id": 1914, "nodeType": "ExpressionStatement", - "src": "15655:25:0" + "src": "16079:25:6" } ] } }, - "id": 1497, + "id": 1917, "nodeType": "IfStatement", - "src": "15499:192:0", + "src": "15923:192:6", "trueBody": { - "id": 1486, + "id": 1906, "nodeType": "Block", - "src": "15543:35:0", + "src": "15967:35:6", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1483, + "id": 1903, "name": "_recover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 939, - "src": "15557:8:0", + "referencedDeclaration": 1345, + "src": "15981:8:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_bool_$", "typeString": "function () returns (bool)" } }, - "id": 1484, + "id": 1904, "isConstant": false, "isLValue": false, "isPure": false, @@ -43937,50 +46066,50 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15557:10:0", + "src": "15981:10:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1485, + "id": 1905, "nodeType": "ExpressionStatement", - "src": "15557:10:0" + "src": "15981:10:6" } ] } }, - "id": 1498, + "id": 1918, "nodeType": "IfStatement", - "src": "15400:291:0", + "src": "15824:291:6", "trueBody": { - "id": 1478, + "id": 1898, "nodeType": "Block", - "src": "15445:48:0", + "src": "15869:48:6", "statements": [ { "expression": { "arguments": [ { - "id": 1474, + "id": 1894, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "15469:4:0", + "referencedDeclaration": 1761, + "src": "15893:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 1475, + "id": 1895, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "15475:6:0", + "referencedDeclaration": 1763, + "src": "15899:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -43998,18 +46127,18 @@ "typeString": "uint256" } ], - "id": 1473, + "id": 1893, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "15459:9:0", + "referencedDeclaration": 1314, + "src": "15883:9:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address payable,uint256) returns (bool)" } }, - "id": 1476, + "id": 1896, "isConstant": false, "isLValue": false, "isPure": false, @@ -44017,38 +46146,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15459:23:0", + "src": "15883:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1477, + "id": 1897, "nodeType": "ExpressionStatement", - "src": "15459:23:0" + "src": "15883:23:6" } ] } }, - "id": 1499, + "id": 1919, "nodeType": "IfStatement", - "src": "15289:402:0", + "src": "15713:402:6", "trueBody": { - "id": 1468, + "id": 1888, "nodeType": "Block", - "src": "15340:54:0", + "src": "15764:54:6", "statements": [ { "expression": { "arguments": [ { - "id": 1465, + "id": 1885, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "15378:4:0", + "referencedDeclaration": 1765, + "src": "15802:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -44062,18 +46191,18 @@ "typeString": "bytes calldata" } ], - "id": 1464, + "id": 1884, "name": "_overrideTrackWithBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3166, - "src": "15354:23:0", + "referencedDeclaration": 3597, + "src": "15778:23:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$__$", "typeString": "function (bytes calldata)" } }, - "id": 1466, + "id": 1886, "isConstant": false, "isLValue": false, "isPure": false, @@ -44081,98 +46210,98 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15354:29:0", + "src": "15778:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1467, + "id": 1887, "nodeType": "ExpressionStatement", - "src": "15354:29:0" + "src": "15778:29:6" } ] } }, - "id": 1500, + "id": 1920, "nodeType": "IfStatement", - "src": "15136:555:0", + "src": "15560:555:6", "trueBody": { - "id": 1459, + "id": 1879, "nodeType": "Block", - "src": "15187:96:0", + "src": "15611:96:6", "statements": [ { "expression": { "arguments": [ { - "id": 1451, + "id": 1871, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1350, - "src": "15216:9:0", + "referencedDeclaration": 1755, + "src": "15640:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1452, + "id": 1872, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "15227:15:0", + "referencedDeclaration": 1757, + "src": "15651:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1453, + "id": 1873, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, - "src": "15244:7:0", + "referencedDeclaration": 1759, + "src": "15668:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1454, + "id": 1874, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "15253:4:0", + "referencedDeclaration": 1761, + "src": "15677:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 1455, + "id": 1875, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "15259:6:0", + "referencedDeclaration": 1763, + "src": "15683:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1456, + "id": 1876, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "15267:4:0", + "referencedDeclaration": 1765, + "src": "15691:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -44182,7 +46311,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -44206,18 +46335,18 @@ "typeString": "bytes calldata" } ], - "id": 1450, + "id": 1870, "name": "_transferToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1155, - "src": "15201:14:0", + "referencedDeclaration": 1561, + "src": "15625:14:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,bytes memory)" } }, - "id": 1457, + "id": 1877, "isConstant": false, "isLValue": false, "isPure": false, @@ -44225,27 +46354,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15201:71:0", + "src": "15625:71:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1458, + "id": 1878, "nodeType": "ExpressionStatement", - "src": "15201:71:0" + "src": "15625:71:6" } ] } }, - "id": 1501, + "id": 1921, "nodeType": "IfStatement", - "src": "14900:791:0", + "src": "15324:791:6", "trueBody": { - "id": 1445, + "id": 1865, "nodeType": "Block", - "src": "14944:186:0", + "src": "15368:186:6", "statements": [ { "condition": { @@ -44253,32 +46382,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1431, + "id": 1851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1428, + "id": 1848, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "14962:4:0", + "referencedDeclaration": 1765, + "src": "15386:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 1429, + "id": 1849, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "14962:11:0", + "src": "15386:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44288,41 +46417,41 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1430, + "id": 1850, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14976:1:0", + "src": "15400:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "14962:15:0", + "src": "15386:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1443, + "id": 1863, "nodeType": "Block", - "src": "15068:52:0", + "src": "15492:52:6", "statements": [ { "expression": { "arguments": [ { - "id": 1440, + "id": 1860, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "15100:4:0", + "referencedDeclaration": 1765, + "src": "15524:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -44336,18 +46465,18 @@ "typeString": "bytes calldata" } ], - "id": 1439, + "id": 1859, "name": "_multiUntrack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3382, - "src": "15086:13:0", + "referencedDeclaration": 3813, + "src": "15510:13:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$__$", "typeString": "function (bytes calldata)" } }, - "id": 1441, + "id": 1861, "isConstant": false, "isLValue": false, "isPure": false, @@ -44355,61 +46484,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15086:19:0", + "src": "15510:19:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1442, + "id": 1862, "nodeType": "ExpressionStatement", - "src": "15086:19:0" + "src": "15510:19:6" } ] }, - "id": 1444, + "id": 1864, "nodeType": "IfStatement", - "src": "14958:162:0", + "src": "15382:162:6", "trueBody": { - "id": 1438, + "id": 1858, "nodeType": "Block", - "src": "14979:83:0", + "src": "15403:83:6", "statements": [ { "expression": { "arguments": [ { - "id": 1433, + "id": 1853, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1350, - "src": "15011:9:0", + "referencedDeclaration": 1755, + "src": "15435:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1434, + "id": 1854, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "15022:15:0", + "referencedDeclaration": 1757, + "src": "15446:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1435, + "id": 1855, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, - "src": "15039:7:0", + "referencedDeclaration": 1759, + "src": "15463:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44419,7 +46548,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -44431,18 +46560,18 @@ "typeString": "uint256" } ], - "id": 1432, + "id": 1852, "name": "_untrackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2876, - "src": "14997:13:0", + "referencedDeclaration": 3307, + "src": "15421:13:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 1436, + "id": 1856, "isConstant": false, "isLValue": false, "isPure": false, @@ -44450,16 +46579,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14997:50:0", + "src": "15421:50:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1437, + "id": 1857, "nodeType": "ExpressionStatement", - "src": "14997:50:0" + "src": "15421:50:6" } ] } @@ -44467,13 +46596,13 @@ ] } }, - "id": 1502, + "id": 1922, "nodeType": "IfStatement", - "src": "14670:1021:0", + "src": "15094:1021:6", "trueBody": { - "id": 1423, + "id": 1843, "nodeType": "Block", - "src": "14712:182:0", + "src": "15136:182:6", "statements": [ { "condition": { @@ -44481,32 +46610,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1409, + "id": 1829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1406, + "id": 1826, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "14730:4:0", + "referencedDeclaration": 1765, + "src": "15154:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 1407, + "id": 1827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "14730:11:0", + "src": "15154:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44516,65 +46645,65 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1408, + "id": 1828, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14744:1:0", + "src": "15168:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "14730:15:0", + "src": "15154:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1421, + "id": 1841, "nodeType": "Block", - "src": "14803:81:0", + "src": "15227:81:6", "statements": [ { "expression": { "arguments": [ { - "id": 1416, + "id": 1836, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1350, - "src": "14833:9:0", + "referencedDeclaration": 1755, + "src": "15257:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1417, + "id": 1837, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "14844:15:0", + "referencedDeclaration": 1757, + "src": "15268:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1418, + "id": 1838, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, - "src": "14861:7:0", + "referencedDeclaration": 1759, + "src": "15285:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44584,7 +46713,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -44596,18 +46725,18 @@ "typeString": "uint256" } ], - "id": 1415, + "id": 1835, "name": "_trackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2658, - "src": "14821:11:0", + "referencedDeclaration": 3089, + "src": "15245:11:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 1419, + "id": 1839, "isConstant": false, "isLValue": false, "isPure": false, @@ -44615,37 +46744,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14821:48:0", + "src": "15245:48:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1420, + "id": 1840, "nodeType": "ExpressionStatement", - "src": "14821:48:0" + "src": "15245:48:6" } ] }, - "id": 1422, + "id": 1842, "nodeType": "IfStatement", - "src": "14726:158:0", + "src": "15150:158:6", "trueBody": { - "id": 1414, + "id": 1834, "nodeType": "Block", - "src": "14747:50:0", + "src": "15171:50:6", "statements": [ { "expression": { "arguments": [ { - "id": 1411, + "id": 1831, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "14777:4:0", + "referencedDeclaration": 1765, + "src": "15201:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -44659,18 +46788,18 @@ "typeString": "bytes calldata" } ], - "id": 1410, + "id": 1830, "name": "_multiTrack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3274, - "src": "14765:11:0", + "referencedDeclaration": 3705, + "src": "15189:11:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$__$", "typeString": "function (bytes calldata)" } }, - "id": 1412, + "id": 1832, "isConstant": false, "isLValue": false, "isPure": false, @@ -44678,16 +46807,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14765:17:0", + "src": "15189:17:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1413, + "id": 1833, "nodeType": "ExpressionStatement", - "src": "14765:17:0" + "src": "15189:17:6" } ] } @@ -44698,26 +46827,26 @@ ] }, "functionSelector": "c34a6dad", - "id": 1504, + "id": 1924, "implemented": true, "kind": "function", "modifiers": [], "name": "reveal", - "nameLocation": "13978:6:0", + "nameLocation": "14244:6:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1361, + "id": 1766, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1340, + "id": 1745, "mutability": "mutable", "name": "neighbors", - "nameLocation": "14004:9:0", + "nameLocation": "14270:9:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "13985:28:0", + "scope": 1924, + "src": "14251:28:6", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -44726,18 +46855,18 @@ }, "typeName": { "baseType": { - "id": 1338, + "id": 1743, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13985:7:0", + "src": "14251:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1339, + "id": 1744, "nodeType": "ArrayTypeName", - "src": "13985:9:0", + "src": "14251:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -44747,13 +46876,13 @@ }, { "constant": false, - "id": 1342, + "id": 1747, "mutability": "mutable", "name": "indexWithNonce", - "nameLocation": "14022:14:0", + "nameLocation": "14288:14:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14015:21:0", + "scope": 1924, + "src": "14281:21:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44761,10 +46890,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1341, + "id": 1746, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "14015:6:0", + "src": "14281:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -44774,13 +46903,13 @@ }, { "constant": false, - "id": 1344, + "id": 1749, "mutability": "mutable", "name": "eotp", - "nameLocation": "14046:4:0", + "nameLocation": "14312:4:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14038:12:0", + "scope": 1924, + "src": "14304:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44788,10 +46917,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1343, + "id": 1748, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "14038:7:0", + "src": "14304:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -44801,33 +46930,33 @@ }, { "constant": false, - "id": 1347, + "id": 1752, "mutability": "mutable", "name": "operationType", - "nameLocation": "14074:13:0", + "nameLocation": "14340:13:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14060:27:0", + "scope": 1924, + "src": "14326:27:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, "typeName": { - "id": 1346, + "id": 1751, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1345, + "id": 1750, "name": "OperationType", "nodeType": "IdentifierPath", - "referencedDeclaration": 103, - "src": "14060:13:0" + "referencedDeclaration": 493, + "src": "14326:13:6" }, - "referencedDeclaration": 103, - "src": "14060:13:0", + "referencedDeclaration": 493, + "src": "14326:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -44835,33 +46964,33 @@ }, { "constant": false, - "id": 1350, + "id": 1755, "mutability": "mutable", "name": "tokenType", - "nameLocation": "14099:9:0", + "nameLocation": "14365:9:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14089:19:0", + "scope": 1924, + "src": "14355:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 1349, + "id": 1754, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1348, + "id": 1753, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2176, - "src": "14089:9:0" + "referencedDeclaration": 2607, + "src": "14355:9:6" }, - "referencedDeclaration": 2176, - "src": "14089:9:0", + "referencedDeclaration": 2607, + "src": "14355:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -44869,13 +46998,13 @@ }, { "constant": false, - "id": 1352, + "id": 1757, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "14118:15:0", + "nameLocation": "14384:15:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14110:23:0", + "scope": 1924, + "src": "14376:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44883,10 +47012,10 @@ "typeString": "address" }, "typeName": { - "id": 1351, + "id": 1756, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14110:7:0", + "src": "14376:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -44897,13 +47026,13 @@ }, { "constant": false, - "id": 1354, + "id": 1759, "mutability": "mutable", "name": "tokenId", - "nameLocation": "14143:7:0", + "nameLocation": "14409:7:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14135:15:0", + "scope": 1924, + "src": "14401:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44911,10 +47040,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1353, + "id": 1758, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14135:7:0", + "src": "14401:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44924,13 +47053,13 @@ }, { "constant": false, - "id": 1356, + "id": 1761, "mutability": "mutable", "name": "dest", - "nameLocation": "14168:4:0", + "nameLocation": "14434:4:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14152:20:0", + "scope": 1924, + "src": "14418:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44938,10 +47067,10 @@ "typeString": "address payable" }, "typeName": { - "id": 1355, + "id": 1760, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14152:15:0", + "src": "14418:15:6", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -44952,13 +47081,13 @@ }, { "constant": false, - "id": 1358, + "id": 1763, "mutability": "mutable", "name": "amount", - "nameLocation": "14182:6:0", + "nameLocation": "14448:6:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14174:14:0", + "scope": 1924, + "src": "14440:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -44966,10 +47095,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1357, + "id": 1762, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14174:7:0", + "src": "14440:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -44979,13 +47108,13 @@ }, { "constant": false, - "id": 1360, + "id": 1765, "mutability": "mutable", "name": "data", - "nameLocation": "14205:4:0", + "nameLocation": "14471:4:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14190:19:0", + "scope": 1924, + "src": "14456:19:6", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -44993,10 +47122,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1359, + "id": 1764, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "14190:5:0", + "src": "14456:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -45005,25 +47134,25 @@ "visibility": "internal" } ], - "src": "13984:226:0" + "src": "14250:226:6" }, "returnParameters": { - "id": 1362, + "id": 1767, "nodeType": "ParameterList", "parameters": [], - "src": "14224:0:0" + "src": "14490:0:6" }, - "scope": 2161, - "src": "13969:1728:0", + "scope": 2592, + "src": "14235:1886:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1596, + "id": 2027, "nodeType": "Block", - "src": "15926:488:0", + "src": "16350:604:6", "statements": [ { "expression": { @@ -45033,32 +47162,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1521, + "id": 1941, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1516, + "id": 1936, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1508, - "src": "15944:9:0", + "referencedDeclaration": 1928, + "src": "16368:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1517, + "id": 1937, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "15944:16:0", + "src": "16368:16:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -45071,18 +47200,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1520, + "id": 1940, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1518, + "id": 1938, "name": "height", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "15964:6:0", + "referencedDeclaration": 439, + "src": "16388:6:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -45092,27 +47221,27 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 1519, + "id": 1939, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15973:1:0", + "src": "16397:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "15964:10:0", + "src": "16388:10:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "15944:30:0", + "src": "16368:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -45120,14 +47249,14 @@ }, { "hexValue": "4e6f7420656e6f756768206e65696768626f72732070726f7669646564", - "id": 1522, + "id": 1942, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15976:31:0", + "src": "16400:31:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_83d08d6dcf099c52fbe149a08cb4ffd65f3fec6dbf87dba7bc08b7a534982441", "typeString": "literal_string \"Not enough neighbors provided\"" @@ -45146,7 +47275,7 @@ "typeString": "literal_string \"Not enough neighbors provided\"" } ], - "id": 1515, + "id": 1935, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -45154,13 +47283,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "15936:7:0", + "src": "16360:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1523, + "id": 1943, "isConstant": false, "isLValue": false, "isPure": false, @@ -45168,31 +47297,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15936:72:0", + "src": "16360:72:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1524, + "id": 1944, "nodeType": "ExpressionStatement", - "src": "15936:72:0" + "src": "16360:72:6" }, { "assignments": [ - 1526 + 1946 ], "declarations": [ { "constant": false, - "id": 1526, + "id": 1946, "mutability": "mutable", "name": "h", - "nameLocation": "16026:1:0", + "nameLocation": "16450:1:6", "nodeType": "VariableDeclaration", - "scope": 1596, - "src": "16018:9:0", + "scope": 2027, + "src": "16442:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45200,10 +47329,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1525, + "id": 1945, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "16018:7:0", + "src": "16442:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -45212,18 +47341,18 @@ "visibility": "internal" } ], - "id": 1534, + "id": 1954, "initialValue": { "arguments": [ { "arguments": [ { - "id": 1531, + "id": 1951, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1512, - "src": "16050:4:0", + "referencedDeclaration": 1932, + "src": "16474:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -45238,39 +47367,39 @@ } ], "expression": { - "id": 1529, + "id": 1949, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16037:5:0", + "src": "16461:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1528, + "id": 1948, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "16037:5:0", + "src": "16461:5:6", "typeDescriptions": {} } }, - "id": 1530, + "id": 1950, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "16037:12:0", + "src": "16461:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1532, + "id": 1952, "isConstant": false, "isLValue": false, "isPure": false, @@ -45278,7 +47407,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16037:18:0", + "src": "16461:18:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -45293,18 +47422,18 @@ "typeString": "bytes memory" } ], - "id": 1527, + "id": 1947, "name": "sha256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967274, - "src": "16030:6:0", + "src": "16454:6:6", "typeDescriptions": { "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1533, + "id": 1953, "isConstant": false, "isLValue": false, "isPure": false, @@ -45312,7 +47441,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16030:26:0", + "src": "16454:26:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -45320,13 +47449,144 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "16018:38:0" + "src": "16442:38:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1955, + "name": "position", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1930, + "src": "16494:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1956, + "name": "_numLeaves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "16506:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16519:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "16506:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "16494:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1965, + "nodeType": "IfStatement", + "src": "16490:107:6", + "trueBody": { + "id": 1964, + "nodeType": "Block", + "src": "16522:75:6", + "statements": [ + { + "expression": { + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1960, + "name": "h", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1946, + "src": "16578:1:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1961, + "name": "eotp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1932, + "src": "16582:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "16578:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1963, + "nodeType": "ExpressionStatement", + "src": "16578:8:6" + } + ] + } }, { "body": { - "id": 1586, + "id": 2017, "nodeType": "Block", - "src": "16105:237:0", + "src": "16645:237:6", "statements": [ { "condition": { @@ -45334,7 +47594,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1552, + "id": 1983, "isConstant": false, "isLValue": false, "isPure": false, @@ -45346,18 +47606,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1549, + "id": 1980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1547, + "id": 1978, "name": "position", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1510, - "src": "16124:8:0", + "referencedDeclaration": 1930, + "src": "16664:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -45367,35 +47627,35 @@ "operator": "&", "rightExpression": { "hexValue": "30783031", - "id": 1548, + "id": 1979, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16135:4:0", + "src": "16675:4:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "0x01" }, - "src": "16124:15:0", + "src": "16664:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], - "id": 1550, + "id": 1981, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "16123:17:0", + "src": "16663:17:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -45405,45 +47665,45 @@ "operator": "==", "rightExpression": { "hexValue": "30783031", - "id": 1551, + "id": 1982, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16144:4:0", + "src": "16684:4:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "0x01" }, - "src": "16123:25:0", + "src": "16663:25:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1580, + "id": 2011, "nodeType": "Block", - "src": "16230:74:0", + "src": "16770:74:6", "statements": [ { "expression": { - "id": 1578, + "id": 2009, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1567, + "id": 1998, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "16248:1:0", + "referencedDeclaration": 1946, + "src": "16788:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -45456,12 +47716,12 @@ { "arguments": [ { - "id": 1572, + "id": 2003, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "16272:1:0", + "referencedDeclaration": 1946, + "src": "16812:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -45469,25 +47729,25 @@ }, { "baseExpression": { - "id": 1573, + "id": 2004, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1508, - "src": "16275:9:0", + "referencedDeclaration": 1928, + "src": "16815:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1575, + "id": 2006, "indexExpression": { - "id": 1574, + "id": 2005, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1536, - "src": "16285:1:0", + "referencedDeclaration": 1967, + "src": "16825:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -45498,7 +47758,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "16275:12:0", + "src": "16815:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -45517,39 +47777,39 @@ } ], "expression": { - "id": 1570, + "id": 2001, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16259:5:0", + "src": "16799:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1569, + "id": 2000, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "16259:5:0", + "src": "16799:5:6", "typeDescriptions": {} } }, - "id": 1571, + "id": 2002, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "16259:12:0", + "src": "16799:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1576, + "id": 2007, "isConstant": false, "isLValue": false, "isPure": false, @@ -45557,7 +47817,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16259:29:0", + "src": "16799:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -45572,18 +47832,18 @@ "typeString": "bytes memory" } ], - "id": 1568, + "id": 1999, "name": "sha256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967274, - "src": "16252:6:0", + "src": "16792:6:6", "typeDescriptions": { "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1577, + "id": 2008, "isConstant": false, "isLValue": false, "isPure": false, @@ -45591,47 +47851,47 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16252:37:0", + "src": "16792:37:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "16248:41:0", + "src": "16788:41:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1579, + "id": 2010, "nodeType": "ExpressionStatement", - "src": "16248:41:0" + "src": "16788:41:6" } ] }, - "id": 1581, + "id": 2012, "nodeType": "IfStatement", - "src": "16119:185:0", + "src": "16659:185:6", "trueBody": { - "id": 1566, + "id": 1997, "nodeType": "Block", - "src": "16150:74:0", + "src": "16690:74:6", "statements": [ { "expression": { - "id": 1564, + "id": 1995, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1553, + "id": 1984, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "16168:1:0", + "referencedDeclaration": 1946, + "src": "16708:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -45645,25 +47905,25 @@ "arguments": [ { "baseExpression": { - "id": 1558, + "id": 1989, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1508, - "src": "16192:9:0", + "referencedDeclaration": 1928, + "src": "16732:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1560, + "id": 1991, "indexExpression": { - "id": 1559, + "id": 1990, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1536, - "src": "16202:1:0", + "referencedDeclaration": 1967, + "src": "16742:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -45674,19 +47934,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "16192:12:0", + "src": "16732:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1561, + "id": 1992, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "16206:1:0", + "referencedDeclaration": 1946, + "src": "16746:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -45705,39 +47965,39 @@ } ], "expression": { - "id": 1556, + "id": 1987, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16179:5:0", + "src": "16719:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1555, + "id": 1986, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "16179:5:0", + "src": "16719:5:6", "typeDescriptions": {} } }, - "id": 1557, + "id": 1988, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "16179:12:0", + "src": "16719:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1562, + "id": 1993, "isConstant": false, "isLValue": false, "isPure": false, @@ -45745,7 +48005,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16179:29:0", + "src": "16719:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -45760,18 +48020,18 @@ "typeString": "bytes memory" } ], - "id": 1554, + "id": 1985, "name": "sha256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967274, - "src": "16172:6:0", + "src": "16712:6:6", "typeDescriptions": { "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1563, + "id": 1994, "isConstant": false, "isLValue": false, "isPure": false, @@ -45779,40 +48039,40 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16172:37:0", + "src": "16712:37:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "16168:41:0", + "src": "16708:41:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1565, + "id": 1996, "nodeType": "ExpressionStatement", - "src": "16168:41:0" + "src": "16708:41:6" } ] } }, { "expression": { - "id": 1584, + "id": 2015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1582, + "id": 2013, "name": "position", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1510, - "src": "16317:8:0", + "referencedDeclaration": 1930, + "src": "16857:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -45822,29 +48082,29 @@ "operator": ">>=", "rightHandSide": { "hexValue": "31", - "id": 1583, + "id": 2014, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16330:1:0", + "src": "16870:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "16317:14:0", + "src": "16857:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 1585, + "id": 2016, "nodeType": "ExpressionStatement", - "src": "16317:14:0" + "src": "16857:14:6" } ] }, @@ -45853,18 +48113,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1543, + "id": 1974, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1539, + "id": 1970, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1536, - "src": "16084:1:0", + "referencedDeclaration": 1967, + "src": "16624:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -45877,18 +48137,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1542, + "id": 1973, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1540, + "id": 1971, "name": "height", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "16088:6:0", + "referencedDeclaration": 439, + "src": "16628:6:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -45898,47 +48158,47 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 1541, + "id": 1972, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16097:1:0", + "src": "16637:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "16088:10:0", + "src": "16628:10:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "16084:14:0", + "src": "16624:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1587, + "id": 2018, "initializationExpression": { "assignments": [ - 1536 + 1967 ], "declarations": [ { "constant": false, - "id": 1536, + "id": 1967, "mutability": "mutable", "name": "i", - "nameLocation": "16077:1:0", + "nameLocation": "16617:1:6", "nodeType": "VariableDeclaration", - "scope": 1587, - "src": "16071:7:0", + "scope": 2018, + "src": "16611:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -45946,10 +48206,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1535, + "id": 1966, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "16071:5:0", + "src": "16611:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -45958,17 +48218,17 @@ "visibility": "internal" } ], - "id": 1538, + "id": 1969, "initialValue": { "hexValue": "30", - "id": 1537, + "id": 1968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16081:1:0", + "src": "16621:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -45976,11 +48236,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "16071:11:0" + "src": "16611:11:6" }, "loopExpression": { "expression": { - "id": 1545, + "id": 1976, "isConstant": false, "isLValue": false, "isPure": false, @@ -45988,14 +48248,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "16100:3:0", + "src": "16640:3:6", "subExpression": { - "id": 1544, + "id": 1975, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1536, - "src": "16100:1:0", + "referencedDeclaration": 1967, + "src": "16640:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -46006,12 +48266,12 @@ "typeString": "uint8" } }, - "id": 1546, + "id": 1977, "nodeType": "ExpressionStatement", - "src": "16100:3:0" + "src": "16640:3:6" }, "nodeType": "ForStatement", - "src": "16066:276:0" + "src": "16606:276:6" }, { "expression": { @@ -46021,18 +48281,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 1591, + "id": 2022, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1589, + "id": 2020, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16359:4:0", + "referencedDeclaration": 437, + "src": "16899:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -46041,18 +48301,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1590, + "id": 2021, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "16367:1:0", + "referencedDeclaration": 1946, + "src": "16907:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "16359:9:0", + "src": "16899:9:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -46060,14 +48320,14 @@ }, { "hexValue": "50726f6f6620697320696e636f7272656374", - "id": 1592, + "id": 2023, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "16370:20:0", + "src": "16910:20:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_5515ff285a2022327bc0ffdc690388a3a1d15360640a68caecd56fe24371f01a", "typeString": "literal_string \"Proof is incorrect\"" @@ -46086,7 +48346,7 @@ "typeString": "literal_string \"Proof is incorrect\"" } ], - "id": 1588, + "id": 2019, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -46094,13 +48354,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "16351:7:0", + "src": "16891:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1593, + "id": 2024, "isConstant": false, "isLValue": false, "isPure": false, @@ -46108,51 +48368,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16351:40:0", + "src": "16891:40:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1594, + "id": 2025, "nodeType": "ExpressionStatement", - "src": "16351:40:0" + "src": "16891:40:6" }, { - "functionReturnParameters": 1514, - "id": 1595, + "functionReturnParameters": 1934, + "id": 2026, "nodeType": "Return", - "src": "16401:7:0" + "src": "16941:7:6" } ] }, "documentation": { - "id": 1505, + "id": 1925, "nodeType": "StructuredDocumentation", - "src": "15703:118:0", + "src": "16127:118:6", "text": "This is just a wrapper around a modifier previously called `isCorrectProof`, to avoid \"Stack too deep\" error. Duh." }, - "id": 1597, + "id": 2028, "implemented": true, "kind": "function", "modifiers": [], "name": "_isCorrectProof", - "nameLocation": "15835:15:0", + "nameLocation": "16259:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1513, + "id": 1933, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1508, + "id": 1928, "mutability": "mutable", "name": "neighbors", - "nameLocation": "15870:9:0", + "nameLocation": "16294:9:6", "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15851:28:0", + "scope": 2028, + "src": "16275:28:6", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -46161,18 +48421,18 @@ }, "typeName": { "baseType": { - "id": 1506, + "id": 1926, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "15851:7:0", + "src": "16275:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1507, + "id": 1927, "nodeType": "ArrayTypeName", - "src": "15851:9:0", + "src": "16275:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -46182,13 +48442,13 @@ }, { "constant": false, - "id": 1510, + "id": 1930, "mutability": "mutable", "name": "position", - "nameLocation": "15888:8:0", + "nameLocation": "16312:8:6", "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15881:15:0", + "scope": 2028, + "src": "16305:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46196,10 +48456,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1509, + "id": 1929, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "15881:6:0", + "src": "16305:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -46209,13 +48469,13 @@ }, { "constant": false, - "id": 1512, + "id": 1932, "mutability": "mutable", "name": "eotp", - "nameLocation": "15906:4:0", + "nameLocation": "16330:4:6", "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15898:12:0", + "scope": 2028, + "src": "16322:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46223,10 +48483,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1511, + "id": 1931, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "15898:7:0", + "src": "16322:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -46235,40 +48495,40 @@ "visibility": "internal" } ], - "src": "15850:61:0" + "src": "16274:61:6" }, "returnParameters": { - "id": 1514, + "id": 1934, "nodeType": "ParameterList", "parameters": [], - "src": "15926:0:0" + "src": "16350:0:6" }, - "scope": 2161, - "src": "15826:588:0", + "scope": 2592, + "src": "16250:704:6", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1765, + "id": 2196, "nodeType": "Block", - "src": "16905:2493:0", + "src": "17445:2493:6", "statements": [ { "assignments": [ - 1602 + 2033 ], "declarations": [ { "constant": false, - "id": 1602, + "id": 2033, "mutability": "mutable", "name": "timelyIndex", - "nameLocation": "16922:11:0", + "nameLocation": "17462:11:6", "nodeType": "VariableDeclaration", - "scope": 1765, - "src": "16915:18:0", + "scope": 2196, + "src": "17455:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46276,10 +48536,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1601, + "id": 2032, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "16915:6:0", + "src": "17455:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -46288,17 +48548,17 @@ "visibility": "internal" } ], - "id": 1604, + "id": 2035, "initialValue": { "hexValue": "30", - "id": 1603, + "id": 2034, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16936:1:0", + "src": "17476:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -46306,22 +48566,22 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "16915:22:0" + "src": "17455:22:6" }, { "assignments": [ - 1606 + 2037 ], "declarations": [ { "constant": false, - "id": 1606, + "id": 2037, "mutability": "mutable", "name": "bt", - "nameLocation": "16954:2:0", + "nameLocation": "17494:2:6", "nodeType": "VariableDeclaration", - "scope": 1765, - "src": "16947:9:0", + "scope": 2196, + "src": "17487:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46329,10 +48589,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1605, + "id": 2036, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "16947:6:0", + "src": "17487:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -46341,30 +48601,30 @@ "visibility": "internal" } ], - "id": 1612, + "id": 2043, "initialValue": { "arguments": [ { "expression": { - "id": 1609, + "id": 2040, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "16966:5:0", + "src": "17506:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 1610, + "id": 2041, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "16966:15:0", + "src": "17506:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46378,26 +48638,26 @@ "typeString": "uint256" } ], - "id": 1608, + "id": 2039, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16959:6:0", + "src": "17499:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 1607, + "id": 2038, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "16959:6:0", + "src": "17499:6:6", "typeDescriptions": {} } }, - "id": 1611, + "id": 2042, "isConstant": false, "isLValue": false, "isPure": false, @@ -46405,7 +48665,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16959:23:0", + "src": "17499:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -46413,28 +48673,28 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "16947:35:0" + "src": "17487:35:6" }, { "body": { - "id": 1659, + "id": 2090, "nodeType": "Block", - "src": "17207:879:0", + "src": "17747:879:6", "statements": [ { "assignments": [ - 1621 + 2052 ], "declarations": [ { "constant": false, - "id": 1621, + "id": 2052, "mutability": "mutable", "name": "hash", - "nameLocation": "17229:4:0", + "nameLocation": "17769:4:6", "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "17221:12:0", + "scope": 2090, + "src": "17761:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -46442,10 +48702,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1620, + "id": 2051, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "17221:7:0", + "src": "17761:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -46454,28 +48714,28 @@ "visibility": "internal" } ], - "id": 1625, + "id": 2056, "initialValue": { "baseExpression": { - "id": 1622, + "id": 2053, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "17236:7:0", + "referencedDeclaration": 507, + "src": "17776:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1624, + "id": 2055, "indexExpression": { - "id": 1623, + "id": 2054, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "17244:11:0", + "referencedDeclaration": 2033, + "src": "17784:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -46486,86 +48746,86 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17236:20:0", + "src": "17776:20:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "17221:35:0" + "src": "17761:35:6" }, { "assignments": [ - 1630 + 2061 ], "declarations": [ { "constant": false, - "id": 1630, + "id": 2061, "mutability": "mutable", "name": "cc", - "nameLocation": "17287:2:0", + "nameLocation": "17827:2:6", "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "17270:19:0", + "scope": 2090, + "src": "17810:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" }, "typeName": { "baseType": { - "id": 1628, + "id": 2059, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1627, + "id": 2058, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "17270:6:0" + "referencedDeclaration": 504, + "src": "17810:6:6" }, - "referencedDeclaration": 114, - "src": "17270:6:0", + "referencedDeclaration": 504, + "src": "17810:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 1629, + "id": 2060, "nodeType": "ArrayTypeName", - "src": "17270:8:0", + "src": "17810:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } }, "visibility": "internal" } ], - "id": 1634, + "id": 2065, "initialValue": { "baseExpression": { - "id": 1631, + "id": 2062, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "17292:12:0", + "referencedDeclaration": 513, + "src": "17832:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 1633, + "id": 2064, "indexExpression": { - "id": 1632, + "id": 2063, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "17305:4:0", + "referencedDeclaration": 2052, + "src": "17845:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -46576,14 +48836,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17292:18:0", + "src": "17832:18:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "17270:40:0" + "src": "17810:40:6" }, { "condition": { @@ -46591,32 +48851,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1638, + "id": 2069, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1635, + "id": 2066, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, - "src": "17426:2:0", + "referencedDeclaration": 2061, + "src": "17966:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1636, + "id": 2067, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "17426:9:0", + "src": "17966:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46626,107 +48886,107 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 1637, + "id": 2068, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17439:1:0", + "src": "17979:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "17426:14:0", + "src": "17966:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1641, + "id": 2072, "nodeType": "IfStatement", - "src": "17422:61:0", + "src": "17962:61:6", "trueBody": { - "id": 1640, + "id": 2071, "nodeType": "Block", - "src": "17442:41:0", + "src": "17982:41:6", "statements": [ { - "id": 1639, + "id": 2070, "nodeType": "Continue", - "src": "17460:8:0" + "src": "18000:8:6" } ] } }, { "assignments": [ - 1644 + 2075 ], "declarations": [ { "constant": false, - "id": 1644, + "id": 2075, "mutability": "mutable", "name": "c", - "nameLocation": "17943:1:0", + "nameLocation": "18483:1:6", "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "17928:16:0", + "scope": 2090, + "src": "18468:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 1643, + "id": 2074, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1642, + "id": 2073, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "17928:6:0" + "referencedDeclaration": 504, + "src": "18468:6:6" }, - "referencedDeclaration": 114, - "src": "17928:6:0", + "referencedDeclaration": 504, + "src": "18468:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, "visibility": "internal" } ], - "id": 1648, + "id": 2079, "initialValue": { "baseExpression": { - "id": 1645, + "id": 2076, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, - "src": "17947:2:0", + "referencedDeclaration": 2061, + "src": "18487:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1647, + "id": 2078, "indexExpression": { "hexValue": "30", - "id": 1646, + "id": 2077, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17950:1:0", + "src": "18490:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -46738,19 +48998,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17947:5:0", + "src": "18487:5:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage", + "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "17928:24:0" + "src": "18468:24:6" }, { - "id": 1658, + "id": 2089, "nodeType": "UncheckedBlock", - "src": "17962:114:0", + "src": "18502:114:6", "statements": [ { "condition": { @@ -46758,33 +49018,33 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1654, + "id": 2085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1649, + "id": 2080, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1644, - "src": "17990:1:0", + "referencedDeclaration": 2075, + "src": "18530:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1650, + "id": 2081, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 111, - "src": "17990:11:0", + "referencedDeclaration": 501, + "src": "18530:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -46797,18 +49057,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1653, + "id": 2084, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1651, + "id": 2082, "name": "bt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "18005:2:0", + "referencedDeclaration": 2037, + "src": "18545:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -46817,41 +49077,41 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 1652, + "id": 2083, "name": "REVEAL_MAX_DELAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "18010:16:0", + "referencedDeclaration": 469, + "src": "18550:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "18005:21:0", + "src": "18545:21:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "17990:36:0", + "src": "18530:36:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1657, + "id": 2088, "nodeType": "IfStatement", - "src": "17986:80:0", + "src": "18526:80:6", "trueBody": { - "id": 1656, + "id": 2087, "nodeType": "Block", - "src": "18028:38:0", + "src": "18568:38:6", "statements": [ { - "id": 1655, + "id": 2086, "nodeType": "Break", - "src": "18046:5:0" + "src": "18586:5:6" } ] } @@ -46865,18 +49125,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1616, + "id": 2047, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1613, + "id": 2044, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "17162:11:0", + "referencedDeclaration": 2033, + "src": "17702:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -46886,40 +49146,40 @@ "operator": "<", "rightExpression": { "expression": { - "id": 1614, + "id": 2045, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "17176:7:0", + "referencedDeclaration": 507, + "src": "17716:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1615, + "id": 2046, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "17176:14:0", + "src": "17716:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "17162:28:0", + "src": "17702:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1660, + "id": 2091, "loopExpression": { "expression": { - "id": 1618, + "id": 2049, "isConstant": false, "isLValue": false, "isPure": false, @@ -46927,14 +49187,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "17192:13:0", + "src": "17732:13:6", "subExpression": { - "id": 1617, + "id": 2048, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "17192:11:0", + "referencedDeclaration": 2033, + "src": "17732:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -46945,12 +49205,12 @@ "typeString": "uint32" } }, - "id": 1619, + "id": 2050, "nodeType": "ExpressionStatement", - "src": "17192:13:0" + "src": "17732:13:6" }, "nodeType": "ForStatement", - "src": "17155:931:0" + "src": "17695:931:6" }, { "condition": { @@ -46958,18 +49218,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1663, + "id": 2094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1661, + "id": 2092, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "18245:11:0", + "referencedDeclaration": 2033, + "src": "18785:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -46979,63 +49239,63 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 1662, + "id": 2093, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18260:1:0", + "src": "18800:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "18245:16:0", + "src": "18785:16:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1666, + "id": 2097, "nodeType": "IfStatement", - "src": "18241:159:0", + "src": "18781:159:6", "trueBody": { - "id": 1665, + "id": 2096, "nodeType": "Block", - "src": "18263:137:0", + "src": "18803:137:6", "statements": [ { - "functionReturnParameters": 1600, - "id": 1664, + "functionReturnParameters": 2031, + "id": 2095, "nodeType": "Return", - "src": "18383:7:0" + "src": "18923:7:6" } ] } }, { "body": { - "id": 1715, + "id": 2146, "nodeType": "Block", - "src": "18556:240:0", + "src": "19096:240:6", "statements": [ { "assignments": [ - 1678 + 2109 ], "declarations": [ { "constant": false, - "id": 1678, + "id": 2109, "mutability": "mutable", "name": "hash", - "nameLocation": "18578:4:0", + "nameLocation": "19118:4:6", "nodeType": "VariableDeclaration", - "scope": 1715, - "src": "18570:12:0", + "scope": 2146, + "src": "19110:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47043,10 +49303,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1677, + "id": 2108, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "18570:7:0", + "src": "19110:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -47055,28 +49315,28 @@ "visibility": "internal" } ], - "id": 1682, + "id": 2113, "initialValue": { "baseExpression": { - "id": 1679, + "id": 2110, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "18585:7:0", + "referencedDeclaration": 507, + "src": "19125:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1681, + "id": 2112, "indexExpression": { - "id": 1680, + "id": 2111, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, - "src": "18593:1:0", + "referencedDeclaration": 2099, + "src": "19133:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47087,86 +49347,86 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "18585:10:0", + "src": "19125:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "18570:25:0" + "src": "19110:25:6" }, { "assignments": [ - 1687 + 2118 ], "declarations": [ { "constant": false, - "id": 1687, + "id": 2118, "mutability": "mutable", "name": "cc", - "nameLocation": "18626:2:0", + "nameLocation": "19166:2:6", "nodeType": "VariableDeclaration", - "scope": 1715, - "src": "18609:19:0", + "scope": 2146, + "src": "19149:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" }, "typeName": { "baseType": { - "id": 1685, + "id": 2116, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1684, + "id": 2115, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "18609:6:0" + "referencedDeclaration": 504, + "src": "19149:6:6" }, - "referencedDeclaration": 114, - "src": "18609:6:0", + "referencedDeclaration": 504, + "src": "19149:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 1686, + "id": 2117, "nodeType": "ArrayTypeName", - "src": "18609:8:0", + "src": "19149:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } }, "visibility": "internal" } ], - "id": 1691, + "id": 2122, "initialValue": { "baseExpression": { - "id": 1688, + "id": 2119, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "18631:12:0", + "referencedDeclaration": 513, + "src": "19171:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 1690, + "id": 2121, "indexExpression": { - "id": 1689, + "id": 2120, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1678, - "src": "18644:4:0", + "referencedDeclaration": 2109, + "src": "19184:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -47177,24 +49437,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "18631:18:0", + "src": "19171:18:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "18609:40:0" + "src": "19149:40:6" }, { "body": { - "id": 1708, + "id": 2139, "nodeType": "Block", - "src": "18702:45:0", + "src": "19242:45:6", "statements": [ { "expression": { - "id": 1706, + "id": 2137, "isConstant": false, "isLValue": false, "isPure": false, @@ -47202,28 +49462,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "18720:12:0", + "src": "19260:12:6", "subExpression": { "baseExpression": { - "id": 1703, + "id": 2134, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1687, - "src": "18727:2:0", + "referencedDeclaration": 2118, + "src": "19267:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1705, + "id": 2136, "indexExpression": { - "id": 1704, + "id": 2135, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1693, - "src": "18730:1:0", + "referencedDeclaration": 2124, + "src": "19270:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47234,9 +49494,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "18727:5:0", + "src": "19267:5:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage", + "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, @@ -47245,9 +49505,9 @@ "typeString": "tuple()" } }, - "id": 1707, + "id": 2138, "nodeType": "ExpressionStatement", - "src": "18720:12:0" + "src": "19260:12:6" } ] }, @@ -47256,18 +49516,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1699, + "id": 2130, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1696, + "id": 2127, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1693, - "src": "18682:1:0", + "referencedDeclaration": 2124, + "src": "19222:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47277,51 +49537,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 1697, + "id": 2128, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1687, - "src": "18686:2:0", + "referencedDeclaration": 2118, + "src": "19226:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1698, + "id": 2129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "18686:9:0", + "src": "19226:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "18682:13:0", + "src": "19222:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1709, + "id": 2140, "initializationExpression": { "assignments": [ - 1693 + 2124 ], "declarations": [ { "constant": false, - "id": 1693, + "id": 2124, "mutability": "mutable", "name": "j", - "nameLocation": "18675:1:0", + "nameLocation": "19215:1:6", "nodeType": "VariableDeclaration", - "scope": 1709, - "src": "18668:8:0", + "scope": 2140, + "src": "19208:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47329,10 +49589,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1692, + "id": 2123, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "18668:6:0", + "src": "19208:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47341,17 +49601,17 @@ "visibility": "internal" } ], - "id": 1695, + "id": 2126, "initialValue": { "hexValue": "30", - "id": 1694, + "id": 2125, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18679:1:0", + "src": "19219:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -47359,11 +49619,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "18668:12:0" + "src": "19208:12:6" }, "loopExpression": { "expression": { - "id": 1701, + "id": 2132, "isConstant": false, "isLValue": false, "isPure": false, @@ -47371,14 +49631,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "18697:3:0", + "src": "19237:3:6", "subExpression": { - "id": 1700, + "id": 2131, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1693, - "src": "18697:1:0", + "referencedDeclaration": 2124, + "src": "19237:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47389,16 +49649,16 @@ "typeString": "uint32" } }, - "id": 1702, + "id": 2133, "nodeType": "ExpressionStatement", - "src": "18697:3:0" + "src": "19237:3:6" }, "nodeType": "ForStatement", - "src": "18663:84:0" + "src": "19203:84:6" }, { "expression": { - "id": 1713, + "id": 2144, "isConstant": false, "isLValue": false, "isPure": false, @@ -47406,28 +49666,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "18760:25:0", + "src": "19300:25:6", "subExpression": { "baseExpression": { - "id": 1710, + "id": 2141, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "18767:12:0", + "referencedDeclaration": 513, + "src": "19307:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 1712, + "id": 2143, "indexExpression": { - "id": 1711, + "id": 2142, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1678, - "src": "18780:4:0", + "referencedDeclaration": 2109, + "src": "19320:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -47438,9 +49698,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "18767:18:0", + "src": "19307:18:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, @@ -47449,9 +49709,9 @@ "typeString": "tuple()" } }, - "id": 1714, + "id": 2145, "nodeType": "ExpressionStatement", - "src": "18760:25:0" + "src": "19300:25:6" } ] }, @@ -47460,18 +49720,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1673, + "id": 2104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1671, + "id": 2102, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, - "src": "18534:1:0", + "referencedDeclaration": 2099, + "src": "19074:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47480,38 +49740,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1672, + "id": 2103, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "18538:11:0", + "referencedDeclaration": 2033, + "src": "19078:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "18534:15:0", + "src": "19074:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1716, + "id": 2147, "initializationExpression": { "assignments": [ - 1668 + 2099 ], "declarations": [ { "constant": false, - "id": 1668, + "id": 2099, "mutability": "mutable", "name": "i", - "nameLocation": "18527:1:0", + "nameLocation": "19067:1:6", "nodeType": "VariableDeclaration", - "scope": 1716, - "src": "18520:8:0", + "scope": 2147, + "src": "19060:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47519,10 +49779,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1667, + "id": 2098, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "18520:6:0", + "src": "19060:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47531,17 +49791,17 @@ "visibility": "internal" } ], - "id": 1670, + "id": 2101, "initialValue": { "hexValue": "30", - "id": 1669, + "id": 2100, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18531:1:0", + "src": "19071:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -47549,11 +49809,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "18520:12:0" + "src": "19060:12:6" }, "loopExpression": { "expression": { - "id": 1675, + "id": 2106, "isConstant": false, "isLValue": false, "isPure": false, @@ -47561,14 +49821,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "18551:3:0", + "src": "19091:3:6", "subExpression": { - "id": 1674, + "id": 2105, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, - "src": "18551:1:0", + "referencedDeclaration": 2099, + "src": "19091:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47579,27 +49839,27 @@ "typeString": "uint32" } }, - "id": 1676, + "id": 2107, "nodeType": "ExpressionStatement", - "src": "18551:3:0" + "src": "19091:3:6" }, "nodeType": "ForStatement", - "src": "18515:281:0" + "src": "19055:281:6" }, { "assignments": [ - 1718 + 2149 ], "declarations": [ { "constant": false, - "id": 1718, + "id": 2149, "mutability": "mutable", "name": "len", - "nameLocation": "18988:3:0", + "nameLocation": "19528:3:6", "nodeType": "VariableDeclaration", - "scope": 1765, - "src": "18981:10:0", + "scope": 2196, + "src": "19521:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47607,10 +49867,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1717, + "id": 2148, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "18981:6:0", + "src": "19521:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47619,30 +49879,30 @@ "visibility": "internal" } ], - "id": 1724, + "id": 2155, "initialValue": { "arguments": [ { "expression": { - "id": 1721, + "id": 2152, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "19001:7:0", + "referencedDeclaration": 507, + "src": "19541:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1722, + "id": 2153, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "19001:14:0", + "src": "19541:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47656,26 +49916,26 @@ "typeString": "uint256" } ], - "id": 1720, + "id": 2151, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "18994:6:0", + "src": "19534:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 1719, + "id": 2150, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "18994:6:0", + "src": "19534:6:6", "typeDescriptions": {} } }, - "id": 1723, + "id": 2154, "isConstant": false, "isLValue": false, "isPure": false, @@ -47683,7 +49943,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "18994:22:0", + "src": "19534:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -47691,57 +49951,57 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "18981:35:0" + "src": "19521:35:6" }, { "body": { - "id": 1746, + "id": 2177, "nodeType": "Block", - "src": "19069:91:0", + "src": "19609:91:6", "statements": [ { - "id": 1745, + "id": 2176, "nodeType": "UncheckedBlock", - "src": "19079:71:0", + "src": "19619:71:6", "statements": [ { "expression": { - "id": 1743, + "id": 2174, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 1735, + "id": 2166, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "19102:7:0", + "referencedDeclaration": 507, + "src": "19642:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1739, + "id": 2170, "indexExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1738, + "id": 2169, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1736, + "id": 2167, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1726, - "src": "19110:1:0", + "referencedDeclaration": 2157, + "src": "19650:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47750,18 +50010,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 1737, + "id": 2168, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "19114:11:0", + "referencedDeclaration": 2033, + "src": "19654:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19110:15:0", + "src": "19650:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47772,7 +50032,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "19102:24:0", + "src": "19642:24:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -47782,25 +50042,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 1740, + "id": 2171, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "19129:7:0", + "referencedDeclaration": 507, + "src": "19669:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1742, + "id": 2173, "indexExpression": { - "id": 1741, + "id": 2172, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1726, - "src": "19137:1:0", + "referencedDeclaration": 2157, + "src": "19677:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47811,21 +50071,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "19129:10:0", + "src": "19669:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "19102:37:0", + "src": "19642:37:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1744, + "id": 2175, "nodeType": "ExpressionStatement", - "src": "19102:37:0" + "src": "19642:37:6" } ] } @@ -47836,18 +50096,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1731, + "id": 2162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1729, + "id": 2160, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1726, - "src": "19055:1:0", + "referencedDeclaration": 2157, + "src": "19595:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47856,38 +50116,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1730, + "id": 2161, "name": "len", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1718, - "src": "19059:3:0", + "referencedDeclaration": 2149, + "src": "19599:3:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19055:7:0", + "src": "19595:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1747, + "id": 2178, "initializationExpression": { "assignments": [ - 1726 + 2157 ], "declarations": [ { "constant": false, - "id": 1726, + "id": 2157, "mutability": "mutable", "name": "i", - "nameLocation": "19038:1:0", + "nameLocation": "19578:1:6", "nodeType": "VariableDeclaration", - "scope": 1747, - "src": "19031:8:0", + "scope": 2178, + "src": "19571:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47895,10 +50155,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1725, + "id": 2156, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19031:6:0", + "src": "19571:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47907,25 +50167,25 @@ "visibility": "internal" } ], - "id": 1728, + "id": 2159, "initialValue": { - "id": 1727, + "id": 2158, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "19042:11:0", + "referencedDeclaration": 2033, + "src": "19582:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "19031:22:0" + "src": "19571:22:6" }, "loopExpression": { "expression": { - "id": 1733, + "id": 2164, "isConstant": false, "isLValue": false, "isPure": false, @@ -47933,14 +50193,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "19064:3:0", + "src": "19604:3:6", "subExpression": { - "id": 1732, + "id": 2163, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1726, - "src": "19064:1:0", + "referencedDeclaration": 2157, + "src": "19604:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47951,18 +50211,18 @@ "typeString": "uint32" } }, - "id": 1734, + "id": 2165, "nodeType": "ExpressionStatement", - "src": "19064:3:0" + "src": "19604:3:6" }, "nodeType": "ForStatement", - "src": "19026:134:0" + "src": "19566:134:6" }, { "body": { - "id": 1763, + "id": 2194, "nodeType": "Block", - "src": "19210:38:0", + "src": "19750:38:6", "statements": [ { "expression": { @@ -47970,31 +50230,31 @@ "expression": { "argumentTypes": [], "expression": { - "id": 1758, + "id": 2189, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "19224:7:0", + "referencedDeclaration": 507, + "src": "19764:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1760, + "id": 2191, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pop", "nodeType": "MemberAccess", - "src": "19224:11:0", + "src": "19764:11:6", "typeDescriptions": { "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$", "typeString": "function (bytes32[] storage pointer)" } }, - "id": 1761, + "id": 2192, "isConstant": false, "isLValue": false, "isPure": false, @@ -48002,16 +50262,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19224:13:0", + "src": "19764:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1762, + "id": 2193, "nodeType": "ExpressionStatement", - "src": "19224:13:0" + "src": "19764:13:6" } ] }, @@ -48020,18 +50280,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1754, + "id": 2185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1752, + "id": 2183, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1749, - "src": "19188:1:0", + "referencedDeclaration": 2180, + "src": "19728:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48040,38 +50300,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1753, + "id": 2184, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "19192:11:0", + "referencedDeclaration": 2033, + "src": "19732:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19188:15:0", + "src": "19728:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1764, + "id": 2195, "initializationExpression": { "assignments": [ - 1749 + 2180 ], "declarations": [ { "constant": false, - "id": 1749, + "id": 2180, "mutability": "mutable", "name": "i", - "nameLocation": "19181:1:0", + "nameLocation": "19721:1:6", "nodeType": "VariableDeclaration", - "scope": 1764, - "src": "19174:8:0", + "scope": 2195, + "src": "19714:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48079,10 +50339,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1748, + "id": 2179, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19174:6:0", + "src": "19714:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48091,17 +50351,17 @@ "visibility": "internal" } ], - "id": 1751, + "id": 2182, "initialValue": { "hexValue": "30", - "id": 1750, + "id": 2181, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19185:1:0", + "src": "19725:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -48109,11 +50369,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "19174:12:0" + "src": "19714:12:6" }, "loopExpression": { "expression": { - "id": 1756, + "id": 2187, "isConstant": false, "isLValue": false, "isPure": false, @@ -48121,14 +50381,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "19205:3:0", + "src": "19745:3:6", "subExpression": { - "id": 1755, + "id": 2186, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1749, - "src": "19205:1:0", + "referencedDeclaration": 2180, + "src": "19745:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48139,51 +50399,51 @@ "typeString": "uint32" } }, - "id": 1757, + "id": 2188, "nodeType": "ExpressionStatement", - "src": "19205:3:0" + "src": "19745:3:6" }, "nodeType": "ForStatement", - "src": "19169:79:0" + "src": "19709:79:6" } ] }, "documentation": { - "id": 1598, + "id": 2029, "nodeType": "StructuredDocumentation", - "src": "16420:444:0", + "src": "16960:444:6", "text": "Remove old commits from storage, where the commit's timestamp is older than block.timestamp - REVEAL_MAX_DELAY. The purpose is to remove dangling data from blockchain, and prevent commits grow unbounded. This is executed at commit time. The committer pays for the gas of this cleanup. Therefore, any attacker who intend to spam commits would be disincentivized. The attacker would not succeed in preventing any normal operation by the user." }, - "id": 1766, + "id": 2197, "implemented": true, "kind": "function", "modifiers": [], "name": "_cleanupCommits", - "nameLocation": "16878:15:0", + "nameLocation": "17418:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1599, + "id": 2030, "nodeType": "ParameterList", "parameters": [], - "src": "16893:2:0" + "src": "17433:2:6" }, "returnParameters": { - "id": 1600, + "id": 2031, "nodeType": "ParameterList", "parameters": [], - "src": "16905:0:0" + "src": "17445:0:6" }, - "scope": 2161, - "src": "16869:2529:0", + "scope": 2592, + "src": "17409:2529:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1783, + "id": 2214, "nodeType": "Block", - "src": "19481:79:0", + "src": "20021:79:6", "statements": [ { "expression": { @@ -48191,7 +50451,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1781, + "id": 2212, "isConstant": false, "isLValue": false, "isPure": false, @@ -48201,7 +50461,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1779, + "id": 2210, "isConstant": false, "isLValue": false, "isPure": false, @@ -48210,25 +50470,25 @@ "arguments": [ { "expression": { - "id": 1775, + "id": 2206, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "19505:5:0", + "src": "20045:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 1776, + "id": 2207, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "19505:15:0", + "src": "20045:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48242,26 +50502,26 @@ "typeString": "uint256" } ], - "id": 1774, + "id": 2205, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "19498:6:0", + "src": "20038:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 1773, + "id": 2204, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19498:6:0", + "src": "20038:6:6", "typeDescriptions": {} } }, - "id": 1777, + "id": 2208, "isConstant": false, "isLValue": false, "isPure": false, @@ -48269,7 +50529,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19498:23:0", + "src": "20038:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -48279,18 +50539,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 1778, + "id": 2209, "name": "commitTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1768, - "src": "19524:10:0", + "referencedDeclaration": 2199, + "src": "20064:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19498:36:0", + "src": "20038:36:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48299,50 +50559,50 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1780, + "id": 2211, "name": "REVEAL_MAX_DELAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "19537:16:0", + "referencedDeclaration": 469, + "src": "20077:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19498:55:0", + "src": "20038:55:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1772, - "id": 1782, + "functionReturnParameters": 2203, + "id": 2213, "nodeType": "Return", - "src": "19491:62:0" + "src": "20031:62:6" } ] }, - "id": 1784, + "id": 2215, "implemented": true, "kind": "function", "modifiers": [], "name": "_isRevealTimely", - "nameLocation": "19413:15:0", + "nameLocation": "19953:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1769, + "id": 2200, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1768, + "id": 2199, "mutability": "mutable", "name": "commitTime", - "nameLocation": "19436:10:0", + "nameLocation": "19976:10:6", "nodeType": "VariableDeclaration", - "scope": 1784, - "src": "19429:17:0", + "scope": 2215, + "src": "19969:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48350,10 +50610,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1767, + "id": 2198, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19429:6:0", + "src": "19969:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48362,21 +50622,21 @@ "visibility": "internal" } ], - "src": "19428:19:0" + "src": "19968:19:6" }, "returnParameters": { - "id": 1772, + "id": 2203, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1771, + "id": 2202, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1784, - "src": "19471:4:0", + "scope": 2215, + "src": "20011:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48384,10 +50644,10 @@ "typeString": "bool" }, "typeName": { - "id": 1770, + "id": 2201, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "19471:4:0", + "src": "20011:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -48396,34 +50656,34 @@ "visibility": "internal" } ], - "src": "19470:6:0" + "src": "20010:6:6" }, - "scope": 2161, - "src": "19404:156:0", + "scope": 2592, + "src": "19944:156:6", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1927, + "id": 2358, "nodeType": "Block", - "src": "19975:1499:0", + "src": "20515:1499:6", "statements": [ { "assignments": [ - 1799 + 2230 ], "declarations": [ { "constant": false, - "id": 1799, + "id": 2230, "mutability": "mutable", "name": "index", - "nameLocation": "19992:5:0", + "nameLocation": "20532:5:6", "nodeType": "VariableDeclaration", - "scope": 1927, - "src": "19985:12:0", + "scope": 2358, + "src": "20525:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48431,10 +50691,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1798, + "id": 2229, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19985:6:0", + "src": "20525:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48443,24 +50703,24 @@ "visibility": "internal" } ], - "id": 1803, + "id": 2234, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1802, + "id": 2233, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1800, + "id": 2231, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1789, - "src": "20000:14:0", + "referencedDeclaration": 2220, + "src": "20540:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48469,40 +50729,40 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 1801, + "id": 2232, "name": "maxOperationsPerInterval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "20017:24:0", + "referencedDeclaration": 447, + "src": "20557:24:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "20000:41:0", + "src": "20540:41:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "19985:56:0" + "src": "20525:56:6" }, { "assignments": [ - 1805 + 2236 ], "declarations": [ { "constant": false, - "id": 1805, + "id": 2236, "mutability": "mutable", "name": "nonce", - "nameLocation": "20057:5:0", + "nameLocation": "20597:5:6", "nodeType": "VariableDeclaration", - "scope": 1927, - "src": "20051:11:0", + "scope": 2358, + "src": "20591:11:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48510,10 +50770,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1804, + "id": 2235, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "20051:5:0", + "src": "20591:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -48522,7 +50782,7 @@ "visibility": "internal" } ], - "id": 1812, + "id": 2243, "initialValue": { "arguments": [ { @@ -48530,18 +50790,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1810, + "id": 2241, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1808, + "id": 2239, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1789, - "src": "20071:14:0", + "referencedDeclaration": 2220, + "src": "20611:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48550,18 +50810,18 @@ "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { - "id": 1809, + "id": 2240, "name": "maxOperationsPerInterval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "20088:24:0", + "referencedDeclaration": 447, + "src": "20628:24:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "20071:41:0", + "src": "20611:41:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48575,26 +50835,26 @@ "typeString": "uint32" } ], - "id": 1807, + "id": 2238, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20065:5:0", + "src": "20605:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 1806, + "id": 2237, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "20065:5:0", + "src": "20605:5:6", "typeDescriptions": {} } }, - "id": 1811, + "id": 2242, "isConstant": false, "isLValue": false, "isPure": false, @@ -48602,7 +50862,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20065:48:0", + "src": "20605:48:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -48610,79 +50870,79 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "20051:62:0" + "src": "20591:62:6" }, { "assignments": [ - 1817 + 2248 ], "declarations": [ { "constant": false, - "id": 1817, + "id": 2248, "mutability": "mutable", "name": "cc", - "nameLocation": "20140:2:0", + "nameLocation": "20680:2:6", "nodeType": "VariableDeclaration", - "scope": 1927, - "src": "20123:19:0", + "scope": 2358, + "src": "20663:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" }, "typeName": { "baseType": { - "id": 1815, + "id": 2246, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1814, + "id": 2245, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "20123:6:0" + "referencedDeclaration": 504, + "src": "20663:6:6" }, - "referencedDeclaration": 114, - "src": "20123:6:0", + "referencedDeclaration": 504, + "src": "20663:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 1816, + "id": 2247, "nodeType": "ArrayTypeName", - "src": "20123:8:0", + "src": "20663:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } }, "visibility": "internal" } ], - "id": 1821, + "id": 2252, "initialValue": { "baseExpression": { - "id": 1818, + "id": 2249, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "20145:12:0", + "referencedDeclaration": 513, + "src": "20685:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 1820, + "id": 2251, "indexExpression": { - "id": 1819, + "id": 2250, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "20158:4:0", + "referencedDeclaration": 2218, + "src": "20698:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -48693,14 +50953,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20145:18:0", + "src": "20685:18:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "20123:40:0" + "src": "20663:40:6" }, { "expression": { @@ -48710,32 +50970,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1826, + "id": 2257, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1823, + "id": 2254, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "20181:2:0", + "referencedDeclaration": 2248, + "src": "20721:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1824, + "id": 2255, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "20181:9:0", + "src": "20721:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48745,21 +51005,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1825, + "id": 2256, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20193:1:0", + "src": "20733:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "20181:13:0", + "src": "20721:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -48767,14 +51027,14 @@ }, { "hexValue": "4e6f20636f6d6d697420666f756e64", - "id": 1827, + "id": 2258, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "20196:17:0", + "src": "20736:17:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_38f47be26bf822ff597a5cbffa2774ecae1ceaa169f734b7db0a07fb62c9547a", "typeString": "literal_string \"No commit found\"" @@ -48793,7 +51053,7 @@ "typeString": "literal_string \"No commit found\"" } ], - "id": 1822, + "id": 2253, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -48801,13 +51061,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "20173:7:0", + "src": "20713:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1828, + "id": 2259, "isConstant": false, "isLValue": false, "isPure": false, @@ -48815,85 +51075,85 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20173:41:0", + "src": "20713:41:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1829, + "id": 2260, "nodeType": "ExpressionStatement", - "src": "20173:41:0" + "src": "20713:41:6" }, { "body": { - "id": 1921, + "id": 2352, "nodeType": "Block", - "src": "20263:1170:0", + "src": "20803:1170:6", "statements": [ { "assignments": [ - 1843 + 2274 ], "declarations": [ { "constant": false, - "id": 1843, + "id": 2274, "mutability": "mutable", "name": "c", - "nameLocation": "20292:1:0", + "nameLocation": "20832:1:6", "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "20277:16:0", + "scope": 2352, + "src": "20817:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 1842, + "id": 2273, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1841, + "id": 2272, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "20277:6:0" + "referencedDeclaration": 504, + "src": "20817:6:6" }, - "referencedDeclaration": 114, - "src": "20277:6:0", + "referencedDeclaration": 504, + "src": "20817:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, "visibility": "internal" } ], - "id": 1847, + "id": 2278, "initialValue": { "baseExpression": { - "id": 1844, + "id": 2275, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "20296:2:0", + "referencedDeclaration": 2248, + "src": "20836:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1846, + "id": 2277, "indexExpression": { - "id": 1845, + "id": 2276, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "20299:1:0", + "referencedDeclaration": 2262, + "src": "20839:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48904,29 +51164,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20296:5:0", + "src": "20836:5:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage", + "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "20277:24:0" + "src": "20817:24:6" }, { "assignments": [ - 1849 + 2280 ], "declarations": [ { "constant": false, - "id": 1849, + "id": 2280, "mutability": "mutable", "name": "expectedVerificationHash", - "nameLocation": "20323:24:0", + "nameLocation": "20863:24:6", "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "20315:32:0", + "scope": 2352, + "src": "20855:32:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48934,10 +51194,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1848, + "id": 2279, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "20315:7:0", + "src": "20855:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -48946,45 +51206,45 @@ "visibility": "internal" } ], - "id": 1859, + "id": 2290, "initialValue": { "arguments": [ { "arguments": [ { "expression": { - "id": 1854, + "id": 2285, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, - "src": "20373:1:0", + "referencedDeclaration": 2274, + "src": "20913:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1855, + "id": 2286, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paramsHash", "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "20373:12:0", + "referencedDeclaration": 497, + "src": "20913:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1856, + "id": 2287, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1793, - "src": "20387:4:0", + "referencedDeclaration": 2224, + "src": "20927:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -49003,39 +51263,39 @@ } ], "expression": { - "id": 1852, + "id": 2283, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20360:5:0", + "src": "20900:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1851, + "id": 2282, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "20360:5:0", + "src": "20900:5:6", "typeDescriptions": {} } }, - "id": 1853, + "id": 2284, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "20360:12:0", + "src": "20900:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1857, + "id": 2288, "isConstant": false, "isLValue": false, "isPure": false, @@ -49043,7 +51303,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20360:32:0", + "src": "20900:32:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -49058,18 +51318,18 @@ "typeString": "bytes memory" } ], - "id": 1850, + "id": 2281, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "20350:9:0", + "src": "20890:9:6", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1858, + "id": 2289, "isConstant": false, "isLValue": false, "isPure": false, @@ -49077,7 +51337,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20350:43:0", + "src": "20890:43:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -49085,7 +51345,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "20315:78:0" + "src": "20855:78:6" }, { "condition": { @@ -49093,33 +51353,33 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 1863, + "id": 2294, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1860, + "id": 2291, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, - "src": "20411:1:0", + "referencedDeclaration": 2274, + "src": "20951:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1861, + "id": 2292, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "verificationHash", "nodeType": "MemberAccess", - "referencedDeclaration": 109, - "src": "20411:18:0", + "referencedDeclaration": 499, + "src": "20951:18:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -49128,35 +51388,35 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 1862, + "id": 2293, "name": "expectedVerificationHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1849, - "src": "20433:24:0", + "referencedDeclaration": 2280, + "src": "20973:24:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "20411:46:0", + "src": "20951:46:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1866, + "id": 2297, "nodeType": "IfStatement", - "src": "20407:134:0", + "src": "20947:134:6", "trueBody": { - "id": 1865, + "id": 2296, "nodeType": "Block", - "src": "20459:82:0", + "src": "20999:82:6", "statements": [ { - "id": 1864, + "id": 2295, "nodeType": "Continue", - "src": "20518:8:0" + "src": "21058:8:6" } ] } @@ -49169,33 +51429,33 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 1871, + "id": 2302, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1868, + "id": 2299, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, - "src": "20562:1:0", + "referencedDeclaration": 2274, + "src": "21102:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1869, + "id": 2300, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paramsHash", "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "20562:12:0", + "referencedDeclaration": 497, + "src": "21102:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -49204,18 +51464,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1870, + "id": 2301, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1791, - "src": "20578:10:0", + "referencedDeclaration": 2222, + "src": "21118:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "20562:26:0", + "src": "21102:26:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -49223,14 +51483,14 @@ }, { "hexValue": "506172616d657465722068617368206d69736d61746368", - "id": 1872, + "id": 2303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "20590:25:0", + "src": "21130:25:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3430d3063c70bc84041a3bb75a9010a8e7685d878f7521f09ab01e30ea2f9f24", "typeString": "literal_string \"Parameter hash mismatch\"" @@ -49249,7 +51509,7 @@ "typeString": "literal_string \"Parameter hash mismatch\"" } ], - "id": 1867, + "id": 2298, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -49257,13 +51517,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "20554:7:0", + "src": "21094:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1873, + "id": 2304, "isConstant": false, "isLValue": false, "isPure": false, @@ -49271,31 +51531,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20554:62:0", + "src": "21094:62:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1874, + "id": 2305, "nodeType": "ExpressionStatement", - "src": "20554:62:0" + "src": "21094:62:6" }, { "assignments": [ - 1876 + 2307 ], "declarations": [ { "constant": false, - "id": 1876, + "id": 2307, "mutability": "mutable", "name": "counter", - "nameLocation": "20637:7:0", + "nameLocation": "21177:7:6", "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "20630:14:0", + "scope": 2352, + "src": "21170:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49303,10 +51563,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1875, + "id": 2306, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "20630:6:0", + "src": "21170:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49315,13 +51575,13 @@ "visibility": "internal" } ], - "id": 1883, + "id": 2314, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1882, + "id": 2313, "isConstant": false, "isLValue": false, "isPure": false, @@ -49331,33 +51591,33 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1880, + "id": 2311, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1877, + "id": 2308, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, - "src": "20647:1:0", + "referencedDeclaration": 2274, + "src": "21187:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1878, + "id": 2309, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 111, - "src": "20647:11:0", + "referencedDeclaration": 501, + "src": "21187:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49366,18 +51626,18 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 1879, + "id": 2310, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "20661:8:0", + "referencedDeclaration": 441, + "src": "21201:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "20647:22:0", + "src": "21187:22:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49386,25 +51646,25 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 1881, + "id": 2312, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "20672:2:0", + "referencedDeclaration": 443, + "src": "21212:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "20647:27:0", + "src": "21187:27:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "20630:44:0" + "src": "21170:44:6" }, { "expression": { @@ -49414,18 +51674,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1887, + "id": 2318, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1885, + "id": 2316, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1876, - "src": "20696:7:0", + "referencedDeclaration": 2307, + "src": "21236:7:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49434,18 +51694,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1886, + "id": 2317, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1799, - "src": "20707:5:0", + "referencedDeclaration": 2230, + "src": "21247:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "20696:16:0", + "src": "21236:16:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -49453,14 +51713,14 @@ }, { "hexValue": "496e646578202d2074696d657374616d70206d69736d61746368", - "id": 1888, + "id": 2319, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "20714:28:0", + "src": "21254:28:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80", "typeString": "literal_string \"Index - timestamp mismatch\"" @@ -49479,7 +51739,7 @@ "typeString": "literal_string \"Index - timestamp mismatch\"" } ], - "id": 1884, + "id": 2315, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -49487,13 +51747,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "20688:7:0", + "src": "21228:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1889, + "id": 2320, "isConstant": false, "isLValue": false, "isPure": false, @@ -49501,31 +51761,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20688:55:0", + "src": "21228:55:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1890, + "id": 2321, "nodeType": "ExpressionStatement", - "src": "20688:55:0" + "src": "21228:55:6" }, { "assignments": [ - 1892 + 2323 ], "declarations": [ { "constant": false, - "id": 1892, + "id": 2323, "mutability": "mutable", "name": "expectedNonce", - "nameLocation": "20763:13:0", + "nameLocation": "21303:13:6", "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "20757:19:0", + "scope": 2352, + "src": "21297:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49533,10 +51793,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1891, + "id": 2322, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "20757:5:0", + "src": "21297:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -49545,28 +51805,28 @@ "visibility": "internal" } ], - "id": 1896, + "id": 2327, "initialValue": { "baseExpression": { - "id": 1893, + "id": 2324, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "20779:6:0", + "referencedDeclaration": 463, + "src": "21319:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 1895, + "id": 2326, "indexExpression": { - "id": 1894, + "id": 2325, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1876, - "src": "20786:7:0", + "referencedDeclaration": 2307, + "src": "21326:7:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49577,14 +51837,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20779:15:0", + "src": "21319:15:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "20757:37:0" + "src": "21297:37:6" }, { "expression": { @@ -49594,18 +51854,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1900, + "id": 2331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1898, + "id": 2329, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "20816:5:0", + "referencedDeclaration": 2236, + "src": "21356:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -49614,18 +51874,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1899, + "id": 2330, "name": "expectedNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "20825:13:0", + "referencedDeclaration": 2323, + "src": "21365:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "20816:22:0", + "src": "21356:22:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -49633,14 +51893,14 @@ }, { "hexValue": "4e6f6e636520746f6f206c6f77", - "id": 1901, + "id": 2332, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "20840:15:0", + "src": "21380:15:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0d3a5f34c29e81aa7bbfe59ba3e3db3006ac807af6a54ad3cac7463abb5d83b0", "typeString": "literal_string \"Nonce too low\"" @@ -49659,7 +51919,7 @@ "typeString": "literal_string \"Nonce too low\"" } ], - "id": 1897, + "id": 2328, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -49667,13 +51927,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "20808:7:0", + "src": "21348:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1902, + "id": 2333, "isConstant": false, "isLValue": false, "isPure": false, @@ -49681,22 +51941,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20808:48:0", + "src": "21348:48:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1903, + "id": 2334, "nodeType": "ExpressionStatement", - "src": "20808:48:0" + "src": "21348:48:6" }, { "expression": { "arguments": [ { - "id": 1907, + "id": 2338, "isConstant": false, "isLValue": false, "isPure": false, @@ -49704,29 +51964,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "20878:12:0", + "src": "21418:12:6", "subExpression": { "expression": { - "id": 1905, + "id": 2336, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, - "src": "20879:1:0", + "referencedDeclaration": 2274, + "src": "21419:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1906, + "id": 2337, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "completed", "nodeType": "MemberAccess", - "referencedDeclaration": 113, - "src": "20879:11:0", + "referencedDeclaration": 503, + "src": "21419:11:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -49739,14 +51999,14 @@ }, { "hexValue": "436f6d6d697420616c726561647920636f6d706c65746564", - "id": 1908, + "id": 2339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "20892:26:0", + "src": "21432:26:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_2d6af051cc9bdd806c60b20e274721a89fb9a7025afbe00dde07d3201c4068b2", "typeString": "literal_string \"Commit already completed\"" @@ -49765,7 +52025,7 @@ "typeString": "literal_string \"Commit already completed\"" } ], - "id": 1904, + "id": 2335, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -49773,13 +52033,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "20870:7:0", + "src": "21410:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1909, + "id": 2340, "isConstant": false, "isLValue": false, "isPure": false, @@ -49787,16 +52047,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20870:49:0", + "src": "21410:49:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1910, + "id": 2341, "nodeType": "ExpressionStatement", - "src": "20870:49:0" + "src": "21410:49:6" }, { "expression": { @@ -49805,26 +52065,26 @@ "arguments": [ { "expression": { - "id": 1913, + "id": 2344, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, - "src": "21368:1:0", + "referencedDeclaration": 2274, + "src": "21908:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1914, + "id": 2345, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 111, - "src": "21368:11:0", + "referencedDeclaration": 501, + "src": "21908:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49838,18 +52098,18 @@ "typeString": "uint32" } ], - "id": 1912, + "id": 2343, "name": "_isRevealTimely", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1784, - "src": "21352:15:0", + "referencedDeclaration": 2215, + "src": "21892:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_bool_$", "typeString": "function (uint32) view returns (bool)" } }, - "id": 1915, + "id": 2346, "isConstant": false, "isLValue": false, "isPure": false, @@ -49857,7 +52117,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21352:28:0", + "src": "21892:28:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -49866,14 +52126,14 @@ }, { "hexValue": "52657665616c20746f6f206c617465", - "id": 1916, + "id": 2347, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21382:17:0", + "src": "21922:17:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_286e638d23bc87ce733fb0202708f485eb6091553feef3d943a83966c37e7639", "typeString": "literal_string \"Reveal too late\"" @@ -49892,7 +52152,7 @@ "typeString": "literal_string \"Reveal too late\"" } ], - "id": 1911, + "id": 2342, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -49900,13 +52160,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "21344:7:0", + "src": "21884:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1917, + "id": 2348, "isConstant": false, "isLValue": false, "isPure": false, @@ -49914,34 +52174,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21344:56:0", + "src": "21884:56:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1918, + "id": 2349, "nodeType": "ExpressionStatement", - "src": "21344:56:0" + "src": "21884:56:6" }, { "expression": { - "id": 1919, + "id": 2350, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "21421:1:0", + "referencedDeclaration": 2262, + "src": "21961:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "functionReturnParameters": 1797, - "id": 1920, + "functionReturnParameters": 2228, + "id": 2351, "nodeType": "Return", - "src": "21414:8:0" + "src": "21954:8:6" } ] }, @@ -49950,18 +52210,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1837, + "id": 2268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1834, + "id": 2265, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "20243:1:0", + "referencedDeclaration": 2262, + "src": "20783:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49971,51 +52231,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 1835, + "id": 2266, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "20247:2:0", + "referencedDeclaration": 2248, + "src": "20787:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1836, + "id": 2267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "20247:9:0", + "src": "20787:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "20243:13:0", + "src": "20783:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1922, + "id": 2353, "initializationExpression": { "assignments": [ - 1831 + 2262 ], "declarations": [ { "constant": false, - "id": 1831, + "id": 2262, "mutability": "mutable", "name": "i", - "nameLocation": "20236:1:0", + "nameLocation": "20776:1:6", "nodeType": "VariableDeclaration", - "scope": 1922, - "src": "20229:8:0", + "scope": 2353, + "src": "20769:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50023,10 +52283,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1830, + "id": 2261, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "20229:6:0", + "src": "20769:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50035,17 +52295,17 @@ "visibility": "internal" } ], - "id": 1833, + "id": 2264, "initialValue": { "hexValue": "30", - "id": 1832, + "id": 2263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20240:1:0", + "src": "20780:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -50053,11 +52313,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "20229:12:0" + "src": "20769:12:6" }, "loopExpression": { "expression": { - "id": 1839, + "id": 2270, "isConstant": false, "isLValue": false, "isPure": false, @@ -50065,14 +52325,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "20258:3:0", + "src": "20798:3:6", "subExpression": { - "id": 1838, + "id": 2269, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "20258:1:0", + "referencedDeclaration": 2262, + "src": "20798:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50083,26 +52343,26 @@ "typeString": "uint32" } }, - "id": 1840, + "id": 2271, "nodeType": "ExpressionStatement", - "src": "20258:3:0" + "src": "20798:3:6" }, "nodeType": "ForStatement", - "src": "20224:1209:0" + "src": "20764:1209:6" }, { "expression": { "arguments": [ { "hexValue": "4e6f2076616c696420636f6d6d6974", - "id": 1924, + "id": 2355, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21449:17:0", + "src": "21989:17:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3972966c6b890cd04bd250ec8fd05d1950759334a3d8fa4e9bb3d0693e9952d", "typeString": "literal_string \"No valid commit\"" @@ -50117,7 +52377,7 @@ "typeString": "literal_string \"No valid commit\"" } ], - "id": 1923, + "id": 2354, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -50125,13 +52385,13 @@ 4294967277 ], "referencedDeclaration": 4294967277, - "src": "21442:6:0", + "src": "21982:6:6", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 1925, + "id": 2356, "isConstant": false, "isLValue": false, "isPure": false, @@ -50139,45 +52399,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21442:25:0", + "src": "21982:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1926, + "id": 2357, "nodeType": "ExpressionStatement", - "src": "21442:25:0" + "src": "21982:25:6" } ] }, "documentation": { - "id": 1785, + "id": 2216, "nodeType": "StructuredDocumentation", - "src": "19566:275:0", + "src": "20106:275:6", "text": "This function verifies that the first valid entry with respect to the given `eotp` in `commitLocker[hash]` matches the provided `paramsHash` and `verificationHash`. An entry is valid with respect to `eotp` iff `h3(entry.paramsHash . eotp)` equals `entry.verificationHash`" }, - "id": 1928, + "id": 2359, "implemented": true, "kind": "function", "modifiers": [], "name": "_verifyReveal", - "nameLocation": "19855:13:0", + "nameLocation": "20395:13:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1794, + "id": 2225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1787, + "id": 2218, "mutability": "mutable", "name": "hash", - "nameLocation": "19877:4:0", + "nameLocation": "20417:4:6", "nodeType": "VariableDeclaration", - "scope": 1928, - "src": "19869:12:0", + "scope": 2359, + "src": "20409:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50185,10 +52445,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1786, + "id": 2217, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "19869:7:0", + "src": "20409:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -50198,13 +52458,13 @@ }, { "constant": false, - "id": 1789, + "id": 2220, "mutability": "mutable", "name": "indexWithNonce", - "nameLocation": "19890:14:0", + "nameLocation": "20430:14:6", "nodeType": "VariableDeclaration", - "scope": 1928, - "src": "19883:21:0", + "scope": 2359, + "src": "20423:21:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50212,10 +52472,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1788, + "id": 2219, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19883:6:0", + "src": "20423:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50225,13 +52485,13 @@ }, { "constant": false, - "id": 1791, + "id": 2222, "mutability": "mutable", "name": "paramsHash", - "nameLocation": "19914:10:0", + "nameLocation": "20454:10:6", "nodeType": "VariableDeclaration", - "scope": 1928, - "src": "19906:18:0", + "scope": 2359, + "src": "20446:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50239,10 +52499,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1790, + "id": 2221, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "19906:7:0", + "src": "20446:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -50252,13 +52512,13 @@ }, { "constant": false, - "id": 1793, + "id": 2224, "mutability": "mutable", "name": "eotp", - "nameLocation": "19934:4:0", + "nameLocation": "20474:4:6", "nodeType": "VariableDeclaration", - "scope": 1928, - "src": "19926:12:0", + "scope": 2359, + "src": "20466:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50266,10 +52526,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1792, + "id": 2223, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "19926:7:0", + "src": "20466:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -50278,21 +52538,21 @@ "visibility": "internal" } ], - "src": "19868:71:0" + "src": "20408:71:6" }, "returnParameters": { - "id": 1797, + "id": 2228, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1796, + "id": 2227, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1928, - "src": "19963:6:0", + "scope": 2359, + "src": "20503:6:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50300,10 +52560,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1795, + "id": 2226, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19963:6:0", + "src": "20503:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50312,91 +52572,91 @@ "visibility": "internal" } ], - "src": "19962:8:0" + "src": "20502:8:6" }, - "scope": 2161, - "src": "19846:1628:0", + "scope": 2592, + "src": "20386:1628:6", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2000, + "id": 2431, "nodeType": "Block", - "src": "21554:464:0", + "src": "22094:464:6", "statements": [ { "assignments": [ - 1939 + 2370 ], "declarations": [ { "constant": false, - "id": 1939, + "id": 2370, "mutability": "mutable", "name": "cc", - "nameLocation": "21581:2:0", + "nameLocation": "22121:2:6", "nodeType": "VariableDeclaration", - "scope": 2000, - "src": "21564:19:0", + "scope": 2431, + "src": "22104:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" }, "typeName": { "baseType": { - "id": 1937, + "id": 2368, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1936, + "id": 2367, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "21564:6:0" + "referencedDeclaration": 504, + "src": "22104:6:6" }, - "referencedDeclaration": 114, - "src": "21564:6:0", + "referencedDeclaration": 504, + "src": "22104:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 1938, + "id": 2369, "nodeType": "ArrayTypeName", - "src": "21564:8:0", + "src": "22104:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } }, "visibility": "internal" } ], - "id": 1943, + "id": 2374, "initialValue": { "baseExpression": { - "id": 1940, + "id": 2371, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "21586:12:0", + "referencedDeclaration": 513, + "src": "22126:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 1942, + "id": 2373, "indexExpression": { - "id": 1941, + "id": 2372, "name": "commitHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "21599:10:0", + "referencedDeclaration": 2361, + "src": "22139:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -50407,14 +52667,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "21586:24:0", + "src": "22126:24:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "21564:46:0" + "src": "22104:46:6" }, { "expression": { @@ -50424,32 +52684,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1948, + "id": 2379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1945, + "id": 2376, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "21628:2:0", + "referencedDeclaration": 2370, + "src": "22168:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1946, + "id": 2377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "21628:9:0", + "src": "22168:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50459,21 +52719,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1947, + "id": 2378, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "21640:1:0", + "src": "22180:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "21628:13:0", + "src": "22168:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -50481,14 +52741,14 @@ }, { "hexValue": "496e76616c696420636f6d6d69742068617368", - "id": 1949, + "id": 2380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21643:21:0", + "src": "22183:21:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_8a9c0db4284cd81d8eaef3d877f21bcccab643ae503f9d63f7eb3ad5aacbe749", "typeString": "literal_string \"Invalid commit hash\"" @@ -50507,7 +52767,7 @@ "typeString": "literal_string \"Invalid commit hash\"" } ], - "id": 1944, + "id": 2375, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -50515,13 +52775,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "21620:7:0", + "src": "22160:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1950, + "id": 2381, "isConstant": false, "isLValue": false, "isPure": false, @@ -50529,16 +52789,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21620:45:0", + "src": "22160:45:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1951, + "id": 2382, "nodeType": "ExpressionStatement", - "src": "21620:45:0" + "src": "22160:45:6" }, { "expression": { @@ -50548,32 +52808,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1956, + "id": 2387, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1953, + "id": 2384, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "21683:2:0", + "referencedDeclaration": 2370, + "src": "22223:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1954, + "id": 2385, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "21683:9:0", + "src": "22223:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50582,18 +52842,18 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 1955, + "id": 2386, "name": "commitIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1932, - "src": "21695:11:0", + "referencedDeclaration": 2363, + "src": "22235:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "21683:23:0", + "src": "22223:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -50601,14 +52861,14 @@ }, { "hexValue": "496e76616c696420636f6d6d6974496e646578", - "id": 1957, + "id": 2388, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21708:21:0", + "src": "22248:21:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_dd8f27f99c8575d947c48310b46d36796c8df82285fc83fecd33510610055413", "typeString": "literal_string \"Invalid commitIndex\"" @@ -50627,7 +52887,7 @@ "typeString": "literal_string \"Invalid commitIndex\"" } ], - "id": 1952, + "id": 2383, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -50635,13 +52895,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "21675:7:0", + "src": "22215:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1958, + "id": 2389, "isConstant": false, "isLValue": false, "isPure": false, @@ -50649,79 +52909,79 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21675:55:0", + "src": "22215:55:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1959, + "id": 2390, "nodeType": "ExpressionStatement", - "src": "21675:55:0" + "src": "22215:55:6" }, { "assignments": [ - 1962 + 2393 ], "declarations": [ { "constant": false, - "id": 1962, + "id": 2393, "mutability": "mutable", "name": "c", - "nameLocation": "21755:1:0", + "nameLocation": "22295:1:6", "nodeType": "VariableDeclaration", - "scope": 2000, - "src": "21740:16:0", + "scope": 2431, + "src": "22280:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 1961, + "id": 2392, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1960, + "id": 2391, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "21740:6:0" + "referencedDeclaration": 504, + "src": "22280:6:6" }, - "referencedDeclaration": 114, - "src": "21740:6:0", + "referencedDeclaration": 504, + "src": "22280:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, "visibility": "internal" } ], - "id": 1966, + "id": 2397, "initialValue": { "baseExpression": { - "id": 1963, + "id": 2394, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "21759:2:0", + "referencedDeclaration": 2370, + "src": "22299:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1965, + "id": 2396, "indexExpression": { - "id": 1964, + "id": 2395, "name": "commitIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1932, - "src": "21762:11:0", + "referencedDeclaration": 2363, + "src": "22302:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50732,14 +52992,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "21759:15:0", + "src": "22299:15:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage", + "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "21740:34:0" + "src": "22280:34:6" }, { "expression": { @@ -50749,33 +53009,33 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1971, + "id": 2402, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1968, + "id": 2399, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1962, - "src": "21792:1:0", + "referencedDeclaration": 2393, + "src": "22332:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1969, + "id": 2400, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 111, - "src": "21792:11:0", + "referencedDeclaration": 501, + "src": "22332:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50785,21 +53045,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1970, + "id": 2401, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "21806:1:0", + "src": "22346:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "21792:15:0", + "src": "22332:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -50807,14 +53067,14 @@ }, { "hexValue": "496e76616c696420636f6d6d69742074696d657374616d70", - "id": 1972, + "id": 2403, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21809:26:0", + "src": "22349:26:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_791866c3f9c9c03c601447bf48dd4e0bd3f849759626f2144adccf6e77c6e64d", "typeString": "literal_string \"Invalid commit timestamp\"" @@ -50833,7 +53093,7 @@ "typeString": "literal_string \"Invalid commit timestamp\"" } ], - "id": 1967, + "id": 2398, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -50841,13 +53101,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "21784:7:0", + "src": "22324:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1973, + "id": 2404, "isConstant": false, "isLValue": false, "isPure": false, @@ -50855,31 +53115,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21784:52:0", + "src": "22324:52:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1974, + "id": 2405, "nodeType": "ExpressionStatement", - "src": "21784:52:0" + "src": "22324:52:6" }, { "assignments": [ - 1976 + 2407 ], "declarations": [ { "constant": false, - "id": 1976, + "id": 2407, "mutability": "mutable", "name": "index", - "nameLocation": "21882:5:0", + "nameLocation": "22422:5:6", "nodeType": "VariableDeclaration", - "scope": 2000, - "src": "21875:12:0", + "scope": 2431, + "src": "22415:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50887,10 +53147,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1975, + "id": 2406, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "21875:6:0", + "src": "22415:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50899,13 +53159,13 @@ "visibility": "internal" } ], - "id": 1986, + "id": 2417, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1985, + "id": 2416, "isConstant": false, "isLValue": false, "isPure": false, @@ -50915,7 +53175,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1983, + "id": 2414, "isConstant": false, "isLValue": false, "isPure": false, @@ -50924,26 +53184,26 @@ "arguments": [ { "expression": { - "id": 1979, + "id": 2410, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1962, - "src": "21897:1:0", + "referencedDeclaration": 2393, + "src": "22437:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1980, + "id": 2411, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 111, - "src": "21897:11:0", + "referencedDeclaration": 501, + "src": "22437:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50957,26 +53217,26 @@ "typeString": "uint32" } ], - "id": 1978, + "id": 2409, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "21890:6:0", + "src": "22430:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 1977, + "id": 2408, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "21890:6:0", + "src": "22430:6:6", "typeDescriptions": {} } }, - "id": 1981, + "id": 2412, "isConstant": false, "isLValue": false, "isPure": false, @@ -50984,7 +53244,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21890:19:0", + "src": "22430:19:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -50994,18 +53254,18 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 1982, + "id": 2413, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "21912:8:0", + "referencedDeclaration": 441, + "src": "22452:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "21890:30:0", + "src": "22430:30:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -51014,36 +53274,36 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 1984, + "id": 2415, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "21923:2:0", + "referencedDeclaration": 443, + "src": "22463:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "21890:35:0", + "src": "22430:35:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "21875:50:0" + "src": "22415:50:6" }, { "expression": { "arguments": [ { - "id": 1988, + "id": 2419, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "21951:5:0", + "referencedDeclaration": 2407, + "src": "22491:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -51057,18 +53317,18 @@ "typeString": "uint32" } ], - "id": 1987, + "id": 2418, "name": "_incrementNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "21935:15:0", + "referencedDeclaration": 2591, + "src": "22475:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", "typeString": "function (uint32)" } }, - "id": 1989, + "id": 2420, "isConstant": false, "isLValue": false, "isPure": false, @@ -51076,34 +53336,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21935:22:0", + "src": "22475:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1990, + "id": 2421, "nodeType": "ExpressionStatement", - "src": "21935:22:0" + "src": "22475:22:6" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1991, + "id": 2422, "name": "_cleanupNonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2128, - "src": "21967:14:0", + "referencedDeclaration": 2559, + "src": "22507:14:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1992, + "id": 2423, "isConstant": false, "isLValue": false, "isPure": false, @@ -51111,46 +53371,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21967:16:0", + "src": "22507:16:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1993, + "id": 2424, "nodeType": "ExpressionStatement", - "src": "21967:16:0" + "src": "22507:16:6" }, { "expression": { - "id": 1998, + "id": 2429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 1994, + "id": 2425, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1962, - "src": "21993:1:0", + "referencedDeclaration": 2393, + "src": "22533:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1996, + "id": 2427, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "completed", "nodeType": "MemberAccess", - "referencedDeclaration": 113, - "src": "21993:11:0", + "referencedDeclaration": 503, + "src": "22533:11:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -51160,52 +53420,52 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1997, + "id": 2428, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "22007:4:0", + "src": "22547:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "21993:18:0", + "src": "22533:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1999, + "id": 2430, "nodeType": "ExpressionStatement", - "src": "21993:18:0" + "src": "22533:18:6" } ] }, - "id": 2001, + "id": 2432, "implemented": true, "kind": "function", "modifiers": [], "name": "_completeReveal", - "nameLocation": "21489:15:0", + "nameLocation": "22029:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1933, + "id": 2364, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1930, + "id": 2361, "mutability": "mutable", "name": "commitHash", - "nameLocation": "21513:10:0", + "nameLocation": "22053:10:6", "nodeType": "VariableDeclaration", - "scope": 2001, - "src": "21505:18:0", + "scope": 2432, + "src": "22045:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -51213,10 +53473,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1929, + "id": 2360, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "21505:7:0", + "src": "22045:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -51226,13 +53486,13 @@ }, { "constant": false, - "id": 1932, + "id": 2363, "mutability": "mutable", "name": "commitIndex", - "nameLocation": "21532:11:0", + "nameLocation": "22072:11:6", "nodeType": "VariableDeclaration", - "scope": 2001, - "src": "21525:18:0", + "scope": 2432, + "src": "22065:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -51240,10 +53500,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1931, + "id": 2362, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "21525:6:0", + "src": "22065:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -51252,40 +53512,40 @@ "visibility": "internal" } ], - "src": "21504:40:0" + "src": "22044:40:6" }, "returnParameters": { - "id": 1934, + "id": 2365, "nodeType": "ParameterList", "parameters": [], - "src": "21554:0:0" + "src": "22094:0:6" }, - "scope": 2161, - "src": "21480:538:0", + "scope": 2592, + "src": "22020:538:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2127, + "id": 2558, "nodeType": "Block", - "src": "22313:1139:0", + "src": "22853:1139:6", "statements": [ { "assignments": [ - 2006 + 2437 ], "declarations": [ { "constant": false, - "id": 2006, + "id": 2437, "mutability": "mutable", "name": "tMin", - "nameLocation": "22330:4:0", + "nameLocation": "22870:4:6", "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "22323:11:0", + "scope": 2558, + "src": "22863:11:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -51293,10 +53553,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2005, + "id": 2436, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22323:6:0", + "src": "22863:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -51305,13 +53565,13 @@ "visibility": "internal" } ], - "id": 2014, + "id": 2445, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2013, + "id": 2444, "isConstant": false, "isLValue": false, "isPure": false, @@ -51320,25 +53580,25 @@ "arguments": [ { "expression": { - "id": 2009, + "id": 2440, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "22344:5:0", + "src": "22884:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 2010, + "id": 2441, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "22344:15:0", + "src": "22884:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -51352,26 +53612,26 @@ "typeString": "uint256" } ], - "id": 2008, + "id": 2439, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "22337:6:0", + "src": "22877:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 2007, + "id": 2438, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22337:6:0", + "src": "22877:6:6", "typeDescriptions": {} } }, - "id": 2011, + "id": 2442, "isConstant": false, "isLValue": false, "isPure": false, @@ -51379,7 +53639,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "22337:23:0", + "src": "22877:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -51389,40 +53649,40 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2012, + "id": 2443, "name": "REVEAL_MAX_DELAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "22363:16:0", + "referencedDeclaration": 469, + "src": "22903:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22337:42:0", + "src": "22877:42:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "22323:56:0" + "src": "22863:56:6" }, { "assignments": [ - 2016 + 2447 ], "declarations": [ { "constant": false, - "id": 2016, + "id": 2447, "mutability": "mutable", "name": "indexMinUnadjusted", - "nameLocation": "22396:18:0", + "nameLocation": "22936:18:6", "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "22389:25:0", + "scope": 2558, + "src": "22929:25:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -51430,10 +53690,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2015, + "id": 2446, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22389:6:0", + "src": "22929:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -51442,24 +53702,24 @@ "visibility": "internal" } ], - "id": 2020, + "id": 2451, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2019, + "id": 2450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2017, + "id": 2448, "name": "tMin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2006, - "src": "22417:4:0", + "referencedDeclaration": 2437, + "src": "22957:4:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -51468,40 +53728,40 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2018, + "id": 2449, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "22424:8:0", + "referencedDeclaration": 441, + "src": "22964:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "22417:15:0", + "src": "22957:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "22389:43:0" + "src": "22929:43:6" }, { "assignments": [ - 2022 + 2453 ], "declarations": [ { "constant": false, - "id": 2022, + "id": 2453, "mutability": "mutable", "name": "indexMin", - "nameLocation": "22449:8:0", + "nameLocation": "22989:8:6", "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "22442:15:0", + "scope": 2558, + "src": "22982:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -51509,10 +53769,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2021, + "id": 2452, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22442:6:0", + "src": "22982:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -51521,17 +53781,17 @@ "visibility": "internal" } ], - "id": 2024, + "id": 2455, "initialValue": { "hexValue": "30", - "id": 2023, + "id": 2454, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "22460:1:0", + "src": "23000:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -51539,7 +53799,7 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "22442:19:0" + "src": "22982:19:6" }, { "condition": { @@ -51547,18 +53807,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2027, + "id": 2458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2025, + "id": 2456, "name": "indexMinUnadjusted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2016, - "src": "22475:18:0", + "referencedDeclaration": 2447, + "src": "23015:18:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -51567,45 +53827,45 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 2026, + "id": 2457, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "22496:2:0", + "referencedDeclaration": 443, + "src": "23036:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22475:23:0", + "src": "23015:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2035, + "id": 2466, "nodeType": "IfStatement", - "src": "22471:88:0", + "src": "23011:88:6", "trueBody": { - "id": 2034, + "id": 2465, "nodeType": "Block", - "src": "22500:59:0", + "src": "23040:59:6", "statements": [ { "expression": { - "id": 2032, + "id": 2463, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2028, + "id": 2459, "name": "indexMin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "22514:8:0", + "referencedDeclaration": 2453, + "src": "23054:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -51618,18 +53878,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2031, + "id": 2462, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2029, + "id": 2460, "name": "indexMinUnadjusted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2016, - "src": "22525:18:0", + "referencedDeclaration": 2447, + "src": "23065:18:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -51638,50 +53898,50 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2030, + "id": 2461, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "22546:2:0", + "referencedDeclaration": 443, + "src": "23086:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22525:23:0", + "src": "23065:23:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22514:34:0", + "src": "23054:34:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2033, + "id": 2464, "nodeType": "ExpressionStatement", - "src": "22514:34:0" + "src": "23054:34:6" } ] } }, { "assignments": [ - 2040 + 2471 ], "declarations": [ { "constant": false, - "id": 2040, + "id": 2471, "mutability": "mutable", "name": "nonZeroNonces", - "nameLocation": "22584:13:0", + "nameLocation": "23124:13:6", "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "22568:29:0", + "scope": 2558, + "src": "23108:29:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -51690,18 +53950,18 @@ }, "typeName": { "baseType": { - "id": 2038, + "id": 2469, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22568:6:0", + "src": "23108:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2039, + "id": 2470, "nodeType": "ArrayTypeName", - "src": "22568:8:0", + "src": "23108:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -51710,30 +53970,30 @@ "visibility": "internal" } ], - "id": 2047, + "id": 2478, "initialValue": { "arguments": [ { "expression": { - "id": 2044, + "id": 2475, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "22613:12:0", + "referencedDeclaration": 466, + "src": "23153:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2045, + "id": 2476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "22613:19:0", + "src": "23153:19:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -51747,38 +54007,38 @@ "typeString": "uint256" } ], - "id": 2043, + "id": 2474, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "22600:12:0", + "src": "23140:12:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint32[] memory)" }, "typeName": { "baseType": { - "id": 2041, + "id": 2472, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22604:6:0", + "src": "23144:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2042, + "id": 2473, "nodeType": "ArrayTypeName", - "src": "22604:8:0", + "src": "23144:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" } } }, - "id": 2046, + "id": 2477, "isConstant": false, "isLValue": false, "isPure": false, @@ -51786,7 +54046,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "22600:33:0", + "src": "23140:33:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", @@ -51794,22 +54054,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "22568:65:0" + "src": "23108:65:6" }, { "assignments": [ - 2049 + 2480 ], "declarations": [ { "constant": false, - "id": 2049, + "id": 2480, "mutability": "mutable", "name": "numValidIndices", - "nameLocation": "22650:15:0", + "nameLocation": "23190:15:6", "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "22643:22:0", + "scope": 2558, + "src": "23183:22:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -51817,10 +54077,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2048, + "id": 2479, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22643:6:0", + "src": "23183:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -51829,17 +54089,17 @@ "visibility": "internal" } ], - "id": 2051, + "id": 2482, "initialValue": { "hexValue": "30", - "id": 2050, + "id": 2481, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "22668:1:0", + "src": "23208:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -51847,28 +54107,28 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "22643:26:0" + "src": "23183:26:6" }, { "body": { - "id": 2090, + "id": 2521, "nodeType": "Block", - "src": "22727:293:0", + "src": "23267:293:6", "statements": [ { "assignments": [ - 2064 + 2495 ], "declarations": [ { "constant": false, - "id": 2064, + "id": 2495, "mutability": "mutable", "name": "index", - "nameLocation": "22748:5:0", + "nameLocation": "23288:5:6", "nodeType": "VariableDeclaration", - "scope": 2090, - "src": "22741:12:0", + "scope": 2521, + "src": "23281:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -51876,10 +54136,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2063, + "id": 2494, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22741:6:0", + "src": "23281:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -51888,28 +54148,28 @@ "visibility": "internal" } ], - "id": 2068, + "id": 2499, "initialValue": { "baseExpression": { - "id": 2065, + "id": 2496, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "22756:12:0", + "referencedDeclaration": 466, + "src": "23296:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2067, + "id": 2498, "indexExpression": { - "id": 2066, + "id": 2497, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2053, - "src": "22769:1:0", + "referencedDeclaration": 2484, + "src": "23309:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -51920,14 +54180,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "22756:15:0", + "src": "23296:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "22741:30:0" + "src": "23281:30:6" }, { "condition": { @@ -51935,18 +54195,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2071, + "id": 2502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2069, + "id": 2500, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2064, - "src": "22789:5:0", + "referencedDeclaration": 2495, + "src": "23329:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -51955,56 +54215,56 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2070, + "id": 2501, "name": "indexMin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "22797:8:0", + "referencedDeclaration": 2453, + "src": "23337:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22789:16:0", + "src": "23329:16:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2088, + "id": 2519, "nodeType": "Block", - "src": "22866:144:0", + "src": "23406:144:6", "statements": [ { "expression": { - "id": 2082, + "id": 2513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2078, + "id": 2509, "name": "nonZeroNonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2040, - "src": "22884:13:0", + "referencedDeclaration": 2471, + "src": "23424:13:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 2080, + "id": 2511, "indexExpression": { - "id": 2079, + "id": 2510, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "22898:15:0", + "referencedDeclaration": 2480, + "src": "23438:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52015,7 +54275,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "22884:30:0", + "src": "23424:30:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52024,35 +54284,35 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2081, + "id": 2512, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2064, - "src": "22917:5:0", + "referencedDeclaration": 2495, + "src": "23457:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22884:38:0", + "src": "23424:38:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2083, + "id": 2514, "nodeType": "ExpressionStatement", - "src": "22884:38:0" + "src": "23424:38:6" }, { - "id": 2087, + "id": 2518, "nodeType": "UncheckedBlock", - "src": "22936:60:0", + "src": "23476:60:6", "statements": [ { "expression": { - "id": 2085, + "id": 2516, "isConstant": false, "isLValue": false, "isPure": false, @@ -52060,14 +54320,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "22964:17:0", + "src": "23504:17:6", "subExpression": { - "id": 2084, + "id": 2515, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "22964:15:0", + "referencedDeclaration": 2480, + "src": "23504:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52078,25 +54338,25 @@ "typeString": "uint32" } }, - "id": 2086, + "id": 2517, "nodeType": "ExpressionStatement", - "src": "22964:17:0" + "src": "23504:17:6" } ] } ] }, - "id": 2089, + "id": 2520, "nodeType": "IfStatement", - "src": "22785:225:0", + "src": "23325:225:6", "trueBody": { - "id": 2077, + "id": 2508, "nodeType": "Block", - "src": "22807:53:0", + "src": "23347:53:6", "statements": [ { "expression": { - "id": 2075, + "id": 2506, "isConstant": false, "isLValue": false, "isPure": false, @@ -52104,28 +54364,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "22825:20:0", + "src": "23365:20:6", "subExpression": { "baseExpression": { - "id": 2072, + "id": 2503, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "22832:6:0", + "referencedDeclaration": 463, + "src": "23372:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 2074, + "id": 2505, "indexExpression": { - "id": 2073, + "id": 2504, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2064, - "src": "22839:5:0", + "referencedDeclaration": 2495, + "src": "23379:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52136,7 +54396,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "22832:13:0", + "src": "23372:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -52147,9 +54407,9 @@ "typeString": "tuple()" } }, - "id": 2076, + "id": 2507, "nodeType": "ExpressionStatement", - "src": "22825:20:0" + "src": "23365:20:6" } ] } @@ -52161,18 +54421,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2059, + "id": 2490, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2056, + "id": 2487, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2053, - "src": "22697:1:0", + "referencedDeclaration": 2484, + "src": "23237:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -52182,51 +54442,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2057, + "id": 2488, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "22701:12:0", + "referencedDeclaration": 466, + "src": "23241:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2058, + "id": 2489, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "22701:19:0", + "src": "23241:19:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "22697:23:0", + "src": "23237:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2091, + "id": 2522, "initializationExpression": { "assignments": [ - 2053 + 2484 ], "declarations": [ { "constant": false, - "id": 2053, + "id": 2484, "mutability": "mutable", "name": "i", - "nameLocation": "22690:1:0", + "nameLocation": "23230:1:6", "nodeType": "VariableDeclaration", - "scope": 2091, - "src": "22684:7:0", + "scope": 2522, + "src": "23224:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -52234,10 +54494,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2052, + "id": 2483, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "22684:5:0", + "src": "23224:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -52246,17 +54506,17 @@ "visibility": "internal" } ], - "id": 2055, + "id": 2486, "initialValue": { "hexValue": "30", - "id": 2054, + "id": 2485, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "22694:1:0", + "src": "23234:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -52264,11 +54524,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "22684:11:0" + "src": "23224:11:6" }, "loopExpression": { "expression": { - "id": 2061, + "id": 2492, "isConstant": false, "isLValue": false, "isPure": false, @@ -52276,14 +54536,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "22722:3:0", + "src": "23262:3:6", "subExpression": { - "id": 2060, + "id": 2491, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2053, - "src": "22722:1:0", + "referencedDeclaration": 2484, + "src": "23262:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -52294,27 +54554,27 @@ "typeString": "uint8" } }, - "id": 2062, + "id": 2493, "nodeType": "ExpressionStatement", - "src": "22722:3:0" + "src": "23262:3:6" }, "nodeType": "ForStatement", - "src": "22679:341:0" + "src": "23219:341:6" }, { "assignments": [ - 2096 + 2527 ], "declarations": [ { "constant": false, - "id": 2096, + "id": 2527, "mutability": "mutable", "name": "reducedArray", - "nameLocation": "23252:12:0", + "nameLocation": "23792:12:6", "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "23236:28:0", + "scope": 2558, + "src": "23776:28:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -52323,18 +54583,18 @@ }, "typeName": { "baseType": { - "id": 2094, + "id": 2525, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23236:6:0", + "src": "23776:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2095, + "id": 2526, "nodeType": "ArrayTypeName", - "src": "23236:8:0", + "src": "23776:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -52343,16 +54603,16 @@ "visibility": "internal" } ], - "id": 2102, + "id": 2533, "initialValue": { "arguments": [ { - "id": 2100, + "id": 2531, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "23280:15:0", + "referencedDeclaration": 2480, + "src": "23820:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52366,38 +54626,38 @@ "typeString": "uint32" } ], - "id": 2099, + "id": 2530, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "23267:12:0", + "src": "23807:12:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint32[] memory)" }, "typeName": { "baseType": { - "id": 2097, + "id": 2528, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23271:6:0", + "src": "23811:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2098, + "id": 2529, "nodeType": "ArrayTypeName", - "src": "23271:8:0", + "src": "23811:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" } } }, - "id": 2101, + "id": 2532, "isConstant": false, "isLValue": false, "isPure": false, @@ -52405,7 +54665,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "23267:29:0", + "src": "23807:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", @@ -52413,42 +54673,42 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "23236:60:0" + "src": "23776:60:6" }, { "body": { - "id": 2121, + "id": 2552, "nodeType": "Block", - "src": "23350:59:0", + "src": "23890:59:6", "statements": [ { "expression": { - "id": 2119, + "id": 2550, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2113, + "id": 2544, "name": "reducedArray", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2096, - "src": "23364:12:0", + "referencedDeclaration": 2527, + "src": "23904:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 2115, + "id": 2546, "indexExpression": { - "id": 2114, + "id": 2545, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "23377:1:0", + "referencedDeclaration": 2535, + "src": "23917:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -52459,7 +54719,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "23364:15:0", + "src": "23904:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52469,25 +54729,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 2116, + "id": 2547, "name": "nonZeroNonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2040, - "src": "23382:13:0", + "referencedDeclaration": 2471, + "src": "23922:13:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 2118, + "id": 2549, "indexExpression": { - "id": 2117, + "id": 2548, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "23396:1:0", + "referencedDeclaration": 2535, + "src": "23936:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -52498,21 +54758,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "23382:16:0", + "src": "23922:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23364:34:0", + "src": "23904:34:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2120, + "id": 2551, "nodeType": "ExpressionStatement", - "src": "23364:34:0" + "src": "23904:34:6" } ] }, @@ -52521,18 +54781,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2109, + "id": 2540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2107, + "id": 2538, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "23324:1:0", + "referencedDeclaration": 2535, + "src": "23864:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -52541,38 +54801,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2108, + "id": 2539, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "23328:15:0", + "referencedDeclaration": 2480, + "src": "23868:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23324:19:0", + "src": "23864:19:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2122, + "id": 2553, "initializationExpression": { "assignments": [ - 2104 + 2535 ], "declarations": [ { "constant": false, - "id": 2104, + "id": 2535, "mutability": "mutable", "name": "i", - "nameLocation": "23317:1:0", + "nameLocation": "23857:1:6", "nodeType": "VariableDeclaration", - "scope": 2122, - "src": "23311:7:0", + "scope": 2553, + "src": "23851:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -52580,10 +54840,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2103, + "id": 2534, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "23311:5:0", + "src": "23851:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -52592,17 +54852,17 @@ "visibility": "internal" } ], - "id": 2106, + "id": 2537, "initialValue": { "hexValue": "30", - "id": 2105, + "id": 2536, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23321:1:0", + "src": "23861:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -52610,11 +54870,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "23311:11:0" + "src": "23851:11:6" }, "loopExpression": { "expression": { - "id": 2111, + "id": 2542, "isConstant": false, "isLValue": false, "isPure": false, @@ -52622,14 +54882,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "23345:3:0", + "src": "23885:3:6", "subExpression": { - "id": 2110, + "id": 2541, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "23345:1:0", + "referencedDeclaration": 2535, + "src": "23885:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -52640,27 +54900,27 @@ "typeString": "uint8" } }, - "id": 2112, + "id": 2543, "nodeType": "ExpressionStatement", - "src": "23345:3:0" + "src": "23885:3:6" }, "nodeType": "ForStatement", - "src": "23306:103:0" + "src": "23846:103:6" }, { "expression": { - "id": 2125, + "id": 2556, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2123, + "id": 2554, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "23418:12:0", + "referencedDeclaration": 466, + "src": "23958:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" @@ -52669,80 +54929,80 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2124, + "id": 2555, "name": "reducedArray", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2096, - "src": "23433:12:0", + "referencedDeclaration": 2527, + "src": "23973:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "src": "23418:27:0", + "src": "23958:27:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2126, + "id": 2557, "nodeType": "ExpressionStatement", - "src": "23418:27:0" + "src": "23958:27:6" } ] }, "documentation": { - "id": 2002, + "id": 2433, "nodeType": "StructuredDocumentation", - "src": "22024:249:0", + "src": "22564:249:6", "text": "This function removes all tracked nonce values correspond to interval blocks that are older than block.timestamp - REVEAL_MAX_DELAY. In doing so, extraneous data in the blockchain is removed, and both nonces and nonceTracker are bounded in size." }, - "id": 2128, + "id": 2559, "implemented": true, "kind": "function", "modifiers": [], "name": "_cleanupNonces", - "nameLocation": "22287:14:0", + "nameLocation": "22827:14:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2003, + "id": 2434, "nodeType": "ParameterList", "parameters": [], - "src": "22301:2:0" + "src": "22841:2:6" }, "returnParameters": { - "id": 2004, + "id": 2435, "nodeType": "ParameterList", "parameters": [], - "src": "22313:0:0" + "src": "22853:0:6" }, - "scope": 2161, - "src": "22278:1174:0", + "scope": 2592, + "src": "22818:1174:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2159, + "id": 2590, "nodeType": "Block", - "src": "23506:162:0", + "src": "24046:162:6", "statements": [ { "assignments": [ - 2134 + 2565 ], "declarations": [ { "constant": false, - "id": 2134, + "id": 2565, "mutability": "mutable", "name": "v", - "nameLocation": "23522:1:0", + "nameLocation": "24062:1:6", "nodeType": "VariableDeclaration", - "scope": 2159, - "src": "23516:7:0", + "scope": 2590, + "src": "24056:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -52750,10 +55010,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2133, + "id": 2564, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "23516:5:0", + "src": "24056:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -52762,28 +55022,28 @@ "visibility": "internal" } ], - "id": 2138, + "id": 2569, "initialValue": { "baseExpression": { - "id": 2135, + "id": 2566, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "23526:6:0", + "referencedDeclaration": 463, + "src": "24066:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 2137, + "id": 2568, "indexExpression": { - "id": 2136, + "id": 2567, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "23533:5:0", + "referencedDeclaration": 2561, + "src": "24073:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52794,14 +55054,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "23526:13:0", + "src": "24066:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "23516:23:0" + "src": "24056:23:6" }, { "condition": { @@ -52809,18 +55069,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 2141, + "id": 2572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2139, + "id": 2570, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "23553:1:0", + "referencedDeclaration": 2565, + "src": "24093:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -52830,44 +55090,44 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 2140, + "id": 2571, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23558:1:0", + "src": "24098:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "23553:6:0", + "src": "24093:6:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2149, + "id": 2580, "nodeType": "IfStatement", - "src": "23549:61:0", + "src": "24089:61:6", "trueBody": { - "id": 2148, + "id": 2579, "nodeType": "Block", - "src": "23561:49:0", + "src": "24101:49:6", "statements": [ { "expression": { "arguments": [ { - "id": 2145, + "id": 2576, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "23593:5:0", + "referencedDeclaration": 2561, + "src": "24133:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52882,31 +55142,31 @@ } ], "expression": { - "id": 2142, + "id": 2573, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "23575:12:0", + "referencedDeclaration": 466, + "src": "24115:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2144, + "id": 2575, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "23575:17:0", + "src": "24115:17:6", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint32_$dyn_storage_ptr_$_t_uint32_$returns$__$bound_to$_t_array$_t_uint32_$dyn_storage_ptr_$", "typeString": "function (uint32[] storage pointer,uint32)" } }, - "id": 2146, + "id": 2577, "isConstant": false, "isLValue": false, "isPure": false, @@ -52914,53 +55174,53 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "23575:24:0", + "src": "24115:24:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2147, + "id": 2578, "nodeType": "ExpressionStatement", - "src": "23575:24:0" + "src": "24115:24:6" } ] } }, { - "id": 2158, + "id": 2589, "nodeType": "UncheckedBlock", - "src": "23615:47:0", + "src": "24155:47:6", "statements": [ { "expression": { - "id": 2156, + "id": 2587, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2150, + "id": 2581, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "23634:6:0", + "referencedDeclaration": 463, + "src": "24174:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 2152, + "id": 2583, "indexExpression": { - "id": 2151, + "id": 2582, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "23641:5:0", + "referencedDeclaration": 2561, + "src": "24181:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52971,7 +55231,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "23634:13:0", + "src": "24174:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -52984,18 +55244,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 2155, + "id": 2586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2153, + "id": 2584, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "23650:1:0", + "referencedDeclaration": 2565, + "src": "24190:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -53005,60 +55265,60 @@ "operator": "+", "rightExpression": { "hexValue": "31", - "id": 2154, + "id": 2585, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23654:1:0", + "src": "24194:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "23650:5:0", + "src": "24190:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "23634:21:0", + "src": "24174:21:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2157, + "id": 2588, "nodeType": "ExpressionStatement", - "src": "23634:21:0" + "src": "24174:21:6" } ] } ] }, - "id": 2160, + "id": 2591, "implemented": true, "kind": "function", "modifiers": [], "name": "_incrementNonce", - "nameLocation": "23467:15:0", + "nameLocation": "24007:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2131, + "id": 2562, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2130, + "id": 2561, "mutability": "mutable", "name": "index", - "nameLocation": "23490:5:0", + "nameLocation": "24030:5:6", "nodeType": "VariableDeclaration", - "scope": 2160, - "src": "23483:12:0", + "scope": 2591, + "src": "24023:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53066,10 +55326,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2129, + "id": 2560, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23483:6:0", + "src": "24023:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -53078,62 +55338,62 @@ "visibility": "internal" } ], - "src": "23482:14:0" + "src": "24022:14:6" }, "returnParameters": { - "id": 2132, + "id": 2563, "nodeType": "ParameterList", "parameters": [], - "src": "23506:0:0" + "src": "24046:0:6" }, - "scope": 2161, - "src": "23458:210:0", + "scope": 2592, + "src": "23998:210:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" } ], - "scope": 2162, - "src": "151:23519:0", + "scope": 2593, + "src": "151:24059:6", "usedErrors": [] } ], - "src": "39:23632:0" + "src": "39:24172:6" }, "legacyAST": { - "absolutePath": "/Users/polymorpher/git/one-wallet/code/contracts/ONEWallet.sol", + "absolutePath": "project:/contracts/ONEWallet.sol", "exportedSymbols": { "IERC1155": [ - 3551 + 121 ], "IERC1155Receiver": [ - 3592 + 162 ], "IERC165": [ - 3816 + 386 ], "IERC20": [ - 3670 + 240 ], "IERC721": [ - 3786 + 356 ], "IERC721Receiver": [ - 3804 + 374 ], "ONEWallet": [ - 2161 + 2592 ], "TokenTracker": [ - 3429 + 3860 ] }, - "id": 2162, + "id": 2593, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { - "id": 1, + "id": 388, "literals": [ "solidity", "^", @@ -53141,29 +55401,29 @@ ".4" ], "nodeType": "PragmaDirective", - "src": "39:23:0" + "src": "39:23:6" }, { - "absolutePath": "/Users/polymorpher/git/one-wallet/code/contracts/TokenTracker.sol", + "absolutePath": "project:/contracts/TokenTracker.sol", "file": "./TokenTracker.sol", - "id": 2, + "id": 389, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2162, - "sourceUnit": 3430, - "src": "64:28:0", + "scope": 2593, + "sourceUnit": 3861, + "src": "64:28:6", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/token/ERC20/IERC20.sol", "file": "@openzeppelin/contracts/token/ERC20/IERC20.sol", - "id": 3, + "id": 390, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2162, - "sourceUnit": 3671, - "src": "93:56:0", + "scope": 2593, + "sourceUnit": 241, + "src": "93:56:6", "symbolAliases": [], "unitAlias": "" }, @@ -53172,52 +55432,52 @@ "baseContracts": [ { "baseName": { - "id": 4, + "id": 391, "name": "TokenTracker", "nodeType": "IdentifierPath", - "referencedDeclaration": 3429, - "src": "173:12:0" + "referencedDeclaration": 3860, + "src": "173:12:6" }, - "id": 5, + "id": 392, "nodeType": "InheritanceSpecifier", - "src": "173:12:0" + "src": "173:12:6" } ], "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 2161, + "id": 2592, "linearizedBaseContracts": [ - 2161, - 3429, - 3592, - 3816, - 3804 + 2592, + 3860, + 162, + 386, + 374 ], "name": "ONEWallet", - "nameLocation": "160:9:0", + "nameLocation": "160:9:6", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, - "id": 13, + "id": 400, "name": "InsufficientFund", - "nameLocation": "198:16:0", + "nameLocation": "198:16:6", "nodeType": "EventDefinition", "parameters": { - "id": 12, + "id": 399, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 7, + "id": 394, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "223:6:0", + "nameLocation": "223:6:6", "nodeType": "VariableDeclaration", - "scope": 13, - "src": "215:14:0", + "scope": 400, + "src": "215:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53225,10 +55485,10 @@ "typeString": "uint256" }, "typeName": { - "id": 6, + "id": 393, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "215:7:0", + "src": "215:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -53238,14 +55498,14 @@ }, { "constant": false, - "id": 9, + "id": 396, "indexed": false, "mutability": "mutable", "name": "balance", - "nameLocation": "239:7:0", + "nameLocation": "239:7:6", "nodeType": "VariableDeclaration", - "scope": 13, - "src": "231:15:0", + "scope": 400, + "src": "231:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53253,10 +55513,10 @@ "typeString": "uint256" }, "typeName": { - "id": 8, + "id": 395, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "231:7:0", + "src": "231:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -53266,14 +55526,14 @@ }, { "constant": false, - "id": 11, + "id": 398, "indexed": false, "mutability": "mutable", "name": "dest", - "nameLocation": "256:4:0", + "nameLocation": "256:4:6", "nodeType": "VariableDeclaration", - "scope": 13, - "src": "248:12:0", + "scope": 400, + "src": "248:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53281,10 +55541,10 @@ "typeString": "address" }, "typeName": { - "id": 10, + "id": 397, "name": "address", "nodeType": "ElementaryTypeName", - "src": "248:7:0", + "src": "248:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -53294,30 +55554,30 @@ "visibility": "internal" } ], - "src": "214:47:0" + "src": "214:47:6" }, - "src": "192:70:0" + "src": "192:70:6" }, { "anonymous": false, - "id": 23, + "id": 410, "name": "ExceedDailyLimit", - "nameLocation": "273:16:0", + "nameLocation": "273:16:6", "nodeType": "EventDefinition", "parameters": { - "id": 22, + "id": 409, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 15, + "id": 402, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "298:6:0", + "nameLocation": "298:6:6", "nodeType": "VariableDeclaration", - "scope": 23, - "src": "290:14:0", + "scope": 410, + "src": "290:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53325,10 +55585,10 @@ "typeString": "uint256" }, "typeName": { - "id": 14, + "id": 401, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "290:7:0", + "src": "290:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -53338,14 +55598,14 @@ }, { "constant": false, - "id": 17, + "id": 404, "indexed": false, "mutability": "mutable", "name": "limit", - "nameLocation": "314:5:0", + "nameLocation": "314:5:6", "nodeType": "VariableDeclaration", - "scope": 23, - "src": "306:13:0", + "scope": 410, + "src": "306:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53353,10 +55613,10 @@ "typeString": "uint256" }, "typeName": { - "id": 16, + "id": 403, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "306:7:0", + "src": "306:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -53366,14 +55626,14 @@ }, { "constant": false, - "id": 19, + "id": 406, "indexed": false, "mutability": "mutable", "name": "current", - "nameLocation": "329:7:0", + "nameLocation": "329:7:6", "nodeType": "VariableDeclaration", - "scope": 23, - "src": "321:15:0", + "scope": 410, + "src": "321:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53381,10 +55641,10 @@ "typeString": "uint256" }, "typeName": { - "id": 18, + "id": 405, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "321:7:0", + "src": "321:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -53394,14 +55654,14 @@ }, { "constant": false, - "id": 21, + "id": 408, "indexed": false, "mutability": "mutable", "name": "dest", - "nameLocation": "346:4:0", + "nameLocation": "346:4:6", "nodeType": "VariableDeclaration", - "scope": 23, - "src": "338:12:0", + "scope": 410, + "src": "338:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53409,10 +55669,10 @@ "typeString": "address" }, "typeName": { - "id": 20, + "id": 407, "name": "address", "nodeType": "ElementaryTypeName", - "src": "338:7:0", + "src": "338:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -53422,30 +55682,30 @@ "visibility": "internal" } ], - "src": "289:62:0" + "src": "289:62:6" }, - "src": "267:85:0" + "src": "267:85:6" }, { "anonymous": false, - "id": 27, + "id": 414, "name": "UnknownTransferError", - "nameLocation": "363:20:0", + "nameLocation": "363:20:6", "nodeType": "EventDefinition", "parameters": { - "id": 26, + "id": 413, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 25, + "id": 412, "indexed": false, "mutability": "mutable", "name": "dest", - "nameLocation": "392:4:0", + "nameLocation": "392:4:6", "nodeType": "VariableDeclaration", - "scope": 27, - "src": "384:12:0", + "scope": 414, + "src": "384:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53453,10 +55713,10 @@ "typeString": "address" }, "typeName": { - "id": 24, + "id": 411, "name": "address", "nodeType": "ElementaryTypeName", - "src": "384:7:0", + "src": "384:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -53466,44 +55726,44 @@ "visibility": "internal" } ], - "src": "383:14:0" + "src": "383:14:6" }, - "src": "357:41:0" + "src": "357:41:6" }, { "anonymous": false, - "id": 29, + "id": 416, "name": "LastResortAddressNotSet", - "nameLocation": "409:23:0", + "nameLocation": "409:23:6", "nodeType": "EventDefinition", "parameters": { - "id": 28, + "id": 415, "nodeType": "ParameterList", "parameters": [], - "src": "432:2:0" + "src": "432:2:6" }, - "src": "403:32:0" + "src": "403:32:6" }, { "anonymous": false, - "id": 35, + "id": 422, "name": "PaymentReceived", - "nameLocation": "446:15:0", + "nameLocation": "446:15:6", "nodeType": "EventDefinition", "parameters": { - "id": 34, + "id": 421, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 31, + "id": 418, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "470:6:0", + "nameLocation": "470:6:6", "nodeType": "VariableDeclaration", - "scope": 35, - "src": "462:14:0", + "scope": 422, + "src": "462:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53511,10 +55771,10 @@ "typeString": "uint256" }, "typeName": { - "id": 30, + "id": 417, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "462:7:0", + "src": "462:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -53524,14 +55784,14 @@ }, { "constant": false, - "id": 33, + "id": 420, "indexed": false, "mutability": "mutable", "name": "from", - "nameLocation": "486:4:0", + "nameLocation": "486:4:6", "nodeType": "VariableDeclaration", - "scope": 35, - "src": "478:12:0", + "scope": 422, + "src": "478:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53539,10 +55799,10 @@ "typeString": "address" }, "typeName": { - "id": 32, + "id": 419, "name": "address", "nodeType": "ElementaryTypeName", - "src": "478:7:0", + "src": "478:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -53552,30 +55812,30 @@ "visibility": "internal" } ], - "src": "461:30:0" + "src": "461:30:6" }, - "src": "440:52:0" + "src": "440:52:6" }, { "anonymous": false, - "id": 41, + "id": 428, "name": "PaymentSent", - "nameLocation": "503:11:0", + "nameLocation": "503:11:6", "nodeType": "EventDefinition", "parameters": { - "id": 40, + "id": 427, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 37, + "id": 424, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "523:6:0", + "nameLocation": "523:6:6", "nodeType": "VariableDeclaration", - "scope": 41, - "src": "515:14:0", + "scope": 428, + "src": "515:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53583,10 +55843,10 @@ "typeString": "uint256" }, "typeName": { - "id": 36, + "id": 423, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "515:7:0", + "src": "515:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -53596,14 +55856,14 @@ }, { "constant": false, - "id": 39, + "id": 426, "indexed": false, "mutability": "mutable", "name": "dest", - "nameLocation": "539:4:0", + "nameLocation": "539:4:6", "nodeType": "VariableDeclaration", - "scope": 41, - "src": "531:12:0", + "scope": 428, + "src": "531:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53611,10 +55871,10 @@ "typeString": "address" }, "typeName": { - "id": 38, + "id": 425, "name": "address", "nodeType": "ElementaryTypeName", - "src": "531:7:0", + "src": "531:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -53624,30 +55884,30 @@ "visibility": "internal" } ], - "src": "514:30:0" + "src": "514:30:6" }, - "src": "497:48:0" + "src": "497:48:6" }, { "anonymous": false, - "id": 45, + "id": 432, "name": "AutoRecoveryTriggered", - "nameLocation": "556:21:0", + "nameLocation": "556:21:6", "nodeType": "EventDefinition", "parameters": { - "id": 44, + "id": 431, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 43, + "id": 430, "indexed": false, "mutability": "mutable", "name": "from", - "nameLocation": "586:4:0", + "nameLocation": "586:4:6", "nodeType": "VariableDeclaration", - "scope": 45, - "src": "578:12:0", + "scope": 432, + "src": "578:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53655,10 +55915,10 @@ "typeString": "address" }, "typeName": { - "id": 42, + "id": 429, "name": "address", "nodeType": "ElementaryTypeName", - "src": "578:7:0", + "src": "578:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -53668,39 +55928,39 @@ "visibility": "internal" } ], - "src": "577:14:0" + "src": "577:14:6" }, - "src": "550:42:0" + "src": "550:42:6" }, { "anonymous": false, - "id": 47, + "id": 434, "name": "RecoveryFailure", - "nameLocation": "603:15:0", + "nameLocation": "603:15:6", "nodeType": "EventDefinition", "parameters": { - "id": 46, + "id": 433, "nodeType": "ParameterList", "parameters": [], - "src": "618:2:0" + "src": "618:2:6" }, - "src": "597:24:0" + "src": "597:24:6" }, { "constant": false, "documentation": { - "id": 48, + "id": 435, "nodeType": "StructuredDocumentation", - "src": "627:271:0", + "src": "627:271:6", "text": "In future versions, it is planned that we may allow the user to extend the wallet's life through a function call. When that is implemented, the following variables may no longer be immutable, with the exception of root which shall serve as an identifier of the wallet" }, - "id": 50, + "id": 437, "mutability": "immutable", "name": "root", - "nameLocation": "921:4:0", + "nameLocation": "921:4:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "903:22:0", + "scope": 2592, + "src": "903:22:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -53708,10 +55968,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 49, + "id": 436, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "903:7:0", + "src": "903:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -53721,13 +55981,13 @@ }, { "constant": false, - "id": 52, + "id": 439, "mutability": "immutable", "name": "height", - "nameLocation": "1185:6:0", + "nameLocation": "1185:6:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1169:22:0", + "scope": 2592, + "src": "1169:22:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -53735,10 +55995,10 @@ "typeString": "uint8" }, "typeName": { - "id": 51, + "id": 438, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1169:5:0", + "src": "1169:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -53748,13 +56008,13 @@ }, { "constant": false, - "id": 54, + "id": 441, "mutability": "immutable", "name": "interval", - "nameLocation": "1284:8:0", + "nameLocation": "1284:8:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1268:24:0", + "scope": 2592, + "src": "1268:24:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -53762,10 +56022,10 @@ "typeString": "uint8" }, "typeName": { - "id": 53, + "id": 440, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1268:5:0", + "src": "1268:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -53775,13 +56035,13 @@ }, { "constant": false, - "id": 56, + "id": 443, "mutability": "immutable", "name": "t0", - "nameLocation": "1357:2:0", + "nameLocation": "1357:2:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1340:19:0", + "scope": 2592, + "src": "1340:19:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -53789,10 +56049,10 @@ "typeString": "uint32" }, "typeName": { - "id": 55, + "id": 442, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1340:6:0", + "src": "1340:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -53802,13 +56062,13 @@ }, { "constant": false, - "id": 58, + "id": 445, "mutability": "immutable", "name": "lifespan", - "nameLocation": "1440:8:0", + "nameLocation": "1440:8:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1423:25:0", + "scope": 2592, + "src": "1423:25:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -53816,10 +56076,10 @@ "typeString": "uint32" }, "typeName": { - "id": 57, + "id": 444, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "1423:6:0", + "src": "1423:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -53829,13 +56089,13 @@ }, { "constant": false, - "id": 60, + "id": 447, "mutability": "immutable", "name": "maxOperationsPerInterval", - "nameLocation": "1531:24:0", + "nameLocation": "1531:24:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1515:40:0", + "scope": 2592, + "src": "1515:40:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -53843,10 +56103,10 @@ "typeString": "uint8" }, "typeName": { - "id": 59, + "id": 446, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "1515:5:0", + "src": "1515:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -53854,21 +56114,48 @@ }, "visibility": "internal" }, + { + "constant": false, + "id": 449, + "mutability": "immutable", + "name": "_numLeaves", + "nameLocation": "1727:10:6", + "nodeType": "VariableDeclaration", + "scope": 2592, + "src": "1710:27:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 448, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "1710:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + }, { "constant": false, "documentation": { - "id": 61, + "id": 450, "nodeType": "StructuredDocumentation", - "src": "1711:28:0", + "src": "1765:28:6", "text": "global mutable variables" }, - "id": 63, + "id": 452, "mutability": "mutable", "name": "lastResortAddress", - "nameLocation": "1760:17:0", + "nameLocation": "1814:17:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1744:33:0", + "scope": 2592, + "src": "1798:33:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -53876,10 +56163,10 @@ "typeString": "address payable" }, "typeName": { - "id": 62, + "id": 451, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1744:15:0", + "src": "1798:15:6", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -53890,13 +56177,13 @@ }, { "constant": false, - "id": 65, + "id": 454, "mutability": "mutable", "name": "dailyLimit", - "nameLocation": "1889:10:0", + "nameLocation": "1943:10:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1881:18:0", + "scope": 2592, + "src": "1935:18:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -53904,10 +56191,10 @@ "typeString": "uint256" }, "typeName": { - "id": 64, + "id": 453, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1881:7:0", + "src": "1935:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -53917,13 +56204,13 @@ }, { "constant": false, - "id": 67, + "id": 456, "mutability": "mutable", "name": "spentToday", - "nameLocation": "2005:10:0", + "nameLocation": "2059:10:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "1997:18:0", + "scope": 2592, + "src": "2051:18:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -53931,10 +56218,10 @@ "typeString": "uint256" }, "typeName": { - "id": 66, + "id": 455, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1997:7:0", + "src": "2051:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -53944,13 +56231,13 @@ }, { "constant": false, - "id": 69, + "id": 458, "mutability": "mutable", "name": "lastTransferDay", - "nameLocation": "2224:15:0", + "nameLocation": "2278:15:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "2217:22:0", + "scope": 2592, + "src": "2271:22:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -53958,10 +56245,10 @@ "typeString": "uint32" }, "typeName": { - "id": 68, + "id": 457, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2217:6:0", + "src": "2271:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -53972,18 +56259,18 @@ { "constant": false, "documentation": { - "id": 70, + "id": 459, "nodeType": "StructuredDocumentation", - "src": "2246:18:0", + "src": "2300:18:6", "text": "nonce tracking" }, - "id": 74, + "id": 463, "mutability": "mutable", "name": "nonces", - "nameLocation": "2294:6:0", + "nameLocation": "2348:6:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "2269:31:0", + "scope": 2592, + "src": "2323:31:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -53991,28 +56278,28 @@ "typeString": "mapping(uint32 => uint8)" }, "typeName": { - "id": 73, + "id": 462, "keyType": { - "id": 71, + "id": 460, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2277:6:0", + "src": "2331:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "Mapping", - "src": "2269:24:0", + "src": "2323:24:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" }, "valueType": { - "id": 72, + "id": 461, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "2287:5:0", + "src": "2341:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -54023,13 +56310,13 @@ }, { "constant": false, - "id": 77, + "id": 466, "mutability": "mutable", "name": "nonceTracker", - "nameLocation": "2494:12:0", + "nameLocation": "2548:12:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "2485:21:0", + "scope": 2592, + "src": "2539:21:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -54038,18 +56325,18 @@ }, "typeName": { "baseType": { - "id": 75, + "id": 464, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2485:6:0", + "src": "2539:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 76, + "id": 465, "nodeType": "ArrayTypeName", - "src": "2485:8:0", + "src": "2539:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -54059,13 +56346,13 @@ }, { "constant": true, - "id": 80, + "id": 469, "mutability": "constant", "name": "REVEAL_MAX_DELAY", - "nameLocation": "2928:16:0", + "nameLocation": "2982:16:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "2912:37:0", + "scope": 2592, + "src": "2966:37:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -54073,10 +56360,10 @@ "typeString": "uint32" }, "typeName": { - "id": 78, + "id": 467, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2912:6:0", + "src": "2966:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54084,14 +56371,14 @@ }, "value": { "hexValue": "3630", - "id": 79, + "id": 468, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2947:2:0", + "src": "3001:2:6", "typeDescriptions": { "typeIdentifier": "t_rational_60_by_1", "typeString": "int_const 60" @@ -54102,13 +56389,13 @@ }, { "constant": true, - "id": 83, + "id": 472, "mutability": "constant", "name": "SECONDS_PER_DAY", - "nameLocation": "2971:15:0", + "nameLocation": "3025:15:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "2955:39:0", + "scope": 2592, + "src": "3009:39:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -54116,10 +56403,10 @@ "typeString": "uint32" }, "typeName": { - "id": 81, + "id": 470, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2955:6:0", + "src": "3009:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54127,14 +56414,14 @@ }, "value": { "hexValue": "3836343030", - "id": 82, + "id": 471, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2989:5:0", + "src": "3043:5:6", "typeDescriptions": { "typeIdentifier": "t_rational_86400_by_1", "typeString": "int_const 86400" @@ -54145,13 +56432,13 @@ }, { "constant": true, - "id": 86, + "id": 475, "mutability": "constant", "name": "AUTO_RECOVERY_TRIGGER_AMOUNT", - "nameLocation": "3017:28:0", + "nameLocation": "3071:28:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "3000:55:0", + "scope": 2592, + "src": "3054:55:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -54159,10 +56446,10 @@ "typeString": "uint256" }, "typeName": { - "id": 84, + "id": 473, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3000:7:0", + "src": "3054:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -54170,14 +56457,14 @@ }, "value": { "hexValue": "31", - "id": 85, + "id": 474, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3048:7:0", + "src": "3102:7:6", "subdenomination": "ether", "typeDescriptions": { "typeIdentifier": "t_rational_1000000000000000000_by_1", @@ -54189,13 +56476,13 @@ }, { "constant": true, - "id": 89, + "id": 478, "mutability": "constant", "name": "MAX_COMMIT_SIZE", - "nameLocation": "3077:15:0", + "nameLocation": "3131:15:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "3061:37:0", + "scope": 2592, + "src": "3115:37:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -54203,10 +56490,10 @@ "typeString": "uint32" }, "typeName": { - "id": 87, + "id": 476, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3061:6:0", + "src": "3115:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54214,14 +56501,14 @@ }, "value": { "hexValue": "313230", - "id": 88, + "id": 477, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3095:3:0", + "src": "3149:3:6", "typeDescriptions": { "typeIdentifier": "t_rational_120_by_1", "typeString": "int_const 120" @@ -54232,13 +56519,13 @@ }, { "constant": true, - "id": 92, + "id": 481, "mutability": "constant", "name": "majorVersion", - "nameLocation": "3121:12:0", + "nameLocation": "3175:12:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "3105:34:0", + "scope": 2592, + "src": "3159:34:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -54246,10 +56533,10 @@ "typeString": "uint32" }, "typeName": { - "id": 90, + "id": 479, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3105:6:0", + "src": "3159:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54257,14 +56544,14 @@ }, "value": { "hexValue": "307837", - "id": 91, + "id": 480, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3136:3:0", + "src": "3190:3:6", "typeDescriptions": { "typeIdentifier": "t_rational_7_by_1", "typeString": "int_const 7" @@ -54275,13 +56562,13 @@ }, { "constant": true, - "id": 95, + "id": 484, "mutability": "constant", "name": "minorVersion", - "nameLocation": "3205:12:0", + "nameLocation": "3259:12:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "3189:34:0", + "scope": 2592, + "src": "3243:34:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -54289,105 +56576,112 @@ "typeString": "uint32" }, "typeName": { - "id": 93, + "id": 482, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3189:6:0", + "src": "3243:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "value": { - "hexValue": "307831", - "id": 94, + "hexValue": "307833", + "id": 483, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3220:3:0", + "src": "3274:3:6", "typeDescriptions": { - "typeIdentifier": "t_rational_1_by_1", - "typeString": "int_const 1" + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" }, - "value": "0x1" + "value": "0x3" }, "visibility": "internal" }, { "canonicalName": "ONEWallet.OperationType", - "id": 103, + "id": 493, "members": [ { - "id": 96, + "id": 485, "name": "TRACK", - "nameLocation": "3311:5:0", + "nameLocation": "3365:5:6", "nodeType": "EnumValue", - "src": "3311:5:0" + "src": "3365:5:6" }, { - "id": 97, + "id": 486, "name": "UNTRACK", - "nameLocation": "3318:7:0", + "nameLocation": "3372:7:6", "nodeType": "EnumValue", - "src": "3318:7:0" + "src": "3372:7:6" }, { - "id": 98, + "id": 487, "name": "TRANSFER_TOKEN", - "nameLocation": "3327:14:0", + "nameLocation": "3381:14:6", "nodeType": "EnumValue", - "src": "3327:14:0" + "src": "3381:14:6" }, { - "id": 99, + "id": 488, "name": "OVERRIDE_TRACK", - "nameLocation": "3343:14:0", + "nameLocation": "3397:14:6", "nodeType": "EnumValue", - "src": "3343:14:0" + "src": "3397:14:6" }, { - "id": 100, + "id": 489, "name": "TRANSFER", - "nameLocation": "3359:8:0", + "nameLocation": "3413:8:6", "nodeType": "EnumValue", - "src": "3359:8:0" + "src": "3413:8:6" }, { - "id": 101, + "id": 490, "name": "SET_RECOVERY_ADDRESS", - "nameLocation": "3369:20:0", + "nameLocation": "3423:20:6", "nodeType": "EnumValue", - "src": "3369:20:0" + "src": "3423:20:6" }, { - "id": 102, + "id": 491, "name": "RECOVER", - "nameLocation": "3391:7:0", + "nameLocation": "3445:7:6", + "nodeType": "EnumValue", + "src": "3445:7:6" + }, + { + "id": 492, + "name": "REPLACE", + "nameLocation": "3462:7:6", "nodeType": "EnumValue", - "src": "3391:7:0" + "src": "3462:7:6" } ], "name": "OperationType", - "nameLocation": "3287:13:0", + "nameLocation": "3341:13:6", "nodeType": "EnumDefinition", - "src": "3282:122:0" + "src": "3336:245:6" }, { "canonicalName": "ONEWallet.Commit", - "id": 114, + "id": 504, "members": [ { "constant": false, - "id": 105, + "id": 495, "mutability": "mutable", "name": "hash", - "nameLocation": "3467:4:0", + "nameLocation": "3644:4:6", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "3459:12:0", + "scope": 504, + "src": "3636:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -54395,10 +56689,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 104, + "id": 494, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3459:7:0", + "src": "3636:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -54408,13 +56702,13 @@ }, { "constant": false, - "id": 107, + "id": 497, "mutability": "mutable", "name": "paramsHash", - "nameLocation": "3489:10:0", + "nameLocation": "3666:10:6", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "3481:18:0", + "scope": 504, + "src": "3658:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -54422,10 +56716,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 106, + "id": 496, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3481:7:0", + "src": "3658:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -54435,13 +56729,13 @@ }, { "constant": false, - "id": 109, + "id": 499, "mutability": "mutable", "name": "verificationHash", - "nameLocation": "3517:16:0", + "nameLocation": "3694:16:6", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "3509:24:0", + "scope": 504, + "src": "3686:24:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -54449,10 +56743,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 108, + "id": 498, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3509:7:0", + "src": "3686:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -54462,13 +56756,13 @@ }, { "constant": false, - "id": 111, + "id": 501, "mutability": "mutable", "name": "timestamp", - "nameLocation": "3550:9:0", + "nameLocation": "3727:9:6", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "3543:16:0", + "scope": 504, + "src": "3720:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -54476,10 +56770,10 @@ "typeString": "uint32" }, "typeName": { - "id": 110, + "id": 500, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3543:6:0", + "src": "3720:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54489,13 +56783,13 @@ }, { "constant": false, - "id": 113, + "id": 503, "mutability": "mutable", "name": "completed", - "nameLocation": "3574:9:0", + "nameLocation": "3751:9:6", "nodeType": "VariableDeclaration", - "scope": 114, - "src": "3569:14:0", + "scope": 504, + "src": "3746:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -54503,10 +56797,10 @@ "typeString": "bool" }, "typeName": { - "id": 112, + "id": 502, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3569:4:0", + "src": "3746:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -54516,21 +56810,21 @@ } ], "name": "Commit", - "nameLocation": "3442:6:0", + "nameLocation": "3619:6:6", "nodeType": "StructDefinition", - "scope": 2161, - "src": "3435:155:0", + "scope": 2592, + "src": "3612:155:6", "visibility": "public" }, { "constant": false, - "id": 117, + "id": 507, "mutability": "mutable", "name": "commits", - "nameLocation": "3606:7:0", + "nameLocation": "3783:7:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "3596:17:0", + "scope": 2592, + "src": "3773:17:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -54539,18 +56833,18 @@ }, "typeName": { "baseType": { - "id": 115, + "id": 505, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3596:7:0", + "src": "3773:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 116, + "id": 506, "nodeType": "ArrayTypeName", - "src": "3596:9:0", + "src": "3773:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -54560,60 +56854,60 @@ }, { "constant": false, - "id": 123, + "id": 513, "mutability": "mutable", "name": "commitLocker", - "nameLocation": "3860:12:0", + "nameLocation": "4037:12:6", "nodeType": "VariableDeclaration", - "scope": 2161, - "src": "3831:41:0", + "scope": 2592, + "src": "4008:41:6", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit[])" }, "typeName": { - "id": 122, + "id": 512, "keyType": { - "id": 118, + "id": 508, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3839:7:0", + "src": "4016:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "3831:28:0", + "src": "4008:28:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit[])" }, "valueType": { "baseType": { - "id": 120, + "id": 510, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 119, + "id": 509, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "3850:6:0" + "referencedDeclaration": 504, + "src": "4027:6:6" }, - "referencedDeclaration": 114, - "src": "3850:6:0", + "referencedDeclaration": 504, + "src": "4027:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 121, + "id": 511, "nodeType": "ArrayTypeName", - "src": "3850:8:0", + "src": "4027:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } } @@ -54622,24 +56916,24 @@ }, { "body": { - "id": 174, + "id": 576, "nodeType": "Block", - "src": "4071:277:0", + "src": "4248:326:6", "statements": [ { "expression": { - "id": 144, + "id": 534, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 142, + "id": 532, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "4081:4:0", + "referencedDeclaration": 437, + "src": "4258:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -54648,41 +56942,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 143, + "id": 533, "name": "root_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 125, - "src": "4088:5:0", + "referencedDeclaration": 515, + "src": "4265:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "4081:12:0", + "src": "4258:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 145, + "id": 535, "nodeType": "ExpressionStatement", - "src": "4081:12:0" + "src": "4258:12:6" }, { "expression": { - "id": 148, + "id": 538, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 146, + "id": 536, "name": "height", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "4103:6:0", + "referencedDeclaration": 439, + "src": "4280:6:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -54691,41 +56985,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 147, + "id": 537, "name": "height_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 127, - "src": "4112:7:0", + "referencedDeclaration": 517, + "src": "4289:7:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4103:16:0", + "src": "4280:16:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 149, + "id": 539, "nodeType": "ExpressionStatement", - "src": "4103:16:0" + "src": "4280:16:6" }, { "expression": { - "id": 152, + "id": 542, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 150, + "id": 540, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "4129:8:0", + "referencedDeclaration": 441, + "src": "4306:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -54734,41 +57028,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 151, + "id": 541, "name": "interval_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 129, - "src": "4140:9:0", + "referencedDeclaration": 519, + "src": "4317:9:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4129:20:0", + "src": "4306:20:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 153, + "id": 543, "nodeType": "ExpressionStatement", - "src": "4129:20:0" + "src": "4306:20:6" }, { "expression": { - "id": 156, + "id": 546, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 154, + "id": 544, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "4159:2:0", + "referencedDeclaration": 443, + "src": "4336:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54777,41 +57071,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 155, + "id": 545, "name": "t0_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 131, - "src": "4164:3:0", + "referencedDeclaration": 521, + "src": "4341:3:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4159:8:0", + "src": "4336:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 157, + "id": 547, "nodeType": "ExpressionStatement", - "src": "4159:8:0" + "src": "4336:8:6" }, { "expression": { - "id": 160, + "id": 550, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 158, + "id": 548, "name": "lifespan", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "4177:8:0", + "referencedDeclaration": 445, + "src": "4354:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54820,41 +57114,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 159, + "id": 549, "name": "lifespan_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 133, - "src": "4188:9:0", + "referencedDeclaration": 523, + "src": "4365:9:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4177:20:0", + "src": "4354:20:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 161, + "id": 551, "nodeType": "ExpressionStatement", - "src": "4177:20:0" + "src": "4354:20:6" }, { "expression": { - "id": 164, + "id": 554, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 162, + "id": 552, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "4207:17:0", + "referencedDeclaration": 452, + "src": "4384:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -54863,41 +57157,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 163, + "id": 553, "name": "lastResortAddress_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 137, - "src": "4227:18:0", + "referencedDeclaration": 527, + "src": "4404:18:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "4207:38:0", + "src": "4384:38:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 165, + "id": 555, "nodeType": "ExpressionStatement", - "src": "4207:38:0" + "src": "4384:38:6" }, { "expression": { - "id": 168, + "id": 558, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 166, + "id": 556, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "4255:10:0", + "referencedDeclaration": 454, + "src": "4432:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -54906,41 +57200,41 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 167, + "id": 557, "name": "dailyLimit_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 139, - "src": "4268:11:0", + "referencedDeclaration": 529, + "src": "4445:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4255:24:0", + "src": "4432:24:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 169, + "id": 559, "nodeType": "ExpressionStatement", - "src": "4255:24:0" + "src": "4432:24:6" }, { "expression": { - "id": 172, + "id": 562, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 170, + "id": 560, "name": "maxOperationsPerInterval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "4289:24:0", + "referencedDeclaration": 447, + "src": "4466:24:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -54949,30 +57243,201 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 171, + "id": 561, "name": "maxOperationsPerInterval_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 135, - "src": "4316:25:0", + "referencedDeclaration": 525, + "src": "4493:25:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4289:52:0", + "src": "4466:52:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 173, + "id": 563, "nodeType": "ExpressionStatement", - "src": "4289:52:0" + "src": "4466:52:6" + }, + { + "expression": { + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 564, + "name": "_numLeaves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "4528:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 572, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "32", + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4548:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 568, + "name": "height_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "4554:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 569, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4564:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4554:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 571, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4553:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "4548:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4541:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 565, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "4541:6:6", + "typeDescriptions": {} + } + }, + "id": 573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4541:26:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "4528:39:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "id": 575, + "nodeType": "ExpressionStatement", + "src": "4528:39:6" } ] }, - "id": 175, + "id": 577, "implemented": true, "kind": "constructor", "modifiers": [], @@ -54980,18 +57445,18 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 140, + "id": 530, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 125, + "id": 515, "mutability": "mutable", "name": "root_", - "nameLocation": "3900:5:0", + "nameLocation": "4077:5:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "3892:13:0", + "scope": 577, + "src": "4069:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -54999,10 +57464,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 124, + "id": 514, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "3892:7:0", + "src": "4069:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -55012,13 +57477,13 @@ }, { "constant": false, - "id": 127, + "id": 517, "mutability": "mutable", "name": "height_", - "nameLocation": "3913:7:0", + "nameLocation": "4090:7:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "3907:13:0", + "scope": 577, + "src": "4084:13:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -55026,10 +57491,10 @@ "typeString": "uint8" }, "typeName": { - "id": 126, + "id": 516, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3907:5:0", + "src": "4084:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -55039,13 +57504,13 @@ }, { "constant": false, - "id": 129, + "id": 519, "mutability": "mutable", "name": "interval_", - "nameLocation": "3928:9:0", + "nameLocation": "4105:9:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "3922:15:0", + "scope": 577, + "src": "4099:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -55053,10 +57518,10 @@ "typeString": "uint8" }, "typeName": { - "id": 128, + "id": 518, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3922:5:0", + "src": "4099:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -55066,13 +57531,13 @@ }, { "constant": false, - "id": 131, + "id": 521, "mutability": "mutable", "name": "t0_", - "nameLocation": "3946:3:0", + "nameLocation": "4123:3:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "3939:10:0", + "scope": 577, + "src": "4116:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -55080,10 +57545,10 @@ "typeString": "uint32" }, "typeName": { - "id": 130, + "id": 520, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3939:6:0", + "src": "4116:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -55093,13 +57558,13 @@ }, { "constant": false, - "id": 133, + "id": 523, "mutability": "mutable", "name": "lifespan_", - "nameLocation": "3958:9:0", + "nameLocation": "4135:9:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "3951:16:0", + "scope": 577, + "src": "4128:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -55107,10 +57572,10 @@ "typeString": "uint32" }, "typeName": { - "id": 132, + "id": 522, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "3951:6:0", + "src": "4128:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -55120,13 +57585,13 @@ }, { "constant": false, - "id": 135, + "id": 525, "mutability": "mutable", "name": "maxOperationsPerInterval_", - "nameLocation": "3975:25:0", + "nameLocation": "4152:25:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "3969:31:0", + "scope": 577, + "src": "4146:31:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -55134,10 +57599,10 @@ "typeString": "uint8" }, "typeName": { - "id": 134, + "id": 524, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "3969:5:0", + "src": "4146:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -55147,13 +57612,13 @@ }, { "constant": false, - "id": 137, + "id": 527, "mutability": "mutable", "name": "lastResortAddress_", - "nameLocation": "4026:18:0", + "nameLocation": "4203:18:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "4010:34:0", + "scope": 577, + "src": "4187:34:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -55161,10 +57626,10 @@ "typeString": "address payable" }, "typeName": { - "id": 136, + "id": 526, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4010:15:0", + "src": "4187:15:6", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -55175,13 +57640,13 @@ }, { "constant": false, - "id": 139, + "id": 529, "mutability": "mutable", "name": "dailyLimit_", - "nameLocation": "4054:11:0", + "nameLocation": "4231:11:6", "nodeType": "VariableDeclaration", - "scope": 175, - "src": "4046:19:0", + "scope": 577, + "src": "4223:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -55189,10 +57654,10 @@ "typeString": "uint256" }, "typeName": { - "id": 138, + "id": 528, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4046:7:0", + "src": "4223:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -55201,50 +57666,50 @@ "visibility": "internal" } ], - "src": "3891:175:0" + "src": "4068:175:6" }, "returnParameters": { - "id": 141, + "id": 531, "nodeType": "ParameterList", "parameters": [], - "src": "4071:0:0" + "src": "4248:0:6" }, - "scope": 2161, - "src": "3880:468:0", + "scope": 2592, + "src": "4057:517:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "body": { - "id": 228, + "id": 630, "nodeType": "Block", - "src": "4381:449:0", + "src": "4607:449:6", "statements": [ { "eventCall": { "arguments": [ { "expression": { - "id": 179, + "id": 581, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "4412:3:0", + "src": "4638:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 180, + "id": 582, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "src": "4412:9:0", + "src": "4638:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -55252,25 +57717,25 @@ }, { "expression": { - "id": 181, + "id": 583, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "4423:3:0", + "src": "4649:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 182, + "id": 584, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "4423:10:0", + "src": "4649:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -55288,18 +57753,18 @@ "typeString": "address" } ], - "id": 178, + "id": 580, "name": "PaymentReceived", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 35, - "src": "4396:15:0", + "referencedDeclaration": 422, + "src": "4622:15:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, - "id": 183, + "id": 585, "isConstant": false, "isLValue": false, "isPure": false, @@ -55307,16 +57772,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4396:38:0", + "src": "4622:38:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 184, + "id": 586, "nodeType": "EmitStatement", - "src": "4391:43:0" + "src": "4617:43:6" }, { "condition": { @@ -55324,32 +57789,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 188, + "id": 590, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 185, + "id": 587, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "4448:3:0", + "src": "4674:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 186, + "id": 588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "value", "nodeType": "MemberAccess", - "src": "4448:9:0", + "src": "4674:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -55358,36 +57823,36 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 187, + "id": 589, "name": "AUTO_RECOVERY_TRIGGER_AMOUNT", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 86, - "src": "4461:28:0", + "referencedDeclaration": 475, + "src": "4687:28:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4448:41:0", + "src": "4674:41:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 191, + "id": 593, "nodeType": "IfStatement", - "src": "4444:78:0", + "src": "4670:78:6", "trueBody": { - "id": 190, + "id": 592, "nodeType": "Block", - "src": "4491:31:0", + "src": "4717:31:6", "statements": [ { - "functionReturnParameters": 177, - "id": 189, + "functionReturnParameters": 579, + "id": 591, "nodeType": "Return", - "src": "4505:7:0" + "src": "4731:7:6" } ] } @@ -55398,32 +57863,32 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 195, + "id": 597, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 192, + "id": 594, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "4535:3:0", + "src": "4761:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 193, + "id": 595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "4535:10:0", + "src": "4761:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -55432,36 +57897,36 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 194, + "id": 596, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "4549:17:0", + "referencedDeclaration": 452, + "src": "4775:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "4535:31:0", + "src": "4761:31:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 198, + "id": 600, "nodeType": "IfStatement", - "src": "4531:68:0", + "src": "4757:68:6", "trueBody": { - "id": 197, + "id": 599, "nodeType": "Block", - "src": "4568:31:0", + "src": "4794:31:6", "statements": [ { - "functionReturnParameters": 177, - "id": 196, + "functionReturnParameters": 579, + "id": 598, "nodeType": "Return", - "src": "4582:7:0" + "src": "4808:7:6" } ] } @@ -55472,18 +57937,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 204, + "id": 606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 199, + "id": 601, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "4612:17:0", + "referencedDeclaration": 452, + "src": "4838:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -55495,14 +57960,14 @@ "arguments": [ { "hexValue": "30", - "id": 202, + "id": 604, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4641:1:0", + "src": "4867:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -55517,26 +57982,26 @@ "typeString": "int_const 0" } ], - "id": 201, + "id": 603, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4633:7:0", + "src": "4859:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 200, + "id": 602, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4633:7:0", + "src": "4859:7:6", "typeDescriptions": {} } }, - "id": 203, + "id": 605, "isConstant": false, "isLValue": false, "isPure": true, @@ -55544,32 +58009,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4633:10:0", + "src": "4859:10:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4612:31:0", + "src": "4838:31:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 207, + "id": 609, "nodeType": "IfStatement", - "src": "4608:68:0", + "src": "4834:68:6", "trueBody": { - "id": 206, + "id": 608, "nodeType": "Block", - "src": "4645:31:0", + "src": "4871:31:6", "statements": [ { - "functionReturnParameters": 177, - "id": 205, + "functionReturnParameters": 579, + "id": 607, "nodeType": "Return", - "src": "4659:7:0" + "src": "4885:7:6" } ] } @@ -55580,32 +58045,32 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 214, + "id": 616, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 208, + "id": 610, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "4689:3:0", + "src": "4915:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 209, + "id": 611, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "4689:10:0", + "src": "4915:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -55616,14 +58081,14 @@ "rightExpression": { "arguments": [ { - "id": 212, + "id": 614, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "4711:4:0", + "src": "4937:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } } @@ -55631,30 +58096,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } ], - "id": 211, + "id": 613, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4703:7:0", + "src": "4929:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 210, + "id": 612, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4703:7:0", + "src": "4929:7:6", "typeDescriptions": {} } }, - "id": 213, + "id": 615, "isConstant": false, "isLValue": false, "isPure": false, @@ -55662,32 +58127,32 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4703:13:0", + "src": "4929:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4689:27:0", + "src": "4915:27:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 217, + "id": 619, "nodeType": "IfStatement", - "src": "4685:64:0", + "src": "4911:64:6", "trueBody": { - "id": 216, + "id": 618, "nodeType": "Block", - "src": "4718:31:0", + "src": "4944:31:6", "statements": [ { - "functionReturnParameters": 177, - "id": 215, + "functionReturnParameters": 579, + "id": 617, "nodeType": "Return", - "src": "4732:7:0" + "src": "4958:7:6" } ] } @@ -55697,25 +58162,25 @@ "arguments": [ { "expression": { - "id": 219, + "id": 621, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "4785:3:0", + "src": "5011:3:6", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 220, + "id": 622, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "4785:10:0", + "src": "5011:10:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -55729,18 +58194,18 @@ "typeString": "address" } ], - "id": 218, + "id": 620, "name": "AutoRecoveryTriggered", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 45, - "src": "4763:21:0", + "referencedDeclaration": 432, + "src": "4989:21:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 221, + "id": 623, "isConstant": false, "isLValue": false, "isPure": false, @@ -55748,16 +58213,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4763:33:0", + "src": "4989:33:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 222, + "id": 624, "nodeType": "EmitStatement", - "src": "4758:38:0" + "src": "4984:38:6" }, { "expression": { @@ -55766,18 +58231,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 224, + "id": 626, "name": "_drain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 808, - "src": "4814:6:0", + "referencedDeclaration": 1210, + "src": "5040:6:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_bool_$", "typeString": "function () returns (bool)" } }, - "id": 225, + "id": 627, "isConstant": false, "isLValue": false, "isPure": false, @@ -55785,7 +58250,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4814:8:0", + "src": "5040:8:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -55800,7 +58265,7 @@ "typeString": "bool" } ], - "id": 223, + "id": 625, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -55808,13 +58273,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4806:7:0", + "src": "5032:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", "typeString": "function (bool) pure" } }, - "id": 226, + "id": 628, "isConstant": false, "isLValue": false, "isPure": false, @@ -55822,20 +58287,20 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4806:17:0", + "src": "5032:17:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 227, + "id": 629, "nodeType": "ExpressionStatement", - "src": "4806:17:0" + "src": "5032:17:6" } ] }, - "id": 229, + "id": 631, "implemented": true, "kind": "receive", "modifiers": [], @@ -55843,28 +58308,28 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 176, + "id": 578, "nodeType": "ParameterList", "parameters": [], - "src": "4361:2:0" + "src": "4587:2:6" }, "returnParameters": { - "id": 177, + "id": 579, "nodeType": "ParameterList", "parameters": [], - "src": "4381:0:0" + "src": "4607:0:6" }, - "scope": 2161, - "src": "4354:476:0", + "scope": 2592, + "src": "4580:476:6", "stateMutability": "payable", "virtual": false, "visibility": "external" }, { "body": { - "id": 267, + "id": 669, "nodeType": "Block", - "src": "4883:250:0", + "src": "5109:250:6", "statements": [ { "expression": { @@ -55874,7 +58339,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 245, + "id": 647, "isConstant": false, "isLValue": false, "isPure": false, @@ -55884,7 +58349,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 243, + "id": 645, "isConstant": false, "isLValue": false, "isPure": false, @@ -55896,32 +58361,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 240, + "id": 642, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 237, + "id": 639, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "4908:5:0", + "src": "5134:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 238, + "id": 640, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "4908:15:0", + "src": "5134:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -55930,18 +58395,18 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 239, + "id": 641, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "4926:8:0", + "referencedDeclaration": 441, + "src": "5152:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "4908:26:0", + "src": "5134:26:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -55955,26 +58420,26 @@ "typeString": "uint256" } ], - "id": 236, + "id": 638, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4901:6:0", + "src": "5127:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 235, + "id": 637, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4901:6:0", + "src": "5127:6:6", "typeDescriptions": {} } }, - "id": 241, + "id": 643, "isConstant": false, "isLValue": false, "isPure": false, @@ -55982,7 +58447,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4901:34:0", + "src": "5127:34:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -55992,18 +58457,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 242, + "id": 644, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "4938:2:0", + "referencedDeclaration": 443, + "src": "5164:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4901:39:0", + "src": "5127:39:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -56012,18 +58477,18 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 244, + "id": 646, "name": "lifespan", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "4943:8:0", + "referencedDeclaration": 445, + "src": "5169:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "4901:50:0", + "src": "5127:50:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -56031,14 +58496,14 @@ }, { "hexValue": "546f6f206561726c7920746f20726574697265", - "id": 246, + "id": 648, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "4953:21:0", + "src": "5179:21:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_50d19c134c4136d96b547b25b22aa8e1363529709733541230ebfa41cb82b262", "typeString": "literal_string \"Too early to retire\"" @@ -56057,7 +58522,7 @@ "typeString": "literal_string \"Too early to retire\"" } ], - "id": 234, + "id": 636, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -56065,13 +58530,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4893:7:0", + "src": "5119:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 247, + "id": 649, "isConstant": false, "isLValue": false, "isPure": false, @@ -56079,16 +58544,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4893:82:0", + "src": "5119:82:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 248, + "id": 650, "nodeType": "ExpressionStatement", - "src": "4893:82:0" + "src": "5119:82:6" }, { "expression": { @@ -56098,18 +58563,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 255, + "id": 657, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 250, + "id": 652, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "4993:17:0", + "referencedDeclaration": 452, + "src": "5219:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -56121,14 +58586,14 @@ "arguments": [ { "hexValue": "30", - "id": 253, + "id": 655, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5022:1:0", + "src": "5248:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -56143,26 +58608,26 @@ "typeString": "int_const 0" } ], - "id": 252, + "id": 654, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5014:7:0", + "src": "5240:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 251, + "id": 653, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5014:7:0", + "src": "5240:7:6", "typeDescriptions": {} } }, - "id": 254, + "id": 656, "isConstant": false, "isLValue": false, "isPure": true, @@ -56170,14 +58635,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5014:10:0", + "src": "5240:10:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4993:31:0", + "src": "5219:31:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -56185,14 +58650,14 @@ }, { "hexValue": "4c617374207265736f72742061646472657373206973206e6f7420736574", - "id": 256, + "id": 658, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5026:32:0", + "src": "5252:32:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_1c2d20c6fc3078eff495891b6caa29a7be172ac7018d2f6172fb68ba87240f3d", "typeString": "literal_string \"Last resort address is not set\"" @@ -56211,7 +58676,7 @@ "typeString": "literal_string \"Last resort address is not set\"" } ], - "id": 249, + "id": 651, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -56219,13 +58684,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "4985:7:0", + "src": "5211:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 257, + "id": 659, "isConstant": false, "isLValue": false, "isPure": false, @@ -56233,16 +58698,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4985:74:0", + "src": "5211:74:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 258, + "id": 660, "nodeType": "ExpressionStatement", - "src": "4985:74:0" + "src": "5211:74:6" }, { "expression": { @@ -56251,18 +58716,18 @@ "arguments": [], "expression": { "argumentTypes": [], - "id": 260, + "id": 662, "name": "_drain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 808, - "src": "5077:6:0", + "referencedDeclaration": 1210, + "src": "5303:6:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_bool_$", "typeString": "function () returns (bool)" } }, - "id": 261, + "id": 663, "isConstant": false, "isLValue": false, "isPure": false, @@ -56270,7 +58735,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5077:8:0", + "src": "5303:8:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -56279,14 +58744,14 @@ }, { "hexValue": "5265636f76657279206661696c6564", - "id": 262, + "id": 664, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5087:17:0", + "src": "5313:17:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_887bc482e9abfdf76109db32e10c15ef35a028513416621efc881c8a92574313", "typeString": "literal_string \"Recovery failed\"" @@ -56305,7 +58770,7 @@ "typeString": "literal_string \"Recovery failed\"" } ], - "id": 259, + "id": 661, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -56313,13 +58778,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "5069:7:0", + "src": "5295:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 263, + "id": 665, "isConstant": false, "isLValue": false, "isPure": false, @@ -56327,68 +58792,68 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5069:36:0", + "src": "5295:36:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 264, + "id": 666, "nodeType": "ExpressionStatement", - "src": "5069:36:0" + "src": "5295:36:6" }, { "expression": { "hexValue": "74727565", - "id": 265, + "id": 667, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "5122:4:0", + "src": "5348:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 233, - "id": 266, + "functionReturnParameters": 635, + "id": 668, "nodeType": "Return", - "src": "5115:11:0" + "src": "5341:11:6" } ] }, "functionSelector": "a4874d77", - "id": 268, + "id": 670, "implemented": true, "kind": "function", "modifiers": [], "name": "retire", - "nameLocation": "4846:6:0", + "nameLocation": "5072:6:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 230, + "id": 632, "nodeType": "ParameterList", "parameters": [], - "src": "4852:2:0" + "src": "5078:2:6" }, "returnParameters": { - "id": 233, + "id": 635, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 232, + "id": 634, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 268, - "src": "4873:4:0", + "scope": 670, + "src": "5099:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -56396,10 +58861,10 @@ "typeString": "bool" }, "typeName": { - "id": 231, + "id": 633, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "4873:4:0", + "src": "5099:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -56408,167 +58873,167 @@ "visibility": "internal" } ], - "src": "4872:6:0" + "src": "5098:6:6" }, - "scope": 2161, - "src": "4837:296:0", + "scope": 2592, + "src": "5063:296:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 297, + "id": 699, "nodeType": "Block", - "src": "5249:119:0", + "src": "5475:119:6", "statements": [ { "expression": { "components": [ { - "id": 287, + "id": 689, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "5267:4:0", + "referencedDeclaration": 437, + "src": "5493:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 288, + "id": 690, "name": "height", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "5273:6:0", + "referencedDeclaration": 439, + "src": "5499:6:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { - "id": 289, + "id": 691, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "5281:8:0", + "referencedDeclaration": 441, + "src": "5507:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { - "id": 290, + "id": 692, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "5291:2:0", + "referencedDeclaration": 443, + "src": "5517:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { - "id": 291, + "id": 693, "name": "lifespan", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 58, - "src": "5295:8:0", + "referencedDeclaration": 445, + "src": "5521:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { - "id": 292, + "id": 694, "name": "maxOperationsPerInterval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "5305:24:0", + "referencedDeclaration": 447, + "src": "5531:24:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, { - "id": 293, + "id": 695, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "5331:17:0", + "referencedDeclaration": 452, + "src": "5557:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 294, + "id": 696, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "5350:10:0", + "referencedDeclaration": 454, + "src": "5576:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 295, + "id": 697, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5266:95:0", + "src": "5492:95:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bytes32_$_t_uint8_$_t_uint8_$_t_uint32_$_t_uint32_$_t_uint8_$_t_address_payable_$_t_uint256_$", "typeString": "tuple(bytes32,uint8,uint8,uint32,uint32,uint8,address payable,uint256)" } }, - "functionReturnParameters": 286, - "id": 296, + "functionReturnParameters": 688, + "id": 698, "nodeType": "Return", - "src": "5259:102:0" + "src": "5485:102:6" } ] }, "functionSelector": "5a9b0b89", - "id": 298, + "id": 700, "implemented": true, "kind": "function", "modifiers": [], "name": "getInfo", - "nameLocation": "5148:7:0", + "nameLocation": "5374:7:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 269, + "id": 671, "nodeType": "ParameterList", "parameters": [], - "src": "5155:2:0" + "src": "5381:2:6" }, "returnParameters": { - "id": 286, + "id": 688, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 271, + "id": 673, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5181:7:0", + "scope": 700, + "src": "5407:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -56576,10 +59041,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 270, + "id": 672, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5181:7:0", + "src": "5407:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -56589,13 +59054,13 @@ }, { "constant": false, - "id": 273, + "id": 675, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5190:5:0", + "scope": 700, + "src": "5416:5:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -56603,10 +59068,10 @@ "typeString": "uint8" }, "typeName": { - "id": 272, + "id": 674, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5190:5:0", + "src": "5416:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -56616,13 +59081,13 @@ }, { "constant": false, - "id": 275, + "id": 677, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5197:5:0", + "scope": 700, + "src": "5423:5:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -56630,10 +59095,10 @@ "typeString": "uint8" }, "typeName": { - "id": 274, + "id": 676, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5197:5:0", + "src": "5423:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -56643,13 +59108,13 @@ }, { "constant": false, - "id": 277, + "id": 679, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5204:6:0", + "scope": 700, + "src": "5430:6:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -56657,10 +59122,10 @@ "typeString": "uint32" }, "typeName": { - "id": 276, + "id": 678, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5204:6:0", + "src": "5430:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -56670,13 +59135,13 @@ }, { "constant": false, - "id": 279, + "id": 681, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5212:6:0", + "scope": 700, + "src": "5438:6:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -56684,10 +59149,10 @@ "typeString": "uint32" }, "typeName": { - "id": 278, + "id": 680, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5212:6:0", + "src": "5438:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -56697,13 +59162,13 @@ }, { "constant": false, - "id": 281, + "id": 683, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5220:5:0", + "scope": 700, + "src": "5446:5:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -56711,10 +59176,10 @@ "typeString": "uint8" }, "typeName": { - "id": 280, + "id": 682, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5220:5:0", + "src": "5446:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -56724,13 +59189,13 @@ }, { "constant": false, - "id": 283, + "id": 685, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5227:7:0", + "scope": 700, + "src": "5453:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -56738,10 +59203,10 @@ "typeString": "address" }, "typeName": { - "id": 282, + "id": 684, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5227:7:0", + "src": "5453:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -56752,13 +59217,13 @@ }, { "constant": false, - "id": 285, + "id": 687, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 298, - "src": "5236:7:0", + "scope": 700, + "src": "5462:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -56766,10 +59231,10 @@ "typeString": "uint256" }, "typeName": { - "id": 284, + "id": 686, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5236:7:0", + "src": "5462:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -56778,95 +59243,95 @@ "visibility": "internal" } ], - "src": "5180:64:0" + "src": "5406:64:6" }, - "scope": 2161, - "src": "5139:229:0", + "scope": 2592, + "src": "5365:229:6", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 309, + "id": 711, "nodeType": "Block", - "src": "5439:52:0", + "src": "5665:52:6", "statements": [ { "expression": { "components": [ { - "id": 305, + "id": 707, "name": "majorVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 92, - "src": "5457:12:0", + "referencedDeclaration": 481, + "src": "5683:12:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { - "id": 306, + "id": 708, "name": "minorVersion", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 95, - "src": "5471:12:0", + "referencedDeclaration": 484, + "src": "5697:12:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], - "id": 307, + "id": 709, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5456:28:0", + "src": "5682:28:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint32_$_t_uint32_$", "typeString": "tuple(uint32,uint32)" } }, - "functionReturnParameters": 304, - "id": 308, + "functionReturnParameters": 706, + "id": 710, "nodeType": "Return", - "src": "5449:35:0" + "src": "5675:35:6" } ] }, "functionSelector": "0d8e6e2c", - "id": 310, + "id": 712, "implemented": true, "kind": "function", "modifiers": [], "name": "getVersion", - "nameLocation": "5383:10:0", + "nameLocation": "5609:10:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 299, + "id": 701, "nodeType": "ParameterList", "parameters": [], - "src": "5393:2:0" + "src": "5619:2:6" }, "returnParameters": { - "id": 304, + "id": 706, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 301, + "id": 703, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 310, - "src": "5419:6:0", + "scope": 712, + "src": "5645:6:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -56874,10 +59339,10 @@ "typeString": "uint32" }, "typeName": { - "id": 300, + "id": 702, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5419:6:0", + "src": "5645:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -56887,13 +59352,13 @@ }, { "constant": false, - "id": 303, + "id": 705, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 310, - "src": "5427:6:0", + "scope": 712, + "src": "5653:6:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -56901,10 +59366,10 @@ "typeString": "uint32" }, "typeName": { - "id": 302, + "id": 704, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5427:6:0", + "src": "5653:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -56913,95 +59378,95 @@ "visibility": "internal" } ], - "src": "5418:16:0" + "src": "5644:16:6" }, - "scope": 2161, - "src": "5374:117:0", + "scope": 2592, + "src": "5600:117:6", "stateMutability": "pure", "virtual": false, "visibility": "external" }, { "body": { - "id": 321, + "id": 723, "nodeType": "Block", - "src": "5572:53:0", + "src": "5798:53:6", "statements": [ { "expression": { "components": [ { - "id": 317, + "id": 719, "name": "spentToday", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "5590:10:0", + "referencedDeclaration": 456, + "src": "5816:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 318, + "id": 720, "name": "lastTransferDay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "5602:15:0", + "referencedDeclaration": 458, + "src": "5828:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], - "id": 319, + "id": 721, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "5589:29:0", + "src": "5815:29:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_uint256_$_t_uint32_$", "typeString": "tuple(uint256,uint32)" } }, - "functionReturnParameters": 316, - "id": 320, + "functionReturnParameters": 718, + "id": 722, "nodeType": "Return", - "src": "5582:36:0" + "src": "5808:36:6" } ] }, "functionSelector": "2293d3fb", - "id": 322, + "id": 724, "implemented": true, "kind": "function", "modifiers": [], "name": "getCurrentSpending", - "nameLocation": "5506:18:0", + "nameLocation": "5732:18:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 311, + "id": 713, "nodeType": "ParameterList", "parameters": [], - "src": "5524:2:0" + "src": "5750:2:6" }, "returnParameters": { - "id": 316, + "id": 718, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 313, + "id": 715, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 322, - "src": "5550:7:0", + "scope": 724, + "src": "5776:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -57009,10 +59474,10 @@ "typeString": "uint256" }, "typeName": { - "id": 312, + "id": 714, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5550:7:0", + "src": "5776:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -57022,13 +59487,13 @@ }, { "constant": false, - "id": 315, + "id": 717, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 322, - "src": "5559:7:0", + "scope": 724, + "src": "5785:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -57036,10 +59501,10 @@ "typeString": "uint256" }, "typeName": { - "id": 314, + "id": 716, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5559:7:0", + "src": "5785:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -57048,34 +59513,34 @@ "visibility": "internal" } ], - "src": "5549:18:0" + "src": "5775:18:6" }, - "scope": 2161, - "src": "5497:128:0", + "scope": 2592, + "src": "5723:128:6", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 343, + "id": 745, "nodeType": "Block", - "src": "5685:101:0", + "src": "5911:101:6", "statements": [ { "assignments": [ - 328 + 730 ], "declarations": [ { "constant": false, - "id": 328, + "id": 730, "mutability": "mutable", "name": "index", - "nameLocation": "5702:5:0", + "nameLocation": "5928:5:6", "nodeType": "VariableDeclaration", - "scope": 343, - "src": "5695:12:0", + "scope": 745, + "src": "5921:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -57083,10 +59548,10 @@ "typeString": "uint32" }, "typeName": { - "id": 327, + "id": 729, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5695:6:0", + "src": "5921:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -57095,13 +59560,13 @@ "visibility": "internal" } ], - "id": 338, + "id": 740, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 337, + "id": 739, "isConstant": false, "isLValue": false, "isPure": false, @@ -57111,7 +59576,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 335, + "id": 737, "isConstant": false, "isLValue": false, "isPure": false, @@ -57120,25 +59585,25 @@ "arguments": [ { "expression": { - "id": 331, + "id": 733, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "5717:5:0", + "src": "5943:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 332, + "id": 734, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "5717:15:0", + "src": "5943:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -57152,26 +59617,26 @@ "typeString": "uint256" } ], - "id": 330, + "id": 732, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5710:6:0", + "src": "5936:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 329, + "id": 731, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5710:6:0", + "src": "5936:6:6", "typeDescriptions": {} } }, - "id": 333, + "id": 735, "isConstant": false, "isLValue": false, "isPure": false, @@ -57179,7 +59644,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5710:23:0", + "src": "5936:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -57189,18 +59654,18 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 334, + "id": 736, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "5736:8:0", + "referencedDeclaration": 441, + "src": "5962:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "5710:34:0", + "src": "5936:34:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -57209,48 +59674,48 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 336, + "id": 738, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "5747:2:0", + "referencedDeclaration": 443, + "src": "5973:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "5710:39:0", + "src": "5936:39:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "5695:54:0" + "src": "5921:54:6" }, { "expression": { "baseExpression": { - "id": 339, + "id": 741, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "5766:6:0", + "referencedDeclaration": 463, + "src": "5992:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 341, + "id": 743, "indexExpression": { - "id": 340, + "id": 742, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 328, - "src": "5773:5:0", + "referencedDeclaration": 730, + "src": "5999:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -57261,46 +59726,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5766:13:0", + "src": "5992:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "functionReturnParameters": 326, - "id": 342, + "functionReturnParameters": 728, + "id": 744, "nodeType": "Return", - "src": "5759:20:0" + "src": "5985:20:6" } ] }, "functionSelector": "d087d288", - "id": 344, + "id": 746, "implemented": true, "kind": "function", "modifiers": [], "name": "getNonce", - "nameLocation": "5640:8:0", + "nameLocation": "5866:8:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 323, + "id": 725, "nodeType": "ParameterList", "parameters": [], - "src": "5648:2:0" + "src": "5874:2:6" }, "returnParameters": { - "id": 326, + "id": 728, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 325, + "id": 727, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 344, - "src": "5674:5:0", + "scope": 746, + "src": "5900:5:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -57308,10 +59773,10 @@ "typeString": "uint8" }, "typeName": { - "id": 324, + "id": 726, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "5674:5:0", + "src": "5900:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -57320,33 +59785,33 @@ "visibility": "internal" } ], - "src": "5673:7:0" + "src": "5899:7:6" }, - "scope": 2161, - "src": "5631:155:0", + "scope": 2592, + "src": "5857:155:6", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 363, + "id": 765, "nodeType": "Block", - "src": "5904:37:0", + "src": "6130:37:6", "statements": [ { "expression": { "arguments": [ { "hexValue": "44657072656361746564", - "id": 360, + "id": 762, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "5921:12:0", + "src": "6147:12:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b20dc6ef8ce4f94dd03e7dbd2b41776293fb93e4528d85e98acf1bfed3136f73", "typeString": "literal_string \"Deprecated\"" @@ -57361,7 +59826,7 @@ "typeString": "literal_string \"Deprecated\"" } ], - "id": 359, + "id": 761, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -57369,13 +59834,13 @@ 4294967277 ], "referencedDeclaration": 4294967277, - "src": "5914:6:0", + "src": "6140:6:6", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 361, + "id": 763, "isConstant": false, "isLValue": false, "isPure": false, @@ -57383,46 +59848,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5914:20:0", + "src": "6140:20:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 362, + "id": 764, "nodeType": "ExpressionStatement", - "src": "5914:20:0" + "src": "6140:20:6" } ] }, "functionSelector": "2f1f7520", - "id": 364, + "id": 766, "implemented": true, "kind": "function", "modifiers": [], "name": "getCommits", - "nameLocation": "5801:10:0", + "nameLocation": "6027:10:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 345, + "id": 747, "nodeType": "ParameterList", "parameters": [], - "src": "5811:2:0" + "src": "6037:2:6" }, "returnParameters": { - "id": 358, + "id": 760, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 348, + "id": 750, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 364, - "src": "5837:16:0", + "scope": 766, + "src": "6063:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -57431,18 +59896,18 @@ }, "typeName": { "baseType": { - "id": 346, + "id": 748, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5837:7:0", + "src": "6063:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 347, + "id": 749, "nodeType": "ArrayTypeName", - "src": "5837:9:0", + "src": "6063:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -57452,13 +59917,13 @@ }, { "constant": false, - "id": 351, + "id": 753, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 364, - "src": "5855:16:0", + "scope": 766, + "src": "6081:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -57467,18 +59932,18 @@ }, "typeName": { "baseType": { - "id": 349, + "id": 751, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5855:7:0", + "src": "6081:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 350, + "id": 752, "nodeType": "ArrayTypeName", - "src": "5855:9:0", + "src": "6081:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -57488,13 +59953,13 @@ }, { "constant": false, - "id": 354, + "id": 756, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 364, - "src": "5873:15:0", + "scope": 766, + "src": "6099:15:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -57503,18 +59968,18 @@ }, "typeName": { "baseType": { - "id": 352, + "id": 754, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5873:6:0", + "src": "6099:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 353, + "id": 755, "nodeType": "ArrayTypeName", - "src": "5873:8:0", + "src": "6099:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -57524,13 +59989,13 @@ }, { "constant": false, - "id": 357, + "id": 759, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 364, - "src": "5890:13:0", + "scope": 766, + "src": "6116:13:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -57539,18 +60004,18 @@ }, "typeName": { "baseType": { - "id": 355, + "id": 757, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "5890:4:0", + "src": "6116:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 356, + "id": 758, "nodeType": "ArrayTypeName", - "src": "5890:6:0", + "src": "6116:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" @@ -57559,34 +60024,34 @@ "visibility": "internal" } ], - "src": "5836:68:0" + "src": "6062:68:6" }, - "scope": 2161, - "src": "5792:149:0", + "scope": 2592, + "src": "6018:149:6", "stateMutability": "pure", "virtual": false, "visibility": "external" }, { "body": { - "id": 566, + "id": 968, "nodeType": "Block", - "src": "6085:1145:0", + "src": "6311:1145:6", "statements": [ { "assignments": [ - 383 + 785 ], "declarations": [ { "constant": false, - "id": 383, + "id": 785, "mutability": "mutable", "name": "numCommits", - "nameLocation": "6102:10:0", + "nameLocation": "6328:10:6", "nodeType": "VariableDeclaration", - "scope": 566, - "src": "6095:17:0", + "scope": 968, + "src": "6321:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -57594,10 +60059,10 @@ "typeString": "uint32" }, "typeName": { - "id": 382, + "id": 784, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6095:6:0", + "src": "6321:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -57606,17 +60071,17 @@ "visibility": "internal" } ], - "id": 385, + "id": 787, "initialValue": { "hexValue": "30", - "id": 384, + "id": 786, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6115:1:0", + "src": "6341:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -57624,99 +60089,99 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6095:21:0" + "src": "6321:21:6" }, { "body": { - "id": 416, + "id": 818, "nodeType": "Block", - "src": "6170:116:0", + "src": "6396:116:6", "statements": [ { "assignments": [ - 401 + 803 ], "declarations": [ { "constant": false, - "id": 401, + "id": 803, "mutability": "mutable", "name": "cc", - "nameLocation": "6201:2:0", + "nameLocation": "6427:2:6", "nodeType": "VariableDeclaration", - "scope": 416, - "src": "6184:19:0", + "scope": 818, + "src": "6410:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" }, "typeName": { "baseType": { - "id": 399, + "id": 801, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 398, + "id": 800, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "6184:6:0" + "referencedDeclaration": 504, + "src": "6410:6:6" }, - "referencedDeclaration": 114, - "src": "6184:6:0", + "referencedDeclaration": 504, + "src": "6410:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 400, + "id": 802, "nodeType": "ArrayTypeName", - "src": "6184:8:0", + "src": "6410:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } }, "visibility": "internal" } ], - "id": 407, + "id": 809, "initialValue": { "baseExpression": { - "id": 402, + "id": 804, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "6206:12:0", + "referencedDeclaration": 513, + "src": "6432:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 406, + "id": 808, "indexExpression": { "baseExpression": { - "id": 403, + "id": 805, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "6219:7:0", + "referencedDeclaration": 507, + "src": "6445:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 405, + "id": 807, "indexExpression": { - "id": 404, + "id": 806, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "6227:1:0", + "referencedDeclaration": 789, + "src": "6453:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -57727,7 +60192,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6219:10:0", + "src": "6445:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -57738,29 +60203,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6206:24:0", + "src": "6432:24:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "6184:46:0" + "src": "6410:46:6" }, { "expression": { - "id": 414, + "id": 816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 408, + "id": 810, "name": "numCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "6244:10:0", + "referencedDeclaration": 785, + "src": "6470:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -57772,25 +60237,25 @@ "arguments": [ { "expression": { - "id": 411, + "id": 813, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 401, - "src": "6265:2:0", + "referencedDeclaration": 803, + "src": "6491:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 412, + "id": 814, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6265:9:0", + "src": "6491:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -57804,26 +60269,26 @@ "typeString": "uint256" } ], - "id": 410, + "id": 812, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6258:6:0", + "src": "6484:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 409, + "id": 811, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6258:6:0", + "src": "6484:6:6", "typeDescriptions": {} } }, - "id": 413, + "id": 815, "isConstant": false, "isLValue": false, "isPure": false, @@ -57831,22 +60296,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6258:17:0", + "src": "6484:17:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "6244:31:0", + "src": "6470:31:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 415, + "id": 817, "nodeType": "ExpressionStatement", - "src": "6244:31:0" + "src": "6470:31:6" } ] }, @@ -57855,18 +60320,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 393, + "id": 795, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 390, + "id": 792, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "6145:1:0", + "referencedDeclaration": 789, + "src": "6371:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -57876,51 +60341,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 391, + "id": 793, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "6149:7:0", + "referencedDeclaration": 507, + "src": "6375:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 392, + "id": 794, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6149:14:0", + "src": "6375:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6145:18:0", + "src": "6371:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 417, + "id": 819, "initializationExpression": { "assignments": [ - 387 + 789 ], "declarations": [ { "constant": false, - "id": 387, + "id": 789, "mutability": "mutable", "name": "i", - "nameLocation": "6138:1:0", + "nameLocation": "6364:1:6", "nodeType": "VariableDeclaration", - "scope": 417, - "src": "6131:8:0", + "scope": 819, + "src": "6357:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -57928,10 +60393,10 @@ "typeString": "uint32" }, "typeName": { - "id": 386, + "id": 788, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6131:6:0", + "src": "6357:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -57940,17 +60405,17 @@ "visibility": "internal" } ], - "id": 389, + "id": 791, "initialValue": { "hexValue": "30", - "id": 388, + "id": 790, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6142:1:0", + "src": "6368:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -57958,11 +60423,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6131:12:0" + "src": "6357:12:6" }, "loopExpression": { "expression": { - "id": 395, + "id": 797, "isConstant": false, "isLValue": false, "isPure": false, @@ -57970,14 +60435,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6165:3:0", + "src": "6391:3:6", "subExpression": { - "id": 394, + "id": 796, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 387, - "src": "6165:1:0", + "referencedDeclaration": 789, + "src": "6391:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -57988,27 +60453,27 @@ "typeString": "uint32" } }, - "id": 396, + "id": 798, "nodeType": "ExpressionStatement", - "src": "6165:3:0" + "src": "6391:3:6" }, "nodeType": "ForStatement", - "src": "6126:160:0" + "src": "6352:160:6" }, { "assignments": [ - 422 + 824 ], "declarations": [ { "constant": false, - "id": 422, + "id": 824, "mutability": "mutable", "name": "hashes", - "nameLocation": "6312:6:0", + "nameLocation": "6538:6:6", "nodeType": "VariableDeclaration", - "scope": 566, - "src": "6295:23:0", + "scope": 968, + "src": "6521:23:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -58017,18 +60482,18 @@ }, "typeName": { "baseType": { - "id": 420, + "id": 822, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6295:7:0", + "src": "6521:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 421, + "id": 823, "nodeType": "ArrayTypeName", - "src": "6295:9:0", + "src": "6521:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -58037,16 +60502,16 @@ "visibility": "internal" } ], - "id": 428, + "id": 830, "initialValue": { "arguments": [ { - "id": 426, + "id": 828, "name": "numCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "6335:10:0", + "referencedDeclaration": 785, + "src": "6561:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -58060,38 +60525,38 @@ "typeString": "uint32" } ], - "id": 425, + "id": 827, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6321:13:0", + "src": "6547:13:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes32[] memory)" }, "typeName": { "baseType": { - "id": 423, + "id": 825, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6325:7:0", + "src": "6551:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 424, + "id": 826, "nodeType": "ArrayTypeName", - "src": "6325:9:0", + "src": "6551:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" } } }, - "id": 427, + "id": 829, "isConstant": false, "isLValue": false, "isPure": false, @@ -58099,7 +60564,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6321:25:0", + "src": "6547:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", @@ -58107,22 +60572,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6295:51:0" + "src": "6521:51:6" }, { "assignments": [ - 433 + 835 ], "declarations": [ { "constant": false, - "id": 433, + "id": 835, "mutability": "mutable", "name": "paramHashes", - "nameLocation": "6373:11:0", + "nameLocation": "6599:11:6", "nodeType": "VariableDeclaration", - "scope": 566, - "src": "6356:28:0", + "scope": 968, + "src": "6582:28:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -58131,18 +60596,18 @@ }, "typeName": { "baseType": { - "id": 431, + "id": 833, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6356:7:0", + "src": "6582:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 432, + "id": 834, "nodeType": "ArrayTypeName", - "src": "6356:9:0", + "src": "6582:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -58151,16 +60616,16 @@ "visibility": "internal" } ], - "id": 439, + "id": 841, "initialValue": { "arguments": [ { - "id": 437, + "id": 839, "name": "numCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "6401:10:0", + "referencedDeclaration": 785, + "src": "6627:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -58174,38 +60639,38 @@ "typeString": "uint32" } ], - "id": 436, + "id": 838, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6387:13:0", + "src": "6613:13:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes32[] memory)" }, "typeName": { "baseType": { - "id": 434, + "id": 836, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6391:7:0", + "src": "6617:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 435, + "id": 837, "nodeType": "ArrayTypeName", - "src": "6391:9:0", + "src": "6617:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" } } }, - "id": 438, + "id": 840, "isConstant": false, "isLValue": false, "isPure": false, @@ -58213,7 +60678,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6387:25:0", + "src": "6613:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", @@ -58221,22 +60686,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6356:56:0" + "src": "6582:56:6" }, { "assignments": [ - 444 + 846 ], "declarations": [ { "constant": false, - "id": 444, + "id": 846, "mutability": "mutable", "name": "verificationHashes", - "nameLocation": "6439:18:0", + "nameLocation": "6665:18:6", "nodeType": "VariableDeclaration", - "scope": 566, - "src": "6422:35:0", + "scope": 968, + "src": "6648:35:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -58245,18 +60710,18 @@ }, "typeName": { "baseType": { - "id": 442, + "id": 844, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6422:7:0", + "src": "6648:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 443, + "id": 845, "nodeType": "ArrayTypeName", - "src": "6422:9:0", + "src": "6648:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -58265,16 +60730,16 @@ "visibility": "internal" } ], - "id": 450, + "id": 852, "initialValue": { "arguments": [ { - "id": 448, + "id": 850, "name": "numCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "6474:10:0", + "referencedDeclaration": 785, + "src": "6700:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -58288,38 +60753,38 @@ "typeString": "uint32" } ], - "id": 447, + "id": 849, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6460:13:0", + "src": "6686:13:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes32[] memory)" }, "typeName": { "baseType": { - "id": 445, + "id": 847, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6464:7:0", + "src": "6690:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 446, + "id": 848, "nodeType": "ArrayTypeName", - "src": "6464:9:0", + "src": "6690:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" } } }, - "id": 449, + "id": 851, "isConstant": false, "isLValue": false, "isPure": false, @@ -58327,7 +60792,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6460:25:0", + "src": "6686:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", @@ -58335,22 +60800,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6422:63:0" + "src": "6648:63:6" }, { "assignments": [ - 455 + 857 ], "declarations": [ { "constant": false, - "id": 455, + "id": 857, "mutability": "mutable", "name": "timestamps", - "nameLocation": "6511:10:0", + "nameLocation": "6737:10:6", "nodeType": "VariableDeclaration", - "scope": 566, - "src": "6495:26:0", + "scope": 968, + "src": "6721:26:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -58359,18 +60824,18 @@ }, "typeName": { "baseType": { - "id": 453, + "id": 855, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6495:6:0", + "src": "6721:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 454, + "id": 856, "nodeType": "ArrayTypeName", - "src": "6495:8:0", + "src": "6721:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -58379,16 +60844,16 @@ "visibility": "internal" } ], - "id": 461, + "id": 863, "initialValue": { "arguments": [ { - "id": 459, + "id": 861, "name": "numCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "6537:10:0", + "referencedDeclaration": 785, + "src": "6763:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -58402,38 +60867,38 @@ "typeString": "uint32" } ], - "id": 458, + "id": 860, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6524:12:0", + "src": "6750:12:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint32[] memory)" }, "typeName": { "baseType": { - "id": 456, + "id": 858, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6528:6:0", + "src": "6754:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 457, + "id": 859, "nodeType": "ArrayTypeName", - "src": "6528:8:0", + "src": "6754:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" } } }, - "id": 460, + "id": 862, "isConstant": false, "isLValue": false, "isPure": false, @@ -58441,7 +60906,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6524:24:0", + "src": "6750:24:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", @@ -58449,22 +60914,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6495:53:0" + "src": "6721:53:6" }, { "assignments": [ - 466 + 868 ], "declarations": [ { "constant": false, - "id": 466, + "id": 868, "mutability": "mutable", "name": "completed", - "nameLocation": "6572:9:0", + "nameLocation": "6798:9:6", "nodeType": "VariableDeclaration", - "scope": 566, - "src": "6558:23:0", + "scope": 968, + "src": "6784:23:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -58473,18 +60938,18 @@ }, "typeName": { "baseType": { - "id": 464, + "id": 866, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6558:4:0", + "src": "6784:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 465, + "id": 867, "nodeType": "ArrayTypeName", - "src": "6558:6:0", + "src": "6784:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" @@ -58493,16 +60958,16 @@ "visibility": "internal" } ], - "id": 472, + "id": 874, "initialValue": { "arguments": [ { - "id": 470, + "id": 872, "name": "numCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 383, - "src": "6595:10:0", + "referencedDeclaration": 785, + "src": "6821:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -58516,38 +60981,38 @@ "typeString": "uint32" } ], - "id": 469, + "id": 871, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "6584:10:0", + "src": "6810:10:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bool[] memory)" }, "typeName": { "baseType": { - "id": 467, + "id": 869, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6588:4:0", + "src": "6814:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 468, + "id": 870, "nodeType": "ArrayTypeName", - "src": "6588:6:0", + "src": "6814:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" } } }, - "id": 471, + "id": 873, "isConstant": false, "isLValue": false, "isPure": false, @@ -58555,7 +61020,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6584:22:0", + "src": "6810:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", @@ -58563,22 +61028,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6558:48:0" + "src": "6784:48:6" }, { "assignments": [ - 474 + 876 ], "declarations": [ { "constant": false, - "id": 474, + "id": 876, "mutability": "mutable", "name": "index", - "nameLocation": "6623:5:0", + "nameLocation": "6849:5:6", "nodeType": "VariableDeclaration", - "scope": 566, - "src": "6616:12:0", + "scope": 968, + "src": "6842:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -58586,10 +61051,10 @@ "typeString": "uint32" }, "typeName": { - "id": 473, + "id": 875, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6616:6:0", + "src": "6842:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -58598,17 +61063,17 @@ "visibility": "internal" } ], - "id": 476, + "id": 878, "initialValue": { "hexValue": "30", - "id": 475, + "id": 877, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6631:1:0", + "src": "6857:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -58616,99 +61081,99 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6616:16:0" + "src": "6842:16:6" }, { "body": { - "id": 557, + "id": 959, "nodeType": "Block", - "src": "6686:457:0", + "src": "6912:457:6", "statements": [ { "assignments": [ - 492 + 894 ], "declarations": [ { "constant": false, - "id": 492, + "id": 894, "mutability": "mutable", "name": "cc", - "nameLocation": "6717:2:0", + "nameLocation": "6943:2:6", "nodeType": "VariableDeclaration", - "scope": 557, - "src": "6700:19:0", + "scope": 959, + "src": "6926:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" }, "typeName": { "baseType": { - "id": 490, + "id": 892, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 489, + "id": 891, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "6700:6:0" + "referencedDeclaration": 504, + "src": "6926:6:6" }, - "referencedDeclaration": 114, - "src": "6700:6:0", + "referencedDeclaration": 504, + "src": "6926:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 491, + "id": 893, "nodeType": "ArrayTypeName", - "src": "6700:8:0", + "src": "6926:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } }, "visibility": "internal" } ], - "id": 498, + "id": 900, "initialValue": { "baseExpression": { - "id": 493, + "id": 895, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "6722:12:0", + "referencedDeclaration": 513, + "src": "6948:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 497, + "id": 899, "indexExpression": { "baseExpression": { - "id": 494, + "id": 896, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "6735:7:0", + "referencedDeclaration": 507, + "src": "6961:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 496, + "id": 898, "indexExpression": { - "id": 495, + "id": 897, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "6743:1:0", + "referencedDeclaration": 880, + "src": "6969:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -58719,7 +61184,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6735:10:0", + "src": "6961:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -58730,83 +61195,83 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6722:24:0", + "src": "6948:24:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "6700:46:0" + "src": "6926:46:6" }, { "body": { - "id": 555, + "id": 957, "nodeType": "Block", - "src": "6799:334:0", + "src": "7025:334:6", "statements": [ { "assignments": [ - 512 + 914 ], "declarations": [ { "constant": false, - "id": 512, + "id": 914, "mutability": "mutable", "name": "c", - "nameLocation": "6832:1:0", + "nameLocation": "7058:1:6", "nodeType": "VariableDeclaration", - "scope": 555, - "src": "6817:16:0", + "scope": 957, + "src": "7043:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 511, + "id": 913, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 510, + "id": 912, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "6817:6:0" + "referencedDeclaration": 504, + "src": "7043:6:6" }, - "referencedDeclaration": 114, - "src": "6817:6:0", + "referencedDeclaration": 504, + "src": "7043:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, "visibility": "internal" } ], - "id": 516, + "id": 918, "initialValue": { "baseExpression": { - "id": 513, + "id": 915, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 492, - "src": "6836:2:0", + "referencedDeclaration": 894, + "src": "7062:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 515, + "id": 917, "indexExpression": { - "id": 514, + "id": 916, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 500, - "src": "6839:1:0", + "referencedDeclaration": 902, + "src": "7065:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -58817,43 +61282,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6836:5:0", + "src": "7062:5:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage", + "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "6817:24:0" + "src": "7043:24:6" }, { "expression": { - "id": 522, + "id": 924, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 517, + "id": 919, "name": "hashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "6859:6:0", + "referencedDeclaration": 824, + "src": "7085:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 519, + "id": 921, "indexExpression": { - "id": 518, + "id": 920, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "6866:5:0", + "referencedDeclaration": 876, + "src": "7092:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -58864,7 +61329,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6859:13:0", + "src": "7085:13:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -58874,69 +61339,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 520, + "id": 922, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "6875:1:0", + "referencedDeclaration": 914, + "src": "7101:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 521, + "id": 923, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "hash", "nodeType": "MemberAccess", - "referencedDeclaration": 105, - "src": "6875:6:0", + "referencedDeclaration": 495, + "src": "7101:6:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "6859:22:0", + "src": "7085:22:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 523, + "id": 925, "nodeType": "ExpressionStatement", - "src": "6859:22:0" + "src": "7085:22:6" }, { "expression": { - "id": 529, + "id": 931, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 524, + "id": 926, "name": "paramHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 433, - "src": "6899:11:0", + "referencedDeclaration": 835, + "src": "7125:11:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 526, + "id": 928, "indexExpression": { - "id": 525, + "id": 927, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "6911:5:0", + "referencedDeclaration": 876, + "src": "7137:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -58947,7 +61412,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6899:18:0", + "src": "7125:18:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -58957,69 +61422,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 527, + "id": 929, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "6920:1:0", + "referencedDeclaration": 914, + "src": "7146:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 528, + "id": 930, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paramsHash", "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "6920:12:0", + "referencedDeclaration": 497, + "src": "7146:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "6899:33:0", + "src": "7125:33:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 530, + "id": 932, "nodeType": "ExpressionStatement", - "src": "6899:33:0" + "src": "7125:33:6" }, { "expression": { - "id": 536, + "id": 938, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 531, + "id": 933, "name": "verificationHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 444, - "src": "6950:18:0", + "referencedDeclaration": 846, + "src": "7176:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 533, + "id": 935, "indexExpression": { - "id": 532, + "id": 934, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "6969:5:0", + "referencedDeclaration": 876, + "src": "7195:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -59030,7 +61495,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6950:25:0", + "src": "7176:25:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -59040,69 +61505,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 534, + "id": 936, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "6978:1:0", + "referencedDeclaration": 914, + "src": "7204:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 535, + "id": 937, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "verificationHash", "nodeType": "MemberAccess", - "referencedDeclaration": 109, - "src": "6978:18:0", + "referencedDeclaration": 499, + "src": "7204:18:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "6950:46:0", + "src": "7176:46:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 537, + "id": 939, "nodeType": "ExpressionStatement", - "src": "6950:46:0" + "src": "7176:46:6" }, { "expression": { - "id": 543, + "id": 945, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 538, + "id": 940, "name": "timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 455, - "src": "7014:10:0", + "referencedDeclaration": 857, + "src": "7240:10:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 540, + "id": 942, "indexExpression": { - "id": 539, + "id": 941, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "7025:5:0", + "referencedDeclaration": 876, + "src": "7251:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -59113,7 +61578,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7014:17:0", + "src": "7240:17:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -59123,69 +61588,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 541, + "id": 943, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "7034:1:0", + "referencedDeclaration": 914, + "src": "7260:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 542, + "id": 944, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 111, - "src": "7034:11:0", + "referencedDeclaration": 501, + "src": "7260:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "7014:31:0", + "src": "7240:31:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 544, + "id": 946, "nodeType": "ExpressionStatement", - "src": "7014:31:0" + "src": "7240:31:6" }, { "expression": { - "id": 550, + "id": 952, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 545, + "id": 947, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 466, - "src": "7063:9:0", + "referencedDeclaration": 868, + "src": "7289:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory" } }, - "id": 547, + "id": 949, "indexExpression": { - "id": 546, + "id": 948, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "7073:5:0", + "referencedDeclaration": 876, + "src": "7299:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -59196,7 +61661,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7063:16:0", + "src": "7289:16:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -59206,44 +61671,44 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 548, + "id": 950, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 512, - "src": "7082:1:0", + "referencedDeclaration": 914, + "src": "7308:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 549, + "id": 951, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "completed", "nodeType": "MemberAccess", - "referencedDeclaration": 113, - "src": "7082:11:0", + "referencedDeclaration": 503, + "src": "7308:11:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "7063:30:0", + "src": "7289:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 551, + "id": 953, "nodeType": "ExpressionStatement", - "src": "7063:30:0" + "src": "7289:30:6" }, { "expression": { - "id": 553, + "id": 955, "isConstant": false, "isLValue": false, "isPure": false, @@ -59251,14 +61716,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "7111:7:0", + "src": "7337:7:6", "subExpression": { - "id": 552, + "id": 954, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 474, - "src": "7111:5:0", + "referencedDeclaration": 876, + "src": "7337:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -59269,9 +61734,9 @@ "typeString": "uint32" } }, - "id": 554, + "id": 956, "nodeType": "ExpressionStatement", - "src": "7111:7:0" + "src": "7337:7:6" } ] }, @@ -59280,18 +61745,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 506, + "id": 908, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 503, + "id": 905, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 500, - "src": "6779:1:0", + "referencedDeclaration": 902, + "src": "7005:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -59301,51 +61766,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 504, + "id": 906, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 492, - "src": "6783:2:0", + "referencedDeclaration": 894, + "src": "7009:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 505, + "id": 907, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6783:9:0", + "src": "7009:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6779:13:0", + "src": "7005:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 556, + "id": 958, "initializationExpression": { "assignments": [ - 500 + 902 ], "declarations": [ { "constant": false, - "id": 500, + "id": 902, "mutability": "mutable", "name": "j", - "nameLocation": "6772:1:0", + "nameLocation": "6998:1:6", "nodeType": "VariableDeclaration", - "scope": 556, - "src": "6765:8:0", + "scope": 958, + "src": "6991:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -59353,10 +61818,10 @@ "typeString": "uint32" }, "typeName": { - "id": 499, + "id": 901, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6765:6:0", + "src": "6991:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -59365,17 +61830,17 @@ "visibility": "internal" } ], - "id": 502, + "id": 904, "initialValue": { "hexValue": "30", - "id": 501, + "id": 903, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6776:1:0", + "src": "7002:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -59383,11 +61848,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6765:12:0" + "src": "6991:12:6" }, "loopExpression": { "expression": { - "id": 508, + "id": 910, "isConstant": false, "isLValue": false, "isPure": false, @@ -59395,14 +61860,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6794:3:0", + "src": "7020:3:6", "subExpression": { - "id": 507, + "id": 909, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 500, - "src": "6794:1:0", + "referencedDeclaration": 902, + "src": "7020:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -59413,12 +61878,12 @@ "typeString": "uint32" } }, - "id": 509, + "id": 911, "nodeType": "ExpressionStatement", - "src": "6794:3:0" + "src": "7020:3:6" }, "nodeType": "ForStatement", - "src": "6760:373:0" + "src": "6986:373:6" } ] }, @@ -59427,18 +61892,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 484, + "id": 886, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 481, + "id": 883, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "6661:1:0", + "referencedDeclaration": 880, + "src": "6887:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -59448,51 +61913,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 482, + "id": 884, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "6665:7:0", + "referencedDeclaration": 507, + "src": "6891:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 483, + "id": 885, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6665:14:0", + "src": "6891:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6661:18:0", + "src": "6887:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 558, + "id": 960, "initializationExpression": { "assignments": [ - 478 + 880 ], "declarations": [ { "constant": false, - "id": 478, + "id": 880, "mutability": "mutable", "name": "i", - "nameLocation": "6654:1:0", + "nameLocation": "6880:1:6", "nodeType": "VariableDeclaration", - "scope": 558, - "src": "6647:8:0", + "scope": 960, + "src": "6873:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -59500,10 +61965,10 @@ "typeString": "uint32" }, "typeName": { - "id": 477, + "id": 879, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6647:6:0", + "src": "6873:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -59512,17 +61977,17 @@ "visibility": "internal" } ], - "id": 480, + "id": 882, "initialValue": { "hexValue": "30", - "id": 479, + "id": 881, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6658:1:0", + "src": "6884:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -59530,11 +61995,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6647:12:0" + "src": "6873:12:6" }, "loopExpression": { "expression": { - "id": 486, + "id": 888, "isConstant": false, "isLValue": false, "isPure": false, @@ -59542,14 +62007,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6681:3:0", + "src": "6907:3:6", "subExpression": { - "id": 485, + "id": 887, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 478, - "src": "6681:1:0", + "referencedDeclaration": 880, + "src": "6907:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -59560,124 +62025,124 @@ "typeString": "uint32" } }, - "id": 487, + "id": 889, "nodeType": "ExpressionStatement", - "src": "6681:3:0" + "src": "6907:3:6" }, "nodeType": "ForStatement", - "src": "6642:501:0" + "src": "6868:501:6" }, { "expression": { "components": [ { - "id": 559, + "id": 961, "name": "hashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 422, - "src": "7160:6:0", + "referencedDeclaration": 824, + "src": "7386:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, { - "id": 560, + "id": 962, "name": "paramHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 433, - "src": "7168:11:0", + "referencedDeclaration": 835, + "src": "7394:11:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, { - "id": 561, + "id": 963, "name": "verificationHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 444, - "src": "7181:18:0", + "referencedDeclaration": 846, + "src": "7407:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, { - "id": 562, + "id": 964, "name": "timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 455, - "src": "7201:10:0", + "referencedDeclaration": 857, + "src": "7427:10:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, { - "id": 563, + "id": 965, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 466, - "src": "7213:9:0", + "referencedDeclaration": 868, + "src": "7439:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory" } } ], - "id": 564, + "id": 966, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "7159:64:0", + "src": "7385:64:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$", "typeString": "tuple(bytes32[] memory,bytes32[] memory,bytes32[] memory,uint32[] memory,bool[] memory)" } }, - "functionReturnParameters": 381, - "id": 565, + "functionReturnParameters": 783, + "id": 967, "nodeType": "Return", - "src": "7152:71:0" + "src": "7378:71:6" } ] }, "functionSelector": "a17027e1", - "id": 567, + "id": 969, "implemented": true, "kind": "function", "modifiers": [], "name": "getAllCommits", - "nameLocation": "5956:13:0", + "nameLocation": "6182:13:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 365, + "id": 767, "nodeType": "ParameterList", "parameters": [], - "src": "5969:2:0" + "src": "6195:2:6" }, "returnParameters": { - "id": 381, + "id": 783, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 368, + "id": 770, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 567, - "src": "5995:16:0", + "scope": 969, + "src": "6221:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -59686,18 +62151,18 @@ }, "typeName": { "baseType": { - "id": 366, + "id": 768, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5995:7:0", + "src": "6221:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 367, + "id": 769, "nodeType": "ArrayTypeName", - "src": "5995:9:0", + "src": "6221:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -59707,13 +62172,13 @@ }, { "constant": false, - "id": 371, + "id": 773, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 567, - "src": "6013:16:0", + "scope": 969, + "src": "6239:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -59722,18 +62187,18 @@ }, "typeName": { "baseType": { - "id": 369, + "id": 771, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6013:7:0", + "src": "6239:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 370, + "id": 772, "nodeType": "ArrayTypeName", - "src": "6013:9:0", + "src": "6239:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -59743,13 +62208,13 @@ }, { "constant": false, - "id": 374, + "id": 776, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 567, - "src": "6031:16:0", + "scope": 969, + "src": "6257:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -59758,18 +62223,18 @@ }, "typeName": { "baseType": { - "id": 372, + "id": 774, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6031:7:0", + "src": "6257:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 373, + "id": 775, "nodeType": "ArrayTypeName", - "src": "6031:9:0", + "src": "6257:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -59779,13 +62244,13 @@ }, { "constant": false, - "id": 377, + "id": 779, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 567, - "src": "6049:15:0", + "scope": 969, + "src": "6275:15:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -59794,18 +62259,18 @@ }, "typeName": { "baseType": { - "id": 375, + "id": 777, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6049:6:0", + "src": "6275:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 376, + "id": 778, "nodeType": "ArrayTypeName", - "src": "6049:8:0", + "src": "6275:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -59815,13 +62280,13 @@ }, { "constant": false, - "id": 380, + "id": 782, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 567, - "src": "6066:13:0", + "scope": 969, + "src": "6292:13:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -59830,18 +62295,18 @@ }, "typeName": { "baseType": { - "id": 378, + "id": 780, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "6066:4:0", + "src": "6292:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 379, + "id": 781, "nodeType": "ArrayTypeName", - "src": "6066:6:0", + "src": "6292:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" @@ -59850,33 +62315,33 @@ "visibility": "internal" } ], - "src": "5994:86:0" + "src": "6220:86:6" }, - "scope": 2161, - "src": "5947:1283:0", + "scope": 2592, + "src": "6173:1283:6", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 584, + "id": 986, "nodeType": "Block", - "src": "7328:37:0", + "src": "7554:37:6", "statements": [ { "expression": { "arguments": [ { "hexValue": "44657072656361746564", - "id": 581, + "id": 983, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "7345:12:0", + "src": "7571:12:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b20dc6ef8ce4f94dd03e7dbd2b41776293fb93e4528d85e98acf1bfed3136f73", "typeString": "literal_string \"Deprecated\"" @@ -59891,7 +62356,7 @@ "typeString": "literal_string \"Deprecated\"" } ], - "id": 580, + "id": 982, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -59899,13 +62364,13 @@ 4294967277 ], "referencedDeclaration": 4294967277, - "src": "7338:6:0", + "src": "7564:6:6", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 582, + "id": 984, "isConstant": false, "isLValue": false, "isPure": false, @@ -59913,40 +62378,40 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7338:20:0", + "src": "7564:20:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 583, + "id": 985, "nodeType": "ExpressionStatement", - "src": "7338:20:0" + "src": "7564:20:6" } ] }, "functionSelector": "1cf4ea05", - "id": 585, + "id": 987, "implemented": true, "kind": "function", "modifiers": [], "name": "findCommit", - "nameLocation": "7245:10:0", + "nameLocation": "7471:10:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 570, + "id": 972, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 569, + "id": 971, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "7256:7:0", + "scope": 987, + "src": "7482:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -59954,10 +62419,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 568, + "id": 970, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7256:7:0", + "src": "7482:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -59966,21 +62431,21 @@ "visibility": "internal" } ], - "src": "7255:18:0" + "src": "7481:18:6" }, "returnParameters": { - "id": 579, + "id": 981, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 572, + "id": 974, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "7297:7:0", + "scope": 987, + "src": "7523:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -59988,10 +62453,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 571, + "id": 973, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7297:7:0", + "src": "7523:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -60001,13 +62466,13 @@ }, { "constant": false, - "id": 574, + "id": 976, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "7306:7:0", + "scope": 987, + "src": "7532:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -60015,10 +62480,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 573, + "id": 975, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7306:7:0", + "src": "7532:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -60028,13 +62493,13 @@ }, { "constant": false, - "id": 576, + "id": 978, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "7315:6:0", + "scope": 987, + "src": "7541:6:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -60042,10 +62507,10 @@ "typeString": "uint32" }, "typeName": { - "id": 575, + "id": 977, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7315:6:0", + "src": "7541:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -60055,13 +62520,13 @@ }, { "constant": false, - "id": 578, + "id": 980, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 585, - "src": "7323:4:0", + "scope": 987, + "src": "7549:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -60069,10 +62534,10 @@ "typeString": "bool" }, "typeName": { - "id": 577, + "id": 979, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7323:4:0", + "src": "7549:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -60081,91 +62546,91 @@ "visibility": "internal" } ], - "src": "7296:32:0" + "src": "7522:32:6" }, - "scope": 2161, - "src": "7236:129:0", + "scope": 2592, + "src": "7462:129:6", "stateMutability": "pure", "virtual": false, "visibility": "external" }, { "body": { - "id": 736, + "id": 1138, "nodeType": "Block", - "src": "7515:763:0", + "src": "7741:763:6", "statements": [ { "assignments": [ - 609 + 1011 ], "declarations": [ { "constant": false, - "id": 609, + "id": 1011, "mutability": "mutable", "name": "cc", - "nameLocation": "7542:2:0", + "nameLocation": "7768:2:6", "nodeType": "VariableDeclaration", - "scope": 736, - "src": "7525:19:0", + "scope": 1138, + "src": "7751:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" }, "typeName": { "baseType": { - "id": 607, + "id": 1009, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 606, + "id": 1008, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "7525:6:0" + "referencedDeclaration": 504, + "src": "7751:6:6" }, - "referencedDeclaration": 114, - "src": "7525:6:0", + "referencedDeclaration": 504, + "src": "7751:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 608, + "id": 1010, "nodeType": "ArrayTypeName", - "src": "7525:8:0", + "src": "7751:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } }, "visibility": "internal" } ], - "id": 613, + "id": 1015, "initialValue": { "baseExpression": { - "id": 610, + "id": 1012, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "7547:12:0", + "referencedDeclaration": 513, + "src": "7773:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 612, + "id": 1014, "indexExpression": { - "id": 611, + "id": 1013, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 587, - "src": "7560:4:0", + "referencedDeclaration": 989, + "src": "7786:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -60176,29 +62641,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7547:18:0", + "src": "7773:18:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "7525:40:0" + "src": "7751:40:6" }, { "assignments": [ - 618 + 1020 ], "declarations": [ { "constant": false, - "id": 618, + "id": 1020, "mutability": "mutable", "name": "hashes", - "nameLocation": "7592:6:0", + "nameLocation": "7818:6:6", "nodeType": "VariableDeclaration", - "scope": 736, - "src": "7575:23:0", + "scope": 1138, + "src": "7801:23:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -60207,18 +62672,18 @@ }, "typeName": { "baseType": { - "id": 616, + "id": 1018, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7575:7:0", + "src": "7801:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 617, + "id": 1019, "nodeType": "ArrayTypeName", - "src": "7575:9:0", + "src": "7801:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -60227,30 +62692,30 @@ "visibility": "internal" } ], - "id": 625, + "id": 1027, "initialValue": { "arguments": [ { "expression": { - "id": 622, + "id": 1024, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "7615:2:0", + "referencedDeclaration": 1011, + "src": "7841:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 623, + "id": 1025, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7615:9:0", + "src": "7841:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -60264,38 +62729,38 @@ "typeString": "uint256" } ], - "id": 621, + "id": 1023, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7601:13:0", + "src": "7827:13:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes32[] memory)" }, "typeName": { "baseType": { - "id": 619, + "id": 1021, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7605:7:0", + "src": "7831:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 620, + "id": 1022, "nodeType": "ArrayTypeName", - "src": "7605:9:0", + "src": "7831:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" } } }, - "id": 624, + "id": 1026, "isConstant": false, "isLValue": false, "isPure": false, @@ -60303,7 +62768,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7601:24:0", + "src": "7827:24:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", @@ -60311,22 +62776,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7575:50:0" + "src": "7801:50:6" }, { "assignments": [ - 630 + 1032 ], "declarations": [ { "constant": false, - "id": 630, + "id": 1032, "mutability": "mutable", "name": "paramHashes", - "nameLocation": "7652:11:0", + "nameLocation": "7878:11:6", "nodeType": "VariableDeclaration", - "scope": 736, - "src": "7635:28:0", + "scope": 1138, + "src": "7861:28:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -60335,18 +62800,18 @@ }, "typeName": { "baseType": { - "id": 628, + "id": 1030, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7635:7:0", + "src": "7861:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 629, + "id": 1031, "nodeType": "ArrayTypeName", - "src": "7635:9:0", + "src": "7861:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -60355,30 +62820,30 @@ "visibility": "internal" } ], - "id": 637, + "id": 1039, "initialValue": { "arguments": [ { "expression": { - "id": 634, + "id": 1036, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "7680:2:0", + "referencedDeclaration": 1011, + "src": "7906:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 635, + "id": 1037, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7680:9:0", + "src": "7906:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -60392,38 +62857,38 @@ "typeString": "uint256" } ], - "id": 633, + "id": 1035, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7666:13:0", + "src": "7892:13:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes32[] memory)" }, "typeName": { "baseType": { - "id": 631, + "id": 1033, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7670:7:0", + "src": "7896:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 632, + "id": 1034, "nodeType": "ArrayTypeName", - "src": "7670:9:0", + "src": "7896:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" } } }, - "id": 636, + "id": 1038, "isConstant": false, "isLValue": false, "isPure": false, @@ -60431,7 +62896,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7666:24:0", + "src": "7892:24:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", @@ -60439,22 +62904,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7635:55:0" + "src": "7861:55:6" }, { "assignments": [ - 642 + 1044 ], "declarations": [ { "constant": false, - "id": 642, + "id": 1044, "mutability": "mutable", "name": "verificationHashes", - "nameLocation": "7717:18:0", + "nameLocation": "7943:18:6", "nodeType": "VariableDeclaration", - "scope": 736, - "src": "7700:35:0", + "scope": 1138, + "src": "7926:35:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -60463,18 +62928,18 @@ }, "typeName": { "baseType": { - "id": 640, + "id": 1042, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7700:7:0", + "src": "7926:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 641, + "id": 1043, "nodeType": "ArrayTypeName", - "src": "7700:9:0", + "src": "7926:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -60483,30 +62948,30 @@ "visibility": "internal" } ], - "id": 649, + "id": 1051, "initialValue": { "arguments": [ { "expression": { - "id": 646, + "id": 1048, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "7752:2:0", + "referencedDeclaration": 1011, + "src": "7978:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 647, + "id": 1049, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7752:9:0", + "src": "7978:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -60520,38 +62985,38 @@ "typeString": "uint256" } ], - "id": 645, + "id": 1047, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7738:13:0", + "src": "7964:13:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bytes32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bytes32[] memory)" }, "typeName": { "baseType": { - "id": 643, + "id": 1045, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7742:7:0", + "src": "7968:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 644, + "id": 1046, "nodeType": "ArrayTypeName", - "src": "7742:9:0", + "src": "7968:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" } } }, - "id": 648, + "id": 1050, "isConstant": false, "isLValue": false, "isPure": false, @@ -60559,7 +63024,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7738:24:0", + "src": "7964:24:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", @@ -60567,22 +63032,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7700:62:0" + "src": "7926:62:6" }, { "assignments": [ - 654 + 1056 ], "declarations": [ { "constant": false, - "id": 654, + "id": 1056, "mutability": "mutable", "name": "timestamps", - "nameLocation": "7788:10:0", + "nameLocation": "8014:10:6", "nodeType": "VariableDeclaration", - "scope": 736, - "src": "7772:26:0", + "scope": 1138, + "src": "7998:26:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -60591,18 +63056,18 @@ }, "typeName": { "baseType": { - "id": 652, + "id": 1054, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7772:6:0", + "src": "7998:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 653, + "id": 1055, "nodeType": "ArrayTypeName", - "src": "7772:8:0", + "src": "7998:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -60611,30 +63076,30 @@ "visibility": "internal" } ], - "id": 661, + "id": 1063, "initialValue": { "arguments": [ { "expression": { - "id": 658, + "id": 1060, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "7814:2:0", + "referencedDeclaration": 1011, + "src": "8040:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 659, + "id": 1061, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7814:9:0", + "src": "8040:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -60648,38 +63113,38 @@ "typeString": "uint256" } ], - "id": 657, + "id": 1059, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7801:12:0", + "src": "8027:12:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint32[] memory)" }, "typeName": { "baseType": { - "id": 655, + "id": 1057, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7805:6:0", + "src": "8031:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 656, + "id": 1058, "nodeType": "ArrayTypeName", - "src": "7805:8:0", + "src": "8031:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" } } }, - "id": 660, + "id": 1062, "isConstant": false, "isLValue": false, "isPure": false, @@ -60687,7 +63152,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7801:23:0", + "src": "8027:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", @@ -60695,22 +63160,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7772:52:0" + "src": "7998:52:6" }, { "assignments": [ - 666 + 1068 ], "declarations": [ { "constant": false, - "id": 666, + "id": 1068, "mutability": "mutable", "name": "completed", - "nameLocation": "7848:9:0", + "nameLocation": "8074:9:6", "nodeType": "VariableDeclaration", - "scope": 736, - "src": "7834:23:0", + "scope": 1138, + "src": "8060:23:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -60719,18 +63184,18 @@ }, "typeName": { "baseType": { - "id": 664, + "id": 1066, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7834:4:0", + "src": "8060:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 665, + "id": 1067, "nodeType": "ArrayTypeName", - "src": "7834:6:0", + "src": "8060:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" @@ -60739,30 +63204,30 @@ "visibility": "internal" } ], - "id": 673, + "id": 1075, "initialValue": { "arguments": [ { "expression": { - "id": 670, + "id": 1072, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "7871:2:0", + "referencedDeclaration": 1011, + "src": "8097:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 671, + "id": 1073, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7871:9:0", + "src": "8097:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -60776,38 +63241,38 @@ "typeString": "uint256" } ], - "id": 669, + "id": 1071, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "7860:10:0", + "src": "8086:10:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_bool_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (bool[] memory)" }, "typeName": { "baseType": { - "id": 667, + "id": 1069, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7864:4:0", + "src": "8090:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 668, + "id": 1070, "nodeType": "ArrayTypeName", - "src": "7864:6:0", + "src": "8090:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" } } }, - "id": 672, + "id": 1074, "isConstant": false, "isLValue": false, "isPure": false, @@ -60815,7 +63280,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7860:21:0", + "src": "8086:21:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", @@ -60823,76 +63288,76 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7834:47:0" + "src": "8060:47:6" }, { "body": { - "id": 727, + "id": 1129, "nodeType": "Block", - "src": "7930:261:0", + "src": "8156:261:6", "statements": [ { "assignments": [ - 687 + 1089 ], "declarations": [ { "constant": false, - "id": 687, + "id": 1089, "mutability": "mutable", "name": "c", - "nameLocation": "7959:1:0", + "nameLocation": "8185:1:6", "nodeType": "VariableDeclaration", - "scope": 727, - "src": "7944:16:0", + "scope": 1129, + "src": "8170:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 686, + "id": 1088, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 685, + "id": 1087, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "7944:6:0" + "referencedDeclaration": 504, + "src": "8170:6:6" }, - "referencedDeclaration": 114, - "src": "7944:6:0", + "referencedDeclaration": 504, + "src": "8170:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, "visibility": "internal" } ], - "id": 691, + "id": 1093, "initialValue": { "baseExpression": { - "id": 688, + "id": 1090, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "7963:2:0", + "referencedDeclaration": 1011, + "src": "8189:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 690, + "id": 1092, "indexExpression": { - "id": 689, + "id": 1091, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "7966:1:0", + "referencedDeclaration": 1077, + "src": "8192:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -60903,43 +63368,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7963:5:0", + "src": "8189:5:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage", + "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "7944:24:0" + "src": "8170:24:6" }, { "expression": { - "id": 697, + "id": 1099, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 692, + "id": 1094, "name": "hashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "7982:6:0", + "referencedDeclaration": 1020, + "src": "8208:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 694, + "id": 1096, "indexExpression": { - "id": 693, + "id": 1095, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "7989:1:0", + "referencedDeclaration": 1077, + "src": "8215:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -60950,7 +63415,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7982:9:0", + "src": "8208:9:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -60960,69 +63425,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 695, + "id": 1097, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "7994:1:0", + "referencedDeclaration": 1089, + "src": "8220:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 696, + "id": 1098, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "hash", "nodeType": "MemberAccess", - "referencedDeclaration": 105, - "src": "7994:6:0", + "referencedDeclaration": 495, + "src": "8220:6:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "7982:18:0", + "src": "8208:18:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 698, + "id": 1100, "nodeType": "ExpressionStatement", - "src": "7982:18:0" + "src": "8208:18:6" }, { "expression": { - "id": 704, + "id": 1106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 699, + "id": 1101, "name": "paramHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "8014:11:0", + "referencedDeclaration": 1032, + "src": "8240:11:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 701, + "id": 1103, "indexExpression": { - "id": 700, + "id": 1102, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "8026:1:0", + "referencedDeclaration": 1077, + "src": "8252:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -61033,7 +63498,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8014:14:0", + "src": "8240:14:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -61043,69 +63508,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 702, + "id": 1104, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "8031:1:0", + "referencedDeclaration": 1089, + "src": "8257:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 703, + "id": 1105, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paramsHash", "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "8031:12:0", + "referencedDeclaration": 497, + "src": "8257:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8014:29:0", + "src": "8240:29:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 705, + "id": 1107, "nodeType": "ExpressionStatement", - "src": "8014:29:0" + "src": "8240:29:6" }, { "expression": { - "id": 711, + "id": 1113, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 706, + "id": 1108, "name": "verificationHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "8057:18:0", + "referencedDeclaration": 1044, + "src": "8283:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, - "id": 708, + "id": 1110, "indexExpression": { - "id": 707, + "id": 1109, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "8076:1:0", + "referencedDeclaration": 1077, + "src": "8302:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -61116,7 +63581,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8057:21:0", + "src": "8283:21:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -61126,69 +63591,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 709, + "id": 1111, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "8081:1:0", + "referencedDeclaration": 1089, + "src": "8307:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 710, + "id": 1112, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "verificationHash", "nodeType": "MemberAccess", - "referencedDeclaration": 109, - "src": "8081:18:0", + "referencedDeclaration": 499, + "src": "8307:18:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "8057:42:0", + "src": "8283:42:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 712, + "id": 1114, "nodeType": "ExpressionStatement", - "src": "8057:42:0" + "src": "8283:42:6" }, { "expression": { - "id": 718, + "id": 1120, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 713, + "id": 1115, "name": "timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "8113:10:0", + "referencedDeclaration": 1056, + "src": "8339:10:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 715, + "id": 1117, "indexExpression": { - "id": 714, + "id": 1116, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "8124:1:0", + "referencedDeclaration": 1077, + "src": "8350:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -61199,7 +63664,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8113:13:0", + "src": "8339:13:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -61209,69 +63674,69 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 716, + "id": 1118, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "8129:1:0", + "referencedDeclaration": 1089, + "src": "8355:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 717, + "id": 1119, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 111, - "src": "8129:11:0", + "referencedDeclaration": 501, + "src": "8355:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "8113:27:0", + "src": "8339:27:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 719, + "id": 1121, "nodeType": "ExpressionStatement", - "src": "8113:27:0" + "src": "8339:27:6" }, { "expression": { - "id": 725, + "id": 1127, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 720, + "id": 1122, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "8154:9:0", + "referencedDeclaration": 1068, + "src": "8380:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory" } }, - "id": 722, + "id": 1124, "indexExpression": { - "id": 721, + "id": 1123, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "8164:1:0", + "referencedDeclaration": 1077, + "src": "8390:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -61282,7 +63747,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8154:12:0", + "src": "8380:12:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -61292,40 +63757,40 @@ "operator": "=", "rightHandSide": { "expression": { - "id": 723, + "id": 1125, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 687, - "src": "8169:1:0", + "referencedDeclaration": 1089, + "src": "8395:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 724, + "id": 1126, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "completed", "nodeType": "MemberAccess", - "referencedDeclaration": 113, - "src": "8169:11:0", + "referencedDeclaration": 503, + "src": "8395:11:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "8154:26:0", + "src": "8380:26:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 726, + "id": 1128, "nodeType": "ExpressionStatement", - "src": "8154:26:0" + "src": "8380:26:6" } ] }, @@ -61334,18 +63799,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 681, + "id": 1083, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 678, + "id": 1080, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "7910:1:0", + "referencedDeclaration": 1077, + "src": "8136:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -61355,51 +63820,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 679, + "id": 1081, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 609, - "src": "7914:2:0", + "referencedDeclaration": 1011, + "src": "8140:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 680, + "id": 1082, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7914:9:0", + "src": "8140:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7910:13:0", + "src": "8136:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 728, + "id": 1130, "initializationExpression": { "assignments": [ - 675 + 1077 ], "declarations": [ { "constant": false, - "id": 675, + "id": 1077, "mutability": "mutable", "name": "i", - "nameLocation": "7903:1:0", + "nameLocation": "8129:1:6", "nodeType": "VariableDeclaration", - "scope": 728, - "src": "7896:8:0", + "scope": 1130, + "src": "8122:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -61407,10 +63872,10 @@ "typeString": "uint32" }, "typeName": { - "id": 674, + "id": 1076, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7896:6:0", + "src": "8122:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -61419,17 +63884,17 @@ "visibility": "internal" } ], - "id": 677, + "id": 1079, "initialValue": { "hexValue": "30", - "id": 676, + "id": 1078, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7907:1:0", + "src": "8133:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -61437,11 +63902,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "7896:12:0" + "src": "8122:12:6" }, "loopExpression": { "expression": { - "id": 683, + "id": 1085, "isConstant": false, "isLValue": false, "isPure": false, @@ -61449,14 +63914,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "7925:3:0", + "src": "8151:3:6", "subExpression": { - "id": 682, + "id": 1084, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 675, - "src": "7925:1:0", + "referencedDeclaration": 1077, + "src": "8151:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -61467,118 +63932,118 @@ "typeString": "uint32" } }, - "id": 684, + "id": 1086, "nodeType": "ExpressionStatement", - "src": "7925:3:0" + "src": "8151:3:6" }, "nodeType": "ForStatement", - "src": "7891:300:0" + "src": "8117:300:6" }, { "expression": { "components": [ { - "id": 729, + "id": 1131, "name": "hashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 618, - "src": "8208:6:0", + "referencedDeclaration": 1020, + "src": "8434:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, { - "id": 730, + "id": 1132, "name": "paramHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 630, - "src": "8216:11:0", + "referencedDeclaration": 1032, + "src": "8442:11:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, { - "id": 731, + "id": 1133, "name": "verificationHashes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 642, - "src": "8229:18:0", + "referencedDeclaration": 1044, + "src": "8455:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr", "typeString": "bytes32[] memory" } }, { - "id": 732, + "id": 1134, "name": "timestamps", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 654, - "src": "8249:10:0", + "referencedDeclaration": 1056, + "src": "8475:10:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, { - "id": 733, + "id": 1135, "name": "completed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 666, - "src": "8261:9:0", + "referencedDeclaration": 1068, + "src": "8487:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_memory_ptr", "typeString": "bool[] memory" } } ], - "id": 734, + "id": 1136, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "8207:64:0", + "src": "8433:64:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_bytes32_$dyn_memory_ptr_$_t_array$_t_uint32_$dyn_memory_ptr_$_t_array$_t_bool_$dyn_memory_ptr_$", "typeString": "tuple(bytes32[] memory,bytes32[] memory,bytes32[] memory,uint32[] memory,bool[] memory)" } }, - "functionReturnParameters": 604, - "id": 735, + "functionReturnParameters": 1006, + "id": 1137, "nodeType": "Return", - "src": "8200:71:0" + "src": "8426:71:6" } ] }, "functionSelector": "d87458a3", - "id": 737, + "id": 1139, "implemented": true, "kind": "function", "modifiers": [], "name": "lookupCommit", - "nameLocation": "7380:12:0", + "nameLocation": "7606:12:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 588, + "id": 990, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 587, + "id": 989, "mutability": "mutable", "name": "hash", - "nameLocation": "7401:4:0", + "nameLocation": "7627:4:6", "nodeType": "VariableDeclaration", - "scope": 737, - "src": "7393:12:0", + "scope": 1139, + "src": "7619:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -61586,10 +64051,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 586, + "id": 988, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7393:7:0", + "src": "7619:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -61598,21 +64063,21 @@ "visibility": "internal" } ], - "src": "7392:14:0" + "src": "7618:14:6" }, "returnParameters": { - "id": 604, + "id": 1006, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 591, + "id": 993, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 737, - "src": "7430:16:0", + "scope": 1139, + "src": "7656:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -61621,18 +64086,18 @@ }, "typeName": { "baseType": { - "id": 589, + "id": 991, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7430:7:0", + "src": "7656:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 590, + "id": 992, "nodeType": "ArrayTypeName", - "src": "7430:9:0", + "src": "7656:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -61642,13 +64107,13 @@ }, { "constant": false, - "id": 594, + "id": 996, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 737, - "src": "7448:16:0", + "scope": 1139, + "src": "7674:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -61657,18 +64122,18 @@ }, "typeName": { "baseType": { - "id": 592, + "id": 994, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7448:7:0", + "src": "7674:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 593, + "id": 995, "nodeType": "ArrayTypeName", - "src": "7448:9:0", + "src": "7674:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -61678,13 +64143,13 @@ }, { "constant": false, - "id": 597, + "id": 999, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 737, - "src": "7466:16:0", + "scope": 1139, + "src": "7692:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -61693,18 +64158,18 @@ }, "typeName": { "baseType": { - "id": 595, + "id": 997, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7466:7:0", + "src": "7692:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 596, + "id": 998, "nodeType": "ArrayTypeName", - "src": "7466:9:0", + "src": "7692:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -61714,13 +64179,13 @@ }, { "constant": false, - "id": 600, + "id": 1002, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 737, - "src": "7484:15:0", + "scope": 1139, + "src": "7710:15:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -61729,18 +64194,18 @@ }, "typeName": { "baseType": { - "id": 598, + "id": 1000, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7484:6:0", + "src": "7710:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 599, + "id": 1001, "nodeType": "ArrayTypeName", - "src": "7484:8:0", + "src": "7710:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -61750,13 +64215,13 @@ }, { "constant": false, - "id": 603, + "id": 1005, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 737, - "src": "7501:13:0", + "scope": 1139, + "src": "7727:13:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -61765,18 +64230,18 @@ }, "typeName": { "baseType": { - "id": 601, + "id": 1003, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "7501:4:0", + "src": "7727:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 602, + "id": 1004, "nodeType": "ArrayTypeName", - "src": "7501:6:0", + "src": "7727:6:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bool_$dyn_storage_ptr", "typeString": "bool[]" @@ -61785,37 +64250,37 @@ "visibility": "internal" } ], - "src": "7429:86:0" + "src": "7655:86:6" }, - "scope": 2161, - "src": "7371:907:0", + "scope": 2592, + "src": "7597:907:6", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 785, + "id": 1187, "nodeType": "Block", - "src": "8369:273:0", + "src": "8595:273:6", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 746, + "id": 1148, "name": "_cleanupCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1766, - "src": "8379:15:0", + "referencedDeclaration": 2197, + "src": "8605:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 747, + "id": 1149, "isConstant": false, "isLValue": false, "isPure": false, @@ -61823,91 +64288,91 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8379:17:0", + "src": "8605:17:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 748, + "id": 1150, "nodeType": "ExpressionStatement", - "src": "8379:17:0" + "src": "8605:17:6" }, { "assignments": [ - 751 + 1153 ], "declarations": [ { "constant": false, - "id": 751, + "id": 1153, "mutability": "mutable", "name": "nc", - "nameLocation": "8420:2:0", + "nameLocation": "8646:2:6", "nodeType": "VariableDeclaration", - "scope": 785, - "src": "8406:16:0", + "scope": 1187, + "src": "8632:16:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_memory_ptr", + "typeIdentifier": "t_struct$_Commit_$504_memory_ptr", "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 750, + "id": 1152, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 749, + "id": 1151, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "8406:6:0" + "referencedDeclaration": 504, + "src": "8632:6:6" }, - "referencedDeclaration": 114, - "src": "8406:6:0", + "referencedDeclaration": 504, + "src": "8632:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, "visibility": "internal" } ], - "id": 763, + "id": 1165, "initialValue": { "arguments": [ { - "id": 753, + "id": 1155, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "8432:4:0", + "referencedDeclaration": 1141, + "src": "8658:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 754, + "id": 1156, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 741, - "src": "8438:10:0", + "referencedDeclaration": 1143, + "src": "8664:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 755, + "id": 1157, "name": "verificationHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 743, - "src": "8450:16:0", + "referencedDeclaration": 1145, + "src": "8676:16:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -61917,25 +64382,25 @@ "arguments": [ { "expression": { - "id": 758, + "id": 1160, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "8475:5:0", + "src": "8701:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 759, + "id": 1161, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "8475:15:0", + "src": "8701:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -61949,26 +64414,26 @@ "typeString": "uint256" } ], - "id": 757, + "id": 1159, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8468:6:0", + "src": "8694:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 756, + "id": 1158, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "8468:6:0", + "src": "8694:6:6", "typeDescriptions": {} } }, - "id": 760, + "id": 1162, "isConstant": false, "isLValue": false, "isPure": false, @@ -61976,7 +64441,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8468:23:0", + "src": "8694:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -61985,14 +64450,14 @@ }, { "hexValue": "66616c7365", - "id": 761, + "id": 1163, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "8493:5:0", + "src": "8719:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -62023,18 +64488,18 @@ "typeString": "bool" } ], - "id": 752, + "id": 1154, "name": "Commit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 114, - "src": "8425:6:0", + "referencedDeclaration": 504, + "src": "8651:6:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_Commit_$114_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_Commit_$504_storage_ptr_$", "typeString": "type(struct ONEWallet.Commit storage pointer)" } }, - "id": 762, + "id": 1164, "isConstant": false, "isLValue": false, "isPure": false, @@ -62042,15 +64507,15 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8425:74:0", + "src": "8651:74:6", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_memory_ptr", + "typeIdentifier": "t_struct$_Commit_$504_memory_ptr", "typeString": "struct ONEWallet.Commit memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "8406:93:0" + "src": "8632:93:6" }, { "expression": { @@ -62060,32 +64525,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 768, + "id": 1170, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 765, + "id": 1167, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "8517:7:0", + "referencedDeclaration": 507, + "src": "8743:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 766, + "id": 1168, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "8517:14:0", + "src": "8743:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -62094,18 +64559,18 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 767, + "id": 1169, "name": "MAX_COMMIT_SIZE", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 89, - "src": "8534:15:0", + "referencedDeclaration": 478, + "src": "8760:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "8517:32:0", + "src": "8743:32:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -62113,14 +64578,14 @@ }, { "hexValue": "546f6f206d616e7920636f6d6d697473", - "id": 769, + "id": 1171, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8551:18:0", + "src": "8777:18:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0c1004916946b89dffc8743f953d4885accbd82403cd8bd9e53f384fa95731af", "typeString": "literal_string \"Too many commits\"" @@ -62139,7 +64604,7 @@ "typeString": "literal_string \"Too many commits\"" } ], - "id": 764, + "id": 1166, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -62147,13 +64612,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "8509:7:0", + "src": "8735:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 770, + "id": 1172, "isConstant": false, "isLValue": false, "isPure": false, @@ -62161,27 +64626,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8509:61:0", + "src": "8735:61:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 771, + "id": 1173, "nodeType": "ExpressionStatement", - "src": "8509:61:0" + "src": "8735:61:6" }, { "expression": { "arguments": [ { - "id": 775, + "id": 1177, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "8593:4:0", + "referencedDeclaration": 1141, + "src": "8819:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -62196,31 +64661,31 @@ } ], "expression": { - "id": 772, + "id": 1174, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "8580:7:0", + "referencedDeclaration": 507, + "src": "8806:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 774, + "id": 1176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "8580:12:0", + "src": "8806:12:6", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$_t_bytes32_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$", "typeString": "function (bytes32[] storage pointer,bytes32)" } }, - "id": 776, + "id": 1178, "isConstant": false, "isLValue": false, "isPure": false, @@ -62228,29 +64693,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8580:18:0", + "src": "8806:18:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 777, + "id": 1179, "nodeType": "ExpressionStatement", - "src": "8580:18:0" + "src": "8806:18:6" }, { "expression": { "arguments": [ { - "id": 782, + "id": 1184, "name": "nc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 751, - "src": "8632:2:0", + "referencedDeclaration": 1153, + "src": "8858:2:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_memory_ptr", + "typeIdentifier": "t_struct$_Commit_$504_memory_ptr", "typeString": "struct ONEWallet.Commit memory" } } @@ -62258,31 +64723,31 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_Commit_$114_memory_ptr", + "typeIdentifier": "t_struct$_Commit_$504_memory_ptr", "typeString": "struct ONEWallet.Commit memory" } ], "expression": { "baseExpression": { - "id": 778, + "id": 1180, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "8608:12:0", + "referencedDeclaration": 513, + "src": "8834:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 780, + "id": 1182, "indexExpression": { - "id": 779, + "id": 1181, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 739, - "src": "8621:4:0", + "referencedDeclaration": 1141, + "src": "8847:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -62293,26 +64758,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8608:18:0", + "src": "8834:18:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, - "id": 781, + "id": 1183, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "8608:23:0", + "src": "8834:23:6", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr_$_t_struct$_Commit_$114_storage_$returns$__$bound_to$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr_$", + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr_$_t_struct$_Commit_$504_storage_$returns$__$bound_to$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr_$", "typeString": "function (struct ONEWallet.Commit storage ref[] storage pointer,struct ONEWallet.Commit storage ref)" } }, - "id": 783, + "id": 1185, "isConstant": false, "isLValue": false, "isPure": false, @@ -62320,40 +64785,40 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8608:27:0", + "src": "8834:27:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 784, + "id": 1186, "nodeType": "ExpressionStatement", - "src": "8608:27:0" + "src": "8834:27:6" } ] }, "functionSelector": "e4e5b258", - "id": 786, + "id": 1188, "implemented": true, "kind": "function", "modifiers": [], "name": "commit", - "nameLocation": "8293:6:0", + "nameLocation": "8519:6:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 744, + "id": 1146, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 739, + "id": 1141, "mutability": "mutable", "name": "hash", - "nameLocation": "8308:4:0", + "nameLocation": "8534:4:6", "nodeType": "VariableDeclaration", - "scope": 786, - "src": "8300:12:0", + "scope": 1188, + "src": "8526:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -62361,10 +64826,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 738, + "id": 1140, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8300:7:0", + "src": "8526:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -62374,13 +64839,13 @@ }, { "constant": false, - "id": 741, + "id": 1143, "mutability": "mutable", "name": "paramsHash", - "nameLocation": "8322:10:0", + "nameLocation": "8548:10:6", "nodeType": "VariableDeclaration", - "scope": 786, - "src": "8314:18:0", + "scope": 1188, + "src": "8540:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -62388,10 +64853,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 740, + "id": 1142, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8314:7:0", + "src": "8540:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -62401,13 +64866,13 @@ }, { "constant": false, - "id": 743, + "id": 1145, "mutability": "mutable", "name": "verificationHash", - "nameLocation": "8342:16:0", + "nameLocation": "8568:16:6", "nodeType": "VariableDeclaration", - "scope": 786, - "src": "8334:24:0", + "scope": 1188, + "src": "8560:24:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -62415,10 +64880,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 742, + "id": 1144, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8334:7:0", + "src": "8560:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -62427,41 +64892,41 @@ "visibility": "internal" } ], - "src": "8299:60:0" + "src": "8525:60:6" }, "returnParameters": { - "id": 745, + "id": 1147, "nodeType": "ParameterList", "parameters": [], - "src": "8369:0:0" + "src": "8595:0:6" }, - "scope": 2161, - "src": "8284:358:0", + "scope": 2592, + "src": "8510:358:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 807, + "id": 1209, "nodeType": "Block", - "src": "8926:216:0", + "src": "9152:216:6", "statements": [ { "assignments": [ - 793, + 1195, null ], "declarations": [ { "constant": false, - "id": 793, + "id": 1195, "mutability": "mutable", "name": "success", - "nameLocation": "9042:7:0", + "nameLocation": "9268:7:6", "nodeType": "VariableDeclaration", - "scope": 807, - "src": "9037:12:0", + "scope": 1209, + "src": "9263:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -62469,10 +64934,10 @@ "typeString": "bool" }, "typeName": { - "id": 792, + "id": 1194, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9037:4:0", + "src": "9263:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -62482,19 +64947,19 @@ }, null ], - "id": 804, + "id": 1206, "initialValue": { "arguments": [ { "hexValue": "", - "id": 802, + "id": 1204, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9108:2:0", + "src": "9334:2:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -62517,31 +64982,31 @@ } ], "expression": { - "id": 794, + "id": 1196, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "9054:17:0", + "referencedDeclaration": 452, + "src": "9280:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 795, + "id": 1197, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "call", "nodeType": "MemberAccess", - "src": "9054:22:0", + "src": "9280:22:6", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 801, + "id": 1203, "isConstant": false, "isLValue": false, "isPure": false, @@ -62555,14 +65020,14 @@ "expression": { "arguments": [ { - "id": 798, + "id": 1200, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "9093:4:0", + "src": "9319:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } } @@ -62570,30 +65035,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } ], - "id": 797, + "id": 1199, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9085:7:0", + "src": "9311:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 796, + "id": 1198, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9085:7:0", + "src": "9311:7:6", "typeDescriptions": {} } }, - "id": 799, + "id": 1201, "isConstant": false, "isLValue": false, "isPure": false, @@ -62601,34 +65066,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9085:13:0", + "src": "9311:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 800, + "id": 1202, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "src": "9085:21:0", + "src": "9311:21:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "9054:53:0", + "src": "9280:53:6", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 803, + "id": 1205, "isConstant": false, "isLValue": false, "isPure": false, @@ -62636,7 +65101,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9054:57:0", + "src": "9280:57:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", @@ -62644,60 +65109,60 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9036:75:0" + "src": "9262:75:6" }, { "expression": { - "id": 805, + "id": 1207, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 793, - "src": "9128:7:0", + "referencedDeclaration": 1195, + "src": "9354:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 791, - "id": 806, + "functionReturnParameters": 1193, + "id": 1208, "nodeType": "Return", - "src": "9121:14:0" + "src": "9347:14:6" } ] }, "documentation": { - "id": 787, + "id": 1189, "nodeType": "StructuredDocumentation", - "src": "8648:231:0", + "src": "8874:231:6", "text": "This function sends all remaining funds of the wallet to `lastResortAddress`. The caller should verify that `lastResortAddress` is not null.\n TODO: also transfer all tracked ERC20, 721, 1155 tokens to `lastResortAddress`" }, - "id": 808, + "id": 1210, "implemented": true, "kind": "function", "modifiers": [], "name": "_drain", - "nameLocation": "8893:6:0", + "nameLocation": "9119:6:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 788, + "id": 1190, "nodeType": "ParameterList", "parameters": [], - "src": "8899:2:0" + "src": "9125:2:6" }, "returnParameters": { - "id": 791, + "id": 1193, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 790, + "id": 1192, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 808, - "src": "8920:4:0", + "scope": 1210, + "src": "9146:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -62705,10 +65170,10 @@ "typeString": "bool" }, "typeName": { - "id": 789, + "id": 1191, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "8920:4:0", + "src": "9146:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -62717,34 +65182,34 @@ "visibility": "internal" } ], - "src": "8919:6:0" + "src": "9145:6:6" }, - "scope": 2161, - "src": "8884:258:0", + "scope": 2592, + "src": "9110:258:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 907, + "id": 1313, "nodeType": "Block", - "src": "9229:859:0", + "src": "9455:894:6", "statements": [ { "assignments": [ - 818 + 1220 ], "declarations": [ { "constant": false, - "id": 818, + "id": 1220, "mutability": "mutable", "name": "day", - "nameLocation": "9246:3:0", + "nameLocation": "9472:3:6", "nodeType": "VariableDeclaration", - "scope": 907, - "src": "9239:10:0", + "scope": 1313, + "src": "9465:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -62752,10 +65217,10 @@ "typeString": "uint32" }, "typeName": { - "id": 817, + "id": 1219, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9239:6:0", + "src": "9465:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -62764,7 +65229,7 @@ "visibility": "internal" } ], - "id": 826, + "id": 1228, "initialValue": { "arguments": [ { @@ -62772,32 +65237,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 824, + "id": 1226, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 821, + "id": 1223, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "9259:5:0", + "src": "9485:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 822, + "id": 1224, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "9259:15:0", + "src": "9485:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -62806,18 +65271,18 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 823, + "id": 1225, "name": "SECONDS_PER_DAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 83, - "src": "9277:15:0", + "referencedDeclaration": 472, + "src": "9503:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "9259:33:0", + "src": "9485:33:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -62831,26 +65296,26 @@ "typeString": "uint256" } ], - "id": 820, + "id": 1222, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9252:6:0", + "src": "9478:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 819, + "id": 1221, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9252:6:0", + "src": "9478:6:6", "typeDescriptions": {} } }, - "id": 825, + "id": 1227, "isConstant": false, "isLValue": false, "isPure": false, @@ -62858,7 +65323,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9252:41:0", + "src": "9478:41:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -62866,7 +65331,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9239:54:0" + "src": "9465:54:6" }, { "condition": { @@ -62874,18 +65339,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 829, + "id": 1231, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 827, + "id": 1229, "name": "day", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, - "src": "9307:3:0", + "referencedDeclaration": 1220, + "src": "9533:3:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -62894,45 +65359,45 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 828, + "id": 1230, "name": "lastTransferDay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "9313:15:0", + "referencedDeclaration": 458, + "src": "9539:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "9307:21:0", + "src": "9533:21:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 839, + "id": 1241, "nodeType": "IfStatement", - "src": "9303:101:0", + "src": "9529:101:6", "trueBody": { - "id": 838, + "id": 1240, "nodeType": "Block", - "src": "9330:74:0", + "src": "9556:74:6", "statements": [ { "expression": { - "id": 832, + "id": 1234, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 830, + "id": 1232, "name": "spentToday", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9344:10:0", + "referencedDeclaration": 456, + "src": "9570:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -62942,44 +65407,44 @@ "operator": "=", "rightHandSide": { "hexValue": "30", - "id": 831, + "id": 1233, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9357:1:0", + "src": "9583:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "9344:14:0", + "src": "9570:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 833, + "id": 1235, "nodeType": "ExpressionStatement", - "src": "9344:14:0" + "src": "9570:14:6" }, { "expression": { - "id": 836, + "id": 1238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 834, + "id": 1236, "name": "lastTransferDay", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 69, - "src": "9372:15:0", + "referencedDeclaration": 458, + "src": "9598:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -62988,26 +65453,26 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 835, + "id": 1237, "name": "day", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 818, - "src": "9390:3:0", + "referencedDeclaration": 1220, + "src": "9616:3:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "9372:21:0", + "src": "9598:21:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 837, + "id": 1239, "nodeType": "ExpressionStatement", - "src": "9372:21:0" + "src": "9598:21:6" } ] } @@ -63018,7 +65483,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 844, + "id": 1246, "isConstant": false, "isLValue": false, "isPure": false, @@ -63028,18 +65493,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 842, + "id": 1244, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 840, + "id": 1242, "name": "spentToday", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9417:10:0", + "referencedDeclaration": 456, + "src": "9643:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -63048,18 +65513,18 @@ "nodeType": "BinaryOperation", "operator": "+", "rightExpression": { - "id": 841, + "id": 1243, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 812, - "src": "9430:6:0", + "referencedDeclaration": 1214, + "src": "9656:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9417:19:0", + "src": "9643:19:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -63068,77 +65533,77 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 843, + "id": 1245, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "9439:10:0", + "referencedDeclaration": 454, + "src": "9665:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9417:32:0", + "src": "9643:32:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 855, + "id": 1257, "nodeType": "IfStatement", - "src": "9413:148:0", + "src": "9639:148:6", "trueBody": { - "id": 854, + "id": 1256, "nodeType": "Block", - "src": "9451:110:0", + "src": "9677:110:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 846, + "id": 1248, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 812, - "src": "9487:6:0", + "referencedDeclaration": 1214, + "src": "9713:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 847, + "id": 1249, "name": "dailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 65, - "src": "9495:10:0", + "referencedDeclaration": 454, + "src": "9721:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 848, + "id": 1250, "name": "spentToday", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "9507:10:0", + "referencedDeclaration": 456, + "src": "9733:10:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 849, + "id": 1251, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 810, - "src": "9519:4:0", + "referencedDeclaration": 1212, + "src": "9745:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -63164,18 +65629,18 @@ "typeString": "address payable" } ], - "id": 845, + "id": 1247, "name": "ExceedDailyLimit", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 23, - "src": "9470:16:0", + "referencedDeclaration": 410, + "src": "9696:16:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,uint256,uint256,address)" } }, - "id": 850, + "id": 1252, "isConstant": false, "isLValue": false, "isPure": false, @@ -63183,38 +65648,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9470:54:0", + "src": "9696:54:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 851, + "id": 1253, "nodeType": "EmitStatement", - "src": "9465:59:0" + "src": "9691:59:6" }, { "expression": { "hexValue": "66616c7365", - "id": 852, + "id": 1254, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9545:5:0", + "src": "9771:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 816, - "id": 853, + "functionReturnParameters": 1218, + "id": 1255, "nodeType": "Return", - "src": "9538:12:0" + "src": "9764:12:6" } ] } @@ -63225,7 +65690,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 862, + "id": 1264, "isConstant": false, "isLValue": false, "isPure": false, @@ -63234,14 +65699,14 @@ "expression": { "arguments": [ { - "id": 858, + "id": 1260, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "9582:4:0", + "src": "9808:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } } @@ -63249,30 +65714,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } ], - "id": 857, + "id": 1259, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9574:7:0", + "src": "9800:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 856, + "id": 1258, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9574:7:0", + "src": "9800:7:6", "typeDescriptions": {} } }, - "id": 859, + "id": 1261, "isConstant": false, "isLValue": false, "isPure": false, @@ -63280,21 +65745,21 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9574:13:0", + "src": "9800:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 860, + "id": 1262, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "src": "9574:21:0", + "src": "9800:21:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -63303,41 +65768,41 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 861, + "id": 1263, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 812, - "src": "9598:6:0", + "referencedDeclaration": 1214, + "src": "9824:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9574:30:0", + "src": "9800:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 876, + "id": 1278, "nodeType": "IfStatement", - "src": "9570:145:0", + "src": "9796:145:6", "trueBody": { - "id": 875, + "id": 1277, "nodeType": "Block", - "src": "9606:109:0", + "src": "9832:109:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 864, + "id": 1266, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 812, - "src": "9642:6:0", + "referencedDeclaration": 1214, + "src": "9868:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -63347,14 +65812,14 @@ "expression": { "arguments": [ { - "id": 867, + "id": 1269, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "9658:4:0", + "src": "9884:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } } @@ -63362,30 +65827,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } ], - "id": 866, + "id": 1268, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9650:7:0", + "src": "9876:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 865, + "id": 1267, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9650:7:0", + "src": "9876:7:6", "typeDescriptions": {} } }, - "id": 868, + "id": 1270, "isConstant": false, "isLValue": false, "isPure": false, @@ -63393,33 +65858,33 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9650:13:0", + "src": "9876:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 869, + "id": 1271, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "balance", "nodeType": "MemberAccess", - "src": "9650:21:0", + "src": "9876:21:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 870, + "id": 1272, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 810, - "src": "9673:4:0", + "referencedDeclaration": 1212, + "src": "9899:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -63441,18 +65906,18 @@ "typeString": "address payable" } ], - "id": 863, + "id": 1265, "name": "InsufficientFund", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 13, - "src": "9625:16:0", + "referencedDeclaration": 400, + "src": "9851:16:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,uint256,address)" } }, - "id": 871, + "id": 1273, "isConstant": false, "isLValue": false, "isPure": false, @@ -63460,57 +65925,100 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9625:53:0", + "src": "9851:53:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 872, + "id": 1274, "nodeType": "EmitStatement", - "src": "9620:58:0" + "src": "9846:58:6" }, { "expression": { "hexValue": "66616c7365", - "id": 873, + "id": 1275, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9699:5:0", + "src": "9925:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 816, - "id": 874, + "functionReturnParameters": 1218, + "id": 1276, "nodeType": "Return", - "src": "9692:12:0" + "src": "9918:12:6" } ] } }, + { + "expression": { + "id": 1281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1279, + "name": "spentToday", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 456, + "src": "9950:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1280, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1214, + "src": "9964:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9950:20:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1282, + "nodeType": "ExpressionStatement", + "src": "9950:20:6" + }, { "assignments": [ - 878, + 1284, null ], "declarations": [ { "constant": false, - "id": 878, + "id": 1284, "mutability": "mutable", "name": "success", - "nameLocation": "9730:7:0", + "nameLocation": "9986:7:6", "nodeType": "VariableDeclaration", - "scope": 907, - "src": "9725:12:0", + "scope": 1313, + "src": "9981:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -63518,10 +66026,10 @@ "typeString": "bool" }, "typeName": { - "id": 877, + "id": 1283, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9725:4:0", + "src": "9981:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -63531,19 +66039,19 @@ }, null ], - "id": 885, + "id": 1291, "initialValue": { "arguments": [ { "hexValue": "", - "id": 883, + "id": 1289, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9768:2:0", + "src": "10024:2:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -63566,31 +66074,31 @@ } ], "expression": { - "id": 879, + "id": 1285, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 810, - "src": "9742:4:0", + "referencedDeclaration": 1212, + "src": "9998:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 880, + "id": 1286, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "call", "nodeType": "MemberAccess", - "src": "9742:9:0", + "src": "9998:9:6", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 882, + "id": 1288, "isConstant": false, "isLValue": false, "isPure": false, @@ -63601,25 +66109,25 @@ "nodeType": "FunctionCallOptions", "options": [ { - "id": 881, + "id": 1287, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 812, - "src": "9760:6:0", + "referencedDeclaration": 1214, + "src": "10016:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "src": "9742:25:0", + "src": "9998:25:6", "typeDescriptions": { "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", "typeString": "function (bytes memory) payable returns (bool,bytes memory)" } }, - "id": 884, + "id": 1290, "isConstant": false, "isLValue": false, "isPure": false, @@ -63627,7 +66135,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9742:29:0", + "src": "9998:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", @@ -63635,11 +66143,11 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9724:47:0" + "src": "9980:47:6" }, { "condition": { - "id": 887, + "id": 1293, "isConstant": false, "isLValue": false, "isPure": false, @@ -63647,14 +66155,14 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "9899:8:0", + "src": "10155:8:6", "subExpression": { - "id": 886, + "id": 1292, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 878, - "src": "9900:7:0", + "referencedDeclaration": 1284, + "src": "10156:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -63665,24 +66173,67 @@ "typeString": "bool" } }, - "id": 895, + "id": 1305, "nodeType": "IfStatement", - "src": "9895:96:0", + "src": "10151:130:6", "trueBody": { - "id": 894, + "id": 1304, "nodeType": "Block", - "src": "9909:82:0", + "src": "10165:116:6", "statements": [ + { + "expression": { + "id": 1296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1294, + "name": "spentToday", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 456, + "src": "10179:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 1295, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1214, + "src": "10193:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "10179:20:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1297, + "nodeType": "ExpressionStatement", + "src": "10179:20:6" + }, { "eventCall": { "arguments": [ { - "id": 889, + "id": 1299, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 810, - "src": "9949:4:0", + "referencedDeclaration": 1212, + "src": "10239:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -63696,18 +66247,18 @@ "typeString": "address payable" } ], - "id": 888, + "id": 1298, "name": "UnknownTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 27, - "src": "9928:20:0", + "referencedDeclaration": 414, + "src": "10218:20:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$", "typeString": "function (address)" } }, - "id": 890, + "id": 1300, "isConstant": false, "isLValue": false, "isPure": false, @@ -63715,107 +66266,64 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9928:26:0", + "src": "10218:26:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 891, + "id": 1301, "nodeType": "EmitStatement", - "src": "9923:31:0" + "src": "10213:31:6" }, { "expression": { "hexValue": "66616c7365", - "id": 892, + "id": 1302, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "9975:5:0", + "src": "10265:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 816, - "id": 893, + "functionReturnParameters": 1218, + "id": 1303, "nodeType": "Return", - "src": "9968:12:0" + "src": "10258:12:6" } ] } }, - { - "expression": { - "id": 898, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftHandSide": { - "id": 896, - "name": "spentToday", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 67, - "src": "10000:10:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "nodeType": "Assignment", - "operator": "+=", - "rightHandSide": { - "id": 897, - "name": "amount", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 812, - "src": "10014:6:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "src": "10000:20:0", - "typeDescriptions": { - "typeIdentifier": "t_uint256", - "typeString": "uint256" - } - }, - "id": 899, - "nodeType": "ExpressionStatement", - "src": "10000:20:0" - }, { "eventCall": { "arguments": [ { - "id": 901, + "id": 1307, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 812, - "src": "10047:6:0", + "referencedDeclaration": 1214, + "src": "10308:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 902, + "id": 1308, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 810, - "src": "10055:4:0", + "referencedDeclaration": 1212, + "src": "10316:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -63833,18 +66341,18 @@ "typeString": "address payable" } ], - "id": 900, + "id": 1306, "name": "PaymentSent", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 41, - "src": "10035:11:0", + "referencedDeclaration": 428, + "src": "10296:11:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_address_$returns$__$", "typeString": "function (uint256,address)" } }, - "id": 903, + "id": 1309, "isConstant": false, "isLValue": false, "isPure": false, @@ -63852,61 +66360,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10035:25:0", + "src": "10296:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 904, + "id": 1310, "nodeType": "EmitStatement", - "src": "10030:30:0" + "src": "10291:30:6" }, { "expression": { "hexValue": "74727565", - "id": 905, + "id": 1311, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10077:4:0", + "src": "10338:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 816, - "id": 906, + "functionReturnParameters": 1218, + "id": 1312, "nodeType": "Return", - "src": "10070:11:0" + "src": "10331:11:6" } ] }, - "id": 908, + "id": 1314, "implemented": true, "kind": "function", "modifiers": [], "name": "_transfer", - "nameLocation": "9157:9:0", + "nameLocation": "9383:9:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 813, + "id": 1215, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 810, + "id": 1212, "mutability": "mutable", "name": "dest", - "nameLocation": "9183:4:0", + "nameLocation": "9409:4:6", "nodeType": "VariableDeclaration", - "scope": 908, - "src": "9167:20:0", + "scope": 1314, + "src": "9393:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -63914,10 +66422,10 @@ "typeString": "address payable" }, "typeName": { - "id": 809, + "id": 1211, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9167:15:0", + "src": "9393:15:6", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -63928,13 +66436,13 @@ }, { "constant": false, - "id": 812, + "id": 1214, "mutability": "mutable", "name": "amount", - "nameLocation": "9197:6:0", + "nameLocation": "9423:6:6", "nodeType": "VariableDeclaration", - "scope": 908, - "src": "9189:14:0", + "scope": 1314, + "src": "9415:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -63942,10 +66450,10 @@ "typeString": "uint256" }, "typeName": { - "id": 811, + "id": 1213, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9189:7:0", + "src": "9415:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -63954,21 +66462,21 @@ "visibility": "internal" } ], - "src": "9166:38:0" + "src": "9392:38:6" }, "returnParameters": { - "id": 816, + "id": 1218, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 815, + "id": 1217, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 908, - "src": "9223:4:0", + "scope": 1314, + "src": "9449:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -63976,10 +66484,10 @@ "typeString": "bool" }, "typeName": { - "id": 814, + "id": 1216, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "9223:4:0", + "src": "9449:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -63988,19 +66496,19 @@ "visibility": "internal" } ], - "src": "9222:6:0" + "src": "9448:6:6" }, - "scope": 2161, - "src": "9148:940:0", + "scope": 2592, + "src": "9374:975:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 938, + "id": 1344, "nodeType": "Block", - "src": "10137:252:0", + "src": "10398:252:6", "statements": [ { "condition": { @@ -64008,18 +66516,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 918, + "id": 1324, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 913, + "id": 1319, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "10151:17:0", + "referencedDeclaration": 452, + "src": "10412:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -64031,14 +66539,14 @@ "arguments": [ { "hexValue": "30", - "id": 916, + "id": 1322, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10180:1:0", + "src": "10441:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -64053,26 +66561,26 @@ "typeString": "int_const 0" } ], - "id": 915, + "id": 1321, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10172:7:0", + "src": "10433:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 914, + "id": 1320, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10172:7:0", + "src": "10433:7:6", "typeDescriptions": {} } }, - "id": 917, + "id": 1323, "isConstant": false, "isLValue": false, "isPure": true, @@ -64080,44 +66588,44 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10172:10:0", + "src": "10433:10:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "10151:31:0", + "src": "10412:31:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 925, + "id": 1331, "nodeType": "IfStatement", - "src": "10147:118:0", + "src": "10408:118:6", "trueBody": { - "id": 924, + "id": 1330, "nodeType": "Block", - "src": "10184:81:0", + "src": "10445:81:6", "statements": [ { "eventCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 919, + "id": 1325, "name": "LastResortAddressNotSet", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 29, - "src": "10203:23:0", + "referencedDeclaration": 416, + "src": "10464:23:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 920, + "id": 1326, "isConstant": false, "isLValue": false, "isPure": false, @@ -64125,45 +66633,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10203:25:0", + "src": "10464:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 921, + "id": 1327, "nodeType": "EmitStatement", - "src": "10198:30:0" + "src": "10459:30:6" }, { "expression": { "hexValue": "66616c7365", - "id": 922, + "id": 1328, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10249:5:0", + "src": "10510:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 912, - "id": 923, + "functionReturnParameters": 1318, + "id": 1329, "nodeType": "Return", - "src": "10242:12:0" + "src": "10503:12:6" } ] } }, { "condition": { - "id": 928, + "id": 1334, "isConstant": false, "isLValue": false, "isPure": false, @@ -64171,23 +66679,23 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "10278:9:0", + "src": "10539:9:6", "subExpression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 926, + "id": 1332, "name": "_drain", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 808, - "src": "10279:6:0", + "referencedDeclaration": 1210, + "src": "10540:6:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_bool_$", "typeString": "function () returns (bool)" } }, - "id": 927, + "id": 1333, "isConstant": false, "isLValue": false, "isPure": false, @@ -64195,7 +66703,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10279:8:0", + "src": "10540:8:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -64207,31 +66715,31 @@ "typeString": "bool" } }, - "id": 935, + "id": 1341, "nodeType": "IfStatement", - "src": "10274:88:0", + "src": "10535:88:6", "trueBody": { - "id": 934, + "id": 1340, "nodeType": "Block", - "src": "10289:73:0", + "src": "10550:73:6", "statements": [ { "eventCall": { "arguments": [], "expression": { "argumentTypes": [], - "id": 929, + "id": 1335, "name": "RecoveryFailure", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 47, - "src": "10308:15:0", + "referencedDeclaration": 434, + "src": "10569:15:6", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 930, + "id": 1336, "isConstant": false, "isLValue": false, "isPure": false, @@ -64239,38 +66747,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10308:17:0", + "src": "10569:17:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 931, + "id": 1337, "nodeType": "EmitStatement", - "src": "10303:22:0" + "src": "10564:22:6" }, { "expression": { "hexValue": "66616c7365", - "id": 932, + "id": 1338, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10346:5:0", + "src": "10607:5:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "false" }, - "functionReturnParameters": 912, - "id": 933, + "functionReturnParameters": 1318, + "id": 1339, "nodeType": "Return", - "src": "10339:12:0" + "src": "10600:12:6" } ] } @@ -64278,53 +66786,53 @@ { "expression": { "hexValue": "74727565", - "id": 936, + "id": 1342, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "10378:4:0", + "src": "10639:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "functionReturnParameters": 912, - "id": 937, + "functionReturnParameters": 1318, + "id": 1343, "nodeType": "Return", - "src": "10371:11:0" + "src": "10632:11:6" } ] }, - "id": 939, + "id": 1345, "implemented": true, "kind": "function", "modifiers": [], "name": "_recover", - "nameLocation": "10103:8:0", + "nameLocation": "10364:8:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 909, + "id": 1315, "nodeType": "ParameterList", "parameters": [], - "src": "10111:2:0" + "src": "10372:2:6" }, "returnParameters": { - "id": 912, + "id": 1318, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 911, + "id": 1317, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 939, - "src": "10132:4:0", + "scope": 1345, + "src": "10393:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -64332,10 +66840,10 @@ "typeString": "bool" }, "typeName": { - "id": 910, + "id": 1316, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "10132:4:0", + "src": "10393:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -64344,19 +66852,19 @@ "visibility": "internal" } ], - "src": "10131:6:0" + "src": "10392:6:6" }, - "scope": 2161, - "src": "10094:295:0", + "scope": 2592, + "src": "10355:295:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 958, + "id": 1364, "nodeType": "Block", - "src": "10469:143:0", + "src": "10730:143:6", "statements": [ { "expression": { @@ -64366,18 +66874,18 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 950, + "id": 1356, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 945, + "id": 1351, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "10487:17:0", + "referencedDeclaration": 452, + "src": "10748:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -64389,14 +66897,14 @@ "arguments": [ { "hexValue": "30", - "id": 948, + "id": 1354, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10516:1:0", + "src": "10777:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -64411,26 +66919,26 @@ "typeString": "int_const 0" } ], - "id": 947, + "id": 1353, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10508:7:0", + "src": "10769:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 946, + "id": 1352, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10508:7:0", + "src": "10769:7:6", "typeDescriptions": {} } }, - "id": 949, + "id": 1355, "isConstant": false, "isLValue": false, "isPure": true, @@ -64438,14 +66946,14 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10508:10:0", + "src": "10769:10:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "10487:31:0", + "src": "10748:31:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -64453,14 +66961,14 @@ }, { "hexValue": "4c617374207265736f7274206164647265737320697320616c726561647920736574", - "id": 951, + "id": 1357, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10520:36:0", + "src": "10781:36:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_bc3ff827c71f29679c970d77c58ec807a06259e86e9cd823a8554b04d0d6f030", "typeString": "literal_string \"Last resort address is already set\"" @@ -64479,7 +66987,7 @@ "typeString": "literal_string \"Last resort address is already set\"" } ], - "id": 944, + "id": 1350, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -64487,13 +66995,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "10479:7:0", + "src": "10740:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 952, + "id": 1358, "isConstant": false, "isLValue": false, "isPure": false, @@ -64501,31 +67009,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10479:78:0", + "src": "10740:78:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 953, + "id": 1359, "nodeType": "ExpressionStatement", - "src": "10479:78:0" + "src": "10740:78:6" }, { "expression": { - "id": 956, + "id": 1362, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 954, + "id": 1360, "name": "lastResortAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 63, - "src": "10567:17:0", + "referencedDeclaration": 452, + "src": "10828:17:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -64534,49 +67042,49 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 955, + "id": 1361, "name": "lastResortAddress_", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 941, - "src": "10587:18:0", + "referencedDeclaration": 1347, + "src": "10848:18:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "src": "10567:38:0", + "src": "10828:38:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, - "id": 957, + "id": 1363, "nodeType": "ExpressionStatement", - "src": "10567:38:0" + "src": "10828:38:6" } ] }, - "id": 959, + "id": 1365, "implemented": true, "kind": "function", "modifiers": [], "name": "_setRecoveryAddress", - "nameLocation": "10404:19:0", + "nameLocation": "10665:19:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 942, + "id": 1348, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 941, + "id": 1347, "mutability": "mutable", "name": "lastResortAddress_", - "nameLocation": "10440:18:0", + "nameLocation": "10701:18:6", "nodeType": "VariableDeclaration", - "scope": 959, - "src": "10424:34:0", + "scope": 1365, + "src": "10685:34:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -64584,10 +67092,10 @@ "typeString": "address payable" }, "typeName": { - "id": 940, + "id": 1346, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10424:15:0", + "src": "10685:15:6", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -64597,46 +67105,46 @@ "visibility": "internal" } ], - "src": "10423:36:0" + "src": "10684:36:6" }, "returnParameters": { - "id": 943, + "id": 1349, "nodeType": "ParameterList", "parameters": [], - "src": "10469:0:0" + "src": "10730:0:6" }, - "scope": 2161, - "src": "10395:217:0", + "scope": 2592, + "src": "10656:217:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1154, + "id": 1560, "nodeType": "Block", - "src": "10763:1828:0", + "src": "11024:1828:6", "statements": [ { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, - "id": 978, + "id": 1384, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 975, + "id": 1381, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "10777:9:0", + "referencedDeclaration": 1368, + "src": "11038:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -64644,32 +67152,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 976, + "id": 1382, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "10790:9:0", + "referencedDeclaration": 2607, + "src": "11051:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2176_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 977, + "id": 1383, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ERC20", "nodeType": "MemberAccess", - "referencedDeclaration": 2172, - "src": "10790:15:0", + "referencedDeclaration": 2603, + "src": "11051:15:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "src": "10777:28:0", + "src": "11038:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -64678,23 +67186,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, - "id": 1047, + "id": 1453, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1044, + "id": 1450, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11536:9:0", + "referencedDeclaration": 1368, + "src": "11797:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -64702,32 +67210,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1045, + "id": 1451, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "11549:9:0", + "referencedDeclaration": 2607, + "src": "11810:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2176_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 1046, + "id": 1452, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ERC721", "nodeType": "MemberAccess", - "referencedDeclaration": 2173, - "src": "11549:16:0", + "referencedDeclaration": 2604, + "src": "11810:16:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "src": "11536:29:0", + "src": "11797:29:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -64736,23 +67244,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, - "id": 1100, + "id": 1506, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1097, + "id": 1503, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "12060:9:0", + "referencedDeclaration": 1368, + "src": "12321:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -64760,111 +67268,111 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1098, + "id": 1504, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2176, - "src": "12073:9:0", + "referencedDeclaration": 2607, + "src": "12334:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2176_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 1099, + "id": 1505, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ERC1155", "nodeType": "MemberAccess", - "referencedDeclaration": 2174, - "src": "12073:17:0", + "referencedDeclaration": 2605, + "src": "12334:17:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "src": "12060:30:0", + "src": "12321:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1151, + "id": 1557, "nodeType": "IfStatement", - "src": "12056:529:0", + "src": "12317:529:6", "trueBody": { - "id": 1150, + "id": 1556, "nodeType": "Block", - "src": "12092:493:0", + "src": "12353:493:6", "statements": [ { "clauses": [ { "block": { - "id": 1122, + "id": 1528, "nodeType": "Block", - "src": "12197:111:0", + "src": "12458:111:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1115, + "id": 1521, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "12243:9:0", + "referencedDeclaration": 1368, + "src": "12504:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1116, + "id": 1522, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "12254:15:0", + "referencedDeclaration": 1370, + "src": "12515:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1117, + "id": 1523, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "12271:7:0", + "referencedDeclaration": 1372, + "src": "12532:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1118, + "id": 1524, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "12280:4:0", + "referencedDeclaration": 1374, + "src": "12541:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1119, + "id": 1525, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "12286:6:0", + "referencedDeclaration": 1376, + "src": "12547:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -64874,7 +67382,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -64894,18 +67402,18 @@ "typeString": "uint256" } ], - "id": 1114, + "id": 1520, "name": "TokenTransferSucceeded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2261, - "src": "12220:22:0", + "referencedDeclaration": 2692, + "src": "12481:22:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, - "id": 1120, + "id": 1526, "isConstant": false, "isLValue": false, "isPure": false, @@ -64913,100 +67421,100 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12220:73:0", + "src": "12481:73:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1121, + "id": 1527, "nodeType": "EmitStatement", - "src": "12215:78:0" + "src": "12476:78:6" } ] }, "errorName": "", - "id": 1123, + "id": 1529, "nodeType": "TryCatchClause", - "src": "12197:111:0" + "src": "12458:111:6" }, { "block": { - "id": 1136, + "id": 1542, "nodeType": "Block", - "src": "12342:115:0", + "src": "12603:115:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1128, + "id": 1534, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "12384:9:0", + "referencedDeclaration": 1368, + "src": "12645:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1129, + "id": 1535, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "12395:15:0", + "referencedDeclaration": 1370, + "src": "12656:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1130, + "id": 1536, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "12412:7:0", + "referencedDeclaration": 1372, + "src": "12673:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1131, + "id": 1537, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "12421:4:0", + "referencedDeclaration": 1374, + "src": "12682:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1132, + "id": 1538, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "12427:6:0", + "referencedDeclaration": 1376, + "src": "12688:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1133, + "id": 1539, "name": "reason", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1125, - "src": "12435:6:0", + "referencedDeclaration": 1531, + "src": "12696:6:6", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -65016,7 +67524,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -65040,18 +67548,18 @@ "typeString": "string memory" } ], - "id": 1127, + "id": 1533, "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "12365:18:0", + "referencedDeclaration": 2679, + "src": "12626:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, - "id": 1134, + "id": 1540, "isConstant": false, "isLValue": false, "isPure": false, @@ -65059,35 +67567,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12365:77:0", + "src": "12626:77:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1135, + "id": 1541, "nodeType": "EmitStatement", - "src": "12360:82:0" + "src": "12621:82:6" } ] }, "errorName": "Error", - "id": 1137, + "id": 1543, "nodeType": "TryCatchClause", "parameters": { - "id": 1126, + "id": 1532, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1125, + "id": 1531, "mutability": "mutable", "name": "reason", - "nameLocation": "12335:6:0", + "nameLocation": "12596:6:6", "nodeType": "VariableDeclaration", - "scope": 1137, - "src": "12321:20:0", + "scope": 1543, + "src": "12582:20:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -65095,10 +67603,10 @@ "typeString": "string" }, "typeName": { - "id": 1124, + "id": 1530, "name": "string", "nodeType": "ElementaryTypeName", - "src": "12321:6:0", + "src": "12582:6:6", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -65107,74 +67615,74 @@ "visibility": "internal" } ], - "src": "12320:22:0" + "src": "12581:22:6" }, - "src": "12309:148:0" + "src": "12570:148:6" }, { "block": { - "id": 1147, + "id": 1553, "nodeType": "Block", - "src": "12464:111:0", + "src": "12725:111:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1139, + "id": 1545, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "12506:9:0", + "referencedDeclaration": 1368, + "src": "12767:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1140, + "id": 1546, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "12517:15:0", + "referencedDeclaration": 1370, + "src": "12778:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1141, + "id": 1547, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "12534:7:0", + "referencedDeclaration": 1372, + "src": "12795:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1142, + "id": 1548, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "12543:4:0", + "referencedDeclaration": 1374, + "src": "12804:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1143, + "id": 1549, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "12549:6:0", + "referencedDeclaration": 1376, + "src": "12810:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -65182,14 +67690,14 @@ }, { "hexValue": "", - "id": 1144, + "id": 1550, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12557:2:0", + "src": "12818:2:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -65200,7 +67708,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -65224,18 +67732,18 @@ "typeString": "literal_string \"\"" } ], - "id": 1138, + "id": 1544, "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "12487:18:0", + "referencedDeclaration": 2679, + "src": "12748:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, - "id": 1145, + "id": 1551, "isConstant": false, "isLValue": false, "isPure": false, @@ -65243,23 +67751,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12487:73:0", + "src": "12748:73:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1146, + "id": 1552, "nodeType": "EmitStatement", - "src": "12482:78:0" + "src": "12743:78:6" } ] }, "errorName": "", - "id": 1148, + "id": 1554, "nodeType": "TryCatchClause", - "src": "12458:117:0" + "src": "12719:117:6" } ], "externalCall": { @@ -65267,14 +67775,14 @@ { "arguments": [ { - "id": 1107, + "id": 1513, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "12161:4:0", + "src": "12422:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } } @@ -65282,30 +67790,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } ], - "id": 1106, + "id": 1512, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12153:7:0", + "src": "12414:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1105, + "id": 1511, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12153:7:0", + "src": "12414:7:6", "typeDescriptions": {} } }, - "id": 1108, + "id": 1514, "isConstant": false, "isLValue": false, "isPure": false, @@ -65313,7 +67821,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12153:13:0", + "src": "12414:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -65321,48 +67829,48 @@ } }, { - "id": 1109, + "id": 1515, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "12168:4:0", + "referencedDeclaration": 1374, + "src": "12429:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1110, + "id": 1516, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "12174:7:0", + "referencedDeclaration": 1372, + "src": "12435:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1111, + "id": 1517, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "12183:6:0", + "referencedDeclaration": 1376, + "src": "12444:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1112, + "id": 1518, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 972, - "src": "12191:4:0", + "referencedDeclaration": 1378, + "src": "12452:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -65395,12 +67903,12 @@ "expression": { "arguments": [ { - "id": 1102, + "id": 1508, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "12119:15:0", + "referencedDeclaration": 1370, + "src": "12380:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -65414,18 +67922,18 @@ "typeString": "address" } ], - "id": 1101, + "id": 1507, "name": "IERC1155", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3551, - "src": "12110:8:0", + "referencedDeclaration": 121, + "src": "12371:8:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC1155_$3551_$", + "typeIdentifier": "t_type$_t_contract$_IERC1155_$121_$", "typeString": "type(contract IERC1155)" } }, - "id": 1103, + "id": 1509, "isConstant": false, "isLValue": false, "isPure": false, @@ -65433,28 +67941,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12110:25:0", + "src": "12371:25:6", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC1155_$3551", + "typeIdentifier": "t_contract$_IERC1155_$121", "typeString": "contract IERC1155" } }, - "id": 1104, + "id": 1510, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 3534, - "src": "12110:42:0", + "referencedDeclaration": 104, + "src": "12371:42:6", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,uint256,bytes memory) external" } }, - "id": 1113, + "id": 1519, "isConstant": false, "isLValue": false, "isPure": false, @@ -65462,94 +67970,94 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12110:86:0", + "src": "12371:86:6", "tryCall": true, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1149, + "id": 1555, "nodeType": "TryStatement", - "src": "12106:469:0" + "src": "12367:469:6" } ] } }, - "id": 1152, + "id": 1558, "nodeType": "IfStatement", - "src": "11532:1053:0", + "src": "11793:1053:6", "trueBody": { - "id": 1096, + "id": 1502, "nodeType": "Block", - "src": "11567:483:0", + "src": "11828:483:6", "statements": [ { "clauses": [ { "block": { - "id": 1068, + "id": 1474, "nodeType": "Block", - "src": "11662:111:0", + "src": "11923:111:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1061, + "id": 1467, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11708:9:0", + "referencedDeclaration": 1368, + "src": "11969:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1062, + "id": 1468, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11719:15:0", + "referencedDeclaration": 1370, + "src": "11980:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1063, + "id": 1469, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11736:7:0", + "referencedDeclaration": 1372, + "src": "11997:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1064, + "id": 1470, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "11745:4:0", + "referencedDeclaration": 1374, + "src": "12006:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1065, + "id": 1471, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "11751:6:0", + "referencedDeclaration": 1376, + "src": "12012:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -65559,7 +68067,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -65579,18 +68087,18 @@ "typeString": "uint256" } ], - "id": 1060, + "id": 1466, "name": "TokenTransferSucceeded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2261, - "src": "11685:22:0", + "referencedDeclaration": 2692, + "src": "11946:22:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, - "id": 1066, + "id": 1472, "isConstant": false, "isLValue": false, "isPure": false, @@ -65598,100 +68106,100 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11685:73:0", + "src": "11946:73:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1067, + "id": 1473, "nodeType": "EmitStatement", - "src": "11680:78:0" + "src": "11941:78:6" } ] }, "errorName": "", - "id": 1069, + "id": 1475, "nodeType": "TryCatchClause", - "src": "11662:111:0" + "src": "11923:111:6" }, { "block": { - "id": 1082, + "id": 1488, "nodeType": "Block", - "src": "11807:115:0", + "src": "12068:115:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1074, + "id": 1480, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11849:9:0", + "referencedDeclaration": 1368, + "src": "12110:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1075, + "id": 1481, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11860:15:0", + "referencedDeclaration": 1370, + "src": "12121:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1076, + "id": 1482, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11877:7:0", + "referencedDeclaration": 1372, + "src": "12138:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1077, + "id": 1483, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "11886:4:0", + "referencedDeclaration": 1374, + "src": "12147:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1078, + "id": 1484, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "11892:6:0", + "referencedDeclaration": 1376, + "src": "12153:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1079, + "id": 1485, "name": "reason", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1071, - "src": "11900:6:0", + "referencedDeclaration": 1477, + "src": "12161:6:6", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -65701,7 +68209,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -65725,18 +68233,18 @@ "typeString": "string memory" } ], - "id": 1073, + "id": 1479, "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "11830:18:0", + "referencedDeclaration": 2679, + "src": "12091:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, - "id": 1080, + "id": 1486, "isConstant": false, "isLValue": false, "isPure": false, @@ -65744,35 +68252,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11830:77:0", + "src": "12091:77:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1081, + "id": 1487, "nodeType": "EmitStatement", - "src": "11825:82:0" + "src": "12086:82:6" } ] }, "errorName": "Error", - "id": 1083, + "id": 1489, "nodeType": "TryCatchClause", "parameters": { - "id": 1072, + "id": 1478, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1071, + "id": 1477, "mutability": "mutable", "name": "reason", - "nameLocation": "11800:6:0", + "nameLocation": "12061:6:6", "nodeType": "VariableDeclaration", - "scope": 1083, - "src": "11786:20:0", + "scope": 1489, + "src": "12047:20:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -65780,10 +68288,10 @@ "typeString": "string" }, "typeName": { - "id": 1070, + "id": 1476, "name": "string", "nodeType": "ElementaryTypeName", - "src": "11786:6:0", + "src": "12047:6:6", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -65792,74 +68300,74 @@ "visibility": "internal" } ], - "src": "11785:22:0" + "src": "12046:22:6" }, - "src": "11774:148:0" + "src": "12035:148:6" }, { "block": { - "id": 1093, + "id": 1499, "nodeType": "Block", - "src": "11929:111:0", + "src": "12190:111:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1085, + "id": 1491, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11971:9:0", + "referencedDeclaration": 1368, + "src": "12232:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1086, + "id": 1492, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11982:15:0", + "referencedDeclaration": 1370, + "src": "12243:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1087, + "id": 1493, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11999:7:0", + "referencedDeclaration": 1372, + "src": "12260:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1088, + "id": 1494, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "12008:4:0", + "referencedDeclaration": 1374, + "src": "12269:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1089, + "id": 1495, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "12014:6:0", + "referencedDeclaration": 1376, + "src": "12275:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -65867,14 +68375,14 @@ }, { "hexValue": "", - "id": 1090, + "id": 1496, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "12022:2:0", + "src": "12283:2:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -65885,7 +68393,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -65909,18 +68417,18 @@ "typeString": "literal_string \"\"" } ], - "id": 1084, + "id": 1490, "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "11952:18:0", + "referencedDeclaration": 2679, + "src": "12213:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, - "id": 1091, + "id": 1497, "isConstant": false, "isLValue": false, "isPure": false, @@ -65928,23 +68436,23 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11952:73:0", + "src": "12213:73:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1092, + "id": 1498, "nodeType": "EmitStatement", - "src": "11947:78:0" + "src": "12208:78:6" } ] }, "errorName": "", - "id": 1094, + "id": 1500, "nodeType": "TryCatchClause", - "src": "11923:117:0" + "src": "12184:117:6" } ], "externalCall": { @@ -65952,14 +68460,14 @@ { "arguments": [ { - "id": 1054, + "id": 1460, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "11635:4:0", + "src": "11896:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } } @@ -65967,30 +68475,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2161", + "typeIdentifier": "t_contract$_ONEWallet_$2592", "typeString": "contract ONEWallet" } ], - "id": 1053, + "id": 1459, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "11627:7:0", + "src": "11888:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1052, + "id": 1458, "name": "address", "nodeType": "ElementaryTypeName", - "src": "11627:7:0", + "src": "11888:7:6", "typeDescriptions": {} } }, - "id": 1055, + "id": 1461, "isConstant": false, "isLValue": false, "isPure": false, @@ -65998,7 +68506,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11627:13:0", + "src": "11888:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -66006,36 +68514,36 @@ } }, { - "id": 1056, + "id": 1462, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "11642:4:0", + "referencedDeclaration": 1374, + "src": "11903:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1057, + "id": 1463, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11648:7:0", + "referencedDeclaration": 1372, + "src": "11909:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1058, + "id": 1464, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 972, - "src": "11657:4:0", + "referencedDeclaration": 1378, + "src": "11918:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -66064,12 +68572,12 @@ "expression": { "arguments": [ { - "id": 1049, + "id": 1455, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11593:15:0", + "referencedDeclaration": 1370, + "src": "11854:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -66083,18 +68591,18 @@ "typeString": "address" } ], - "id": 1048, + "id": 1454, "name": "IERC721", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3786, - "src": "11585:7:0", + "referencedDeclaration": 356, + "src": "11846:7:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC721_$3786_$", + "typeIdentifier": "t_type$_t_contract$_IERC721_$356_$", "typeString": "type(contract IERC721)" } }, - "id": 1050, + "id": 1456, "isConstant": false, "isLValue": false, "isPure": false, @@ -66102,28 +68610,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11585:24:0", + "src": "11846:24:6", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC721_$3786", + "typeIdentifier": "t_contract$_IERC721_$356", "typeString": "contract IERC721" } }, - "id": 1051, + "id": 1457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "safeTransferFrom", "nodeType": "MemberAccess", - "referencedDeclaration": 3785, - "src": "11585:41:0", + "referencedDeclaration": 355, + "src": "11846:41:6", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,bytes memory) external" } }, - "id": 1059, + "id": 1465, "isConstant": false, "isLValue": false, "isPure": false, @@ -66131,91 +68639,91 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11585:77:0", + "src": "11846:77:6", "tryCall": true, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1095, + "id": 1501, "nodeType": "TryStatement", - "src": "11581:459:0" + "src": "11842:459:6" } ] } }, - "id": 1153, + "id": 1559, "nodeType": "IfStatement", - "src": "10773:1812:0", + "src": "11034:1812:6", "trueBody": { - "id": 1043, + "id": 1449, "nodeType": "Block", - "src": "10807:719:0", + "src": "11068:719:6", "statements": [ { "clauses": [ { "block": { - "id": 1015, + "id": 1421, "nodeType": "Block", - "src": "10894:355:0", + "src": "11155:355:6", "statements": [ { "condition": { - "id": 989, + "id": 1395, "name": "success", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 987, - "src": "10916:7:0", + "referencedDeclaration": 1393, + "src": "11177:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1006, + "id": 1412, "nodeType": "IfStatement", - "src": "10912:230:0", + "src": "11173:230:6", "trueBody": { - "id": 1005, + "id": 1411, "nodeType": "Block", - "src": "10925:217:0", + "src": "11186:217:6", "statements": [ { "expression": { "arguments": [ { - "id": 991, + "id": 1397, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "10959:9:0", + "referencedDeclaration": 1368, + "src": "11220:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 992, + "id": 1398, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "10970:15:0", + "referencedDeclaration": 1370, + "src": "11231:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 993, + "id": 1399, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "10987:7:0", + "referencedDeclaration": 1372, + "src": "11248:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -66225,7 +68733,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -66237,18 +68745,18 @@ "typeString": "uint256" } ], - "id": 990, + "id": 1396, "name": "_trackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2658, - "src": "10947:11:0", + "referencedDeclaration": 3089, + "src": "11208:11:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 994, + "id": 1400, "isConstant": false, "isLValue": false, "isPure": false, @@ -66256,75 +68764,75 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10947:48:0", + "src": "11208:48:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 995, + "id": 1401, "nodeType": "ExpressionStatement", - "src": "10947:48:0" + "src": "11208:48:6" }, { "eventCall": { "arguments": [ { - "id": 997, + "id": 1403, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11045:9:0", + "referencedDeclaration": 1368, + "src": "11306:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 998, + "id": 1404, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11056:15:0", + "referencedDeclaration": 1370, + "src": "11317:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 999, + "id": 1405, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11073:7:0", + "referencedDeclaration": 1372, + "src": "11334:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1000, + "id": 1406, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "11082:4:0", + "referencedDeclaration": 1374, + "src": "11343:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1001, + "id": 1407, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "11088:6:0", + "referencedDeclaration": 1376, + "src": "11349:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -66334,7 +68842,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -66354,18 +68862,18 @@ "typeString": "uint256" } ], - "id": 996, + "id": 1402, "name": "TokenTransferSucceeded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2261, - "src": "11022:22:0", + "referencedDeclaration": 2692, + "src": "11283:22:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, - "id": 1002, + "id": 1408, "isConstant": false, "isLValue": false, "isPure": false, @@ -66373,22 +68881,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11022:73:0", + "src": "11283:73:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1003, + "id": 1409, "nodeType": "EmitStatement", - "src": "11017:78:0" + "src": "11278:78:6" }, { - "functionReturnParameters": 974, - "id": 1004, + "functionReturnParameters": 1380, + "id": 1410, "nodeType": "Return", - "src": "11117:7:0" + "src": "11378:7:6" } ] } @@ -66397,60 +68905,60 @@ "eventCall": { "arguments": [ { - "id": 1008, + "id": 1414, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11184:9:0", + "referencedDeclaration": 1368, + "src": "11445:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1009, + "id": 1415, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11195:15:0", + "referencedDeclaration": 1370, + "src": "11456:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1010, + "id": 1416, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11212:7:0", + "referencedDeclaration": 1372, + "src": "11473:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1011, + "id": 1417, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "11221:4:0", + "referencedDeclaration": 1374, + "src": "11482:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1012, + "id": 1418, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "11227:6:0", + "referencedDeclaration": 1376, + "src": "11488:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -66460,7 +68968,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -66480,18 +68988,18 @@ "typeString": "uint256" } ], - "id": 1007, + "id": 1413, "name": "TokenTransferFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2233, - "src": "11164:19:0", + "referencedDeclaration": 2664, + "src": "11425:19:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, - "id": 1013, + "id": 1419, "isConstant": false, "isLValue": false, "isPure": false, @@ -66499,35 +69007,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11164:70:0", + "src": "11425:70:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1014, + "id": 1420, "nodeType": "EmitStatement", - "src": "11159:75:0" + "src": "11420:75:6" } ] }, "errorName": "", - "id": 1016, + "id": 1422, "nodeType": "TryCatchClause", "parameters": { - "id": 988, + "id": 1394, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 987, + "id": 1393, "mutability": "mutable", "name": "success", - "nameLocation": "10886:7:0", + "nameLocation": "11147:7:6", "nodeType": "VariableDeclaration", - "scope": 1016, - "src": "10881:12:0", + "scope": 1422, + "src": "11142:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -66535,10 +69043,10 @@ "typeString": "bool" }, "typeName": { - "id": 986, + "id": 1392, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "10881:4:0", + "src": "11142:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -66547,86 +69055,86 @@ "visibility": "internal" } ], - "src": "10880:14:0" + "src": "11141:14:6" }, - "src": "10872:377:0" + "src": "11133:377:6" }, { "block": { - "id": 1029, + "id": 1435, "nodeType": "Block", - "src": "11283:115:0", + "src": "11544:115:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1021, + "id": 1427, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11325:9:0", + "referencedDeclaration": 1368, + "src": "11586:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1022, + "id": 1428, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11336:15:0", + "referencedDeclaration": 1370, + "src": "11597:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1023, + "id": 1429, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11353:7:0", + "referencedDeclaration": 1372, + "src": "11614:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1024, + "id": 1430, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "11362:4:0", + "referencedDeclaration": 1374, + "src": "11623:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1025, + "id": 1431, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "11368:6:0", + "referencedDeclaration": 1376, + "src": "11629:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1026, + "id": 1432, "name": "reason", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1018, - "src": "11376:6:0", + "referencedDeclaration": 1424, + "src": "11637:6:6", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" @@ -66636,7 +69144,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -66660,18 +69168,18 @@ "typeString": "string memory" } ], - "id": 1020, + "id": 1426, "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "11306:18:0", + "referencedDeclaration": 2679, + "src": "11567:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, - "id": 1027, + "id": 1433, "isConstant": false, "isLValue": false, "isPure": false, @@ -66679,35 +69187,35 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11306:77:0", + "src": "11567:77:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1028, + "id": 1434, "nodeType": "EmitStatement", - "src": "11301:82:0" + "src": "11562:82:6" } ] }, "errorName": "Error", - "id": 1030, + "id": 1436, "nodeType": "TryCatchClause", "parameters": { - "id": 1019, + "id": 1425, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1018, + "id": 1424, "mutability": "mutable", "name": "reason", - "nameLocation": "11276:6:0", + "nameLocation": "11537:6:6", "nodeType": "VariableDeclaration", - "scope": 1030, - "src": "11262:20:0", + "scope": 1436, + "src": "11523:20:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -66715,10 +69223,10 @@ "typeString": "string" }, "typeName": { - "id": 1017, + "id": 1423, "name": "string", "nodeType": "ElementaryTypeName", - "src": "11262:6:0", + "src": "11523:6:6", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -66727,74 +69235,74 @@ "visibility": "internal" } ], - "src": "11261:22:0" + "src": "11522:22:6" }, - "src": "11250:148:0" + "src": "11511:148:6" }, { "block": { - "id": 1040, + "id": 1446, "nodeType": "Block", - "src": "11405:111:0", + "src": "11666:111:6", "statements": [ { "eventCall": { "arguments": [ { - "id": 1032, + "id": 1438, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 962, - "src": "11447:9:0", + "referencedDeclaration": 1368, + "src": "11708:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1033, + "id": 1439, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "11458:15:0", + "referencedDeclaration": 1370, + "src": "11719:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1034, + "id": 1440, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 966, - "src": "11475:7:0", + "referencedDeclaration": 1372, + "src": "11736:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1035, + "id": 1441, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "11484:4:0", + "referencedDeclaration": 1374, + "src": "11745:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1036, + "id": 1442, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "11490:6:0", + "referencedDeclaration": 1376, + "src": "11751:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -66802,14 +69310,14 @@ }, { "hexValue": "", - "id": 1037, + "id": 1443, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "11498:2:0", + "src": "11759:2:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" @@ -66820,7 +69328,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -66844,18 +69352,18 @@ "typeString": "literal_string \"\"" } ], - "id": 1031, + "id": 1437, "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "11428:18:0", + "referencedDeclaration": 2679, + "src": "11689:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, - "id": 1038, + "id": 1444, "isConstant": false, "isLValue": false, "isPure": false, @@ -66863,46 +69371,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "11428:73:0", + "src": "11689:73:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1039, + "id": 1445, "nodeType": "EmitStatement", - "src": "11423:78:0" + "src": "11684:78:6" } ] }, "errorName": "", - "id": 1041, + "id": 1447, "nodeType": "TryCatchClause", - "src": "11399:117:0" + "src": "11660:117:6" } ], "externalCall": { "arguments": [ { - "id": 983, + "id": 1389, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 968, - "src": "10858:4:0", + "referencedDeclaration": 1374, + "src": "11119:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 984, + "id": 1390, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 970, - "src": "10864:6:0", + "referencedDeclaration": 1376, + "src": "11125:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -66923,12 +69431,12 @@ "expression": { "arguments": [ { - "id": 980, + "id": 1386, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 964, - "src": "10832:15:0", + "referencedDeclaration": 1370, + "src": "11093:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -66942,18 +69450,18 @@ "typeString": "address" } ], - "id": 979, + "id": 1385, "name": "IERC20", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3670, - "src": "10825:6:0", + "referencedDeclaration": 240, + "src": "11086:6:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_contract$_IERC20_$3670_$", + "typeIdentifier": "t_type$_t_contract$_IERC20_$240_$", "typeString": "type(contract IERC20)" } }, - "id": 981, + "id": 1387, "isConstant": false, "isLValue": false, "isPure": false, @@ -66961,28 +69469,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10825:23:0", + "src": "11086:23:6", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_contract$_IERC20_$3670", + "typeIdentifier": "t_contract$_IERC20_$240", "typeString": "contract IERC20" } }, - "id": 982, + "id": 1388, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "transfer", "nodeType": "MemberAccess", - "referencedDeclaration": 3619, - "src": "10825:32:0", + "referencedDeclaration": 189, + "src": "11086:32:6", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) external returns (bool)" } }, - "id": 985, + "id": 1391, "isConstant": false, "isLValue": false, "isPure": false, @@ -66990,62 +69498,62 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10825:46:0", + "src": "11086:46:6", "tryCall": true, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1042, + "id": 1448, "nodeType": "TryStatement", - "src": "10821:695:0" + "src": "11082:695:6" } ] } } ] }, - "id": 1155, + "id": 1561, "implemented": true, "kind": "function", "modifiers": [], "name": "_transferToken", - "nameLocation": "10627:14:0", + "nameLocation": "10888:14:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 973, + "id": 1379, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 962, + "id": 1368, "mutability": "mutable", "name": "tokenType", - "nameLocation": "10652:9:0", + "nameLocation": "10913:9:6", "nodeType": "VariableDeclaration", - "scope": 1155, - "src": "10642:19:0", + "scope": 1561, + "src": "10903:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 961, + "id": 1367, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 960, + "id": 1366, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2176, - "src": "10642:9:0" + "referencedDeclaration": 2607, + "src": "10903:9:6" }, - "referencedDeclaration": 2176, - "src": "10642:9:0", + "referencedDeclaration": 2607, + "src": "10903:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -67053,13 +69561,13 @@ }, { "constant": false, - "id": 964, + "id": 1370, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "10671:15:0", + "nameLocation": "10932:15:6", "nodeType": "VariableDeclaration", - "scope": 1155, - "src": "10663:23:0", + "scope": 1561, + "src": "10924:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -67067,10 +69575,10 @@ "typeString": "address" }, "typeName": { - "id": 963, + "id": 1369, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10663:7:0", + "src": "10924:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -67081,13 +69589,13 @@ }, { "constant": false, - "id": 966, + "id": 1372, "mutability": "mutable", "name": "tokenId", - "nameLocation": "10696:7:0", + "nameLocation": "10957:7:6", "nodeType": "VariableDeclaration", - "scope": 1155, - "src": "10688:15:0", + "scope": 1561, + "src": "10949:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -67095,10 +69603,10 @@ "typeString": "uint256" }, "typeName": { - "id": 965, + "id": 1371, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10688:7:0", + "src": "10949:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -67108,13 +69616,13 @@ }, { "constant": false, - "id": 968, + "id": 1374, "mutability": "mutable", "name": "dest", - "nameLocation": "10713:4:0", + "nameLocation": "10974:4:6", "nodeType": "VariableDeclaration", - "scope": 1155, - "src": "10705:12:0", + "scope": 1561, + "src": "10966:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -67122,10 +69630,10 @@ "typeString": "address" }, "typeName": { - "id": 967, + "id": 1373, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10705:7:0", + "src": "10966:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -67136,13 +69644,13 @@ }, { "constant": false, - "id": 970, + "id": 1376, "mutability": "mutable", "name": "amount", - "nameLocation": "10727:6:0", + "nameLocation": "10988:6:6", "nodeType": "VariableDeclaration", - "scope": 1155, - "src": "10719:14:0", + "scope": 1561, + "src": "10980:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -67150,10 +69658,10 @@ "typeString": "uint256" }, "typeName": { - "id": 969, + "id": 1375, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10719:7:0", + "src": "10980:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -67163,13 +69671,13 @@ }, { "constant": false, - "id": 972, + "id": 1378, "mutability": "mutable", "name": "data", - "nameLocation": "10748:4:0", + "nameLocation": "11009:4:6", "nodeType": "VariableDeclaration", - "scope": 1155, - "src": "10735:17:0", + "scope": 1561, + "src": "10996:17:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -67177,10 +69685,10 @@ "typeString": "bytes" }, "typeName": { - "id": 971, + "id": 1377, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10735:5:0", + "src": "10996:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -67189,40 +69697,40 @@ "visibility": "internal" } ], - "src": "10641:112:0" + "src": "10902:112:6" }, "returnParameters": { - "id": 974, + "id": 1380, "nodeType": "ParameterList", "parameters": [], - "src": "10763:0:0" + "src": "11024:0:6" }, - "scope": 2161, - "src": "10618:1973:0", + "scope": 2592, + "src": "10879:1973:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1336, + "id": 1741, "nodeType": "Block", - "src": "12951:1011:0", + "src": "13212:1016:6", "statements": [ { "assignments": [ - 1186 + 1592 ], "declarations": [ { "constant": false, - "id": 1186, + "id": 1592, "mutability": "mutable", "name": "hash", - "nameLocation": "12969:4:0", + "nameLocation": "13230:4:6", "nodeType": "VariableDeclaration", - "scope": 1336, - "src": "12961:12:0", + "scope": 1741, + "src": "13222:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -67230,10 +69738,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1185, + "id": 1591, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12961:7:0", + "src": "13222:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -67242,18 +69750,18 @@ "visibility": "internal" } ], - "id": 1202, + "id": 1608, "initialValue": { "arguments": [ { "arguments": [ { - "id": 1191, + "id": 1597, "name": "neighbor", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1158, - "src": "12999:8:0", + "referencedDeclaration": 1564, + "src": "13260:8:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -67264,12 +69772,12 @@ { "arguments": [ { - "id": 1196, + "id": 1602, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1160, - "src": "13024:14:0", + "referencedDeclaration": 1566, + "src": "13285:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -67283,26 +69791,26 @@ "typeString": "uint32" } ], - "id": 1195, + "id": 1601, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13017:6:0", + "src": "13278:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes4_$", "typeString": "type(bytes4)" }, "typeName": { - "id": 1194, + "id": 1600, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "13017:6:0", + "src": "13278:6:6", "typeDescriptions": {} } }, - "id": 1197, + "id": 1603, "isConstant": false, "isLValue": false, "isPure": false, @@ -67310,7 +69818,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13017:22:0", + "src": "13278:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes4", @@ -67325,26 +69833,26 @@ "typeString": "bytes4" } ], - "id": 1193, + "id": 1599, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13009:7:0", + "src": "13270:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1192, + "id": 1598, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13009:7:0", + "src": "13270:7:6", "typeDescriptions": {} } }, - "id": 1198, + "id": 1604, "isConstant": false, "isLValue": false, "isPure": false, @@ -67352,7 +69860,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13009:31:0", + "src": "13270:31:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -67360,12 +69868,12 @@ } }, { - "id": 1199, + "id": 1605, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1162, - "src": "13042:4:0", + "referencedDeclaration": 1568, + "src": "13303:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -67388,39 +69896,39 @@ } ], "expression": { - "id": 1189, + "id": 1595, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "12986:5:0", + "src": "13247:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1188, + "id": 1594, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12986:5:0", + "src": "13247:5:6", "typeDescriptions": {} } }, - "id": 1190, + "id": 1596, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "12986:12:0", + "src": "13247:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1200, + "id": 1606, "isConstant": false, "isLValue": false, "isPure": false, @@ -67428,7 +69936,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12986:61:0", + "src": "13247:61:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -67443,18 +69951,18 @@ "typeString": "bytes memory" } ], - "id": 1187, + "id": 1593, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "12976:9:0", + "src": "13237:9:6", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1201, + "id": 1607, "isConstant": false, "isLValue": false, "isPure": false, @@ -67462,7 +69970,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "12976:72:0", + "src": "13237:72:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -67470,22 +69978,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "12961:87:0" + "src": "13222:87:6" }, { "assignments": [ - 1204 + 1610 ], "declarations": [ { "constant": false, - "id": 1204, + "id": 1610, "mutability": "mutable", "name": "paramsHash", - "nameLocation": "13066:10:0", + "nameLocation": "13327:10:6", "nodeType": "VariableDeclaration", - "scope": 1336, - "src": "13058:18:0", + "scope": 1741, + "src": "13319:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -67493,10 +70001,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1203, + "id": 1609, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13058:7:0", + "src": "13319:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -67505,19 +70013,19 @@ "visibility": "internal" } ], - "id": 1209, + "id": 1615, "initialValue": { "arguments": [ { "hexValue": "30", - "id": 1207, + "id": 1613, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "13087:1:0", + "src": "13348:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -67532,26 +70040,26 @@ "typeString": "int_const 0" } ], - "id": 1206, + "id": 1612, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13079:7:0", + "src": "13340:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1205, + "id": 1611, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13079:7:0", + "src": "13340:7:6", "typeDescriptions": {} } }, - "id": 1208, + "id": 1614, "isConstant": false, "isLValue": false, "isPure": true, @@ -67559,7 +70067,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13079:10:0", + "src": "13340:10:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -67567,28 +70075,28 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "13058:31:0" + "src": "13319:31:6" }, { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1213, + "id": 1619, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1210, + "id": 1616, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "13103:13:0", + "referencedDeclaration": 1571, + "src": "13364:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -67596,32 +70104,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1211, + "id": 1617, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "13120:13:0", + "referencedDeclaration": 493, + "src": "13381:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1212, + "id": 1618, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "TRANSFER", "nodeType": "MemberAccess", - "referencedDeclaration": 100, - "src": "13120:22:0", + "referencedDeclaration": 489, + "src": "13381:22:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "13103:39:0", + "src": "13364:39:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -67630,23 +70138,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1241, + "id": 1647, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1238, + "id": 1644, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "13265:13:0", + "referencedDeclaration": 1571, + "src": "13526:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -67654,32 +70162,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1239, + "id": 1645, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "13282:13:0", + "referencedDeclaration": 493, + "src": "13543:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1240, + "id": 1646, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "RECOVER", "nodeType": "MemberAccess", - "referencedDeclaration": 102, - "src": "13282:21:0", + "referencedDeclaration": 491, + "src": "13543:21:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "13265:38:0", + "src": "13526:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -67688,23 +70196,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1253, + "id": 1658, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1250, + "id": 1655, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "13363:13:0", + "referencedDeclaration": 1571, + "src": "13629:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -67712,56 +70220,56 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1251, + "id": 1656, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "13380:13:0", + "referencedDeclaration": 493, + "src": "13646:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1252, + "id": 1657, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "SET_RECOVERY_ADDRESS", "nodeType": "MemberAccess", - "referencedDeclaration": 101, - "src": "13380:34:0", + "referencedDeclaration": 490, + "src": "13646:34:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "13363:51:0", + "src": "13629:51:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1328, + "id": 1733, "nodeType": "Block", - "src": "13516:405:0", + "src": "13782:405:6", "statements": [ { "assignments": [ - 1275 + 1680 ], "declarations": [ { "constant": false, - "id": 1275, + "id": 1680, "mutability": "mutable", "name": "packed", - "nameLocation": "13543:6:0", + "nameLocation": "13809:6:6", "nodeType": "VariableDeclaration", - "scope": 1328, - "src": "13530:19:0", + "scope": 1733, + "src": "13796:19:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -67769,10 +70277,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1274, + "id": 1679, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "13530:5:0", + "src": "13796:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -67781,7 +70289,7 @@ "visibility": "internal" } ], - "id": 1317, + "id": 1722, "initialValue": { "arguments": [ { @@ -67789,14 +70297,14 @@ { "arguments": [ { - "id": 1283, + "id": 1688, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1165, - "src": "13598:13:0", + "referencedDeclaration": 1571, + "src": "13864:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } } @@ -67804,30 +70312,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } ], - "id": 1282, + "id": 1687, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13590:7:0", + "src": "13856:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1281, + "id": 1686, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13590:7:0", + "src": "13856:7:6", "typeDescriptions": {} } }, - "id": 1284, + "id": 1689, "isConstant": false, "isLValue": false, "isPure": false, @@ -67835,7 +70343,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13590:22:0", + "src": "13856:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -67850,26 +70358,26 @@ "typeString": "uint256" } ], - "id": 1280, + "id": 1685, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13582:7:0", + "src": "13848:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1279, + "id": 1684, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13582:7:0", + "src": "13848:7:6", "typeDescriptions": {} } }, - "id": 1285, + "id": 1690, "isConstant": false, "isLValue": false, "isPure": false, @@ -67877,7 +70385,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13582:31:0", + "src": "13848:31:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -67889,14 +70397,14 @@ { "arguments": [ { - "id": 1290, + "id": 1695, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1168, - "src": "13647:9:0", + "referencedDeclaration": 1574, + "src": "13913:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } } @@ -67904,30 +70412,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } ], - "id": 1289, + "id": 1694, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13639:7:0", + "src": "13905:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 1288, + "id": 1693, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "13639:7:0", + "src": "13905:7:6", "typeDescriptions": {} } }, - "id": 1291, + "id": 1696, "isConstant": false, "isLValue": false, "isPure": false, @@ -67935,7 +70443,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13639:18:0", + "src": "13905:18:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -67950,26 +70458,26 @@ "typeString": "uint256" } ], - "id": 1287, + "id": 1692, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13631:7:0", + "src": "13897:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1286, + "id": 1691, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13631:7:0", + "src": "13897:7:6", "typeDescriptions": {} } }, - "id": 1292, + "id": 1697, "isConstant": false, "isLValue": false, "isPure": false, @@ -67977,7 +70485,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13631:27:0", + "src": "13897:27:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -67989,12 +70497,12 @@ { "arguments": [ { - "id": 1297, + "id": 1702, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1170, - "src": "13692:15:0", + "referencedDeclaration": 1576, + "src": "13958:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -68008,26 +70516,26 @@ "typeString": "address" } ], - "id": 1296, + "id": 1701, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13684:7:0", + "src": "13950:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 1295, + "id": 1700, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "13684:7:0", + "src": "13950:7:6", "typeDescriptions": {} } }, - "id": 1298, + "id": 1703, "isConstant": false, "isLValue": false, "isPure": false, @@ -68035,7 +70543,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13684:24:0", + "src": "13950:24:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -68050,26 +70558,26 @@ "typeString": "bytes20" } ], - "id": 1294, + "id": 1699, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13676:7:0", + "src": "13942:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1293, + "id": 1698, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13676:7:0", + "src": "13942:7:6", "typeDescriptions": {} } }, - "id": 1299, + "id": 1704, "isConstant": false, "isLValue": false, "isPure": false, @@ -68077,7 +70585,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13676:33:0", + "src": "13942:33:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -68087,12 +70595,12 @@ { "arguments": [ { - "id": 1302, + "id": 1707, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1172, - "src": "13735:7:0", + "referencedDeclaration": 1578, + "src": "14001:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -68106,26 +70614,26 @@ "typeString": "uint256" } ], - "id": 1301, + "id": 1706, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13727:7:0", + "src": "13993:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1300, + "id": 1705, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13727:7:0", + "src": "13993:7:6", "typeDescriptions": {} } }, - "id": 1303, + "id": 1708, "isConstant": false, "isLValue": false, "isPure": false, @@ -68133,7 +70641,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13727:16:0", + "src": "13993:16:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -68145,12 +70653,12 @@ { "arguments": [ { - "id": 1308, + "id": 1713, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1174, - "src": "13777:4:0", + "referencedDeclaration": 1580, + "src": "14043:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -68164,26 +70672,26 @@ "typeString": "address" } ], - "id": 1307, + "id": 1712, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13769:7:0", + "src": "14035:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 1306, + "id": 1711, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "13769:7:0", + "src": "14035:7:6", "typeDescriptions": {} } }, - "id": 1309, + "id": 1714, "isConstant": false, "isLValue": false, "isPure": false, @@ -68191,7 +70699,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13769:13:0", + "src": "14035:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -68206,26 +70714,26 @@ "typeString": "bytes20" } ], - "id": 1305, + "id": 1710, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13761:7:0", + "src": "14027:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1304, + "id": 1709, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13761:7:0", + "src": "14027:7:6", "typeDescriptions": {} } }, - "id": 1310, + "id": 1715, "isConstant": false, "isLValue": false, "isPure": false, @@ -68233,7 +70741,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13761:22:0", + "src": "14027:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -68243,12 +70751,12 @@ { "arguments": [ { - "id": 1313, + "id": 1718, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "13809:6:0", + "referencedDeclaration": 1582, + "src": "14075:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -68262,26 +70770,26 @@ "typeString": "uint256" } ], - "id": 1312, + "id": 1717, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13801:7:0", + "src": "14067:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1311, + "id": 1716, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13801:7:0", + "src": "14067:7:6", "typeDescriptions": {} } }, - "id": 1314, + "id": 1719, "isConstant": false, "isLValue": false, "isPure": false, @@ -68289,7 +70797,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13801:15:0", + "src": "14067:15:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -68297,12 +70805,12 @@ } }, { - "id": 1315, + "id": 1720, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1178, - "src": "13834:4:0", + "referencedDeclaration": 1584, + "src": "14100:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -68341,39 +70849,39 @@ } ], "expression": { - "id": 1277, + "id": 1682, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13552:5:0", + "src": "13818:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1276, + "id": 1681, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "13552:5:0", + "src": "13818:5:6", "typeDescriptions": {} } }, - "id": 1278, + "id": 1683, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "13552:12:0", + "src": "13818:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1316, + "id": 1721, "isConstant": false, "isLValue": false, "isPure": false, @@ -68381,7 +70889,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13552:300:0", + "src": "13818:300:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -68389,22 +70897,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "13530:322:0" + "src": "13796:322:6" }, { "expression": { - "id": 1326, + "id": 1731, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1318, + "id": 1723, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1204, - "src": "13866:10:0", + "referencedDeclaration": 1610, + "src": "14132:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -68417,12 +70925,12 @@ { "arguments": [ { - "id": 1323, + "id": 1728, "name": "packed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1275, - "src": "13902:6:0", + "referencedDeclaration": 1680, + "src": "14168:6:6", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" @@ -68437,39 +70945,39 @@ } ], "expression": { - "id": 1321, + "id": 1726, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13889:5:0", + "src": "14155:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1320, + "id": 1725, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "13889:5:0", + "src": "14155:5:6", "typeDescriptions": {} } }, - "id": 1322, + "id": 1727, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "13889:12:0", + "src": "14155:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1324, + "id": 1729, "isConstant": false, "isLValue": false, "isPure": false, @@ -68477,7 +70985,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13889:20:0", + "src": "14155:20:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -68492,18 +71000,18 @@ "typeString": "bytes memory" } ], - "id": 1319, + "id": 1724, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "13879:9:0", + "src": "14145:9:6", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1325, + "id": 1730, "isConstant": false, "isLValue": false, "isPure": false, @@ -68511,47 +71019,47 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13879:31:0", + "src": "14145:31:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "13866:44:0", + "src": "14132:44:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1327, + "id": 1732, "nodeType": "ExpressionStatement", - "src": "13866:44:0" + "src": "14132:44:6" } ] }, - "id": 1329, + "id": 1734, "nodeType": "IfStatement", - "src": "13359:562:0", + "src": "13625:562:6", "trueBody": { - "id": 1273, + "id": 1678, "nodeType": "Block", - "src": "13416:94:0", + "src": "13682:94:6", "statements": [ { "expression": { - "id": 1271, + "id": 1676, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1254, + "id": 1659, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1204, - "src": "13430:10:0", + "referencedDeclaration": 1610, + "src": "13696:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -68570,12 +71078,12 @@ { "arguments": [ { - "id": 1265, + "id": 1670, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1174, - "src": "13490:4:0", + "referencedDeclaration": 1580, + "src": "13756:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -68589,26 +71097,26 @@ "typeString": "address" } ], - "id": 1264, + "id": 1669, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13482:7:0", + "src": "13748:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1263, + "id": 1668, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13482:7:0", + "src": "13748:7:6", "typeDescriptions": {} } }, - "id": 1266, + "id": 1671, "isConstant": false, "isLValue": false, "isPure": false, @@ -68616,7 +71124,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13482:13:0", + "src": "13748:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -68631,26 +71139,26 @@ "typeString": "address" } ], - "id": 1262, + "id": 1667, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13474:7:0", + "src": "13740:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 1261, + "id": 1666, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "13474:7:0", + "src": "13740:7:6", "typeDescriptions": {} } }, - "id": 1267, + "id": 1672, "isConstant": false, "isLValue": false, "isPure": false, @@ -68658,7 +71166,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13474:22:0", + "src": "13740:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -68673,26 +71181,26 @@ "typeString": "bytes20" } ], - "id": 1260, + "id": 1665, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13466:7:0", + "src": "13732:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1259, + "id": 1664, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13466:7:0", + "src": "13732:7:6", "typeDescriptions": {} } }, - "id": 1268, + "id": 1673, "isConstant": false, "isLValue": false, "isPure": false, @@ -68700,7 +71208,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13466:31:0", + "src": "13732:31:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -68716,39 +71224,39 @@ } ], "expression": { - "id": 1257, + "id": 1662, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13453:5:0", + "src": "13719:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1256, + "id": 1661, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "13453:5:0", + "src": "13719:5:6", "typeDescriptions": {} } }, - "id": 1258, + "id": 1663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "13453:12:0", + "src": "13719:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1269, + "id": 1674, "isConstant": false, "isLValue": false, "isPure": false, @@ -68756,7 +71264,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13453:45:0", + "src": "13719:45:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -68771,18 +71279,18 @@ "typeString": "bytes memory" } ], - "id": 1255, + "id": 1660, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "13443:9:0", + "src": "13709:9:6", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1270, + "id": 1675, "isConstant": false, "isLValue": false, "isPure": false, @@ -68790,48 +71298,48 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13443:56:0", + "src": "13709:56:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "13430:69:0", + "src": "13696:69:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1272, + "id": 1677, "nodeType": "ExpressionStatement", - "src": "13430:69:0" + "src": "13696:69:6" } ] } }, - "id": 1330, + "id": 1735, "nodeType": "IfStatement", - "src": "13261:660:0", + "src": "13522:665:6", "trueBody": { - "id": 1249, + "id": 1654, "nodeType": "Block", - "src": "13305:48:0", + "src": "13566:53:6", "statements": [ { "expression": { - "id": 1247, + "id": 1652, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1242, + "id": 1648, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1204, - "src": "13319:10:0", + "referencedDeclaration": 1610, + "src": "13580:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -68842,98 +71350,86 @@ "rightHandSide": { "arguments": [ { - "hexValue": "30", - "id": 1245, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "13340:1:0", + "id": 1650, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1584, + "src": "13603:4:6", "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" } ], - "id": 1244, - "isConstant": false, - "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "13332:7:0", + "id": 1649, + "name": "keccak256", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967288, + "src": "13593:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_bytes32_$", - "typeString": "type(bytes32)" - }, - "typeName": { - "id": 1243, - "name": "bytes32", - "nodeType": "ElementaryTypeName", - "src": "13332:7:0", - "typeDescriptions": {} + "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1246, + "id": 1651, "isConstant": false, "isLValue": false, - "isPure": true, - "kind": "typeConversion", + "isPure": false, + "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13332:10:0", + "src": "13593:15:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "13319:23:0", + "src": "13580:28:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1248, + "id": 1653, "nodeType": "ExpressionStatement", - "src": "13319:23:0" + "src": "13580:28:6" } ] } }, - "id": 1331, + "id": 1736, "nodeType": "IfStatement", - "src": "13099:822:0", + "src": "13360:827:6", "trueBody": { - "id": 1237, + "id": 1643, "nodeType": "Block", - "src": "13144:111:0", + "src": "13405:111:6", "statements": [ { "expression": { - "id": 1235, + "id": 1641, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1214, + "id": 1620, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1204, - "src": "13158:10:0", + "referencedDeclaration": 1610, + "src": "13419:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -68952,12 +71448,12 @@ { "arguments": [ { - "id": 1225, + "id": 1631, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1174, - "src": "13218:4:0", + "referencedDeclaration": 1580, + "src": "13479:4:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -68971,26 +71467,26 @@ "typeString": "address" } ], - "id": 1224, + "id": 1630, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13210:7:0", + "src": "13471:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 1223, + "id": 1629, "name": "address", "nodeType": "ElementaryTypeName", - "src": "13210:7:0", + "src": "13471:7:6", "typeDescriptions": {} } }, - "id": 1226, + "id": 1632, "isConstant": false, "isLValue": false, "isPure": false, @@ -68998,7 +71494,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13210:13:0", + "src": "13471:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -69013,26 +71509,26 @@ "typeString": "address" } ], - "id": 1222, + "id": 1628, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13202:7:0", + "src": "13463:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 1221, + "id": 1627, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "13202:7:0", + "src": "13463:7:6", "typeDescriptions": {} } }, - "id": 1227, + "id": 1633, "isConstant": false, "isLValue": false, "isPure": false, @@ -69040,7 +71536,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13202:22:0", + "src": "13463:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -69055,26 +71551,26 @@ "typeString": "bytes20" } ], - "id": 1220, + "id": 1626, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13194:7:0", + "src": "13455:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1219, + "id": 1625, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13194:7:0", + "src": "13455:7:6", "typeDescriptions": {} } }, - "id": 1228, + "id": 1634, "isConstant": false, "isLValue": false, "isPure": false, @@ -69082,7 +71578,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13194:31:0", + "src": "13455:31:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -69092,12 +71588,12 @@ { "arguments": [ { - "id": 1231, + "id": 1637, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1176, - "src": "13235:6:0", + "referencedDeclaration": 1582, + "src": "13496:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -69111,26 +71607,26 @@ "typeString": "uint256" } ], - "id": 1230, + "id": 1636, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13227:7:0", + "src": "13488:7:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 1229, + "id": 1635, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13227:7:0", + "src": "13488:7:6", "typeDescriptions": {} } }, - "id": 1232, + "id": 1638, "isConstant": false, "isLValue": false, "isPure": false, @@ -69138,7 +71634,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13227:15:0", + "src": "13488:15:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -69158,39 +71654,39 @@ } ], "expression": { - "id": 1217, + "id": 1623, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "13181:5:0", + "src": "13442:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1216, + "id": 1622, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "13181:5:0", + "src": "13442:5:6", "typeDescriptions": {} } }, - "id": 1218, + "id": 1624, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "13181:12:0", + "src": "13442:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1233, + "id": 1639, "isConstant": false, "isLValue": false, "isPure": false, @@ -69198,7 +71694,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13181:62:0", + "src": "13442:62:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -69213,18 +71709,18 @@ "typeString": "bytes memory" } ], - "id": 1215, + "id": 1621, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "13171:9:0", + "src": "13432:9:6", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1234, + "id": 1640, "isConstant": false, "isLValue": false, "isPure": false, @@ -69232,22 +71728,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "13171:73:0", + "src": "13432:73:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "13158:86:0", + "src": "13419:86:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1236, + "id": 1642, "nodeType": "ExpressionStatement", - "src": "13158:86:0" + "src": "13419:86:6" } ] } @@ -69256,76 +71752,76 @@ "expression": { "components": [ { - "id": 1332, + "id": 1737, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1186, - "src": "13938:4:0", + "referencedDeclaration": 1592, + "src": "14204:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1333, + "id": 1738, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1204, - "src": "13944:10:0", + "referencedDeclaration": 1610, + "src": "14210:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } } ], - "id": 1334, + "id": 1739, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "13937:18:0", + "src": "14203:18:6", "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", "typeString": "tuple(bytes32,bytes32)" } }, - "functionReturnParameters": 1184, - "id": 1335, + "functionReturnParameters": 1590, + "id": 1740, "nodeType": "Return", - "src": "13930:25:0" + "src": "14196:25:6" } ] }, "documentation": { - "id": 1156, + "id": 1562, "nodeType": "StructuredDocumentation", - "src": "12597:78:0", + "src": "12858:78:6", "text": "Provides commitHash, paramsHash, and verificationHash given the parameters" }, - "id": 1337, + "id": 1742, "implemented": true, "kind": "function", "modifiers": [], "name": "_getRevealHash", - "nameLocation": "12689:14:0", + "nameLocation": "12950:14:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1179, + "id": 1585, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1158, + "id": 1564, "mutability": "mutable", "name": "neighbor", - "nameLocation": "12712:8:0", + "nameLocation": "12973:8:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12704:16:0", + "scope": 1742, + "src": "12965:16:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -69333,10 +71829,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1157, + "id": 1563, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12704:7:0", + "src": "12965:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -69346,13 +71842,13 @@ }, { "constant": false, - "id": 1160, + "id": 1566, "mutability": "mutable", "name": "indexWithNonce", - "nameLocation": "12729:14:0", + "nameLocation": "12990:14:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12722:21:0", + "scope": 1742, + "src": "12983:21:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -69360,10 +71856,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1159, + "id": 1565, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "12722:6:0", + "src": "12983:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -69373,13 +71869,13 @@ }, { "constant": false, - "id": 1162, + "id": 1568, "mutability": "mutable", "name": "eotp", - "nameLocation": "12753:4:0", + "nameLocation": "13014:4:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12745:12:0", + "scope": 1742, + "src": "13006:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -69387,10 +71883,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1161, + "id": 1567, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12745:7:0", + "src": "13006:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -69400,33 +71896,33 @@ }, { "constant": false, - "id": 1165, + "id": 1571, "mutability": "mutable", "name": "operationType", - "nameLocation": "12781:13:0", + "nameLocation": "13042:13:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12767:27:0", + "scope": 1742, + "src": "13028:27:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, "typeName": { - "id": 1164, + "id": 1570, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1163, + "id": 1569, "name": "OperationType", "nodeType": "IdentifierPath", - "referencedDeclaration": 103, - "src": "12767:13:0" + "referencedDeclaration": 493, + "src": "13028:13:6" }, - "referencedDeclaration": 103, - "src": "12767:13:0", + "referencedDeclaration": 493, + "src": "13028:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -69434,33 +71930,33 @@ }, { "constant": false, - "id": 1168, + "id": 1574, "mutability": "mutable", "name": "tokenType", - "nameLocation": "12806:9:0", + "nameLocation": "13067:9:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12796:19:0", + "scope": 1742, + "src": "13057:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 1167, + "id": 1573, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1166, + "id": 1572, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2176, - "src": "12796:9:0" + "referencedDeclaration": 2607, + "src": "13057:9:6" }, - "referencedDeclaration": 2176, - "src": "12796:9:0", + "referencedDeclaration": 2607, + "src": "13057:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -69468,13 +71964,13 @@ }, { "constant": false, - "id": 1170, + "id": 1576, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "12825:15:0", + "nameLocation": "13086:15:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12817:23:0", + "scope": 1742, + "src": "13078:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -69482,10 +71978,10 @@ "typeString": "address" }, "typeName": { - "id": 1169, + "id": 1575, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12817:7:0", + "src": "13078:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -69496,13 +71992,13 @@ }, { "constant": false, - "id": 1172, + "id": 1578, "mutability": "mutable", "name": "tokenId", - "nameLocation": "12850:7:0", + "nameLocation": "13111:7:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12842:15:0", + "scope": 1742, + "src": "13103:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -69510,10 +72006,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1171, + "id": 1577, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12842:7:0", + "src": "13103:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -69523,13 +72019,13 @@ }, { "constant": false, - "id": 1174, + "id": 1580, "mutability": "mutable", "name": "dest", - "nameLocation": "12867:4:0", + "nameLocation": "13128:4:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12859:12:0", + "scope": 1742, + "src": "13120:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -69537,10 +72033,10 @@ "typeString": "address" }, "typeName": { - "id": 1173, + "id": 1579, "name": "address", "nodeType": "ElementaryTypeName", - "src": "12859:7:0", + "src": "13120:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -69551,13 +72047,13 @@ }, { "constant": false, - "id": 1176, + "id": 1582, "mutability": "mutable", "name": "amount", - "nameLocation": "12881:6:0", + "nameLocation": "13142:6:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12873:14:0", + "scope": 1742, + "src": "13134:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -69565,10 +72061,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1175, + "id": 1581, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "12873:7:0", + "src": "13134:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -69578,13 +72074,13 @@ }, { "constant": false, - "id": 1178, + "id": 1584, "mutability": "mutable", "name": "data", - "nameLocation": "12904:4:0", + "nameLocation": "13165:4:6", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12889:19:0", + "scope": 1742, + "src": "13150:19:6", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -69592,10 +72088,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1177, + "id": 1583, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "12889:5:0", + "src": "13150:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -69604,21 +72100,21 @@ "visibility": "internal" } ], - "src": "12703:206:0" + "src": "12964:206:6" }, "returnParameters": { - "id": 1184, + "id": 1590, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1181, + "id": 1587, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12933:7:0", + "scope": 1742, + "src": "13194:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -69626,10 +72122,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1180, + "id": 1586, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12933:7:0", + "src": "13194:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -69639,13 +72135,13 @@ }, { "constant": false, - "id": 1183, + "id": 1589, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1337, - "src": "12942:7:0", + "scope": 1742, + "src": "13203:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -69653,10 +72149,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1182, + "id": 1588, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "12942:7:0", + "src": "13203:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -69665,54 +72161,54 @@ "visibility": "internal" } ], - "src": "12932:18:0" + "src": "13193:18:6" }, - "scope": 2161, - "src": "12680:1282:0", + "scope": 2592, + "src": "12941:1287:6", "stateMutability": "pure", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1503, + "id": 1923, "nodeType": "Block", - "src": "14224:1473:0", + "src": "14490:1631:6", "statements": [ { "expression": { "arguments": [ { - "id": 1364, + "id": 1769, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1340, - "src": "14250:9:0", + "referencedDeclaration": 1745, + "src": "14516:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, { - "id": 1365, + "id": 1770, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1342, - "src": "14261:14:0", + "referencedDeclaration": 1747, + "src": "14527:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { - "id": 1366, + "id": 1771, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "14277:4:0", + "referencedDeclaration": 1749, + "src": "14543:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -69734,18 +72230,18 @@ "typeString": "bytes32" } ], - "id": 1363, + "id": 1768, "name": "_isCorrectProof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1597, - "src": "14234:15:0", + "referencedDeclaration": 2028, + "src": "14500:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_uint32_$_t_bytes32_$returns$__$", "typeString": "function (bytes32[] calldata,uint32,bytes32) view" } }, - "id": 1367, + "id": 1772, "isConstant": false, "isLValue": false, "isPure": false, @@ -69753,32 +72249,241 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14234:48:0", + "src": "14500:48:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1368, + "id": 1773, "nodeType": "ExpressionStatement", - "src": "14234:48:0" + "src": "14500:48:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1774, + "name": "indexWithNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1747, + "src": "14562:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1775, + "name": "_numLeaves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "14580:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14593:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "14580:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "14562:32:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1788, + "nodeType": "IfStatement", + "src": "14558:149:6", + "trueBody": { + "id": 1787, + "nodeType": "Block", + "src": "14596:111:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + }, + "id": 1783, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1780, + "name": "operationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1752, + "src": "14618:13:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 1781, + "name": "OperationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 493, + "src": "14635:13:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", + "typeString": "type(enum ONEWallet.OperationType)" + } + }, + "id": 1782, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "RECOVER", + "nodeType": "MemberAccess", + "referencedDeclaration": 491, + "src": "14635:21:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } + }, + "src": "14618:38:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4c617374206f7065726174696f6e20726573657276656420666f72207265636f766572", + "id": 1784, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14658:37:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fab9828a623b3dec5ff9fd3a2c3a6f583ee6577f264fc8a5c168e0454ba5a4ba", + "typeString": "literal_string \"Last operation reserved for recover\"" + }, + "value": "Last operation reserved for recover" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_fab9828a623b3dec5ff9fd3a2c3a6f583ee6577f264fc8a5c168e0454ba5a4ba", + "typeString": "literal_string \"Last operation reserved for recover\"" + } + ], + "id": 1779, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14610:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14610:86:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1786, + "nodeType": "ExpressionStatement", + "src": "14610:86:6" + } + ] + } }, { "assignments": [ - 1370, - 1372 + 1790, + 1792 ], "declarations": [ { "constant": false, - "id": 1370, + "id": 1790, "mutability": "mutable", "name": "commitHash", - "nameLocation": "14301:10:0", + "nameLocation": "14725:10:6", "nodeType": "VariableDeclaration", - "scope": 1503, - "src": "14293:18:0", + "scope": 1923, + "src": "14717:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -69786,10 +72491,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1369, + "id": 1789, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "14293:7:0", + "src": "14717:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -69799,13 +72504,13 @@ }, { "constant": false, - "id": 1372, + "id": 1792, "mutability": "mutable", "name": "paramsHash", - "nameLocation": "14321:10:0", + "nameLocation": "14745:10:6", "nodeType": "VariableDeclaration", - "scope": 1503, - "src": "14313:18:0", + "scope": 1923, + "src": "14737:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -69813,10 +72518,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1371, + "id": 1791, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "14313:7:0", + "src": "14737:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -69825,33 +72530,33 @@ "visibility": "internal" } ], - "id": 1387, + "id": 1807, "initialValue": { "arguments": [ { "baseExpression": { - "id": 1374, + "id": 1794, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1340, - "src": "14350:9:0", + "referencedDeclaration": 1745, + "src": "14774:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1376, + "id": 1796, "indexExpression": { "hexValue": "30", - "id": 1375, + "id": 1795, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14360:1:0", + "src": "14784:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -69863,115 +72568,115 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "14350:12:0", + "src": "14774:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1377, + "id": 1797, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1342, - "src": "14364:14:0", + "referencedDeclaration": 1747, + "src": "14788:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { - "id": 1378, + "id": 1798, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "14380:4:0", + "referencedDeclaration": 1749, + "src": "14804:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1379, + "id": 1799, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "14398:13:0", + "referencedDeclaration": 1752, + "src": "14822:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, { - "id": 1380, + "id": 1800, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1350, - "src": "14413:9:0", + "referencedDeclaration": 1755, + "src": "14837:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1381, + "id": 1801, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "14424:15:0", + "referencedDeclaration": 1757, + "src": "14848:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1382, + "id": 1802, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, - "src": "14441:7:0", + "referencedDeclaration": 1759, + "src": "14865:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1383, + "id": 1803, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "14450:4:0", + "referencedDeclaration": 1761, + "src": "14874:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 1384, + "id": 1804, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "14456:6:0", + "referencedDeclaration": 1763, + "src": "14880:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1385, + "id": 1805, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "14464:4:0", + "referencedDeclaration": 1765, + "src": "14888:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -69993,11 +72698,11 @@ "typeString": "bytes32" }, { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -70021,18 +72726,18 @@ "typeString": "bytes calldata" } ], - "id": 1373, + "id": 1793, "name": "_getRevealHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1337, - "src": "14335:14:0", + "referencedDeclaration": 1742, + "src": "14759:14:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint32_$_t_bytes32_$_t_enum$_OperationType_$103_$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes32_$_t_bytes32_$", + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint32_$_t_bytes32_$_t_enum$_OperationType_$493_$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes32_$_t_bytes32_$", "typeString": "function (bytes32,uint32,bytes32,enum ONEWallet.OperationType,enum TokenTracker.TokenType,address,uint256,address,uint256,bytes calldata) pure returns (bytes32,bytes32)" } }, - "id": 1386, + "id": 1806, "isConstant": false, "isLValue": false, "isPure": false, @@ -70040,7 +72745,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14335:134:0", + "src": "14759:134:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", @@ -70048,22 +72753,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "14292:177:0" + "src": "14716:177:6" }, { "assignments": [ - 1389 + 1809 ], "declarations": [ { "constant": false, - "id": 1389, + "id": 1809, "mutability": "mutable", "name": "commitIndex", - "nameLocation": "14486:11:0", + "nameLocation": "14910:11:6", "nodeType": "VariableDeclaration", - "scope": 1503, - "src": "14479:18:0", + "scope": 1923, + "src": "14903:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -70071,10 +72776,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1388, + "id": 1808, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "14479:6:0", + "src": "14903:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -70083,52 +72788,52 @@ "visibility": "internal" } ], - "id": 1396, + "id": 1816, "initialValue": { "arguments": [ { - "id": 1391, + "id": 1811, "name": "commitHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1370, - "src": "14514:10:0", + "referencedDeclaration": 1790, + "src": "14938:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1392, + "id": 1812, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1342, - "src": "14526:14:0", + "referencedDeclaration": 1747, + "src": "14950:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, { - "id": 1393, + "id": 1813, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1372, - "src": "14542:10:0", + "referencedDeclaration": 1792, + "src": "14966:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1394, + "id": 1814, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1344, - "src": "14554:4:0", + "referencedDeclaration": 1749, + "src": "14978:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -70154,18 +72859,18 @@ "typeString": "bytes32" } ], - "id": 1390, + "id": 1810, "name": "_verifyReveal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1928, - "src": "14500:13:0", + "referencedDeclaration": 2359, + "src": "14924:13:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint32_$_t_bytes32_$_t_bytes32_$returns$_t_uint32_$", "typeString": "function (bytes32,uint32,bytes32,bytes32) view returns (uint32)" } }, - "id": 1395, + "id": 1815, "isConstant": false, "isLValue": false, "isPure": false, @@ -70173,7 +72878,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14500:59:0", + "src": "14924:59:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -70181,30 +72886,30 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "14479:80:0" + "src": "14903:80:6" }, { "expression": { "arguments": [ { - "id": 1398, + "id": 1818, "name": "commitHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1370, - "src": "14585:10:0", + "referencedDeclaration": 1790, + "src": "15009:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1399, + "id": 1819, "name": "commitIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1389, - "src": "14597:11:0", + "referencedDeclaration": 1809, + "src": "15021:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -70222,18 +72927,18 @@ "typeString": "uint32" } ], - "id": 1397, + "id": 1817, "name": "_completeReveal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2001, - "src": "14569:15:0", + "referencedDeclaration": 2432, + "src": "14993:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint32_$returns$__$", "typeString": "function (bytes32,uint32)" } }, - "id": 1400, + "id": 1820, "isConstant": false, "isLValue": false, "isPure": false, @@ -70241,37 +72946,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14569:40:0", + "src": "14993:40:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1401, + "id": 1821, "nodeType": "ExpressionStatement", - "src": "14569:40:0" + "src": "14993:40:6" }, { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1405, + "id": 1825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1402, + "id": 1822, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "14674:13:0", + "referencedDeclaration": 1752, + "src": "15098:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -70279,32 +72984,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1403, + "id": 1823, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "14691:13:0", + "referencedDeclaration": 493, + "src": "15115:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1404, + "id": 1824, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "TRACK", "nodeType": "MemberAccess", - "referencedDeclaration": 96, - "src": "14691:19:0", + "referencedDeclaration": 485, + "src": "15115:19:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "14674:36:0", + "src": "15098:36:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -70313,23 +73018,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1427, + "id": 1847, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1424, + "id": 1844, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "14904:13:0", + "referencedDeclaration": 1752, + "src": "15328:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -70337,32 +73042,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1425, + "id": 1845, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "14921:13:0", + "referencedDeclaration": 493, + "src": "15345:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1426, + "id": 1846, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "UNTRACK", "nodeType": "MemberAccess", - "referencedDeclaration": 97, - "src": "14921:21:0", + "referencedDeclaration": 486, + "src": "15345:21:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "14904:38:0", + "src": "15328:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -70371,23 +73076,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1449, + "id": 1869, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1446, + "id": 1866, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "15140:13:0", + "referencedDeclaration": 1752, + "src": "15564:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -70395,32 +73100,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1447, + "id": 1867, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "15157:13:0", + "referencedDeclaration": 493, + "src": "15581:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1448, + "id": 1868, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "TRANSFER_TOKEN", "nodeType": "MemberAccess", - "referencedDeclaration": 98, - "src": "15157:28:0", + "referencedDeclaration": 487, + "src": "15581:28:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15140:45:0", + "src": "15564:45:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -70429,23 +73134,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1463, + "id": 1883, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1460, + "id": 1880, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "15293:13:0", + "referencedDeclaration": 1752, + "src": "15717:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -70453,32 +73158,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1461, + "id": 1881, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "15310:13:0", + "referencedDeclaration": 493, + "src": "15734:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1462, + "id": 1882, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "OVERRIDE_TRACK", "nodeType": "MemberAccess", - "referencedDeclaration": 99, - "src": "15310:28:0", + "referencedDeclaration": 488, + "src": "15734:28:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15293:45:0", + "src": "15717:45:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -70487,23 +73192,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1472, + "id": 1892, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1469, + "id": 1889, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "15404:13:0", + "referencedDeclaration": 1752, + "src": "15828:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -70511,32 +73216,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1470, + "id": 1890, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "15421:13:0", + "referencedDeclaration": 493, + "src": "15845:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1471, + "id": 1891, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "TRANSFER", "nodeType": "MemberAccess", - "referencedDeclaration": 100, - "src": "15421:22:0", + "referencedDeclaration": 489, + "src": "15845:22:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15404:39:0", + "src": "15828:39:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -70545,23 +73250,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1482, + "id": 1902, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1479, + "id": 1899, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "15503:13:0", + "referencedDeclaration": 1752, + "src": "15927:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -70569,32 +73274,32 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1480, + "id": 1900, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "15520:13:0", + "referencedDeclaration": 493, + "src": "15944:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1481, + "id": 1901, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "RECOVER", "nodeType": "MemberAccess", - "referencedDeclaration": 102, - "src": "15520:21:0", + "referencedDeclaration": 491, + "src": "15944:21:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15503:38:0", + "src": "15927:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -70603,23 +73308,23 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1490, + "id": 1910, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1487, + "id": 1907, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1347, - "src": "15588:13:0", + "referencedDeclaration": 1752, + "src": "16012:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -70627,55 +73332,55 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1488, + "id": 1908, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 103, - "src": "15605:13:0", + "referencedDeclaration": 493, + "src": "16029:13:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_OperationType_$103_$", + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1489, + "id": 1909, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "SET_RECOVERY_ADDRESS", "nodeType": "MemberAccess", - "referencedDeclaration": 101, - "src": "15605:34:0", + "referencedDeclaration": 490, + "src": "16029:34:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15588:51:0", + "src": "16012:51:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1496, + "id": 1916, "nodeType": "IfStatement", - "src": "15584:107:0", + "src": "16008:107:6", "trueBody": { - "id": 1495, + "id": 1915, "nodeType": "Block", - "src": "15641:50:0", + "src": "16065:50:6", "statements": [ { "expression": { "arguments": [ { - "id": 1492, + "id": 1912, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "15675:4:0", + "referencedDeclaration": 1761, + "src": "16099:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -70689,18 +73394,18 @@ "typeString": "address payable" } ], - "id": 1491, + "id": 1911, "name": "_setRecoveryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 959, - "src": "15655:19:0", + "referencedDeclaration": 1365, + "src": "16079:19:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$returns$__$", "typeString": "function (address payable)" } }, - "id": 1493, + "id": 1913, "isConstant": false, "isLValue": false, "isPure": false, @@ -70708,45 +73413,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15655:25:0", + "src": "16079:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1494, + "id": 1914, "nodeType": "ExpressionStatement", - "src": "15655:25:0" + "src": "16079:25:6" } ] } }, - "id": 1497, + "id": 1917, "nodeType": "IfStatement", - "src": "15499:192:0", + "src": "15923:192:6", "trueBody": { - "id": 1486, + "id": 1906, "nodeType": "Block", - "src": "15543:35:0", + "src": "15967:35:6", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1483, + "id": 1903, "name": "_recover", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 939, - "src": "15557:8:0", + "referencedDeclaration": 1345, + "src": "15981:8:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_bool_$", "typeString": "function () returns (bool)" } }, - "id": 1484, + "id": 1904, "isConstant": false, "isLValue": false, "isPure": false, @@ -70754,50 +73459,50 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15557:10:0", + "src": "15981:10:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1485, + "id": 1905, "nodeType": "ExpressionStatement", - "src": "15557:10:0" + "src": "15981:10:6" } ] } }, - "id": 1498, + "id": 1918, "nodeType": "IfStatement", - "src": "15400:291:0", + "src": "15824:291:6", "trueBody": { - "id": 1478, + "id": 1898, "nodeType": "Block", - "src": "15445:48:0", + "src": "15869:48:6", "statements": [ { "expression": { "arguments": [ { - "id": 1474, + "id": 1894, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "15469:4:0", + "referencedDeclaration": 1761, + "src": "15893:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 1475, + "id": 1895, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "15475:6:0", + "referencedDeclaration": 1763, + "src": "15899:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -70815,18 +73520,18 @@ "typeString": "uint256" } ], - "id": 1473, + "id": 1893, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 908, - "src": "15459:9:0", + "referencedDeclaration": 1314, + "src": "15883:9:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address payable,uint256) returns (bool)" } }, - "id": 1476, + "id": 1896, "isConstant": false, "isLValue": false, "isPure": false, @@ -70834,38 +73539,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15459:23:0", + "src": "15883:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1477, + "id": 1897, "nodeType": "ExpressionStatement", - "src": "15459:23:0" + "src": "15883:23:6" } ] } }, - "id": 1499, + "id": 1919, "nodeType": "IfStatement", - "src": "15289:402:0", + "src": "15713:402:6", "trueBody": { - "id": 1468, + "id": 1888, "nodeType": "Block", - "src": "15340:54:0", + "src": "15764:54:6", "statements": [ { "expression": { "arguments": [ { - "id": 1465, + "id": 1885, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "15378:4:0", + "referencedDeclaration": 1765, + "src": "15802:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -70879,18 +73584,18 @@ "typeString": "bytes calldata" } ], - "id": 1464, + "id": 1884, "name": "_overrideTrackWithBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3166, - "src": "15354:23:0", + "referencedDeclaration": 3597, + "src": "15778:23:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$__$", "typeString": "function (bytes calldata)" } }, - "id": 1466, + "id": 1886, "isConstant": false, "isLValue": false, "isPure": false, @@ -70898,98 +73603,98 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15354:29:0", + "src": "15778:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1467, + "id": 1887, "nodeType": "ExpressionStatement", - "src": "15354:29:0" + "src": "15778:29:6" } ] } }, - "id": 1500, + "id": 1920, "nodeType": "IfStatement", - "src": "15136:555:0", + "src": "15560:555:6", "trueBody": { - "id": 1459, + "id": 1879, "nodeType": "Block", - "src": "15187:96:0", + "src": "15611:96:6", "statements": [ { "expression": { "arguments": [ { - "id": 1451, + "id": 1871, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1350, - "src": "15216:9:0", + "referencedDeclaration": 1755, + "src": "15640:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1452, + "id": 1872, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "15227:15:0", + "referencedDeclaration": 1757, + "src": "15651:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1453, + "id": 1873, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, - "src": "15244:7:0", + "referencedDeclaration": 1759, + "src": "15668:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1454, + "id": 1874, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1356, - "src": "15253:4:0", + "referencedDeclaration": 1761, + "src": "15677:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 1455, + "id": 1875, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1358, - "src": "15259:6:0", + "referencedDeclaration": 1763, + "src": "15683:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1456, + "id": 1876, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "15267:4:0", + "referencedDeclaration": 1765, + "src": "15691:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -70999,7 +73704,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -71023,18 +73728,18 @@ "typeString": "bytes calldata" } ], - "id": 1450, + "id": 1870, "name": "_transferToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1155, - "src": "15201:14:0", + "referencedDeclaration": 1561, + "src": "15625:14:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,bytes memory)" } }, - "id": 1457, + "id": 1877, "isConstant": false, "isLValue": false, "isPure": false, @@ -71042,27 +73747,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15201:71:0", + "src": "15625:71:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1458, + "id": 1878, "nodeType": "ExpressionStatement", - "src": "15201:71:0" + "src": "15625:71:6" } ] } }, - "id": 1501, + "id": 1921, "nodeType": "IfStatement", - "src": "14900:791:0", + "src": "15324:791:6", "trueBody": { - "id": 1445, + "id": 1865, "nodeType": "Block", - "src": "14944:186:0", + "src": "15368:186:6", "statements": [ { "condition": { @@ -71070,32 +73775,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1431, + "id": 1851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1428, + "id": 1848, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "14962:4:0", + "referencedDeclaration": 1765, + "src": "15386:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 1429, + "id": 1849, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "14962:11:0", + "src": "15386:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -71105,41 +73810,41 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1430, + "id": 1850, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14976:1:0", + "src": "15400:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "14962:15:0", + "src": "15386:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1443, + "id": 1863, "nodeType": "Block", - "src": "15068:52:0", + "src": "15492:52:6", "statements": [ { "expression": { "arguments": [ { - "id": 1440, + "id": 1860, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "15100:4:0", + "referencedDeclaration": 1765, + "src": "15524:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -71153,18 +73858,18 @@ "typeString": "bytes calldata" } ], - "id": 1439, + "id": 1859, "name": "_multiUntrack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3382, - "src": "15086:13:0", + "referencedDeclaration": 3813, + "src": "15510:13:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$__$", "typeString": "function (bytes calldata)" } }, - "id": 1441, + "id": 1861, "isConstant": false, "isLValue": false, "isPure": false, @@ -71172,61 +73877,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15086:19:0", + "src": "15510:19:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1442, + "id": 1862, "nodeType": "ExpressionStatement", - "src": "15086:19:0" + "src": "15510:19:6" } ] }, - "id": 1444, + "id": 1864, "nodeType": "IfStatement", - "src": "14958:162:0", + "src": "15382:162:6", "trueBody": { - "id": 1438, + "id": 1858, "nodeType": "Block", - "src": "14979:83:0", + "src": "15403:83:6", "statements": [ { "expression": { "arguments": [ { - "id": 1433, + "id": 1853, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1350, - "src": "15011:9:0", + "referencedDeclaration": 1755, + "src": "15435:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1434, + "id": 1854, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "15022:15:0", + "referencedDeclaration": 1757, + "src": "15446:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1435, + "id": 1855, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, - "src": "15039:7:0", + "referencedDeclaration": 1759, + "src": "15463:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -71236,7 +73941,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -71248,18 +73953,18 @@ "typeString": "uint256" } ], - "id": 1432, + "id": 1852, "name": "_untrackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2876, - "src": "14997:13:0", + "referencedDeclaration": 3307, + "src": "15421:13:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 1436, + "id": 1856, "isConstant": false, "isLValue": false, "isPure": false, @@ -71267,16 +73972,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14997:50:0", + "src": "15421:50:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1437, + "id": 1857, "nodeType": "ExpressionStatement", - "src": "14997:50:0" + "src": "15421:50:6" } ] } @@ -71284,13 +73989,13 @@ ] } }, - "id": 1502, + "id": 1922, "nodeType": "IfStatement", - "src": "14670:1021:0", + "src": "15094:1021:6", "trueBody": { - "id": 1423, + "id": 1843, "nodeType": "Block", - "src": "14712:182:0", + "src": "15136:182:6", "statements": [ { "condition": { @@ -71298,32 +74003,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1409, + "id": 1829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1406, + "id": 1826, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "14730:4:0", + "referencedDeclaration": 1765, + "src": "15154:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 1407, + "id": 1827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "14730:11:0", + "src": "15154:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -71333,65 +74038,65 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1408, + "id": 1828, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "14744:1:0", + "src": "15168:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "14730:15:0", + "src": "15154:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1421, + "id": 1841, "nodeType": "Block", - "src": "14803:81:0", + "src": "15227:81:6", "statements": [ { "expression": { "arguments": [ { - "id": 1416, + "id": 1836, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1350, - "src": "14833:9:0", + "referencedDeclaration": 1755, + "src": "15257:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1417, + "id": 1837, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1352, - "src": "14844:15:0", + "referencedDeclaration": 1757, + "src": "15268:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1418, + "id": 1838, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1354, - "src": "14861:7:0", + "referencedDeclaration": 1759, + "src": "15285:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -71401,7 +74106,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -71413,18 +74118,18 @@ "typeString": "uint256" } ], - "id": 1415, + "id": 1835, "name": "_trackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2658, - "src": "14821:11:0", + "referencedDeclaration": 3089, + "src": "15245:11:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2176_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 1419, + "id": 1839, "isConstant": false, "isLValue": false, "isPure": false, @@ -71432,37 +74137,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14821:48:0", + "src": "15245:48:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1420, + "id": 1840, "nodeType": "ExpressionStatement", - "src": "14821:48:0" + "src": "15245:48:6" } ] }, - "id": 1422, + "id": 1842, "nodeType": "IfStatement", - "src": "14726:158:0", + "src": "15150:158:6", "trueBody": { - "id": 1414, + "id": 1834, "nodeType": "Block", - "src": "14747:50:0", + "src": "15171:50:6", "statements": [ { "expression": { "arguments": [ { - "id": 1411, + "id": 1831, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1360, - "src": "14777:4:0", + "referencedDeclaration": 1765, + "src": "15201:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -71476,18 +74181,18 @@ "typeString": "bytes calldata" } ], - "id": 1410, + "id": 1830, "name": "_multiTrack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3274, - "src": "14765:11:0", + "referencedDeclaration": 3705, + "src": "15189:11:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$__$", "typeString": "function (bytes calldata)" } }, - "id": 1412, + "id": 1832, "isConstant": false, "isLValue": false, "isPure": false, @@ -71495,16 +74200,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14765:17:0", + "src": "15189:17:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1413, + "id": 1833, "nodeType": "ExpressionStatement", - "src": "14765:17:0" + "src": "15189:17:6" } ] } @@ -71515,26 +74220,26 @@ ] }, "functionSelector": "c34a6dad", - "id": 1504, + "id": 1924, "implemented": true, "kind": "function", "modifiers": [], "name": "reveal", - "nameLocation": "13978:6:0", + "nameLocation": "14244:6:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1361, + "id": 1766, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1340, + "id": 1745, "mutability": "mutable", "name": "neighbors", - "nameLocation": "14004:9:0", + "nameLocation": "14270:9:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "13985:28:0", + "scope": 1924, + "src": "14251:28:6", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -71543,18 +74248,18 @@ }, "typeName": { "baseType": { - "id": 1338, + "id": 1743, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "13985:7:0", + "src": "14251:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1339, + "id": 1744, "nodeType": "ArrayTypeName", - "src": "13985:9:0", + "src": "14251:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -71564,13 +74269,13 @@ }, { "constant": false, - "id": 1342, + "id": 1747, "mutability": "mutable", "name": "indexWithNonce", - "nameLocation": "14022:14:0", + "nameLocation": "14288:14:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14015:21:0", + "scope": 1924, + "src": "14281:21:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -71578,10 +74283,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1341, + "id": 1746, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "14015:6:0", + "src": "14281:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -71591,13 +74296,13 @@ }, { "constant": false, - "id": 1344, + "id": 1749, "mutability": "mutable", "name": "eotp", - "nameLocation": "14046:4:0", + "nameLocation": "14312:4:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14038:12:0", + "scope": 1924, + "src": "14304:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -71605,10 +74310,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1343, + "id": 1748, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "14038:7:0", + "src": "14304:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -71618,33 +74323,33 @@ }, { "constant": false, - "id": 1347, + "id": 1752, "mutability": "mutable", "name": "operationType", - "nameLocation": "14074:13:0", + "nameLocation": "14340:13:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14060:27:0", + "scope": 1924, + "src": "14326:27:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, "typeName": { - "id": 1346, + "id": 1751, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1345, + "id": 1750, "name": "OperationType", "nodeType": "IdentifierPath", - "referencedDeclaration": 103, - "src": "14060:13:0" + "referencedDeclaration": 493, + "src": "14326:13:6" }, - "referencedDeclaration": 103, - "src": "14060:13:0", + "referencedDeclaration": 493, + "src": "14326:13:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_OperationType_$103", + "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, @@ -71652,33 +74357,33 @@ }, { "constant": false, - "id": 1350, + "id": 1755, "mutability": "mutable", "name": "tokenType", - "nameLocation": "14099:9:0", + "nameLocation": "14365:9:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14089:19:0", + "scope": 1924, + "src": "14355:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 1349, + "id": 1754, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1348, + "id": 1753, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2176, - "src": "14089:9:0" + "referencedDeclaration": 2607, + "src": "14355:9:6" }, - "referencedDeclaration": 2176, - "src": "14089:9:0", + "referencedDeclaration": 2607, + "src": "14355:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2176", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -71686,13 +74391,13 @@ }, { "constant": false, - "id": 1352, + "id": 1757, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "14118:15:0", + "nameLocation": "14384:15:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14110:23:0", + "scope": 1924, + "src": "14376:23:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -71700,10 +74405,10 @@ "typeString": "address" }, "typeName": { - "id": 1351, + "id": 1756, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14110:7:0", + "src": "14376:7:6", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -71714,13 +74419,13 @@ }, { "constant": false, - "id": 1354, + "id": 1759, "mutability": "mutable", "name": "tokenId", - "nameLocation": "14143:7:0", + "nameLocation": "14409:7:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14135:15:0", + "scope": 1924, + "src": "14401:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -71728,10 +74433,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1353, + "id": 1758, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14135:7:0", + "src": "14401:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -71741,13 +74446,13 @@ }, { "constant": false, - "id": 1356, + "id": 1761, "mutability": "mutable", "name": "dest", - "nameLocation": "14168:4:0", + "nameLocation": "14434:4:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14152:20:0", + "scope": 1924, + "src": "14418:20:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -71755,10 +74460,10 @@ "typeString": "address payable" }, "typeName": { - "id": 1355, + "id": 1760, "name": "address", "nodeType": "ElementaryTypeName", - "src": "14152:15:0", + "src": "14418:15:6", "stateMutability": "payable", "typeDescriptions": { "typeIdentifier": "t_address_payable", @@ -71769,13 +74474,13 @@ }, { "constant": false, - "id": 1358, + "id": 1763, "mutability": "mutable", "name": "amount", - "nameLocation": "14182:6:0", + "nameLocation": "14448:6:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14174:14:0", + "scope": 1924, + "src": "14440:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -71783,10 +74488,10 @@ "typeString": "uint256" }, "typeName": { - "id": 1357, + "id": 1762, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "14174:7:0", + "src": "14440:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -71796,13 +74501,13 @@ }, { "constant": false, - "id": 1360, + "id": 1765, "mutability": "mutable", "name": "data", - "nameLocation": "14205:4:0", + "nameLocation": "14471:4:6", "nodeType": "VariableDeclaration", - "scope": 1504, - "src": "14190:19:0", + "scope": 1924, + "src": "14456:19:6", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -71810,10 +74515,10 @@ "typeString": "bytes" }, "typeName": { - "id": 1359, + "id": 1764, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "14190:5:0", + "src": "14456:5:6", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -71822,25 +74527,25 @@ "visibility": "internal" } ], - "src": "13984:226:0" + "src": "14250:226:6" }, "returnParameters": { - "id": 1362, + "id": 1767, "nodeType": "ParameterList", "parameters": [], - "src": "14224:0:0" + "src": "14490:0:6" }, - "scope": 2161, - "src": "13969:1728:0", + "scope": 2592, + "src": "14235:1886:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 1596, + "id": 2027, "nodeType": "Block", - "src": "15926:488:0", + "src": "16350:604:6", "statements": [ { "expression": { @@ -71850,32 +74555,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1521, + "id": 1941, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1516, + "id": 1936, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1508, - "src": "15944:9:0", + "referencedDeclaration": 1928, + "src": "16368:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1517, + "id": 1937, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "15944:16:0", + "src": "16368:16:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -71888,18 +74593,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1520, + "id": 1940, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1518, + "id": 1938, "name": "height", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "15964:6:0", + "referencedDeclaration": 439, + "src": "16388:6:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -71909,27 +74614,27 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 1519, + "id": 1939, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15973:1:0", + "src": "16397:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "15964:10:0", + "src": "16388:10:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "15944:30:0", + "src": "16368:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -71937,14 +74642,14 @@ }, { "hexValue": "4e6f7420656e6f756768206e65696768626f72732070726f7669646564", - "id": 1522, + "id": 1942, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "15976:31:0", + "src": "16400:31:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_83d08d6dcf099c52fbe149a08cb4ffd65f3fec6dbf87dba7bc08b7a534982441", "typeString": "literal_string \"Not enough neighbors provided\"" @@ -71963,7 +74668,7 @@ "typeString": "literal_string \"Not enough neighbors provided\"" } ], - "id": 1515, + "id": 1935, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -71971,13 +74676,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "15936:7:0", + "src": "16360:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1523, + "id": 1943, "isConstant": false, "isLValue": false, "isPure": false, @@ -71985,31 +74690,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15936:72:0", + "src": "16360:72:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1524, + "id": 1944, "nodeType": "ExpressionStatement", - "src": "15936:72:0" + "src": "16360:72:6" }, { "assignments": [ - 1526 + 1946 ], "declarations": [ { "constant": false, - "id": 1526, + "id": 1946, "mutability": "mutable", "name": "h", - "nameLocation": "16026:1:0", + "nameLocation": "16450:1:6", "nodeType": "VariableDeclaration", - "scope": 1596, - "src": "16018:9:0", + "scope": 2027, + "src": "16442:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -72017,10 +74722,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1525, + "id": 1945, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "16018:7:0", + "src": "16442:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -72029,18 +74734,18 @@ "visibility": "internal" } ], - "id": 1534, + "id": 1954, "initialValue": { "arguments": [ { "arguments": [ { - "id": 1531, + "id": 1951, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1512, - "src": "16050:4:0", + "referencedDeclaration": 1932, + "src": "16474:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -72055,39 +74760,39 @@ } ], "expression": { - "id": 1529, + "id": 1949, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16037:5:0", + "src": "16461:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1528, + "id": 1948, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "16037:5:0", + "src": "16461:5:6", "typeDescriptions": {} } }, - "id": 1530, + "id": 1950, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "16037:12:0", + "src": "16461:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1532, + "id": 1952, "isConstant": false, "isLValue": false, "isPure": false, @@ -72095,7 +74800,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16037:18:0", + "src": "16461:18:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -72110,18 +74815,18 @@ "typeString": "bytes memory" } ], - "id": 1527, + "id": 1947, "name": "sha256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967274, - "src": "16030:6:0", + "src": "16454:6:6", "typeDescriptions": { "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1533, + "id": 1953, "isConstant": false, "isLValue": false, "isPure": false, @@ -72129,7 +74834,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16030:26:0", + "src": "16454:26:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -72137,13 +74842,144 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "16018:38:0" + "src": "16442:38:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1959, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1955, + "name": "position", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1930, + "src": "16494:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 1958, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1956, + "name": "_numLeaves", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 449, + "src": "16506:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "16519:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "16506:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "16494:26:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 1965, + "nodeType": "IfStatement", + "src": "16490:107:6", + "trueBody": { + "id": 1964, + "nodeType": "Block", + "src": "16522:75:6", + "statements": [ + { + "expression": { + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1960, + "name": "h", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1946, + "src": "16578:1:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1961, + "name": "eotp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1932, + "src": "16582:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "16578:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1963, + "nodeType": "ExpressionStatement", + "src": "16578:8:6" + } + ] + } }, { "body": { - "id": 1586, + "id": 2017, "nodeType": "Block", - "src": "16105:237:0", + "src": "16645:237:6", "statements": [ { "condition": { @@ -72151,7 +74987,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1552, + "id": 1983, "isConstant": false, "isLValue": false, "isPure": false, @@ -72163,18 +74999,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1549, + "id": 1980, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1547, + "id": 1978, "name": "position", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1510, - "src": "16124:8:0", + "referencedDeclaration": 1930, + "src": "16664:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -72184,35 +75020,35 @@ "operator": "&", "rightExpression": { "hexValue": "30783031", - "id": 1548, + "id": 1979, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16135:4:0", + "src": "16675:4:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "0x01" }, - "src": "16124:15:0", + "src": "16664:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], - "id": 1550, + "id": 1981, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "16123:17:0", + "src": "16663:17:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -72222,45 +75058,45 @@ "operator": "==", "rightExpression": { "hexValue": "30783031", - "id": 1551, + "id": 1982, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16144:4:0", + "src": "16684:4:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "0x01" }, - "src": "16123:25:0", + "src": "16663:25:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1580, + "id": 2011, "nodeType": "Block", - "src": "16230:74:0", + "src": "16770:74:6", "statements": [ { "expression": { - "id": 1578, + "id": 2009, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1567, + "id": 1998, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "16248:1:0", + "referencedDeclaration": 1946, + "src": "16788:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -72273,12 +75109,12 @@ { "arguments": [ { - "id": 1572, + "id": 2003, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "16272:1:0", + "referencedDeclaration": 1946, + "src": "16812:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -72286,25 +75122,25 @@ }, { "baseExpression": { - "id": 1573, + "id": 2004, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1508, - "src": "16275:9:0", + "referencedDeclaration": 1928, + "src": "16815:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1575, + "id": 2006, "indexExpression": { - "id": 1574, + "id": 2005, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1536, - "src": "16285:1:0", + "referencedDeclaration": 1967, + "src": "16825:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -72315,7 +75151,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "16275:12:0", + "src": "16815:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -72334,39 +75170,39 @@ } ], "expression": { - "id": 1570, + "id": 2001, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16259:5:0", + "src": "16799:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1569, + "id": 2000, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "16259:5:0", + "src": "16799:5:6", "typeDescriptions": {} } }, - "id": 1571, + "id": 2002, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "16259:12:0", + "src": "16799:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1576, + "id": 2007, "isConstant": false, "isLValue": false, "isPure": false, @@ -72374,7 +75210,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16259:29:0", + "src": "16799:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -72389,18 +75225,18 @@ "typeString": "bytes memory" } ], - "id": 1568, + "id": 1999, "name": "sha256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967274, - "src": "16252:6:0", + "src": "16792:6:6", "typeDescriptions": { "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1577, + "id": 2008, "isConstant": false, "isLValue": false, "isPure": false, @@ -72408,47 +75244,47 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16252:37:0", + "src": "16792:37:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "16248:41:0", + "src": "16788:41:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1579, + "id": 2010, "nodeType": "ExpressionStatement", - "src": "16248:41:0" + "src": "16788:41:6" } ] }, - "id": 1581, + "id": 2012, "nodeType": "IfStatement", - "src": "16119:185:0", + "src": "16659:185:6", "trueBody": { - "id": 1566, + "id": 1997, "nodeType": "Block", - "src": "16150:74:0", + "src": "16690:74:6", "statements": [ { "expression": { - "id": 1564, + "id": 1995, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1553, + "id": 1984, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "16168:1:0", + "referencedDeclaration": 1946, + "src": "16708:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -72462,25 +75298,25 @@ "arguments": [ { "baseExpression": { - "id": 1558, + "id": 1989, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1508, - "src": "16192:9:0", + "referencedDeclaration": 1928, + "src": "16732:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1560, + "id": 1991, "indexExpression": { - "id": 1559, + "id": 1990, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1536, - "src": "16202:1:0", + "referencedDeclaration": 1967, + "src": "16742:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -72491,19 +75327,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "16192:12:0", + "src": "16732:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1561, + "id": 1992, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "16206:1:0", + "referencedDeclaration": 1946, + "src": "16746:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -72522,39 +75358,39 @@ } ], "expression": { - "id": 1556, + "id": 1987, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16179:5:0", + "src": "16719:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1555, + "id": 1986, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "16179:5:0", + "src": "16719:5:6", "typeDescriptions": {} } }, - "id": 1557, + "id": 1988, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "16179:12:0", + "src": "16719:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1562, + "id": 1993, "isConstant": false, "isLValue": false, "isPure": false, @@ -72562,7 +75398,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16179:29:0", + "src": "16719:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -72577,18 +75413,18 @@ "typeString": "bytes memory" } ], - "id": 1554, + "id": 1985, "name": "sha256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967274, - "src": "16172:6:0", + "src": "16712:6:6", "typeDescriptions": { "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1563, + "id": 1994, "isConstant": false, "isLValue": false, "isPure": false, @@ -72596,40 +75432,40 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16172:37:0", + "src": "16712:37:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "16168:41:0", + "src": "16708:41:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1565, + "id": 1996, "nodeType": "ExpressionStatement", - "src": "16168:41:0" + "src": "16708:41:6" } ] } }, { "expression": { - "id": 1584, + "id": 2015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1582, + "id": 2013, "name": "position", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1510, - "src": "16317:8:0", + "referencedDeclaration": 1930, + "src": "16857:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -72639,29 +75475,29 @@ "operator": ">>=", "rightHandSide": { "hexValue": "31", - "id": 1583, + "id": 2014, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16330:1:0", + "src": "16870:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "16317:14:0", + "src": "16857:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 1585, + "id": 2016, "nodeType": "ExpressionStatement", - "src": "16317:14:0" + "src": "16857:14:6" } ] }, @@ -72670,18 +75506,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1543, + "id": 1974, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1539, + "id": 1970, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1536, - "src": "16084:1:0", + "referencedDeclaration": 1967, + "src": "16624:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -72694,18 +75530,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1542, + "id": 1973, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1540, + "id": 1971, "name": "height", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 52, - "src": "16088:6:0", + "referencedDeclaration": 439, + "src": "16628:6:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -72715,47 +75551,47 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 1541, + "id": 1972, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16097:1:0", + "src": "16637:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "16088:10:0", + "src": "16628:10:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "16084:14:0", + "src": "16624:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1587, + "id": 2018, "initializationExpression": { "assignments": [ - 1536 + 1967 ], "declarations": [ { "constant": false, - "id": 1536, + "id": 1967, "mutability": "mutable", "name": "i", - "nameLocation": "16077:1:0", + "nameLocation": "16617:1:6", "nodeType": "VariableDeclaration", - "scope": 1587, - "src": "16071:7:0", + "scope": 2018, + "src": "16611:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -72763,10 +75599,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1535, + "id": 1966, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "16071:5:0", + "src": "16611:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -72775,17 +75611,17 @@ "visibility": "internal" } ], - "id": 1538, + "id": 1969, "initialValue": { "hexValue": "30", - "id": 1537, + "id": 1968, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16081:1:0", + "src": "16621:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -72793,11 +75629,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "16071:11:0" + "src": "16611:11:6" }, "loopExpression": { "expression": { - "id": 1545, + "id": 1976, "isConstant": false, "isLValue": false, "isPure": false, @@ -72805,14 +75641,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "16100:3:0", + "src": "16640:3:6", "subExpression": { - "id": 1544, + "id": 1975, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1536, - "src": "16100:1:0", + "referencedDeclaration": 1967, + "src": "16640:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -72823,12 +75659,12 @@ "typeString": "uint8" } }, - "id": 1546, + "id": 1977, "nodeType": "ExpressionStatement", - "src": "16100:3:0" + "src": "16640:3:6" }, "nodeType": "ForStatement", - "src": "16066:276:0" + "src": "16606:276:6" }, { "expression": { @@ -72838,18 +75674,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 1591, + "id": 2022, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1589, + "id": 2020, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 50, - "src": "16359:4:0", + "referencedDeclaration": 437, + "src": "16899:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -72858,18 +75694,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1590, + "id": 2021, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1526, - "src": "16367:1:0", + "referencedDeclaration": 1946, + "src": "16907:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "16359:9:0", + "src": "16899:9:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -72877,14 +75713,14 @@ }, { "hexValue": "50726f6f6620697320696e636f7272656374", - "id": 1592, + "id": 2023, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "16370:20:0", + "src": "16910:20:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_5515ff285a2022327bc0ffdc690388a3a1d15360640a68caecd56fe24371f01a", "typeString": "literal_string \"Proof is incorrect\"" @@ -72903,7 +75739,7 @@ "typeString": "literal_string \"Proof is incorrect\"" } ], - "id": 1588, + "id": 2019, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -72911,13 +75747,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "16351:7:0", + "src": "16891:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1593, + "id": 2024, "isConstant": false, "isLValue": false, "isPure": false, @@ -72925,51 +75761,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16351:40:0", + "src": "16891:40:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1594, + "id": 2025, "nodeType": "ExpressionStatement", - "src": "16351:40:0" + "src": "16891:40:6" }, { - "functionReturnParameters": 1514, - "id": 1595, + "functionReturnParameters": 1934, + "id": 2026, "nodeType": "Return", - "src": "16401:7:0" + "src": "16941:7:6" } ] }, "documentation": { - "id": 1505, + "id": 1925, "nodeType": "StructuredDocumentation", - "src": "15703:118:0", + "src": "16127:118:6", "text": "This is just a wrapper around a modifier previously called `isCorrectProof`, to avoid \"Stack too deep\" error. Duh." }, - "id": 1597, + "id": 2028, "implemented": true, "kind": "function", "modifiers": [], "name": "_isCorrectProof", - "nameLocation": "15835:15:0", + "nameLocation": "16259:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1513, + "id": 1933, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1508, + "id": 1928, "mutability": "mutable", "name": "neighbors", - "nameLocation": "15870:9:0", + "nameLocation": "16294:9:6", "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15851:28:0", + "scope": 2028, + "src": "16275:28:6", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -72978,18 +75814,18 @@ }, "typeName": { "baseType": { - "id": 1506, + "id": 1926, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "15851:7:0", + "src": "16275:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1507, + "id": 1927, "nodeType": "ArrayTypeName", - "src": "15851:9:0", + "src": "16275:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -72999,13 +75835,13 @@ }, { "constant": false, - "id": 1510, + "id": 1930, "mutability": "mutable", "name": "position", - "nameLocation": "15888:8:0", + "nameLocation": "16312:8:6", "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15881:15:0", + "scope": 2028, + "src": "16305:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -73013,10 +75849,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1509, + "id": 1929, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "15881:6:0", + "src": "16305:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -73026,13 +75862,13 @@ }, { "constant": false, - "id": 1512, + "id": 1932, "mutability": "mutable", "name": "eotp", - "nameLocation": "15906:4:0", + "nameLocation": "16330:4:6", "nodeType": "VariableDeclaration", - "scope": 1597, - "src": "15898:12:0", + "scope": 2028, + "src": "16322:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -73040,10 +75876,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1511, + "id": 1931, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "15898:7:0", + "src": "16322:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -73052,40 +75888,40 @@ "visibility": "internal" } ], - "src": "15850:61:0" + "src": "16274:61:6" }, "returnParameters": { - "id": 1514, + "id": 1934, "nodeType": "ParameterList", "parameters": [], - "src": "15926:0:0" + "src": "16350:0:6" }, - "scope": 2161, - "src": "15826:588:0", + "scope": 2592, + "src": "16250:704:6", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1765, + "id": 2196, "nodeType": "Block", - "src": "16905:2493:0", + "src": "17445:2493:6", "statements": [ { "assignments": [ - 1602 + 2033 ], "declarations": [ { "constant": false, - "id": 1602, + "id": 2033, "mutability": "mutable", "name": "timelyIndex", - "nameLocation": "16922:11:0", + "nameLocation": "17462:11:6", "nodeType": "VariableDeclaration", - "scope": 1765, - "src": "16915:18:0", + "scope": 2196, + "src": "17455:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -73093,10 +75929,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1601, + "id": 2032, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "16915:6:0", + "src": "17455:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -73105,17 +75941,17 @@ "visibility": "internal" } ], - "id": 1604, + "id": 2035, "initialValue": { "hexValue": "30", - "id": 1603, + "id": 2034, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16936:1:0", + "src": "17476:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -73123,22 +75959,22 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "16915:22:0" + "src": "17455:22:6" }, { "assignments": [ - 1606 + 2037 ], "declarations": [ { "constant": false, - "id": 1606, + "id": 2037, "mutability": "mutable", "name": "bt", - "nameLocation": "16954:2:0", + "nameLocation": "17494:2:6", "nodeType": "VariableDeclaration", - "scope": 1765, - "src": "16947:9:0", + "scope": 2196, + "src": "17487:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -73146,10 +75982,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1605, + "id": 2036, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "16947:6:0", + "src": "17487:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -73158,30 +75994,30 @@ "visibility": "internal" } ], - "id": 1612, + "id": 2043, "initialValue": { "arguments": [ { "expression": { - "id": 1609, + "id": 2040, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "16966:5:0", + "src": "17506:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 1610, + "id": 2041, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "16966:15:0", + "src": "17506:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -73195,26 +76031,26 @@ "typeString": "uint256" } ], - "id": 1608, + "id": 2039, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16959:6:0", + "src": "17499:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 1607, + "id": 2038, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "16959:6:0", + "src": "17499:6:6", "typeDescriptions": {} } }, - "id": 1611, + "id": 2042, "isConstant": false, "isLValue": false, "isPure": false, @@ -73222,7 +76058,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16959:23:0", + "src": "17499:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -73230,28 +76066,28 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "16947:35:0" + "src": "17487:35:6" }, { "body": { - "id": 1659, + "id": 2090, "nodeType": "Block", - "src": "17207:879:0", + "src": "17747:879:6", "statements": [ { "assignments": [ - 1621 + 2052 ], "declarations": [ { "constant": false, - "id": 1621, + "id": 2052, "mutability": "mutable", "name": "hash", - "nameLocation": "17229:4:0", + "nameLocation": "17769:4:6", "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "17221:12:0", + "scope": 2090, + "src": "17761:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -73259,10 +76095,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1620, + "id": 2051, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "17221:7:0", + "src": "17761:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -73271,28 +76107,28 @@ "visibility": "internal" } ], - "id": 1625, + "id": 2056, "initialValue": { "baseExpression": { - "id": 1622, + "id": 2053, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "17236:7:0", + "referencedDeclaration": 507, + "src": "17776:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1624, + "id": 2055, "indexExpression": { - "id": 1623, + "id": 2054, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "17244:11:0", + "referencedDeclaration": 2033, + "src": "17784:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -73303,86 +76139,86 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17236:20:0", + "src": "17776:20:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "17221:35:0" + "src": "17761:35:6" }, { "assignments": [ - 1630 + 2061 ], "declarations": [ { "constant": false, - "id": 1630, + "id": 2061, "mutability": "mutable", "name": "cc", - "nameLocation": "17287:2:0", + "nameLocation": "17827:2:6", "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "17270:19:0", + "scope": 2090, + "src": "17810:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" }, "typeName": { "baseType": { - "id": 1628, + "id": 2059, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1627, + "id": 2058, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "17270:6:0" + "referencedDeclaration": 504, + "src": "17810:6:6" }, - "referencedDeclaration": 114, - "src": "17270:6:0", + "referencedDeclaration": 504, + "src": "17810:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 1629, + "id": 2060, "nodeType": "ArrayTypeName", - "src": "17270:8:0", + "src": "17810:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } }, "visibility": "internal" } ], - "id": 1634, + "id": 2065, "initialValue": { "baseExpression": { - "id": 1631, + "id": 2062, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "17292:12:0", + "referencedDeclaration": 513, + "src": "17832:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 1633, + "id": 2064, "indexExpression": { - "id": 1632, + "id": 2063, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1621, - "src": "17305:4:0", + "referencedDeclaration": 2052, + "src": "17845:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -73393,14 +76229,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17292:18:0", + "src": "17832:18:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "17270:40:0" + "src": "17810:40:6" }, { "condition": { @@ -73408,32 +76244,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1638, + "id": 2069, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1635, + "id": 2066, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, - "src": "17426:2:0", + "referencedDeclaration": 2061, + "src": "17966:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1636, + "id": 2067, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "17426:9:0", + "src": "17966:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -73443,107 +76279,107 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 1637, + "id": 2068, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17439:1:0", + "src": "17979:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "17426:14:0", + "src": "17966:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1641, + "id": 2072, "nodeType": "IfStatement", - "src": "17422:61:0", + "src": "17962:61:6", "trueBody": { - "id": 1640, + "id": 2071, "nodeType": "Block", - "src": "17442:41:0", + "src": "17982:41:6", "statements": [ { - "id": 1639, + "id": 2070, "nodeType": "Continue", - "src": "17460:8:0" + "src": "18000:8:6" } ] } }, { "assignments": [ - 1644 + 2075 ], "declarations": [ { "constant": false, - "id": 1644, + "id": 2075, "mutability": "mutable", "name": "c", - "nameLocation": "17943:1:0", + "nameLocation": "18483:1:6", "nodeType": "VariableDeclaration", - "scope": 1659, - "src": "17928:16:0", + "scope": 2090, + "src": "18468:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 1643, + "id": 2074, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1642, + "id": 2073, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "17928:6:0" + "referencedDeclaration": 504, + "src": "18468:6:6" }, - "referencedDeclaration": 114, - "src": "17928:6:0", + "referencedDeclaration": 504, + "src": "18468:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, "visibility": "internal" } ], - "id": 1648, + "id": 2079, "initialValue": { "baseExpression": { - "id": 1645, + "id": 2076, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1630, - "src": "17947:2:0", + "referencedDeclaration": 2061, + "src": "18487:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1647, + "id": 2078, "indexExpression": { "hexValue": "30", - "id": 1646, + "id": 2077, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17950:1:0", + "src": "18490:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -73555,19 +76391,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17947:5:0", + "src": "18487:5:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage", + "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "17928:24:0" + "src": "18468:24:6" }, { - "id": 1658, + "id": 2089, "nodeType": "UncheckedBlock", - "src": "17962:114:0", + "src": "18502:114:6", "statements": [ { "condition": { @@ -73575,33 +76411,33 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1654, + "id": 2085, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1649, + "id": 2080, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1644, - "src": "17990:1:0", + "referencedDeclaration": 2075, + "src": "18530:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1650, + "id": 2081, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 111, - "src": "17990:11:0", + "referencedDeclaration": 501, + "src": "18530:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -73614,18 +76450,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1653, + "id": 2084, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1651, + "id": 2082, "name": "bt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1606, - "src": "18005:2:0", + "referencedDeclaration": 2037, + "src": "18545:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -73634,41 +76470,41 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 1652, + "id": 2083, "name": "REVEAL_MAX_DELAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "18010:16:0", + "referencedDeclaration": 469, + "src": "18550:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "18005:21:0", + "src": "18545:21:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "17990:36:0", + "src": "18530:36:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1657, + "id": 2088, "nodeType": "IfStatement", - "src": "17986:80:0", + "src": "18526:80:6", "trueBody": { - "id": 1656, + "id": 2087, "nodeType": "Block", - "src": "18028:38:0", + "src": "18568:38:6", "statements": [ { - "id": 1655, + "id": 2086, "nodeType": "Break", - "src": "18046:5:0" + "src": "18586:5:6" } ] } @@ -73682,18 +76518,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1616, + "id": 2047, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1613, + "id": 2044, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "17162:11:0", + "referencedDeclaration": 2033, + "src": "17702:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -73703,40 +76539,40 @@ "operator": "<", "rightExpression": { "expression": { - "id": 1614, + "id": 2045, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "17176:7:0", + "referencedDeclaration": 507, + "src": "17716:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1615, + "id": 2046, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "17176:14:0", + "src": "17716:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "17162:28:0", + "src": "17702:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1660, + "id": 2091, "loopExpression": { "expression": { - "id": 1618, + "id": 2049, "isConstant": false, "isLValue": false, "isPure": false, @@ -73744,14 +76580,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "17192:13:0", + "src": "17732:13:6", "subExpression": { - "id": 1617, + "id": 2048, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "17192:11:0", + "referencedDeclaration": 2033, + "src": "17732:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -73762,12 +76598,12 @@ "typeString": "uint32" } }, - "id": 1619, + "id": 2050, "nodeType": "ExpressionStatement", - "src": "17192:13:0" + "src": "17732:13:6" }, "nodeType": "ForStatement", - "src": "17155:931:0" + "src": "17695:931:6" }, { "condition": { @@ -73775,18 +76611,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1663, + "id": 2094, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1661, + "id": 2092, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "18245:11:0", + "referencedDeclaration": 2033, + "src": "18785:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -73796,63 +76632,63 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 1662, + "id": 2093, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18260:1:0", + "src": "18800:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "18245:16:0", + "src": "18785:16:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1666, + "id": 2097, "nodeType": "IfStatement", - "src": "18241:159:0", + "src": "18781:159:6", "trueBody": { - "id": 1665, + "id": 2096, "nodeType": "Block", - "src": "18263:137:0", + "src": "18803:137:6", "statements": [ { - "functionReturnParameters": 1600, - "id": 1664, + "functionReturnParameters": 2031, + "id": 2095, "nodeType": "Return", - "src": "18383:7:0" + "src": "18923:7:6" } ] } }, { "body": { - "id": 1715, + "id": 2146, "nodeType": "Block", - "src": "18556:240:0", + "src": "19096:240:6", "statements": [ { "assignments": [ - 1678 + 2109 ], "declarations": [ { "constant": false, - "id": 1678, + "id": 2109, "mutability": "mutable", "name": "hash", - "nameLocation": "18578:4:0", + "nameLocation": "19118:4:6", "nodeType": "VariableDeclaration", - "scope": 1715, - "src": "18570:12:0", + "scope": 2146, + "src": "19110:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -73860,10 +76696,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1677, + "id": 2108, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "18570:7:0", + "src": "19110:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -73872,28 +76708,28 @@ "visibility": "internal" } ], - "id": 1682, + "id": 2113, "initialValue": { "baseExpression": { - "id": 1679, + "id": 2110, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "18585:7:0", + "referencedDeclaration": 507, + "src": "19125:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1681, + "id": 2112, "indexExpression": { - "id": 1680, + "id": 2111, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, - "src": "18593:1:0", + "referencedDeclaration": 2099, + "src": "19133:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -73904,86 +76740,86 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "18585:10:0", + "src": "19125:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "18570:25:0" + "src": "19110:25:6" }, { "assignments": [ - 1687 + 2118 ], "declarations": [ { "constant": false, - "id": 1687, + "id": 2118, "mutability": "mutable", "name": "cc", - "nameLocation": "18626:2:0", + "nameLocation": "19166:2:6", "nodeType": "VariableDeclaration", - "scope": 1715, - "src": "18609:19:0", + "scope": 2146, + "src": "19149:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" }, "typeName": { "baseType": { - "id": 1685, + "id": 2116, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1684, + "id": 2115, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "18609:6:0" + "referencedDeclaration": 504, + "src": "19149:6:6" }, - "referencedDeclaration": 114, - "src": "18609:6:0", + "referencedDeclaration": 504, + "src": "19149:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 1686, + "id": 2117, "nodeType": "ArrayTypeName", - "src": "18609:8:0", + "src": "19149:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } }, "visibility": "internal" } ], - "id": 1691, + "id": 2122, "initialValue": { "baseExpression": { - "id": 1688, + "id": 2119, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "18631:12:0", + "referencedDeclaration": 513, + "src": "19171:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 1690, + "id": 2121, "indexExpression": { - "id": 1689, + "id": 2120, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1678, - "src": "18644:4:0", + "referencedDeclaration": 2109, + "src": "19184:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -73994,24 +76830,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "18631:18:0", + "src": "19171:18:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "18609:40:0" + "src": "19149:40:6" }, { "body": { - "id": 1708, + "id": 2139, "nodeType": "Block", - "src": "18702:45:0", + "src": "19242:45:6", "statements": [ { "expression": { - "id": 1706, + "id": 2137, "isConstant": false, "isLValue": false, "isPure": false, @@ -74019,28 +76855,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "18720:12:0", + "src": "19260:12:6", "subExpression": { "baseExpression": { - "id": 1703, + "id": 2134, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1687, - "src": "18727:2:0", + "referencedDeclaration": 2118, + "src": "19267:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1705, + "id": 2136, "indexExpression": { - "id": 1704, + "id": 2135, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1693, - "src": "18730:1:0", + "referencedDeclaration": 2124, + "src": "19270:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74051,9 +76887,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "18727:5:0", + "src": "19267:5:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage", + "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, @@ -74062,9 +76898,9 @@ "typeString": "tuple()" } }, - "id": 1707, + "id": 2138, "nodeType": "ExpressionStatement", - "src": "18720:12:0" + "src": "19260:12:6" } ] }, @@ -74073,18 +76909,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1699, + "id": 2130, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1696, + "id": 2127, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1693, - "src": "18682:1:0", + "referencedDeclaration": 2124, + "src": "19222:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74094,51 +76930,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 1697, + "id": 2128, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1687, - "src": "18686:2:0", + "referencedDeclaration": 2118, + "src": "19226:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1698, + "id": 2129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "18686:9:0", + "src": "19226:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "18682:13:0", + "src": "19222:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1709, + "id": 2140, "initializationExpression": { "assignments": [ - 1693 + 2124 ], "declarations": [ { "constant": false, - "id": 1693, + "id": 2124, "mutability": "mutable", "name": "j", - "nameLocation": "18675:1:0", + "nameLocation": "19215:1:6", "nodeType": "VariableDeclaration", - "scope": 1709, - "src": "18668:8:0", + "scope": 2140, + "src": "19208:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -74146,10 +76982,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1692, + "id": 2123, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "18668:6:0", + "src": "19208:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74158,17 +76994,17 @@ "visibility": "internal" } ], - "id": 1695, + "id": 2126, "initialValue": { "hexValue": "30", - "id": 1694, + "id": 2125, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18679:1:0", + "src": "19219:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -74176,11 +77012,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "18668:12:0" + "src": "19208:12:6" }, "loopExpression": { "expression": { - "id": 1701, + "id": 2132, "isConstant": false, "isLValue": false, "isPure": false, @@ -74188,14 +77024,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "18697:3:0", + "src": "19237:3:6", "subExpression": { - "id": 1700, + "id": 2131, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1693, - "src": "18697:1:0", + "referencedDeclaration": 2124, + "src": "19237:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74206,16 +77042,16 @@ "typeString": "uint32" } }, - "id": 1702, + "id": 2133, "nodeType": "ExpressionStatement", - "src": "18697:3:0" + "src": "19237:3:6" }, "nodeType": "ForStatement", - "src": "18663:84:0" + "src": "19203:84:6" }, { "expression": { - "id": 1713, + "id": 2144, "isConstant": false, "isLValue": false, "isPure": false, @@ -74223,28 +77059,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "18760:25:0", + "src": "19300:25:6", "subExpression": { "baseExpression": { - "id": 1710, + "id": 2141, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "18767:12:0", + "referencedDeclaration": 513, + "src": "19307:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 1712, + "id": 2143, "indexExpression": { - "id": 1711, + "id": 2142, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1678, - "src": "18780:4:0", + "referencedDeclaration": 2109, + "src": "19320:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -74255,9 +77091,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "18767:18:0", + "src": "19307:18:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, @@ -74266,9 +77102,9 @@ "typeString": "tuple()" } }, - "id": 1714, + "id": 2145, "nodeType": "ExpressionStatement", - "src": "18760:25:0" + "src": "19300:25:6" } ] }, @@ -74277,18 +77113,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1673, + "id": 2104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1671, + "id": 2102, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, - "src": "18534:1:0", + "referencedDeclaration": 2099, + "src": "19074:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74297,38 +77133,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1672, + "id": 2103, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "18538:11:0", + "referencedDeclaration": 2033, + "src": "19078:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "18534:15:0", + "src": "19074:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1716, + "id": 2147, "initializationExpression": { "assignments": [ - 1668 + 2099 ], "declarations": [ { "constant": false, - "id": 1668, + "id": 2099, "mutability": "mutable", "name": "i", - "nameLocation": "18527:1:0", + "nameLocation": "19067:1:6", "nodeType": "VariableDeclaration", - "scope": 1716, - "src": "18520:8:0", + "scope": 2147, + "src": "19060:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -74336,10 +77172,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1667, + "id": 2098, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "18520:6:0", + "src": "19060:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74348,17 +77184,17 @@ "visibility": "internal" } ], - "id": 1670, + "id": 2101, "initialValue": { "hexValue": "30", - "id": 1669, + "id": 2100, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18531:1:0", + "src": "19071:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -74366,11 +77202,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "18520:12:0" + "src": "19060:12:6" }, "loopExpression": { "expression": { - "id": 1675, + "id": 2106, "isConstant": false, "isLValue": false, "isPure": false, @@ -74378,14 +77214,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "18551:3:0", + "src": "19091:3:6", "subExpression": { - "id": 1674, + "id": 2105, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1668, - "src": "18551:1:0", + "referencedDeclaration": 2099, + "src": "19091:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74396,27 +77232,27 @@ "typeString": "uint32" } }, - "id": 1676, + "id": 2107, "nodeType": "ExpressionStatement", - "src": "18551:3:0" + "src": "19091:3:6" }, "nodeType": "ForStatement", - "src": "18515:281:0" + "src": "19055:281:6" }, { "assignments": [ - 1718 + 2149 ], "declarations": [ { "constant": false, - "id": 1718, + "id": 2149, "mutability": "mutable", "name": "len", - "nameLocation": "18988:3:0", + "nameLocation": "19528:3:6", "nodeType": "VariableDeclaration", - "scope": 1765, - "src": "18981:10:0", + "scope": 2196, + "src": "19521:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -74424,10 +77260,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1717, + "id": 2148, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "18981:6:0", + "src": "19521:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74436,30 +77272,30 @@ "visibility": "internal" } ], - "id": 1724, + "id": 2155, "initialValue": { "arguments": [ { "expression": { - "id": 1721, + "id": 2152, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "19001:7:0", + "referencedDeclaration": 507, + "src": "19541:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1722, + "id": 2153, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "19001:14:0", + "src": "19541:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -74473,26 +77309,26 @@ "typeString": "uint256" } ], - "id": 1720, + "id": 2151, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "18994:6:0", + "src": "19534:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 1719, + "id": 2150, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "18994:6:0", + "src": "19534:6:6", "typeDescriptions": {} } }, - "id": 1723, + "id": 2154, "isConstant": false, "isLValue": false, "isPure": false, @@ -74500,7 +77336,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "18994:22:0", + "src": "19534:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -74508,57 +77344,57 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "18981:35:0" + "src": "19521:35:6" }, { "body": { - "id": 1746, + "id": 2177, "nodeType": "Block", - "src": "19069:91:0", + "src": "19609:91:6", "statements": [ { - "id": 1745, + "id": 2176, "nodeType": "UncheckedBlock", - "src": "19079:71:0", + "src": "19619:71:6", "statements": [ { "expression": { - "id": 1743, + "id": 2174, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 1735, + "id": 2166, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "19102:7:0", + "referencedDeclaration": 507, + "src": "19642:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1739, + "id": 2170, "indexExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1738, + "id": 2169, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1736, + "id": 2167, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1726, - "src": "19110:1:0", + "referencedDeclaration": 2157, + "src": "19650:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74567,18 +77403,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 1737, + "id": 2168, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "19114:11:0", + "referencedDeclaration": 2033, + "src": "19654:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19110:15:0", + "src": "19650:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74589,7 +77425,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "19102:24:0", + "src": "19642:24:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -74599,25 +77435,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 1740, + "id": 2171, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "19129:7:0", + "referencedDeclaration": 507, + "src": "19669:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1742, + "id": 2173, "indexExpression": { - "id": 1741, + "id": 2172, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1726, - "src": "19137:1:0", + "referencedDeclaration": 2157, + "src": "19677:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74628,21 +77464,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "19129:10:0", + "src": "19669:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "19102:37:0", + "src": "19642:37:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1744, + "id": 2175, "nodeType": "ExpressionStatement", - "src": "19102:37:0" + "src": "19642:37:6" } ] } @@ -74653,18 +77489,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1731, + "id": 2162, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1729, + "id": 2160, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1726, - "src": "19055:1:0", + "referencedDeclaration": 2157, + "src": "19595:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74673,38 +77509,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1730, + "id": 2161, "name": "len", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1718, - "src": "19059:3:0", + "referencedDeclaration": 2149, + "src": "19599:3:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19055:7:0", + "src": "19595:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1747, + "id": 2178, "initializationExpression": { "assignments": [ - 1726 + 2157 ], "declarations": [ { "constant": false, - "id": 1726, + "id": 2157, "mutability": "mutable", "name": "i", - "nameLocation": "19038:1:0", + "nameLocation": "19578:1:6", "nodeType": "VariableDeclaration", - "scope": 1747, - "src": "19031:8:0", + "scope": 2178, + "src": "19571:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -74712,10 +77548,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1725, + "id": 2156, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19031:6:0", + "src": "19571:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74724,25 +77560,25 @@ "visibility": "internal" } ], - "id": 1728, + "id": 2159, "initialValue": { - "id": 1727, + "id": 2158, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "19042:11:0", + "referencedDeclaration": 2033, + "src": "19582:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "19031:22:0" + "src": "19571:22:6" }, "loopExpression": { "expression": { - "id": 1733, + "id": 2164, "isConstant": false, "isLValue": false, "isPure": false, @@ -74750,14 +77586,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "19064:3:0", + "src": "19604:3:6", "subExpression": { - "id": 1732, + "id": 2163, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1726, - "src": "19064:1:0", + "referencedDeclaration": 2157, + "src": "19604:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74768,18 +77604,18 @@ "typeString": "uint32" } }, - "id": 1734, + "id": 2165, "nodeType": "ExpressionStatement", - "src": "19064:3:0" + "src": "19604:3:6" }, "nodeType": "ForStatement", - "src": "19026:134:0" + "src": "19566:134:6" }, { "body": { - "id": 1763, + "id": 2194, "nodeType": "Block", - "src": "19210:38:0", + "src": "19750:38:6", "statements": [ { "expression": { @@ -74787,31 +77623,31 @@ "expression": { "argumentTypes": [], "expression": { - "id": 1758, + "id": 2189, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 117, - "src": "19224:7:0", + "referencedDeclaration": 507, + "src": "19764:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 1760, + "id": 2191, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pop", "nodeType": "MemberAccess", - "src": "19224:11:0", + "src": "19764:11:6", "typeDescriptions": { "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$", "typeString": "function (bytes32[] storage pointer)" } }, - "id": 1761, + "id": 2192, "isConstant": false, "isLValue": false, "isPure": false, @@ -74819,16 +77655,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19224:13:0", + "src": "19764:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1762, + "id": 2193, "nodeType": "ExpressionStatement", - "src": "19224:13:0" + "src": "19764:13:6" } ] }, @@ -74837,18 +77673,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1754, + "id": 2185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1752, + "id": 2183, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1749, - "src": "19188:1:0", + "referencedDeclaration": 2180, + "src": "19728:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74857,38 +77693,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1753, + "id": 2184, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1602, - "src": "19192:11:0", + "referencedDeclaration": 2033, + "src": "19732:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19188:15:0", + "src": "19728:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1764, + "id": 2195, "initializationExpression": { "assignments": [ - 1749 + 2180 ], "declarations": [ { "constant": false, - "id": 1749, + "id": 2180, "mutability": "mutable", "name": "i", - "nameLocation": "19181:1:0", + "nameLocation": "19721:1:6", "nodeType": "VariableDeclaration", - "scope": 1764, - "src": "19174:8:0", + "scope": 2195, + "src": "19714:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -74896,10 +77732,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1748, + "id": 2179, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19174:6:0", + "src": "19714:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74908,17 +77744,17 @@ "visibility": "internal" } ], - "id": 1751, + "id": 2182, "initialValue": { "hexValue": "30", - "id": 1750, + "id": 2181, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19185:1:0", + "src": "19725:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -74926,11 +77762,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "19174:12:0" + "src": "19714:12:6" }, "loopExpression": { "expression": { - "id": 1756, + "id": 2187, "isConstant": false, "isLValue": false, "isPure": false, @@ -74938,14 +77774,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "19205:3:0", + "src": "19745:3:6", "subExpression": { - "id": 1755, + "id": 2186, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1749, - "src": "19205:1:0", + "referencedDeclaration": 2180, + "src": "19745:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74956,51 +77792,51 @@ "typeString": "uint32" } }, - "id": 1757, + "id": 2188, "nodeType": "ExpressionStatement", - "src": "19205:3:0" + "src": "19745:3:6" }, "nodeType": "ForStatement", - "src": "19169:79:0" + "src": "19709:79:6" } ] }, "documentation": { - "id": 1598, + "id": 2029, "nodeType": "StructuredDocumentation", - "src": "16420:444:0", + "src": "16960:444:6", "text": "Remove old commits from storage, where the commit's timestamp is older than block.timestamp - REVEAL_MAX_DELAY. The purpose is to remove dangling data from blockchain, and prevent commits grow unbounded. This is executed at commit time. The committer pays for the gas of this cleanup. Therefore, any attacker who intend to spam commits would be disincentivized. The attacker would not succeed in preventing any normal operation by the user." }, - "id": 1766, + "id": 2197, "implemented": true, "kind": "function", "modifiers": [], "name": "_cleanupCommits", - "nameLocation": "16878:15:0", + "nameLocation": "17418:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1599, + "id": 2030, "nodeType": "ParameterList", "parameters": [], - "src": "16893:2:0" + "src": "17433:2:6" }, "returnParameters": { - "id": 1600, + "id": 2031, "nodeType": "ParameterList", "parameters": [], - "src": "16905:0:0" + "src": "17445:0:6" }, - "scope": 2161, - "src": "16869:2529:0", + "scope": 2592, + "src": "17409:2529:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1783, + "id": 2214, "nodeType": "Block", - "src": "19481:79:0", + "src": "20021:79:6", "statements": [ { "expression": { @@ -75008,7 +77844,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1781, + "id": 2212, "isConstant": false, "isLValue": false, "isPure": false, @@ -75018,7 +77854,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1779, + "id": 2210, "isConstant": false, "isLValue": false, "isPure": false, @@ -75027,25 +77863,25 @@ "arguments": [ { "expression": { - "id": 1775, + "id": 2206, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "19505:5:0", + "src": "20045:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 1776, + "id": 2207, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "19505:15:0", + "src": "20045:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -75059,26 +77895,26 @@ "typeString": "uint256" } ], - "id": 1774, + "id": 2205, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "19498:6:0", + "src": "20038:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 1773, + "id": 2204, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19498:6:0", + "src": "20038:6:6", "typeDescriptions": {} } }, - "id": 1777, + "id": 2208, "isConstant": false, "isLValue": false, "isPure": false, @@ -75086,7 +77922,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19498:23:0", + "src": "20038:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -75096,18 +77932,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 1778, + "id": 2209, "name": "commitTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1768, - "src": "19524:10:0", + "referencedDeclaration": 2199, + "src": "20064:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19498:36:0", + "src": "20038:36:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -75116,50 +77952,50 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 1780, + "id": 2211, "name": "REVEAL_MAX_DELAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "19537:16:0", + "referencedDeclaration": 469, + "src": "20077:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19498:55:0", + "src": "20038:55:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 1772, - "id": 1782, + "functionReturnParameters": 2203, + "id": 2213, "nodeType": "Return", - "src": "19491:62:0" + "src": "20031:62:6" } ] }, - "id": 1784, + "id": 2215, "implemented": true, "kind": "function", "modifiers": [], "name": "_isRevealTimely", - "nameLocation": "19413:15:0", + "nameLocation": "19953:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1769, + "id": 2200, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1768, + "id": 2199, "mutability": "mutable", "name": "commitTime", - "nameLocation": "19436:10:0", + "nameLocation": "19976:10:6", "nodeType": "VariableDeclaration", - "scope": 1784, - "src": "19429:17:0", + "scope": 2215, + "src": "19969:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -75167,10 +78003,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1767, + "id": 2198, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19429:6:0", + "src": "19969:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -75179,21 +78015,21 @@ "visibility": "internal" } ], - "src": "19428:19:0" + "src": "19968:19:6" }, "returnParameters": { - "id": 1772, + "id": 2203, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1771, + "id": 2202, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1784, - "src": "19471:4:0", + "scope": 2215, + "src": "20011:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -75201,10 +78037,10 @@ "typeString": "bool" }, "typeName": { - "id": 1770, + "id": 2201, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "19471:4:0", + "src": "20011:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -75213,34 +78049,34 @@ "visibility": "internal" } ], - "src": "19470:6:0" + "src": "20010:6:6" }, - "scope": 2161, - "src": "19404:156:0", + "scope": 2592, + "src": "19944:156:6", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 1927, + "id": 2358, "nodeType": "Block", - "src": "19975:1499:0", + "src": "20515:1499:6", "statements": [ { "assignments": [ - 1799 + 2230 ], "declarations": [ { "constant": false, - "id": 1799, + "id": 2230, "mutability": "mutable", "name": "index", - "nameLocation": "19992:5:0", + "nameLocation": "20532:5:6", "nodeType": "VariableDeclaration", - "scope": 1927, - "src": "19985:12:0", + "scope": 2358, + "src": "20525:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -75248,10 +78084,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1798, + "id": 2229, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19985:6:0", + "src": "20525:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -75260,24 +78096,24 @@ "visibility": "internal" } ], - "id": 1803, + "id": 2234, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1802, + "id": 2233, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1800, + "id": 2231, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1789, - "src": "20000:14:0", + "referencedDeclaration": 2220, + "src": "20540:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -75286,40 +78122,40 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 1801, + "id": 2232, "name": "maxOperationsPerInterval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "20017:24:0", + "referencedDeclaration": 447, + "src": "20557:24:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "20000:41:0", + "src": "20540:41:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "19985:56:0" + "src": "20525:56:6" }, { "assignments": [ - 1805 + 2236 ], "declarations": [ { "constant": false, - "id": 1805, + "id": 2236, "mutability": "mutable", "name": "nonce", - "nameLocation": "20057:5:0", + "nameLocation": "20597:5:6", "nodeType": "VariableDeclaration", - "scope": 1927, - "src": "20051:11:0", + "scope": 2358, + "src": "20591:11:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -75327,10 +78163,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1804, + "id": 2235, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "20051:5:0", + "src": "20591:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -75339,7 +78175,7 @@ "visibility": "internal" } ], - "id": 1812, + "id": 2243, "initialValue": { "arguments": [ { @@ -75347,18 +78183,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1810, + "id": 2241, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1808, + "id": 2239, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1789, - "src": "20071:14:0", + "referencedDeclaration": 2220, + "src": "20611:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -75367,18 +78203,18 @@ "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { - "id": 1809, + "id": 2240, "name": "maxOperationsPerInterval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 60, - "src": "20088:24:0", + "referencedDeclaration": 447, + "src": "20628:24:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "20071:41:0", + "src": "20611:41:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -75392,26 +78228,26 @@ "typeString": "uint32" } ], - "id": 1807, + "id": 2238, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20065:5:0", + "src": "20605:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 1806, + "id": 2237, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "20065:5:0", + "src": "20605:5:6", "typeDescriptions": {} } }, - "id": 1811, + "id": 2242, "isConstant": false, "isLValue": false, "isPure": false, @@ -75419,7 +78255,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20065:48:0", + "src": "20605:48:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -75427,79 +78263,79 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "20051:62:0" + "src": "20591:62:6" }, { "assignments": [ - 1817 + 2248 ], "declarations": [ { "constant": false, - "id": 1817, + "id": 2248, "mutability": "mutable", "name": "cc", - "nameLocation": "20140:2:0", + "nameLocation": "20680:2:6", "nodeType": "VariableDeclaration", - "scope": 1927, - "src": "20123:19:0", + "scope": 2358, + "src": "20663:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" }, "typeName": { "baseType": { - "id": 1815, + "id": 2246, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1814, + "id": 2245, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "20123:6:0" + "referencedDeclaration": 504, + "src": "20663:6:6" }, - "referencedDeclaration": 114, - "src": "20123:6:0", + "referencedDeclaration": 504, + "src": "20663:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 1816, + "id": 2247, "nodeType": "ArrayTypeName", - "src": "20123:8:0", + "src": "20663:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } }, "visibility": "internal" } ], - "id": 1821, + "id": 2252, "initialValue": { "baseExpression": { - "id": 1818, + "id": 2249, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "20145:12:0", + "referencedDeclaration": 513, + "src": "20685:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 1820, + "id": 2251, "indexExpression": { - "id": 1819, + "id": 2250, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1787, - "src": "20158:4:0", + "referencedDeclaration": 2218, + "src": "20698:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -75510,14 +78346,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20145:18:0", + "src": "20685:18:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "20123:40:0" + "src": "20663:40:6" }, { "expression": { @@ -75527,32 +78363,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1826, + "id": 2257, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1823, + "id": 2254, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "20181:2:0", + "referencedDeclaration": 2248, + "src": "20721:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1824, + "id": 2255, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "20181:9:0", + "src": "20721:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -75562,21 +78398,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1825, + "id": 2256, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20193:1:0", + "src": "20733:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "20181:13:0", + "src": "20721:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -75584,14 +78420,14 @@ }, { "hexValue": "4e6f20636f6d6d697420666f756e64", - "id": 1827, + "id": 2258, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "20196:17:0", + "src": "20736:17:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_38f47be26bf822ff597a5cbffa2774ecae1ceaa169f734b7db0a07fb62c9547a", "typeString": "literal_string \"No commit found\"" @@ -75610,7 +78446,7 @@ "typeString": "literal_string \"No commit found\"" } ], - "id": 1822, + "id": 2253, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -75618,13 +78454,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "20173:7:0", + "src": "20713:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1828, + "id": 2259, "isConstant": false, "isLValue": false, "isPure": false, @@ -75632,85 +78468,85 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20173:41:0", + "src": "20713:41:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1829, + "id": 2260, "nodeType": "ExpressionStatement", - "src": "20173:41:0" + "src": "20713:41:6" }, { "body": { - "id": 1921, + "id": 2352, "nodeType": "Block", - "src": "20263:1170:0", + "src": "20803:1170:6", "statements": [ { "assignments": [ - 1843 + 2274 ], "declarations": [ { "constant": false, - "id": 1843, + "id": 2274, "mutability": "mutable", "name": "c", - "nameLocation": "20292:1:0", + "nameLocation": "20832:1:6", "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "20277:16:0", + "scope": 2352, + "src": "20817:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 1842, + "id": 2273, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1841, + "id": 2272, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "20277:6:0" + "referencedDeclaration": 504, + "src": "20817:6:6" }, - "referencedDeclaration": 114, - "src": "20277:6:0", + "referencedDeclaration": 504, + "src": "20817:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, "visibility": "internal" } ], - "id": 1847, + "id": 2278, "initialValue": { "baseExpression": { - "id": 1844, + "id": 2275, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "20296:2:0", + "referencedDeclaration": 2248, + "src": "20836:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1846, + "id": 2277, "indexExpression": { - "id": 1845, + "id": 2276, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "20299:1:0", + "referencedDeclaration": 2262, + "src": "20839:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -75721,29 +78557,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20296:5:0", + "src": "20836:5:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage", + "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "20277:24:0" + "src": "20817:24:6" }, { "assignments": [ - 1849 + 2280 ], "declarations": [ { "constant": false, - "id": 1849, + "id": 2280, "mutability": "mutable", "name": "expectedVerificationHash", - "nameLocation": "20323:24:0", + "nameLocation": "20863:24:6", "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "20315:32:0", + "scope": 2352, + "src": "20855:32:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -75751,10 +78587,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1848, + "id": 2279, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "20315:7:0", + "src": "20855:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -75763,45 +78599,45 @@ "visibility": "internal" } ], - "id": 1859, + "id": 2290, "initialValue": { "arguments": [ { "arguments": [ { "expression": { - "id": 1854, + "id": 2285, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, - "src": "20373:1:0", + "referencedDeclaration": 2274, + "src": "20913:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1855, + "id": 2286, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paramsHash", "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "20373:12:0", + "referencedDeclaration": 497, + "src": "20913:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1856, + "id": 2287, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1793, - "src": "20387:4:0", + "referencedDeclaration": 2224, + "src": "20927:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -75820,39 +78656,39 @@ } ], "expression": { - "id": 1852, + "id": 2283, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20360:5:0", + "src": "20900:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1851, + "id": 2282, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "20360:5:0", + "src": "20900:5:6", "typeDescriptions": {} } }, - "id": 1853, + "id": 2284, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "20360:12:0", + "src": "20900:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1857, + "id": 2288, "isConstant": false, "isLValue": false, "isPure": false, @@ -75860,7 +78696,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20360:32:0", + "src": "20900:32:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -75875,18 +78711,18 @@ "typeString": "bytes memory" } ], - "id": 1850, + "id": 2281, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "20350:9:0", + "src": "20890:9:6", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1858, + "id": 2289, "isConstant": false, "isLValue": false, "isPure": false, @@ -75894,7 +78730,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20350:43:0", + "src": "20890:43:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -75902,7 +78738,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "20315:78:0" + "src": "20855:78:6" }, { "condition": { @@ -75910,33 +78746,33 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 1863, + "id": 2294, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1860, + "id": 2291, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, - "src": "20411:1:0", + "referencedDeclaration": 2274, + "src": "20951:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1861, + "id": 2292, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "verificationHash", "nodeType": "MemberAccess", - "referencedDeclaration": 109, - "src": "20411:18:0", + "referencedDeclaration": 499, + "src": "20951:18:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -75945,35 +78781,35 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 1862, + "id": 2293, "name": "expectedVerificationHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1849, - "src": "20433:24:0", + "referencedDeclaration": 2280, + "src": "20973:24:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "20411:46:0", + "src": "20951:46:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1866, + "id": 2297, "nodeType": "IfStatement", - "src": "20407:134:0", + "src": "20947:134:6", "trueBody": { - "id": 1865, + "id": 2296, "nodeType": "Block", - "src": "20459:82:0", + "src": "20999:82:6", "statements": [ { - "id": 1864, + "id": 2295, "nodeType": "Continue", - "src": "20518:8:0" + "src": "21058:8:6" } ] } @@ -75986,33 +78822,33 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 1871, + "id": 2302, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1868, + "id": 2299, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, - "src": "20562:1:0", + "referencedDeclaration": 2274, + "src": "21102:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1869, + "id": 2300, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "paramsHash", "nodeType": "MemberAccess", - "referencedDeclaration": 107, - "src": "20562:12:0", + "referencedDeclaration": 497, + "src": "21102:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -76021,18 +78857,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1870, + "id": 2301, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1791, - "src": "20578:10:0", + "referencedDeclaration": 2222, + "src": "21118:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "20562:26:0", + "src": "21102:26:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -76040,14 +78876,14 @@ }, { "hexValue": "506172616d657465722068617368206d69736d61746368", - "id": 1872, + "id": 2303, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "20590:25:0", + "src": "21130:25:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3430d3063c70bc84041a3bb75a9010a8e7685d878f7521f09ab01e30ea2f9f24", "typeString": "literal_string \"Parameter hash mismatch\"" @@ -76066,7 +78902,7 @@ "typeString": "literal_string \"Parameter hash mismatch\"" } ], - "id": 1867, + "id": 2298, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -76074,13 +78910,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "20554:7:0", + "src": "21094:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1873, + "id": 2304, "isConstant": false, "isLValue": false, "isPure": false, @@ -76088,31 +78924,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20554:62:0", + "src": "21094:62:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1874, + "id": 2305, "nodeType": "ExpressionStatement", - "src": "20554:62:0" + "src": "21094:62:6" }, { "assignments": [ - 1876 + 2307 ], "declarations": [ { "constant": false, - "id": 1876, + "id": 2307, "mutability": "mutable", "name": "counter", - "nameLocation": "20637:7:0", + "nameLocation": "21177:7:6", "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "20630:14:0", + "scope": 2352, + "src": "21170:14:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -76120,10 +78956,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1875, + "id": 2306, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "20630:6:0", + "src": "21170:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76132,13 +78968,13 @@ "visibility": "internal" } ], - "id": 1883, + "id": 2314, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1882, + "id": 2313, "isConstant": false, "isLValue": false, "isPure": false, @@ -76148,33 +78984,33 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1880, + "id": 2311, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1877, + "id": 2308, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, - "src": "20647:1:0", + "referencedDeclaration": 2274, + "src": "21187:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1878, + "id": 2309, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 111, - "src": "20647:11:0", + "referencedDeclaration": 501, + "src": "21187:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76183,18 +79019,18 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 1879, + "id": 2310, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "20661:8:0", + "referencedDeclaration": 441, + "src": "21201:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "20647:22:0", + "src": "21187:22:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76203,25 +79039,25 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 1881, + "id": 2312, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "20672:2:0", + "referencedDeclaration": 443, + "src": "21212:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "20647:27:0", + "src": "21187:27:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "20630:44:0" + "src": "21170:44:6" }, { "expression": { @@ -76231,18 +79067,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1887, + "id": 2318, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1885, + "id": 2316, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1876, - "src": "20696:7:0", + "referencedDeclaration": 2307, + "src": "21236:7:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76251,18 +79087,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 1886, + "id": 2317, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1799, - "src": "20707:5:0", + "referencedDeclaration": 2230, + "src": "21247:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "20696:16:0", + "src": "21236:16:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -76270,14 +79106,14 @@ }, { "hexValue": "496e646578202d2074696d657374616d70206d69736d61746368", - "id": 1888, + "id": 2319, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "20714:28:0", + "src": "21254:28:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80", "typeString": "literal_string \"Index - timestamp mismatch\"" @@ -76296,7 +79132,7 @@ "typeString": "literal_string \"Index - timestamp mismatch\"" } ], - "id": 1884, + "id": 2315, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -76304,13 +79140,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "20688:7:0", + "src": "21228:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1889, + "id": 2320, "isConstant": false, "isLValue": false, "isPure": false, @@ -76318,31 +79154,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20688:55:0", + "src": "21228:55:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1890, + "id": 2321, "nodeType": "ExpressionStatement", - "src": "20688:55:0" + "src": "21228:55:6" }, { "assignments": [ - 1892 + 2323 ], "declarations": [ { "constant": false, - "id": 1892, + "id": 2323, "mutability": "mutable", "name": "expectedNonce", - "nameLocation": "20763:13:0", + "nameLocation": "21303:13:6", "nodeType": "VariableDeclaration", - "scope": 1921, - "src": "20757:19:0", + "scope": 2352, + "src": "21297:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -76350,10 +79186,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1891, + "id": 2322, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "20757:5:0", + "src": "21297:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -76362,28 +79198,28 @@ "visibility": "internal" } ], - "id": 1896, + "id": 2327, "initialValue": { "baseExpression": { - "id": 1893, + "id": 2324, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "20779:6:0", + "referencedDeclaration": 463, + "src": "21319:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 1895, + "id": 2326, "indexExpression": { - "id": 1894, + "id": 2325, "name": "counter", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1876, - "src": "20786:7:0", + "referencedDeclaration": 2307, + "src": "21326:7:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76394,14 +79230,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20779:15:0", + "src": "21319:15:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "20757:37:0" + "src": "21297:37:6" }, { "expression": { @@ -76411,18 +79247,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1900, + "id": 2331, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1898, + "id": 2329, "name": "nonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1805, - "src": "20816:5:0", + "referencedDeclaration": 2236, + "src": "21356:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -76431,18 +79267,18 @@ "nodeType": "BinaryOperation", "operator": ">=", "rightExpression": { - "id": 1899, + "id": 2330, "name": "expectedNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1892, - "src": "20825:13:0", + "referencedDeclaration": 2323, + "src": "21365:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "20816:22:0", + "src": "21356:22:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -76450,14 +79286,14 @@ }, { "hexValue": "4e6f6e636520746f6f206c6f77", - "id": 1901, + "id": 2332, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "20840:15:0", + "src": "21380:15:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_0d3a5f34c29e81aa7bbfe59ba3e3db3006ac807af6a54ad3cac7463abb5d83b0", "typeString": "literal_string \"Nonce too low\"" @@ -76476,7 +79312,7 @@ "typeString": "literal_string \"Nonce too low\"" } ], - "id": 1897, + "id": 2328, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -76484,13 +79320,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "20808:7:0", + "src": "21348:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1902, + "id": 2333, "isConstant": false, "isLValue": false, "isPure": false, @@ -76498,22 +79334,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20808:48:0", + "src": "21348:48:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1903, + "id": 2334, "nodeType": "ExpressionStatement", - "src": "20808:48:0" + "src": "21348:48:6" }, { "expression": { "arguments": [ { - "id": 1907, + "id": 2338, "isConstant": false, "isLValue": false, "isPure": false, @@ -76521,29 +79357,29 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "20878:12:0", + "src": "21418:12:6", "subExpression": { "expression": { - "id": 1905, + "id": 2336, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, - "src": "20879:1:0", + "referencedDeclaration": 2274, + "src": "21419:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1906, + "id": 2337, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "completed", "nodeType": "MemberAccess", - "referencedDeclaration": 113, - "src": "20879:11:0", + "referencedDeclaration": 503, + "src": "21419:11:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -76556,14 +79392,14 @@ }, { "hexValue": "436f6d6d697420616c726561647920636f6d706c65746564", - "id": 1908, + "id": 2339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "20892:26:0", + "src": "21432:26:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_2d6af051cc9bdd806c60b20e274721a89fb9a7025afbe00dde07d3201c4068b2", "typeString": "literal_string \"Commit already completed\"" @@ -76582,7 +79418,7 @@ "typeString": "literal_string \"Commit already completed\"" } ], - "id": 1904, + "id": 2335, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -76590,13 +79426,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "20870:7:0", + "src": "21410:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1909, + "id": 2340, "isConstant": false, "isLValue": false, "isPure": false, @@ -76604,16 +79440,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20870:49:0", + "src": "21410:49:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1910, + "id": 2341, "nodeType": "ExpressionStatement", - "src": "20870:49:0" + "src": "21410:49:6" }, { "expression": { @@ -76622,26 +79458,26 @@ "arguments": [ { "expression": { - "id": 1913, + "id": 2344, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1843, - "src": "21368:1:0", + "referencedDeclaration": 2274, + "src": "21908:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1914, + "id": 2345, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 111, - "src": "21368:11:0", + "referencedDeclaration": 501, + "src": "21908:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76655,18 +79491,18 @@ "typeString": "uint32" } ], - "id": 1912, + "id": 2343, "name": "_isRevealTimely", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1784, - "src": "21352:15:0", + "referencedDeclaration": 2215, + "src": "21892:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_bool_$", "typeString": "function (uint32) view returns (bool)" } }, - "id": 1915, + "id": 2346, "isConstant": false, "isLValue": false, "isPure": false, @@ -76674,7 +79510,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21352:28:0", + "src": "21892:28:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -76683,14 +79519,14 @@ }, { "hexValue": "52657665616c20746f6f206c617465", - "id": 1916, + "id": 2347, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21382:17:0", + "src": "21922:17:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_286e638d23bc87ce733fb0202708f485eb6091553feef3d943a83966c37e7639", "typeString": "literal_string \"Reveal too late\"" @@ -76709,7 +79545,7 @@ "typeString": "literal_string \"Reveal too late\"" } ], - "id": 1911, + "id": 2342, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -76717,13 +79553,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "21344:7:0", + "src": "21884:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1917, + "id": 2348, "isConstant": false, "isLValue": false, "isPure": false, @@ -76731,34 +79567,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21344:56:0", + "src": "21884:56:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1918, + "id": 2349, "nodeType": "ExpressionStatement", - "src": "21344:56:0" + "src": "21884:56:6" }, { "expression": { - "id": 1919, + "id": 2350, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "21421:1:0", + "referencedDeclaration": 2262, + "src": "21961:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "functionReturnParameters": 1797, - "id": 1920, + "functionReturnParameters": 2228, + "id": 2351, "nodeType": "Return", - "src": "21414:8:0" + "src": "21954:8:6" } ] }, @@ -76767,18 +79603,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1837, + "id": 2268, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1834, + "id": 2265, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "20243:1:0", + "referencedDeclaration": 2262, + "src": "20783:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76788,51 +79624,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 1835, + "id": 2266, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1817, - "src": "20247:2:0", + "referencedDeclaration": 2248, + "src": "20787:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1836, + "id": 2267, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "20247:9:0", + "src": "20787:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "20243:13:0", + "src": "20783:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1922, + "id": 2353, "initializationExpression": { "assignments": [ - 1831 + 2262 ], "declarations": [ { "constant": false, - "id": 1831, + "id": 2262, "mutability": "mutable", "name": "i", - "nameLocation": "20236:1:0", + "nameLocation": "20776:1:6", "nodeType": "VariableDeclaration", - "scope": 1922, - "src": "20229:8:0", + "scope": 2353, + "src": "20769:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -76840,10 +79676,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1830, + "id": 2261, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "20229:6:0", + "src": "20769:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76852,17 +79688,17 @@ "visibility": "internal" } ], - "id": 1833, + "id": 2264, "initialValue": { "hexValue": "30", - "id": 1832, + "id": 2263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20240:1:0", + "src": "20780:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -76870,11 +79706,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "20229:12:0" + "src": "20769:12:6" }, "loopExpression": { "expression": { - "id": 1839, + "id": 2270, "isConstant": false, "isLValue": false, "isPure": false, @@ -76882,14 +79718,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "20258:3:0", + "src": "20798:3:6", "subExpression": { - "id": 1838, + "id": 2269, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1831, - "src": "20258:1:0", + "referencedDeclaration": 2262, + "src": "20798:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76900,26 +79736,26 @@ "typeString": "uint32" } }, - "id": 1840, + "id": 2271, "nodeType": "ExpressionStatement", - "src": "20258:3:0" + "src": "20798:3:6" }, "nodeType": "ForStatement", - "src": "20224:1209:0" + "src": "20764:1209:6" }, { "expression": { "arguments": [ { "hexValue": "4e6f2076616c696420636f6d6d6974", - "id": 1924, + "id": 2355, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21449:17:0", + "src": "21989:17:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3972966c6b890cd04bd250ec8fd05d1950759334a3d8fa4e9bb3d0693e9952d", "typeString": "literal_string \"No valid commit\"" @@ -76934,7 +79770,7 @@ "typeString": "literal_string \"No valid commit\"" } ], - "id": 1923, + "id": 2354, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -76942,13 +79778,13 @@ 4294967277 ], "referencedDeclaration": 4294967277, - "src": "21442:6:0", + "src": "21982:6:6", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 1925, + "id": 2356, "isConstant": false, "isLValue": false, "isPure": false, @@ -76956,45 +79792,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21442:25:0", + "src": "21982:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1926, + "id": 2357, "nodeType": "ExpressionStatement", - "src": "21442:25:0" + "src": "21982:25:6" } ] }, "documentation": { - "id": 1785, + "id": 2216, "nodeType": "StructuredDocumentation", - "src": "19566:275:0", + "src": "20106:275:6", "text": "This function verifies that the first valid entry with respect to the given `eotp` in `commitLocker[hash]` matches the provided `paramsHash` and `verificationHash`. An entry is valid with respect to `eotp` iff `h3(entry.paramsHash . eotp)` equals `entry.verificationHash`" }, - "id": 1928, + "id": 2359, "implemented": true, "kind": "function", "modifiers": [], "name": "_verifyReveal", - "nameLocation": "19855:13:0", + "nameLocation": "20395:13:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1794, + "id": 2225, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1787, + "id": 2218, "mutability": "mutable", "name": "hash", - "nameLocation": "19877:4:0", + "nameLocation": "20417:4:6", "nodeType": "VariableDeclaration", - "scope": 1928, - "src": "19869:12:0", + "scope": 2359, + "src": "20409:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -77002,10 +79838,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1786, + "id": 2217, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "19869:7:0", + "src": "20409:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -77015,13 +79851,13 @@ }, { "constant": false, - "id": 1789, + "id": 2220, "mutability": "mutable", "name": "indexWithNonce", - "nameLocation": "19890:14:0", + "nameLocation": "20430:14:6", "nodeType": "VariableDeclaration", - "scope": 1928, - "src": "19883:21:0", + "scope": 2359, + "src": "20423:21:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -77029,10 +79865,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1788, + "id": 2219, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19883:6:0", + "src": "20423:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77042,13 +79878,13 @@ }, { "constant": false, - "id": 1791, + "id": 2222, "mutability": "mutable", "name": "paramsHash", - "nameLocation": "19914:10:0", + "nameLocation": "20454:10:6", "nodeType": "VariableDeclaration", - "scope": 1928, - "src": "19906:18:0", + "scope": 2359, + "src": "20446:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -77056,10 +79892,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1790, + "id": 2221, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "19906:7:0", + "src": "20446:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -77069,13 +79905,13 @@ }, { "constant": false, - "id": 1793, + "id": 2224, "mutability": "mutable", "name": "eotp", - "nameLocation": "19934:4:0", + "nameLocation": "20474:4:6", "nodeType": "VariableDeclaration", - "scope": 1928, - "src": "19926:12:0", + "scope": 2359, + "src": "20466:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -77083,10 +79919,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1792, + "id": 2223, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "19926:7:0", + "src": "20466:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -77095,21 +79931,21 @@ "visibility": "internal" } ], - "src": "19868:71:0" + "src": "20408:71:6" }, "returnParameters": { - "id": 1797, + "id": 2228, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1796, + "id": 2227, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 1928, - "src": "19963:6:0", + "scope": 2359, + "src": "20503:6:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -77117,10 +79953,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1795, + "id": 2226, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19963:6:0", + "src": "20503:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77129,91 +79965,91 @@ "visibility": "internal" } ], - "src": "19962:8:0" + "src": "20502:8:6" }, - "scope": 2161, - "src": "19846:1628:0", + "scope": 2592, + "src": "20386:1628:6", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2000, + "id": 2431, "nodeType": "Block", - "src": "21554:464:0", + "src": "22094:464:6", "statements": [ { "assignments": [ - 1939 + 2370 ], "declarations": [ { "constant": false, - "id": 1939, + "id": 2370, "mutability": "mutable", "name": "cc", - "nameLocation": "21581:2:0", + "nameLocation": "22121:2:6", "nodeType": "VariableDeclaration", - "scope": 2000, - "src": "21564:19:0", + "scope": 2431, + "src": "22104:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" }, "typeName": { "baseType": { - "id": 1937, + "id": 2368, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1936, + "id": 2367, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "21564:6:0" + "referencedDeclaration": 504, + "src": "22104:6:6" }, - "referencedDeclaration": 114, - "src": "21564:6:0", + "referencedDeclaration": 504, + "src": "22104:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 1938, + "id": 2369, "nodeType": "ArrayTypeName", - "src": "21564:8:0", + "src": "22104:8:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" } }, "visibility": "internal" } ], - "id": 1943, + "id": 2374, "initialValue": { "baseExpression": { - "id": 1940, + "id": 2371, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 123, - "src": "21586:12:0", + "referencedDeclaration": 513, + "src": "22126:12:6", "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$114_storage_$dyn_storage_$", + "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 1942, + "id": 2373, "indexExpression": { - "id": 1941, + "id": 2372, "name": "commitHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "21599:10:0", + "referencedDeclaration": 2361, + "src": "22139:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -77224,14 +80060,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "21586:24:0", + "src": "22126:24:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "21564:46:0" + "src": "22104:46:6" }, { "expression": { @@ -77241,32 +80077,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1948, + "id": 2379, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1945, + "id": 2376, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "21628:2:0", + "referencedDeclaration": 2370, + "src": "22168:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1946, + "id": 2377, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "21628:9:0", + "src": "22168:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -77276,21 +80112,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1947, + "id": 2378, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "21640:1:0", + "src": "22180:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "21628:13:0", + "src": "22168:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -77298,14 +80134,14 @@ }, { "hexValue": "496e76616c696420636f6d6d69742068617368", - "id": 1949, + "id": 2380, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21643:21:0", + "src": "22183:21:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_8a9c0db4284cd81d8eaef3d877f21bcccab643ae503f9d63f7eb3ad5aacbe749", "typeString": "literal_string \"Invalid commit hash\"" @@ -77324,7 +80160,7 @@ "typeString": "literal_string \"Invalid commit hash\"" } ], - "id": 1944, + "id": 2375, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -77332,13 +80168,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "21620:7:0", + "src": "22160:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1950, + "id": 2381, "isConstant": false, "isLValue": false, "isPure": false, @@ -77346,16 +80182,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21620:45:0", + "src": "22160:45:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1951, + "id": 2382, "nodeType": "ExpressionStatement", - "src": "21620:45:0" + "src": "22160:45:6" }, { "expression": { @@ -77365,32 +80201,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1956, + "id": 2387, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1953, + "id": 2384, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "21683:2:0", + "referencedDeclaration": 2370, + "src": "22223:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1954, + "id": 2385, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "21683:9:0", + "src": "22223:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -77399,18 +80235,18 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 1955, + "id": 2386, "name": "commitIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1932, - "src": "21695:11:0", + "referencedDeclaration": 2363, + "src": "22235:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "21683:23:0", + "src": "22223:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -77418,14 +80254,14 @@ }, { "hexValue": "496e76616c696420636f6d6d6974496e646578", - "id": 1957, + "id": 2388, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21708:21:0", + "src": "22248:21:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_dd8f27f99c8575d947c48310b46d36796c8df82285fc83fecd33510610055413", "typeString": "literal_string \"Invalid commitIndex\"" @@ -77444,7 +80280,7 @@ "typeString": "literal_string \"Invalid commitIndex\"" } ], - "id": 1952, + "id": 2383, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -77452,13 +80288,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "21675:7:0", + "src": "22215:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1958, + "id": 2389, "isConstant": false, "isLValue": false, "isPure": false, @@ -77466,79 +80302,79 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21675:55:0", + "src": "22215:55:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1959, + "id": 2390, "nodeType": "ExpressionStatement", - "src": "21675:55:0" + "src": "22215:55:6" }, { "assignments": [ - 1962 + 2393 ], "declarations": [ { "constant": false, - "id": 1962, + "id": 2393, "mutability": "mutable", "name": "c", - "nameLocation": "21755:1:0", + "nameLocation": "22295:1:6", "nodeType": "VariableDeclaration", - "scope": 2000, - "src": "21740:16:0", + "scope": 2431, + "src": "22280:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 1961, + "id": 2392, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 1960, + "id": 2391, "name": "Commit", "nodeType": "IdentifierPath", - "referencedDeclaration": 114, - "src": "21740:6:0" + "referencedDeclaration": 504, + "src": "22280:6:6" }, - "referencedDeclaration": 114, - "src": "21740:6:0", + "referencedDeclaration": 504, + "src": "22280:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, "visibility": "internal" } ], - "id": 1966, + "id": 2397, "initialValue": { "baseExpression": { - "id": 1963, + "id": 2394, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1939, - "src": "21759:2:0", + "referencedDeclaration": 2370, + "src": "22299:2:6", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_Commit_$114_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 1965, + "id": 2396, "indexExpression": { - "id": 1964, + "id": 2395, "name": "commitIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1932, - "src": "21762:11:0", + "referencedDeclaration": 2363, + "src": "22302:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77549,14 +80385,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "21759:15:0", + "src": "22299:15:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage", + "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "21740:34:0" + "src": "22280:34:6" }, { "expression": { @@ -77566,33 +80402,33 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1971, + "id": 2402, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1968, + "id": 2399, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1962, - "src": "21792:1:0", + "referencedDeclaration": 2393, + "src": "22332:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1969, + "id": 2400, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 111, - "src": "21792:11:0", + "referencedDeclaration": 501, + "src": "22332:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77602,21 +80438,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1970, + "id": 2401, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "21806:1:0", + "src": "22346:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "21792:15:0", + "src": "22332:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -77624,14 +80460,14 @@ }, { "hexValue": "496e76616c696420636f6d6d69742074696d657374616d70", - "id": 1972, + "id": 2403, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21809:26:0", + "src": "22349:26:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_791866c3f9c9c03c601447bf48dd4e0bd3f849759626f2144adccf6e77c6e64d", "typeString": "literal_string \"Invalid commit timestamp\"" @@ -77650,7 +80486,7 @@ "typeString": "literal_string \"Invalid commit timestamp\"" } ], - "id": 1967, + "id": 2398, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -77658,13 +80494,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "21784:7:0", + "src": "22324:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1973, + "id": 2404, "isConstant": false, "isLValue": false, "isPure": false, @@ -77672,31 +80508,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21784:52:0", + "src": "22324:52:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1974, + "id": 2405, "nodeType": "ExpressionStatement", - "src": "21784:52:0" + "src": "22324:52:6" }, { "assignments": [ - 1976 + 2407 ], "declarations": [ { "constant": false, - "id": 1976, + "id": 2407, "mutability": "mutable", "name": "index", - "nameLocation": "21882:5:0", + "nameLocation": "22422:5:6", "nodeType": "VariableDeclaration", - "scope": 2000, - "src": "21875:12:0", + "scope": 2431, + "src": "22415:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -77704,10 +80540,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1975, + "id": 2406, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "21875:6:0", + "src": "22415:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77716,13 +80552,13 @@ "visibility": "internal" } ], - "id": 1986, + "id": 2417, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1985, + "id": 2416, "isConstant": false, "isLValue": false, "isPure": false, @@ -77732,7 +80568,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1983, + "id": 2414, "isConstant": false, "isLValue": false, "isPure": false, @@ -77741,26 +80577,26 @@ "arguments": [ { "expression": { - "id": 1979, + "id": 2410, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1962, - "src": "21897:1:0", + "referencedDeclaration": 2393, + "src": "22437:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1980, + "id": 2411, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "referencedDeclaration": 111, - "src": "21897:11:0", + "referencedDeclaration": 501, + "src": "22437:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77774,26 +80610,26 @@ "typeString": "uint32" } ], - "id": 1978, + "id": 2409, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "21890:6:0", + "src": "22430:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 1977, + "id": 2408, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "21890:6:0", + "src": "22430:6:6", "typeDescriptions": {} } }, - "id": 1981, + "id": 2412, "isConstant": false, "isLValue": false, "isPure": false, @@ -77801,7 +80637,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21890:19:0", + "src": "22430:19:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -77811,18 +80647,18 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 1982, + "id": 2413, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "21912:8:0", + "referencedDeclaration": 441, + "src": "22452:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "21890:30:0", + "src": "22430:30:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77831,36 +80667,36 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 1984, + "id": 2415, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "21923:2:0", + "referencedDeclaration": 443, + "src": "22463:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "21890:35:0", + "src": "22430:35:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "21875:50:0" + "src": "22415:50:6" }, { "expression": { "arguments": [ { - "id": 1988, + "id": 2419, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1976, - "src": "21951:5:0", + "referencedDeclaration": 2407, + "src": "22491:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77874,18 +80710,18 @@ "typeString": "uint32" } ], - "id": 1987, + "id": 2418, "name": "_incrementNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2160, - "src": "21935:15:0", + "referencedDeclaration": 2591, + "src": "22475:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", "typeString": "function (uint32)" } }, - "id": 1989, + "id": 2420, "isConstant": false, "isLValue": false, "isPure": false, @@ -77893,34 +80729,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21935:22:0", + "src": "22475:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1990, + "id": 2421, "nodeType": "ExpressionStatement", - "src": "21935:22:0" + "src": "22475:22:6" }, { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1991, + "id": 2422, "name": "_cleanupNonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2128, - "src": "21967:14:0", + "referencedDeclaration": 2559, + "src": "22507:14:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", "typeString": "function ()" } }, - "id": 1992, + "id": 2423, "isConstant": false, "isLValue": false, "isPure": false, @@ -77928,46 +80764,46 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21967:16:0", + "src": "22507:16:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1993, + "id": 2424, "nodeType": "ExpressionStatement", - "src": "21967:16:0" + "src": "22507:16:6" }, { "expression": { - "id": 1998, + "id": 2429, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 1994, + "id": 2425, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1962, - "src": "21993:1:0", + "referencedDeclaration": 2393, + "src": "22533:1:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$114_storage_ptr", + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 1996, + "id": 2427, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "memberName": "completed", "nodeType": "MemberAccess", - "referencedDeclaration": 113, - "src": "21993:11:0", + "referencedDeclaration": 503, + "src": "22533:11:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -77977,52 +80813,52 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 1997, + "id": 2428, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "22007:4:0", + "src": "22547:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "21993:18:0", + "src": "22533:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1999, + "id": 2430, "nodeType": "ExpressionStatement", - "src": "21993:18:0" + "src": "22533:18:6" } ] }, - "id": 2001, + "id": 2432, "implemented": true, "kind": "function", "modifiers": [], "name": "_completeReveal", - "nameLocation": "21489:15:0", + "nameLocation": "22029:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1933, + "id": 2364, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1930, + "id": 2361, "mutability": "mutable", "name": "commitHash", - "nameLocation": "21513:10:0", + "nameLocation": "22053:10:6", "nodeType": "VariableDeclaration", - "scope": 2001, - "src": "21505:18:0", + "scope": 2432, + "src": "22045:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -78030,10 +80866,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1929, + "id": 2360, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "21505:7:0", + "src": "22045:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -78043,13 +80879,13 @@ }, { "constant": false, - "id": 1932, + "id": 2363, "mutability": "mutable", "name": "commitIndex", - "nameLocation": "21532:11:0", + "nameLocation": "22072:11:6", "nodeType": "VariableDeclaration", - "scope": 2001, - "src": "21525:18:0", + "scope": 2432, + "src": "22065:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -78057,10 +80893,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1931, + "id": 2362, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "21525:6:0", + "src": "22065:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78069,40 +80905,40 @@ "visibility": "internal" } ], - "src": "21504:40:0" + "src": "22044:40:6" }, "returnParameters": { - "id": 1934, + "id": 2365, "nodeType": "ParameterList", "parameters": [], - "src": "21554:0:0" + "src": "22094:0:6" }, - "scope": 2161, - "src": "21480:538:0", + "scope": 2592, + "src": "22020:538:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2127, + "id": 2558, "nodeType": "Block", - "src": "22313:1139:0", + "src": "22853:1139:6", "statements": [ { "assignments": [ - 2006 + 2437 ], "declarations": [ { "constant": false, - "id": 2006, + "id": 2437, "mutability": "mutable", "name": "tMin", - "nameLocation": "22330:4:0", + "nameLocation": "22870:4:6", "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "22323:11:0", + "scope": 2558, + "src": "22863:11:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -78110,10 +80946,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2005, + "id": 2436, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22323:6:0", + "src": "22863:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78122,13 +80958,13 @@ "visibility": "internal" } ], - "id": 2014, + "id": 2445, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2013, + "id": 2444, "isConstant": false, "isLValue": false, "isPure": false, @@ -78137,25 +80973,25 @@ "arguments": [ { "expression": { - "id": 2009, + "id": 2440, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "22344:5:0", + "src": "22884:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 2010, + "id": 2441, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "22344:15:0", + "src": "22884:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -78169,26 +81005,26 @@ "typeString": "uint256" } ], - "id": 2008, + "id": 2439, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "22337:6:0", + "src": "22877:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 2007, + "id": 2438, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22337:6:0", + "src": "22877:6:6", "typeDescriptions": {} } }, - "id": 2011, + "id": 2442, "isConstant": false, "isLValue": false, "isPure": false, @@ -78196,7 +81032,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "22337:23:0", + "src": "22877:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -78206,40 +81042,40 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2012, + "id": 2443, "name": "REVEAL_MAX_DELAY", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 80, - "src": "22363:16:0", + "referencedDeclaration": 469, + "src": "22903:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22337:42:0", + "src": "22877:42:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "22323:56:0" + "src": "22863:56:6" }, { "assignments": [ - 2016 + 2447 ], "declarations": [ { "constant": false, - "id": 2016, + "id": 2447, "mutability": "mutable", "name": "indexMinUnadjusted", - "nameLocation": "22396:18:0", + "nameLocation": "22936:18:6", "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "22389:25:0", + "scope": 2558, + "src": "22929:25:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -78247,10 +81083,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2015, + "id": 2446, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22389:6:0", + "src": "22929:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78259,24 +81095,24 @@ "visibility": "internal" } ], - "id": 2020, + "id": 2451, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2019, + "id": 2450, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2017, + "id": 2448, "name": "tMin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2006, - "src": "22417:4:0", + "referencedDeclaration": 2437, + "src": "22957:4:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78285,40 +81121,40 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2018, + "id": 2449, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 54, - "src": "22424:8:0", + "referencedDeclaration": 441, + "src": "22964:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "22417:15:0", + "src": "22957:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "22389:43:0" + "src": "22929:43:6" }, { "assignments": [ - 2022 + 2453 ], "declarations": [ { "constant": false, - "id": 2022, + "id": 2453, "mutability": "mutable", "name": "indexMin", - "nameLocation": "22449:8:0", + "nameLocation": "22989:8:6", "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "22442:15:0", + "scope": 2558, + "src": "22982:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -78326,10 +81162,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2021, + "id": 2452, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22442:6:0", + "src": "22982:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78338,17 +81174,17 @@ "visibility": "internal" } ], - "id": 2024, + "id": 2455, "initialValue": { "hexValue": "30", - "id": 2023, + "id": 2454, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "22460:1:0", + "src": "23000:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -78356,7 +81192,7 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "22442:19:0" + "src": "22982:19:6" }, { "condition": { @@ -78364,18 +81200,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2027, + "id": 2458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2025, + "id": 2456, "name": "indexMinUnadjusted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2016, - "src": "22475:18:0", + "referencedDeclaration": 2447, + "src": "23015:18:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78384,45 +81220,45 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 2026, + "id": 2457, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "22496:2:0", + "referencedDeclaration": 443, + "src": "23036:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22475:23:0", + "src": "23015:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2035, + "id": 2466, "nodeType": "IfStatement", - "src": "22471:88:0", + "src": "23011:88:6", "trueBody": { - "id": 2034, + "id": 2465, "nodeType": "Block", - "src": "22500:59:0", + "src": "23040:59:6", "statements": [ { "expression": { - "id": 2032, + "id": 2463, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2028, + "id": 2459, "name": "indexMin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "22514:8:0", + "referencedDeclaration": 2453, + "src": "23054:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78435,18 +81271,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2031, + "id": 2462, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2029, + "id": 2460, "name": "indexMinUnadjusted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2016, - "src": "22525:18:0", + "referencedDeclaration": 2447, + "src": "23065:18:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78455,50 +81291,50 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2030, + "id": 2461, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 56, - "src": "22546:2:0", + "referencedDeclaration": 443, + "src": "23086:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22525:23:0", + "src": "23065:23:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22514:34:0", + "src": "23054:34:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2033, + "id": 2464, "nodeType": "ExpressionStatement", - "src": "22514:34:0" + "src": "23054:34:6" } ] } }, { "assignments": [ - 2040 + 2471 ], "declarations": [ { "constant": false, - "id": 2040, + "id": 2471, "mutability": "mutable", "name": "nonZeroNonces", - "nameLocation": "22584:13:0", + "nameLocation": "23124:13:6", "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "22568:29:0", + "scope": 2558, + "src": "23108:29:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -78507,18 +81343,18 @@ }, "typeName": { "baseType": { - "id": 2038, + "id": 2469, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22568:6:0", + "src": "23108:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2039, + "id": 2470, "nodeType": "ArrayTypeName", - "src": "22568:8:0", + "src": "23108:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -78527,30 +81363,30 @@ "visibility": "internal" } ], - "id": 2047, + "id": 2478, "initialValue": { "arguments": [ { "expression": { - "id": 2044, + "id": 2475, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "22613:12:0", + "referencedDeclaration": 466, + "src": "23153:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2045, + "id": 2476, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "22613:19:0", + "src": "23153:19:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -78564,38 +81400,38 @@ "typeString": "uint256" } ], - "id": 2043, + "id": 2474, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "22600:12:0", + "src": "23140:12:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint32[] memory)" }, "typeName": { "baseType": { - "id": 2041, + "id": 2472, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22604:6:0", + "src": "23144:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2042, + "id": 2473, "nodeType": "ArrayTypeName", - "src": "22604:8:0", + "src": "23144:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" } } }, - "id": 2046, + "id": 2477, "isConstant": false, "isLValue": false, "isPure": false, @@ -78603,7 +81439,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "22600:33:0", + "src": "23140:33:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", @@ -78611,22 +81447,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "22568:65:0" + "src": "23108:65:6" }, { "assignments": [ - 2049 + 2480 ], "declarations": [ { "constant": false, - "id": 2049, + "id": 2480, "mutability": "mutable", "name": "numValidIndices", - "nameLocation": "22650:15:0", + "nameLocation": "23190:15:6", "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "22643:22:0", + "scope": 2558, + "src": "23183:22:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -78634,10 +81470,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2048, + "id": 2479, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22643:6:0", + "src": "23183:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78646,17 +81482,17 @@ "visibility": "internal" } ], - "id": 2051, + "id": 2482, "initialValue": { "hexValue": "30", - "id": 2050, + "id": 2481, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "22668:1:0", + "src": "23208:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -78664,28 +81500,28 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "22643:26:0" + "src": "23183:26:6" }, { "body": { - "id": 2090, + "id": 2521, "nodeType": "Block", - "src": "22727:293:0", + "src": "23267:293:6", "statements": [ { "assignments": [ - 2064 + 2495 ], "declarations": [ { "constant": false, - "id": 2064, + "id": 2495, "mutability": "mutable", "name": "index", - "nameLocation": "22748:5:0", + "nameLocation": "23288:5:6", "nodeType": "VariableDeclaration", - "scope": 2090, - "src": "22741:12:0", + "scope": 2521, + "src": "23281:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -78693,10 +81529,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2063, + "id": 2494, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22741:6:0", + "src": "23281:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78705,28 +81541,28 @@ "visibility": "internal" } ], - "id": 2068, + "id": 2499, "initialValue": { "baseExpression": { - "id": 2065, + "id": 2496, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "22756:12:0", + "referencedDeclaration": 466, + "src": "23296:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2067, + "id": 2498, "indexExpression": { - "id": 2066, + "id": 2497, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2053, - "src": "22769:1:0", + "referencedDeclaration": 2484, + "src": "23309:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -78737,14 +81573,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "22756:15:0", + "src": "23296:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "22741:30:0" + "src": "23281:30:6" }, { "condition": { @@ -78752,18 +81588,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2071, + "id": 2502, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2069, + "id": 2500, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2064, - "src": "22789:5:0", + "referencedDeclaration": 2495, + "src": "23329:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78772,56 +81608,56 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2070, + "id": 2501, "name": "indexMin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2022, - "src": "22797:8:0", + "referencedDeclaration": 2453, + "src": "23337:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22789:16:0", + "src": "23329:16:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2088, + "id": 2519, "nodeType": "Block", - "src": "22866:144:0", + "src": "23406:144:6", "statements": [ { "expression": { - "id": 2082, + "id": 2513, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2078, + "id": 2509, "name": "nonZeroNonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2040, - "src": "22884:13:0", + "referencedDeclaration": 2471, + "src": "23424:13:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 2080, + "id": 2511, "indexExpression": { - "id": 2079, + "id": 2510, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "22898:15:0", + "referencedDeclaration": 2480, + "src": "23438:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78832,7 +81668,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "22884:30:0", + "src": "23424:30:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78841,35 +81677,35 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2081, + "id": 2512, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2064, - "src": "22917:5:0", + "referencedDeclaration": 2495, + "src": "23457:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22884:38:0", + "src": "23424:38:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2083, + "id": 2514, "nodeType": "ExpressionStatement", - "src": "22884:38:0" + "src": "23424:38:6" }, { - "id": 2087, + "id": 2518, "nodeType": "UncheckedBlock", - "src": "22936:60:0", + "src": "23476:60:6", "statements": [ { "expression": { - "id": 2085, + "id": 2516, "isConstant": false, "isLValue": false, "isPure": false, @@ -78877,14 +81713,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "22964:17:0", + "src": "23504:17:6", "subExpression": { - "id": 2084, + "id": 2515, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "22964:15:0", + "referencedDeclaration": 2480, + "src": "23504:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78895,25 +81731,25 @@ "typeString": "uint32" } }, - "id": 2086, + "id": 2517, "nodeType": "ExpressionStatement", - "src": "22964:17:0" + "src": "23504:17:6" } ] } ] }, - "id": 2089, + "id": 2520, "nodeType": "IfStatement", - "src": "22785:225:0", + "src": "23325:225:6", "trueBody": { - "id": 2077, + "id": 2508, "nodeType": "Block", - "src": "22807:53:0", + "src": "23347:53:6", "statements": [ { "expression": { - "id": 2075, + "id": 2506, "isConstant": false, "isLValue": false, "isPure": false, @@ -78921,28 +81757,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "22825:20:0", + "src": "23365:20:6", "subExpression": { "baseExpression": { - "id": 2072, + "id": 2503, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "22832:6:0", + "referencedDeclaration": 463, + "src": "23372:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 2074, + "id": 2505, "indexExpression": { - "id": 2073, + "id": 2504, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2064, - "src": "22839:5:0", + "referencedDeclaration": 2495, + "src": "23379:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78953,7 +81789,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "22832:13:0", + "src": "23372:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -78964,9 +81800,9 @@ "typeString": "tuple()" } }, - "id": 2076, + "id": 2507, "nodeType": "ExpressionStatement", - "src": "22825:20:0" + "src": "23365:20:6" } ] } @@ -78978,18 +81814,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2059, + "id": 2490, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2056, + "id": 2487, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2053, - "src": "22697:1:0", + "referencedDeclaration": 2484, + "src": "23237:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -78999,51 +81835,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2057, + "id": 2488, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "22701:12:0", + "referencedDeclaration": 466, + "src": "23241:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2058, + "id": 2489, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "22701:19:0", + "src": "23241:19:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "22697:23:0", + "src": "23237:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2091, + "id": 2522, "initializationExpression": { "assignments": [ - 2053 + 2484 ], "declarations": [ { "constant": false, - "id": 2053, + "id": 2484, "mutability": "mutable", "name": "i", - "nameLocation": "22690:1:0", + "nameLocation": "23230:1:6", "nodeType": "VariableDeclaration", - "scope": 2091, - "src": "22684:7:0", + "scope": 2522, + "src": "23224:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -79051,10 +81887,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2052, + "id": 2483, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "22684:5:0", + "src": "23224:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -79063,17 +81899,17 @@ "visibility": "internal" } ], - "id": 2055, + "id": 2486, "initialValue": { "hexValue": "30", - "id": 2054, + "id": 2485, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "22694:1:0", + "src": "23234:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -79081,11 +81917,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "22684:11:0" + "src": "23224:11:6" }, "loopExpression": { "expression": { - "id": 2061, + "id": 2492, "isConstant": false, "isLValue": false, "isPure": false, @@ -79093,14 +81929,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "22722:3:0", + "src": "23262:3:6", "subExpression": { - "id": 2060, + "id": 2491, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2053, - "src": "22722:1:0", + "referencedDeclaration": 2484, + "src": "23262:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -79111,27 +81947,27 @@ "typeString": "uint8" } }, - "id": 2062, + "id": 2493, "nodeType": "ExpressionStatement", - "src": "22722:3:0" + "src": "23262:3:6" }, "nodeType": "ForStatement", - "src": "22679:341:0" + "src": "23219:341:6" }, { "assignments": [ - 2096 + 2527 ], "declarations": [ { "constant": false, - "id": 2096, + "id": 2527, "mutability": "mutable", "name": "reducedArray", - "nameLocation": "23252:12:0", + "nameLocation": "23792:12:6", "nodeType": "VariableDeclaration", - "scope": 2127, - "src": "23236:28:0", + "scope": 2558, + "src": "23776:28:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -79140,18 +81976,18 @@ }, "typeName": { "baseType": { - "id": 2094, + "id": 2525, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23236:6:0", + "src": "23776:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2095, + "id": 2526, "nodeType": "ArrayTypeName", - "src": "23236:8:0", + "src": "23776:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -79160,16 +81996,16 @@ "visibility": "internal" } ], - "id": 2102, + "id": 2533, "initialValue": { "arguments": [ { - "id": 2100, + "id": 2531, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "23280:15:0", + "referencedDeclaration": 2480, + "src": "23820:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -79183,38 +82019,38 @@ "typeString": "uint32" } ], - "id": 2099, + "id": 2530, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "23267:12:0", + "src": "23807:12:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint32[] memory)" }, "typeName": { "baseType": { - "id": 2097, + "id": 2528, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23271:6:0", + "src": "23811:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2098, + "id": 2529, "nodeType": "ArrayTypeName", - "src": "23271:8:0", + "src": "23811:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" } } }, - "id": 2101, + "id": 2532, "isConstant": false, "isLValue": false, "isPure": false, @@ -79222,7 +82058,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "23267:29:0", + "src": "23807:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", @@ -79230,42 +82066,42 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "23236:60:0" + "src": "23776:60:6" }, { "body": { - "id": 2121, + "id": 2552, "nodeType": "Block", - "src": "23350:59:0", + "src": "23890:59:6", "statements": [ { "expression": { - "id": 2119, + "id": 2550, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2113, + "id": 2544, "name": "reducedArray", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2096, - "src": "23364:12:0", + "referencedDeclaration": 2527, + "src": "23904:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 2115, + "id": 2546, "indexExpression": { - "id": 2114, + "id": 2545, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "23377:1:0", + "referencedDeclaration": 2535, + "src": "23917:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -79276,7 +82112,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "23364:15:0", + "src": "23904:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -79286,25 +82122,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 2116, + "id": 2547, "name": "nonZeroNonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2040, - "src": "23382:13:0", + "referencedDeclaration": 2471, + "src": "23922:13:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 2118, + "id": 2549, "indexExpression": { - "id": 2117, + "id": 2548, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "23396:1:0", + "referencedDeclaration": 2535, + "src": "23936:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -79315,21 +82151,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "23382:16:0", + "src": "23922:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23364:34:0", + "src": "23904:34:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2120, + "id": 2551, "nodeType": "ExpressionStatement", - "src": "23364:34:0" + "src": "23904:34:6" } ] }, @@ -79338,18 +82174,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2109, + "id": 2540, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2107, + "id": 2538, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "23324:1:0", + "referencedDeclaration": 2535, + "src": "23864:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -79358,38 +82194,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2108, + "id": 2539, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2049, - "src": "23328:15:0", + "referencedDeclaration": 2480, + "src": "23868:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23324:19:0", + "src": "23864:19:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2122, + "id": 2553, "initializationExpression": { "assignments": [ - 2104 + 2535 ], "declarations": [ { "constant": false, - "id": 2104, + "id": 2535, "mutability": "mutable", "name": "i", - "nameLocation": "23317:1:0", + "nameLocation": "23857:1:6", "nodeType": "VariableDeclaration", - "scope": 2122, - "src": "23311:7:0", + "scope": 2553, + "src": "23851:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -79397,10 +82233,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2103, + "id": 2534, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "23311:5:0", + "src": "23851:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -79409,17 +82245,17 @@ "visibility": "internal" } ], - "id": 2106, + "id": 2537, "initialValue": { "hexValue": "30", - "id": 2105, + "id": 2536, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23321:1:0", + "src": "23861:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -79427,11 +82263,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "23311:11:0" + "src": "23851:11:6" }, "loopExpression": { "expression": { - "id": 2111, + "id": 2542, "isConstant": false, "isLValue": false, "isPure": false, @@ -79439,14 +82275,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "23345:3:0", + "src": "23885:3:6", "subExpression": { - "id": 2110, + "id": 2541, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2104, - "src": "23345:1:0", + "referencedDeclaration": 2535, + "src": "23885:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -79457,27 +82293,27 @@ "typeString": "uint8" } }, - "id": 2112, + "id": 2543, "nodeType": "ExpressionStatement", - "src": "23345:3:0" + "src": "23885:3:6" }, "nodeType": "ForStatement", - "src": "23306:103:0" + "src": "23846:103:6" }, { "expression": { - "id": 2125, + "id": 2556, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2123, + "id": 2554, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "23418:12:0", + "referencedDeclaration": 466, + "src": "23958:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" @@ -79486,80 +82322,80 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2124, + "id": 2555, "name": "reducedArray", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2096, - "src": "23433:12:0", + "referencedDeclaration": 2527, + "src": "23973:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "src": "23418:27:0", + "src": "23958:27:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2126, + "id": 2557, "nodeType": "ExpressionStatement", - "src": "23418:27:0" + "src": "23958:27:6" } ] }, "documentation": { - "id": 2002, + "id": 2433, "nodeType": "StructuredDocumentation", - "src": "22024:249:0", + "src": "22564:249:6", "text": "This function removes all tracked nonce values correspond to interval blocks that are older than block.timestamp - REVEAL_MAX_DELAY. In doing so, extraneous data in the blockchain is removed, and both nonces and nonceTracker are bounded in size." }, - "id": 2128, + "id": 2559, "implemented": true, "kind": "function", "modifiers": [], "name": "_cleanupNonces", - "nameLocation": "22287:14:0", + "nameLocation": "22827:14:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2003, + "id": 2434, "nodeType": "ParameterList", "parameters": [], - "src": "22301:2:0" + "src": "22841:2:6" }, "returnParameters": { - "id": 2004, + "id": 2435, "nodeType": "ParameterList", "parameters": [], - "src": "22313:0:0" + "src": "22853:0:6" }, - "scope": 2161, - "src": "22278:1174:0", + "scope": 2592, + "src": "22818:1174:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2159, + "id": 2590, "nodeType": "Block", - "src": "23506:162:0", + "src": "24046:162:6", "statements": [ { "assignments": [ - 2134 + 2565 ], "declarations": [ { "constant": false, - "id": 2134, + "id": 2565, "mutability": "mutable", "name": "v", - "nameLocation": "23522:1:0", + "nameLocation": "24062:1:6", "nodeType": "VariableDeclaration", - "scope": 2159, - "src": "23516:7:0", + "scope": 2590, + "src": "24056:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -79567,10 +82403,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2133, + "id": 2564, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "23516:5:0", + "src": "24056:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -79579,28 +82415,28 @@ "visibility": "internal" } ], - "id": 2138, + "id": 2569, "initialValue": { "baseExpression": { - "id": 2135, + "id": 2566, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "23526:6:0", + "referencedDeclaration": 463, + "src": "24066:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 2137, + "id": 2568, "indexExpression": { - "id": 2136, + "id": 2567, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "23533:5:0", + "referencedDeclaration": 2561, + "src": "24073:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -79611,14 +82447,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "23526:13:0", + "src": "24066:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "23516:23:0" + "src": "24056:23:6" }, { "condition": { @@ -79626,18 +82462,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 2141, + "id": 2572, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2139, + "id": 2570, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "23553:1:0", + "referencedDeclaration": 2565, + "src": "24093:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -79647,44 +82483,44 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 2140, + "id": 2571, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23558:1:0", + "src": "24098:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "23553:6:0", + "src": "24093:6:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2149, + "id": 2580, "nodeType": "IfStatement", - "src": "23549:61:0", + "src": "24089:61:6", "trueBody": { - "id": 2148, + "id": 2579, "nodeType": "Block", - "src": "23561:49:0", + "src": "24101:49:6", "statements": [ { "expression": { "arguments": [ { - "id": 2145, + "id": 2576, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "23593:5:0", + "referencedDeclaration": 2561, + "src": "24133:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -79699,31 +82535,31 @@ } ], "expression": { - "id": 2142, + "id": 2573, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 77, - "src": "23575:12:0", + "referencedDeclaration": 466, + "src": "24115:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2144, + "id": 2575, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "23575:17:0", + "src": "24115:17:6", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint32_$dyn_storage_ptr_$_t_uint32_$returns$__$bound_to$_t_array$_t_uint32_$dyn_storage_ptr_$", "typeString": "function (uint32[] storage pointer,uint32)" } }, - "id": 2146, + "id": 2577, "isConstant": false, "isLValue": false, "isPure": false, @@ -79731,53 +82567,53 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "23575:24:0", + "src": "24115:24:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2147, + "id": 2578, "nodeType": "ExpressionStatement", - "src": "23575:24:0" + "src": "24115:24:6" } ] } }, { - "id": 2158, + "id": 2589, "nodeType": "UncheckedBlock", - "src": "23615:47:0", + "src": "24155:47:6", "statements": [ { "expression": { - "id": 2156, + "id": 2587, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2150, + "id": 2581, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 74, - "src": "23634:6:0", + "referencedDeclaration": 463, + "src": "24174:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 2152, + "id": 2583, "indexExpression": { - "id": 2151, + "id": 2582, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2130, - "src": "23641:5:0", + "referencedDeclaration": 2561, + "src": "24181:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -79788,7 +82624,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "23634:13:0", + "src": "24174:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -79801,18 +82637,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 2155, + "id": 2586, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2153, + "id": 2584, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2134, - "src": "23650:1:0", + "referencedDeclaration": 2565, + "src": "24190:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -79822,60 +82658,60 @@ "operator": "+", "rightExpression": { "hexValue": "31", - "id": 2154, + "id": 2585, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23654:1:0", + "src": "24194:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "23650:5:0", + "src": "24190:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "23634:21:0", + "src": "24174:21:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2157, + "id": 2588, "nodeType": "ExpressionStatement", - "src": "23634:21:0" + "src": "24174:21:6" } ] } ] }, - "id": 2160, + "id": 2591, "implemented": true, "kind": "function", "modifiers": [], "name": "_incrementNonce", - "nameLocation": "23467:15:0", + "nameLocation": "24007:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2131, + "id": 2562, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2130, + "id": 2561, "mutability": "mutable", "name": "index", - "nameLocation": "23490:5:0", + "nameLocation": "24030:5:6", "nodeType": "VariableDeclaration", - "scope": 2160, - "src": "23483:12:0", + "scope": 2591, + "src": "24023:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -79883,10 +82719,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2129, + "id": 2560, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23483:6:0", + "src": "24023:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -79895,35 +82731,35 @@ "visibility": "internal" } ], - "src": "23482:14:0" + "src": "24022:14:6" }, "returnParameters": { - "id": 2132, + "id": 2563, "nodeType": "ParameterList", "parameters": [], - "src": "23506:0:0" + "src": "24046:0:6" }, - "scope": 2161, - "src": "23458:210:0", + "scope": 2592, + "src": "23998:210:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" } ], - "scope": 2162, - "src": "151:23519:0", + "scope": 2593, + "src": "151:24059:6", "usedErrors": [] } ], - "src": "39:23632:0" + "src": "39:24172:6" }, "compiler": { "name": "solc", "version": "0.8.4+commit.c7e474f2.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.4.1", - "updatedAt": "2021-07-27T11:00:31.606Z", + "schemaVersion": "3.4.2", + "updatedAt": "2021-08-05T09:45:29.841Z", "devdoc": { "kind": "dev", "methods": { diff --git a/code/build/contracts/TokenTracker.json b/code/build/contracts/TokenTracker.json index 994988ef..782f6fc9 100644 --- a/code/build/contracts/TokenTracker.json +++ b/code/build/contracts/TokenTracker.json @@ -402,9 +402,9 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ReceivedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenNotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenTracked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"TokenTransferError\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenUntracked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getTrackedTokens\",\"outputs\":[{\"internalType\":\"enum TokenTracker.TokenType[]\",\"name\":\"\",\"type\":\"uint8[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/Users/polymorpher/git/one-wallet/code/contracts/TokenTracker.sol\":\"TokenTracker\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/Users/polymorpher/git/one-wallet/code/contracts/TokenTracker.sol\":{\"keccak256\":\"0x153e8bd4263b7b071e5c4e9e44f5da2afb16c74207e8a6a071c837721de1747b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5550ad4a2929a9216432939182544a355ccfa1fdc04566497d4215d08171d115\",\"dweb:/ipfs/QmRkCR7qmJP6oLqFs7FbAZNgQUV9PNRLweP4Kkv3L81AW7\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xfce1eb6398eae0e2b50251140866a70a3106193f101972c878bba1dbf44929ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f0709c3f462b28b400f57db181254ad970967c3b49a8948ef5e05929b106ffe\",\"dweb:/ipfs/QmNe3sRmPKw1T7q7m733tk7tFKpi3jo9PCisDPMbjeg3kJ\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x7de6e64d4a8075e803a972cc77c4c91463e0c3777e4110eacfb5d4a71759b2fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b3b09ef36374c1c104ee896797dadf2e81466d2143b481d3f1ddc7d9f3873\",\"dweb:/ipfs/QmSWtqs28RHDezRWBbmEfqiPYwsGTKj44NRbuxvZ96cqMU\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf101e8720213560fab41104d53b3cc7ba0456ef3a98455aa7f022391783144a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e7820bcf567e6892d937c3cb10db263a4042e446799bca602535868d822384e\",\"dweb:/ipfs/QmPG2oeDjKncqsEeyYGjAN7CwAJmMgHterXGGnpzhha4z7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xd9517254724276e2e8de3769183c1f738f445f0095c26fd9b86d3c6687e887b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e604bcdcd5e5b2fb299ad09769cde6db19d5aa1929d1b5e939234a0f10d7eb8\",\"dweb:/ipfs/Qmd8hXE3GZfBHuWx3RNiYgFW2ci7KvHtib8DiwzJ2dgo9V\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xa28007762d9da9db878dd421960c8cb9a10471f47ab5c1b3309bfe48e9e79ff4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://796ab6e88af7bf0e78def0f059310c903af6a312b565344e0ff524a0f26e81c6\",\"dweb:/ipfs/QmcsVgLgzWdor3UnAztUkXKNGcysm1MPneWksF72AvnwBx\"]}},\"version\":1}", - "bytecode": "0x608060405234801561001057600080fd5b50610e46806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806301ffc9a71461005c578063150b7a0214610084578063695def4c146100b0578063bc197c81146100c7578063f23a6e61146100da575b600080fd5b61006f61006a366004610ba5565b6100ed565b60405190151581526020015b60405180910390f35b610097610092366004610ac2565b61013f565b6040516001600160e01b0319909116815260200161007b565b6100b86101a5565b60405161007b93929190610cb0565b6100976100d5366004610a0b565b610496565b6100976100e8366004610b2f565b6105a8565b60006001600160e01b031982166301ffc9a760e01b148061011e57506001600160e01b0319821663f23a6e6160e01b145b8061013957506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161017f989796959493929190610d69565b60405180910390a16101936001338661060f565b50630a85bd0160e11b95945050505050565b6060806060600060018054905067ffffffffffffffff8111156101d857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610201578160200160208202803683370190505b5060015490915060009067ffffffffffffffff81111561023157634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561025a578160200160208202803683370190505b5060015490915060009067ffffffffffffffff81111561028a57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156102b3578160200160208202803683370190505b50905060005b60015463ffffffff821610156104895760018163ffffffff16815481106102f057634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061032f57634e487b7160e01b600052603260045260246000fd5b6020026020010190600381111561035657634e487b7160e01b600052602160045260246000fd5b9081600381111561037757634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106103a257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff16815181106103ed57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061043457634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff168151811061046c57634e487b7160e01b600052603260045260246000fd5b60209081029190910101528061048181610dc7565b9150506102b9565b5091959094509092509050565b6000805b63ffffffff8116871115610592573063f23a6e618b8b8b8b63ffffffff87168181106104d657634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061050357634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161052d96959493929190610c69565b602060405180830381600087803b15801561054757600080fd5b505af115801561055b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057f9190610bc8565b508061058a81610dc7565b91505061049a565b5063bc197c8160e01b9998505050505050505050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a89896040516105e8989796959493929190610d69565b60405180910390a16105fc6002338761060f565b5063f23a6e6160e01b9695505050505050565b600083600381111561063157634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6bffffffffffffffffffffffff191691830191909152810183905260800160408051601f1981840301815291815281516020928301206000818152928390529120549091501561081b5760005b60008281526020819052604090205463ffffffff82161015610819576000828152602081905260408120805463ffffffff84169081106106df57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905085600381111561070c57634e487b7160e01b600052602160045260246000fd5b6001828154811061072d57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff16600381111561076057634e487b7160e01b600052602160045260246000fd5b1461076b5750610807565b836001828154811061078d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154146107aa5750610807565b846001600160a01b0316600182815481106107d557634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b0316146107ff5750610807565b505050505050565b8061081181610dc7565b91505061068f565b505b6000604051806060016040528086600381111561084857634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff1916908360038111156108ed57634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a29061095690879087908790610d41565b60405180910390a15050505050565b80356001600160a01b038116811461097c57600080fd5b919050565b60008083601f840112610992578182fd5b50813567ffffffffffffffff8111156109a9578182fd5b6020830191508360208260051b85010111156109c457600080fd5b9250929050565b60008083601f8401126109dc578182fd5b50813567ffffffffffffffff8111156109f3578182fd5b6020830191508360208285010111156109c457600080fd5b60008060008060008060008060a0898b031215610a26578384fd5b610a2f89610965565b9750610a3d60208a01610965565b9650604089013567ffffffffffffffff80821115610a59578586fd5b610a658c838d01610981565b909850965060608b0135915080821115610a7d578586fd5b610a898c838d01610981565b909650945060808b0135915080821115610aa1578384fd5b50610aae8b828c016109cb565b999c989b5096995094979396929594505050565b600080600080600060808688031215610ad9578081fd5b610ae286610965565b9450610af060208701610965565b935060408601359250606086013567ffffffffffffffff811115610b12578182fd5b610b1e888289016109cb565b969995985093965092949392505050565b60008060008060008060a08789031215610b47578182fd5b610b5087610965565b9550610b5e60208801610965565b94506040870135935060608701359250608087013567ffffffffffffffff811115610b87578283fd5b610b9389828a016109cb565b979a9699509497509295939492505050565b600060208284031215610bb6578081fd5b8135610bc181610df7565b9392505050565b600060208284031215610bd9578081fd5b8151610bc181610df7565b6000815180845260208085019450808401835b83811015610c1357815187529582019590820190600101610bf7565b509495945050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60048110610c6557634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090610ca49083018486610c1e565b98975050505050505050565b606080825284519082018190526000906020906080840190828801845b82811015610cf057610ce0848351610c47565b9284019290840190600101610ccd565b50505083810382850152855180825286830191830190845b81811015610d2d5783516001600160a01b031683529284019291840191600101610d08565b50508481036040860152610ca48187610be4565b60608101610d4f8286610c47565b6001600160a01b0393909316602082015260400152919050565b610d73818a610c47565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090610db99083018486610c1e565b9a9950505050505050505050565b600063ffffffff80831681811415610ded57634e487b7160e01b83526011600452602483fd5b6001019392505050565b6001600160e01b031981168114610e0d57600080fd5b5056fea26469706673582212206cbd50200f1b243904e1bc616d387608b7afe24e47f2fcb6b886e3283909b7d864736f6c63430008040033", - "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806301ffc9a71461005c578063150b7a0214610084578063695def4c146100b0578063bc197c81146100c7578063f23a6e61146100da575b600080fd5b61006f61006a366004610ba5565b6100ed565b60405190151581526020015b60405180910390f35b610097610092366004610ac2565b61013f565b6040516001600160e01b0319909116815260200161007b565b6100b86101a5565b60405161007b93929190610cb0565b6100976100d5366004610a0b565b610496565b6100976100e8366004610b2f565b6105a8565b60006001600160e01b031982166301ffc9a760e01b148061011e57506001600160e01b0319821663f23a6e6160e01b145b8061013957506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161017f989796959493929190610d69565b60405180910390a16101936001338661060f565b50630a85bd0160e11b95945050505050565b6060806060600060018054905067ffffffffffffffff8111156101d857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610201578160200160208202803683370190505b5060015490915060009067ffffffffffffffff81111561023157634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561025a578160200160208202803683370190505b5060015490915060009067ffffffffffffffff81111561028a57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156102b3578160200160208202803683370190505b50905060005b60015463ffffffff821610156104895760018163ffffffff16815481106102f057634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061032f57634e487b7160e01b600052603260045260246000fd5b6020026020010190600381111561035657634e487b7160e01b600052602160045260246000fd5b9081600381111561037757634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106103a257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff16815181106103ed57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061043457634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff168151811061046c57634e487b7160e01b600052603260045260246000fd5b60209081029190910101528061048181610dc7565b9150506102b9565b5091959094509092509050565b6000805b63ffffffff8116871115610592573063f23a6e618b8b8b8b63ffffffff87168181106104d657634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061050357634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161052d96959493929190610c69565b602060405180830381600087803b15801561054757600080fd5b505af115801561055b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057f9190610bc8565b508061058a81610dc7565b91505061049a565b5063bc197c8160e01b9998505050505050505050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a89896040516105e8989796959493929190610d69565b60405180910390a16105fc6002338761060f565b5063f23a6e6160e01b9695505050505050565b600083600381111561063157634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6bffffffffffffffffffffffff191691830191909152810183905260800160408051601f1981840301815291815281516020928301206000818152928390529120549091501561081b5760005b60008281526020819052604090205463ffffffff82161015610819576000828152602081905260408120805463ffffffff84169081106106df57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905085600381111561070c57634e487b7160e01b600052602160045260246000fd5b6001828154811061072d57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff16600381111561076057634e487b7160e01b600052602160045260246000fd5b1461076b5750610807565b836001828154811061078d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154146107aa5750610807565b846001600160a01b0316600182815481106107d557634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b0316146107ff5750610807565b505050505050565b8061081181610dc7565b91505061068f565b505b6000604051806060016040528086600381111561084857634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff1916908360038111156108ed57634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a29061095690879087908790610d41565b60405180910390a15050505050565b80356001600160a01b038116811461097c57600080fd5b919050565b60008083601f840112610992578182fd5b50813567ffffffffffffffff8111156109a9578182fd5b6020830191508360208260051b85010111156109c457600080fd5b9250929050565b60008083601f8401126109dc578182fd5b50813567ffffffffffffffff8111156109f3578182fd5b6020830191508360208285010111156109c457600080fd5b60008060008060008060008060a0898b031215610a26578384fd5b610a2f89610965565b9750610a3d60208a01610965565b9650604089013567ffffffffffffffff80821115610a59578586fd5b610a658c838d01610981565b909850965060608b0135915080821115610a7d578586fd5b610a898c838d01610981565b909650945060808b0135915080821115610aa1578384fd5b50610aae8b828c016109cb565b999c989b5096995094979396929594505050565b600080600080600060808688031215610ad9578081fd5b610ae286610965565b9450610af060208701610965565b935060408601359250606086013567ffffffffffffffff811115610b12578182fd5b610b1e888289016109cb565b969995985093965092949392505050565b60008060008060008060a08789031215610b47578182fd5b610b5087610965565b9550610b5e60208801610965565b94506040870135935060608701359250608087013567ffffffffffffffff811115610b87578283fd5b610b9389828a016109cb565b979a9699509497509295939492505050565b600060208284031215610bb6578081fd5b8135610bc181610df7565b9392505050565b600060208284031215610bd9578081fd5b8151610bc181610df7565b6000815180845260208085019450808401835b83811015610c1357815187529582019590820190600101610bf7565b509495945050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60048110610c6557634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090610ca49083018486610c1e565b98975050505050505050565b606080825284519082018190526000906020906080840190828801845b82811015610cf057610ce0848351610c47565b9284019290840190600101610ccd565b50505083810382850152855180825286830191830190845b81811015610d2d5783516001600160a01b031683529284019291840191600101610d08565b50508481036040860152610ca48187610be4565b60608101610d4f8286610c47565b6001600160a01b0393909316602082015260400152919050565b610d73818a610c47565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090610db99083018486610c1e565b9a9950505050505050505050565b600063ffffffff80831681811415610ded57634e487b7160e01b83526011600452602483fd5b6001019392505050565b6001600160e01b031981168114610e0d57600080fd5b5056fea26469706673582212206cbd50200f1b243904e1bc616d387608b7afe24e47f2fcb6b886e3283909b7d864736f6c63430008040033", + "metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ReceivedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenNotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenTracked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"TokenTransferError\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenUntracked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"getTrackedTokens\",\"outputs\":[{\"internalType\":\"enum TokenTracker.TokenType[]\",\"name\":\"\",\"type\":\"uint8[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/TokenTracker.sol\":\"TokenTracker\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xfce1eb6398eae0e2b50251140866a70a3106193f101972c878bba1dbf44929ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f0709c3f462b28b400f57db181254ad970967c3b49a8948ef5e05929b106ffe\",\"dweb:/ipfs/QmNe3sRmPKw1T7q7m733tk7tFKpi3jo9PCisDPMbjeg3kJ\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x7de6e64d4a8075e803a972cc77c4c91463e0c3777e4110eacfb5d4a71759b2fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b3b09ef36374c1c104ee896797dadf2e81466d2143b481d3f1ddc7d9f3873\",\"dweb:/ipfs/QmSWtqs28RHDezRWBbmEfqiPYwsGTKj44NRbuxvZ96cqMU\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf101e8720213560fab41104d53b3cc7ba0456ef3a98455aa7f022391783144a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e7820bcf567e6892d937c3cb10db263a4042e446799bca602535868d822384e\",\"dweb:/ipfs/QmPG2oeDjKncqsEeyYGjAN7CwAJmMgHterXGGnpzhha4z7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xd9517254724276e2e8de3769183c1f738f445f0095c26fd9b86d3c6687e887b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e604bcdcd5e5b2fb299ad09769cde6db19d5aa1929d1b5e939234a0f10d7eb8\",\"dweb:/ipfs/Qmd8hXE3GZfBHuWx3RNiYgFW2ci7KvHtib8DiwzJ2dgo9V\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xa28007762d9da9db878dd421960c8cb9a10471f47ab5c1b3309bfe48e9e79ff4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://796ab6e88af7bf0e78def0f059310c903af6a312b565344e0ff524a0f26e81c6\",\"dweb:/ipfs/QmcsVgLgzWdor3UnAztUkXKNGcysm1MPneWksF72AvnwBx\"]},\"project:/contracts/TokenTracker.sol\":{\"keccak256\":\"0x153e8bd4263b7b071e5c4e9e44f5da2afb16c74207e8a6a071c837721de1747b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5550ad4a2929a9216432939182544a355ccfa1fdc04566497d4215d08171d115\",\"dweb:/ipfs/QmRkCR7qmJP6oLqFs7FbAZNgQUV9PNRLweP4Kkv3L81AW7\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610e46806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806301ffc9a71461005c578063150b7a0214610084578063695def4c146100b0578063bc197c81146100c7578063f23a6e61146100da575b600080fd5b61006f61006a366004610ba5565b6100ed565b60405190151581526020015b60405180910390f35b610097610092366004610ac2565b61013f565b6040516001600160e01b0319909116815260200161007b565b6100b86101a5565b60405161007b93929190610cb0565b6100976100d5366004610a0b565b610496565b6100976100e8366004610b2f565b6105a8565b60006001600160e01b031982166301ffc9a760e01b148061011e57506001600160e01b0319821663f23a6e6160e01b145b8061013957506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161017f989796959493929190610d69565b60405180910390a16101936001338661060f565b50630a85bd0160e11b95945050505050565b6060806060600060018054905067ffffffffffffffff8111156101d857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610201578160200160208202803683370190505b5060015490915060009067ffffffffffffffff81111561023157634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561025a578160200160208202803683370190505b5060015490915060009067ffffffffffffffff81111561028a57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156102b3578160200160208202803683370190505b50905060005b60015463ffffffff821610156104895760018163ffffffff16815481106102f057634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061032f57634e487b7160e01b600052603260045260246000fd5b6020026020010190600381111561035657634e487b7160e01b600052602160045260246000fd5b9081600381111561037757634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106103a257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff16815181106103ed57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061043457634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff168151811061046c57634e487b7160e01b600052603260045260246000fd5b60209081029190910101528061048181610dc7565b9150506102b9565b5091959094509092509050565b6000805b63ffffffff8116871115610592573063f23a6e618b8b8b8b63ffffffff87168181106104d657634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061050357634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161052d96959493929190610c69565b602060405180830381600087803b15801561054757600080fd5b505af115801561055b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057f9190610bc8565b508061058a81610dc7565b91505061049a565b5063bc197c8160e01b9998505050505050505050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a89896040516105e8989796959493929190610d69565b60405180910390a16105fc6002338761060f565b5063f23a6e6160e01b9695505050505050565b600083600381111561063157634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6bffffffffffffffffffffffff191691830191909152810183905260800160408051601f1981840301815291815281516020928301206000818152928390529120549091501561081b5760005b60008281526020819052604090205463ffffffff82161015610819576000828152602081905260408120805463ffffffff84169081106106df57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905085600381111561070c57634e487b7160e01b600052602160045260246000fd5b6001828154811061072d57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff16600381111561076057634e487b7160e01b600052602160045260246000fd5b1461076b5750610807565b836001828154811061078d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154146107aa5750610807565b846001600160a01b0316600182815481106107d557634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b0316146107ff5750610807565b505050505050565b8061081181610dc7565b91505061068f565b505b6000604051806060016040528086600381111561084857634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff1916908360038111156108ed57634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a29061095690879087908790610d41565b60405180910390a15050505050565b80356001600160a01b038116811461097c57600080fd5b919050565b60008083601f840112610992578182fd5b50813567ffffffffffffffff8111156109a9578182fd5b6020830191508360208260051b85010111156109c457600080fd5b9250929050565b60008083601f8401126109dc578182fd5b50813567ffffffffffffffff8111156109f3578182fd5b6020830191508360208285010111156109c457600080fd5b60008060008060008060008060a0898b031215610a26578384fd5b610a2f89610965565b9750610a3d60208a01610965565b9650604089013567ffffffffffffffff80821115610a59578586fd5b610a658c838d01610981565b909850965060608b0135915080821115610a7d578586fd5b610a898c838d01610981565b909650945060808b0135915080821115610aa1578384fd5b50610aae8b828c016109cb565b999c989b5096995094979396929594505050565b600080600080600060808688031215610ad9578081fd5b610ae286610965565b9450610af060208701610965565b935060408601359250606086013567ffffffffffffffff811115610b12578182fd5b610b1e888289016109cb565b969995985093965092949392505050565b60008060008060008060a08789031215610b47578182fd5b610b5087610965565b9550610b5e60208801610965565b94506040870135935060608701359250608087013567ffffffffffffffff811115610b87578283fd5b610b9389828a016109cb565b979a9699509497509295939492505050565b600060208284031215610bb6578081fd5b8135610bc181610df7565b9392505050565b600060208284031215610bd9578081fd5b8151610bc181610df7565b6000815180845260208085019450808401835b83811015610c1357815187529582019590820190600101610bf7565b509495945050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60048110610c6557634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090610ca49083018486610c1e565b98975050505050505050565b606080825284519082018190526000906020906080840190828801845b82811015610cf057610ce0848351610c47565b9284019290840190600101610ccd565b50505083810382850152855180825286830191830190845b81811015610d2d5783516001600160a01b031683529284019291840191600101610d08565b50508481036040860152610ca48187610be4565b60608101610d4f8286610c47565b6001600160a01b0393909316602082015260400152919050565b610d73818a610c47565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090610db99083018486610c1e565b9a9950505050505050505050565b600063ffffffff80831681811415610ded57634e487b7160e01b83526011600452602483fd5b6001019392505050565b6001600160e01b031981168114610e0d57600080fd5b5056fea26469706673582212209a067293a034ef0eacd53de57cd02464c7288d5b1459e383b7f9dfd883a0168c64736f6c63430008040033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806301ffc9a71461005c578063150b7a0214610084578063695def4c146100b0578063bc197c81146100c7578063f23a6e61146100da575b600080fd5b61006f61006a366004610ba5565b6100ed565b60405190151581526020015b60405180910390f35b610097610092366004610ac2565b61013f565b6040516001600160e01b0319909116815260200161007b565b6100b86101a5565b60405161007b93929190610cb0565b6100976100d5366004610a0b565b610496565b6100976100e8366004610b2f565b6105a8565b60006001600160e01b031982166301ffc9a760e01b148061011e57506001600160e01b0319821663f23a6e6160e01b145b8061013957506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161017f989796959493929190610d69565b60405180910390a16101936001338661060f565b50630a85bd0160e11b95945050505050565b6060806060600060018054905067ffffffffffffffff8111156101d857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610201578160200160208202803683370190505b5060015490915060009067ffffffffffffffff81111561023157634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561025a578160200160208202803683370190505b5060015490915060009067ffffffffffffffff81111561028a57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156102b3578160200160208202803683370190505b50905060005b60015463ffffffff821610156104895760018163ffffffff16815481106102f057634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061032f57634e487b7160e01b600052603260045260246000fd5b6020026020010190600381111561035657634e487b7160e01b600052602160045260246000fd5b9081600381111561037757634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106103a257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff16815181106103ed57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061043457634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff168151811061046c57634e487b7160e01b600052603260045260246000fd5b60209081029190910101528061048181610dc7565b9150506102b9565b5091959094509092509050565b6000805b63ffffffff8116871115610592573063f23a6e618b8b8b8b63ffffffff87168181106104d657634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061050357634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161052d96959493929190610c69565b602060405180830381600087803b15801561054757600080fd5b505af115801561055b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057f9190610bc8565b508061058a81610dc7565b91505061049a565b5063bc197c8160e01b9998505050505050505050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a89896040516105e8989796959493929190610d69565b60405180910390a16105fc6002338761060f565b5063f23a6e6160e01b9695505050505050565b600083600381111561063157634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6bffffffffffffffffffffffff191691830191909152810183905260800160408051601f1981840301815291815281516020928301206000818152928390529120549091501561081b5760005b60008281526020819052604090205463ffffffff82161015610819576000828152602081905260408120805463ffffffff84169081106106df57634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905085600381111561070c57634e487b7160e01b600052602160045260246000fd5b6001828154811061072d57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff16600381111561076057634e487b7160e01b600052602160045260246000fd5b1461076b5750610807565b836001828154811061078d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154146107aa5750610807565b846001600160a01b0316600182815481106107d557634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b0316146107ff5750610807565b505050505050565b8061081181610dc7565b91505061068f565b505b6000604051806060016040528086600381111561084857634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff1916908360038111156108ed57634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a29061095690879087908790610d41565b60405180910390a15050505050565b80356001600160a01b038116811461097c57600080fd5b919050565b60008083601f840112610992578182fd5b50813567ffffffffffffffff8111156109a9578182fd5b6020830191508360208260051b85010111156109c457600080fd5b9250929050565b60008083601f8401126109dc578182fd5b50813567ffffffffffffffff8111156109f3578182fd5b6020830191508360208285010111156109c457600080fd5b60008060008060008060008060a0898b031215610a26578384fd5b610a2f89610965565b9750610a3d60208a01610965565b9650604089013567ffffffffffffffff80821115610a59578586fd5b610a658c838d01610981565b909850965060608b0135915080821115610a7d578586fd5b610a898c838d01610981565b909650945060808b0135915080821115610aa1578384fd5b50610aae8b828c016109cb565b999c989b5096995094979396929594505050565b600080600080600060808688031215610ad9578081fd5b610ae286610965565b9450610af060208701610965565b935060408601359250606086013567ffffffffffffffff811115610b12578182fd5b610b1e888289016109cb565b969995985093965092949392505050565b60008060008060008060a08789031215610b47578182fd5b610b5087610965565b9550610b5e60208801610965565b94506040870135935060608701359250608087013567ffffffffffffffff811115610b87578283fd5b610b9389828a016109cb565b979a9699509497509295939492505050565b600060208284031215610bb6578081fd5b8135610bc181610df7565b9392505050565b600060208284031215610bd9578081fd5b8151610bc181610df7565b6000815180845260208085019450808401835b83811015610c1357815187529582019590820190600101610bf7565b509495945050505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60048110610c6557634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090610ca49083018486610c1e565b98975050505050505050565b606080825284519082018190526000906020906080840190828801845b82811015610cf057610ce0848351610c47565b9284019290840190600101610ccd565b50505083810382850152855180825286830191830190845b81811015610d2d5783516001600160a01b031683529284019291840191600101610d08565b50508481036040860152610ca48187610be4565b60608101610d4f8286610c47565b6001600160a01b0393909316602082015260400152919050565b610d73818a610c47565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090610db99083018486610c1e565b9a9950505050505050505050565b600063ffffffff80831681811415610ded57634e487b7160e01b83526011600452602483fd5b6001019392505050565b6001600160e01b031981168114610e0d57600080fd5b5056fea26469706673582212209a067293a034ef0eacd53de57cd02464c7288d5b1459e383b7f9dfd883a0168c64736f6c63430008040033", "immutableReferences": {}, "generatedSources": [], "deployedGeneratedSources": [ @@ -5755,7 +5755,7 @@ } ] }, - "name": "abi_encode_tuple_t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -6241,7 +6241,7 @@ } ] }, - "name": "abi_encode_tuple_t_enum$_TokenType_$2138_t_address_t_uint256__to_t_uint8_t_address_t_uint256__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256__to_t_uint8_t_address_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -6729,7 +6729,7 @@ } ] }, - "name": "abi_encode_tuple_t_enum$_TokenType_$2138_t_rational_1_by_1_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TokenType_$2607_t_rational_1_by_1_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -7247,7 +7247,7 @@ } ] }, - "name": "abi_encode_tuple_t_enum$_TokenType_$2138_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TokenType_$2607_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -7688,44 +7688,44 @@ } ] }, - "contents": "{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_array_uint256_dyn_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let value2_1, value3_1 := abi_decode_array_uint256_dyn_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_array_uint256_dyn_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n let offset_2 := calldataload(add(headStart, 128))\n if gt(offset_2, _1) { revert(value6, value6) }\n let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_2), dataEnd)\n value6 := value6_1\n value7 := value7_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value4, value4) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_array_uint256_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := end\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), end)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_TokenType(value, pos)\n {\n if iszero(lt(value, 4))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(pos, value)\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n mstore(add(pos, 64), value2)\n end := add(pos, 96)\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), 160)\n tail := abi_encode_bytes_calldata(value4, value5, add(headStart, 160))\n }\n function abi_encode_tuple_t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let tail_1 := add(headStart, 96)\n mstore(headStart, 96)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 128)\n let _1 := 0x20\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n abi_encode_enum_TokenType(mload(srcPtr), pos)\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n mstore(add(headStart, _1), sub(pos, headStart))\n let pos_1 := pos\n let length_1 := mload(value1)\n mstore(pos, length_1)\n pos_1 := add(pos, _1)\n let srcPtr_1 := add(value1, _1)\n let i_1 := tail\n for { } lt(i_1, length_1) { i_1 := add(i_1, 1) }\n {\n mstore(pos_1, and(mload(srcPtr_1), sub(shl(160, 1), 1)))\n pos_1 := add(pos_1, _1)\n srcPtr_1 := add(srcPtr_1, _1)\n }\n mstore(add(headStart, 64), sub(pos_1, headStart))\n tail := abi_encode_array_uint256_dyn(value2, pos_1)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, shl(224, 0xffffffff)))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2138_t_address_t_uint256__to_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_enum$_TokenType_$2138_t_rational_1_by_1_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), 224)\n tail := abi_encode_bytes_calldata(value6, value7, add(headStart, 224))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2138_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), 224)\n tail := abi_encode_bytes_calldata(value6, value7, add(headStart, 224))\n }\n function increment_t_uint32(value) -> ret\n {\n let _1 := 0xffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1)\n {\n mstore(ret, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(ret, 0x24)\n }\n ret := add(value_1, 1)\n }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n}", + "contents": "{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function abi_decode_array_uint256_dyn_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let value2_1, value3_1 := abi_decode_array_uint256_dyn_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_array_uint256_dyn_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n let offset_2 := calldataload(add(headStart, 128))\n if gt(offset_2, _1) { revert(value6, value6) }\n let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_2), dataEnd)\n value6 := value6_1\n value7 := value7_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value4, value4) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n value0 := abi_decode_address(headStart)\n value1 := abi_decode_address(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_array_uint256_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := end\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), end)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_TokenType(value, pos)\n {\n if iszero(lt(value, 4))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(pos, value)\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n mstore(add(pos, 64), value2)\n end := add(pos, 96)\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), 160)\n tail := abi_encode_bytes_calldata(value4, value5, add(headStart, 160))\n }\n function abi_encode_tuple_t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let tail_1 := add(headStart, 96)\n mstore(headStart, 96)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 128)\n let _1 := 0x20\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n abi_encode_enum_TokenType(mload(srcPtr), pos)\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n mstore(add(headStart, _1), sub(pos, headStart))\n let pos_1 := pos\n let length_1 := mload(value1)\n mstore(pos, length_1)\n pos_1 := add(pos, _1)\n let srcPtr_1 := add(value1, _1)\n let i_1 := tail\n for { } lt(i_1, length_1) { i_1 := add(i_1, 1) }\n {\n mstore(pos_1, and(mload(srcPtr_1), sub(shl(160, 1), 1)))\n pos_1 := add(pos_1, _1)\n srcPtr_1 := add(srcPtr_1, _1)\n }\n mstore(add(headStart, 64), sub(pos_1, headStart))\n tail := abi_encode_array_uint256_dyn(value2, pos_1)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, shl(224, 0xffffffff)))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256__to_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_enum$_TokenType_$2607_t_rational_1_by_1_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), 224)\n tail := abi_encode_bytes_calldata(value6, value7, add(headStart, 224))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2607_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), 224)\n tail := abi_encode_bytes_calldata(value6, value7, add(headStart, 224))\n }\n function increment_t_uint32(value) -> ret\n {\n let _1 := 0xffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1)\n {\n mstore(ret, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(ret, 0x24)\n }\n ret := add(value_1, 1)\n }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n}", "id": 8, "language": "Yul", "name": "#utility.yul" } ], - "sourceMap": "322:10341:1:-:0;;;2311:15;;;;;;;;;;322:10341;;;;;;", - "deployedSourceMap": "322:10341:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3101:270;;;;;;:::i;:::-;;:::i;:::-;;;7548:14:8;;7541:22;7523:41;;7511:2;7496:18;3101:270:1;;;;;;;;3460:374;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;7737:33:8;;;7719:52;;7707:2;7692:18;3460:374:1;7674:103:8;3840:652:1;;;:::i;:::-;;;;;;;;;:::i;2728:367::-;;;;;;:::i;:::-;;:::i;2332:390::-;;;;;;:::i;:::-;;:::i;3101:270::-;3180:4;-1:-1:-1;;;;;;3203:46:1;;-1:-1:-1;;;3203:46:1;;:104;;-1:-1:-1;;;;;;;3261:46:1;;-1:-1:-1;;;3261:46:1;3203:104;:161;;;-1:-1:-1;;;;;;;3319:45:1;;-1:-1:-1;;;3319:45:1;3203:161;3196:168;3101:270;-1:-1:-1;;3101:270:1:o;3460:374::-;3621:6;3643:77;3657:16;3675:1;3678:4;3684:10;3696:8;3706:7;3715:4;;3643:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;3730:50;3742:16;3760:10;3772:7;3730:11;:50::i;:::-;-1:-1:-1;;;;3460:374:1;;;;;;;:::o;3840:652::-;3891:18;3911:16;3929;3956:29;4004:13;:20;;;;3988:37;;;;;;-1:-1:-1;;;3988:37:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3988:37:1;-1:-1:-1;4086:13:1;:20;3956:69;;-1:-1:-1;4035:34:1;;4072:35;;;;;;-1:-1:-1;;;4072:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4072:35:1;-1:-1:-1;4159:13:1;:20;4035:72;;-1:-1:-1;4117:25:1;;4145:35;;;;;;-1:-1:-1;;;4145:35:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4145:35:1;;4117:63;;4195:8;4190:238;4213:13;:20;4209:24;;;;4190:238;;;4270:13;4284:1;4270:16;;;;;;;;-1:-1:-1;;;4270:16:1;;;;;;;;;;;;;;;;;;;;;;:26;4254:13;;4270:26;;;;;4254:10;;:13;;;;;;;;-1:-1:-1;;;4254:13:1;;;;;;;;;;;;;;:42;;;;;;;-1:-1:-1;;;4254:42:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;4254:42:1;;;;;;;;;;;;;4333:13;4347:1;4333:16;;;;;;;;-1:-1:-1;;;4333:16:1;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;4333:32:1;4310:17;4328:1;4310:20;;;;;;;;-1:-1:-1;;;4310:20:1;;;;;;;;;;;;;;:55;-1:-1:-1;;;;;4310:55:1;;;-1:-1:-1;;;;;4310:55:1;;;;;4393:13;4407:1;4393:16;;;;;;;;-1:-1:-1;;;4393:16:1;;;;;;;;;;;;;;;;;;;:24;;;4379:8;4388:1;4379:11;;;;;;;;-1:-1:-1;;;4379:11:1;;;;;;;;;;;;;;;;;;:38;4235:3;;;;:::i;:::-;;;;4190:238;;;-1:-1:-1;4445:10:1;;4457:17;;-1:-1:-1;4476:8:1;;-1:-1:-1;3840:652:1;-1:-1:-1;3840:652:1:o;2728:367::-;2891:6;;2908:128;2927:14;;;;-1:-1:-1;2908:128:1;;;2962:4;:22;2985:8;2995:4;3001:3;;:6;;;;;;;;-1:-1:-1;;;3001:6:1;;;;;;;;;;;;;;;3009;;3016:1;3009:9;;;;;;;-1:-1:-1;;;3009:9:1;;;;;;;;;;;;;;;3020:4;;2962:63;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2943:3:1;;;;:::i;:::-;;;;2908:128;;;-1:-1:-1;;;;3052:36:1;2728:367;-1:-1:-1;;;;;;;;;2728:367:1:o;2332:390::-;2512:6;2534:77;2548:17;2567:5;2574:4;2580:10;2592:8;2602:2;2606:4;;2534:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;2621:46;2633:17;2652:10;2664:2;2621:11;:46::i;:::-;-1:-1:-1;;;;2332:390:1;;;;;;;;:::o;4500:1030::-;4603:11;4656:9;4648:18;;;;;;-1:-1:-1;;;4648:18:1;;;;;;;;;4627:94;;;;;;5264:19:8;;;;4677:24:1;;;;-1:-1:-1;;4669:33:1;5299:12:8;;;5292:28;;;;5336:12;;5329:28;;;5373:12;;4627:94:1;;;-1:-1:-1;;4627:94:1;;;;;;;;;4617:105;;4627:94;4617:105;;;;4772:1;4736:26;;;;;;;;;:33;4617:105;;-1:-1:-1;4736:37:1;4732:549;;4794:8;4789:482;4812:21;:26;;;;;;;;;;:33;4808:37;;;;4789:482;;;4870:9;4882:26;;;;;;;;;;:29;;;;;;;;;;-1:-1:-1;;;4882:29:1;;;;;;;;;;;;;;;;;4870:41;;4963:9;4933:39;;;;;;-1:-1:-1;;;4933:39:1;;;;;;;;;:13;4947:1;4933:16;;;;;;-1:-1:-1;;;4933:16:1;;;;;;;;;;;;;;;;;;;;;;:26;;;:39;;;;;;-1:-1:-1;;;4933:39:1;;;;;;;;;;4929:53;;4974:8;;;4929:53;5032:7;5004:13;5018:1;5004:16;;;;;;-1:-1:-1;;;5004:16:1;;;;;;;;;;;;;;;;;;;:24;;;:35;5000:49;;5041:8;;;5000:49;5107:15;-1:-1:-1;;;;;5071:51:1;:13;5085:1;5071:16;;;;;;-1:-1:-1;;;5071:16:1;;;;;;;;;;;;;;;;;;;;;;:32;;;;-1:-1:-1;;;;;5071:32:1;:51;5067:65;;5124:8;;;5067:65;5250:7;;;4500:1030;;;:::o;4789:482::-;4847:3;;;;:::i;:::-;;;;4789:482;;;;4732:549;5290:22;5315:49;;;;;;;;5328:9;5315:49;;;;;;-1:-1:-1;;;5315:49:1;;;;;;;;;;;-1:-1:-1;;;;;5315:49:1;;;;;;;;;;;;;;;;;-1:-1:-1;5374:26:1;;;;;;;;;5406:13;:20;;5374:53;;;;;;;;;;;;;;;;;;;;5437:22;;;;;;;;;;;;;;;;;;;;;5290:74;;-1:-1:-1;5290:74:1;;5437:22;;;;;-1:-1:-1;;5437:22:1;;;;;;;;;-1:-1:-1;;;5437:22:1;;;;;;;;;;;;;-1:-1:-1;5437:22:1;;;;;;-1:-1:-1;;;;;5437:22:1;;;;;-1:-1:-1;;;;;;5437:22:1;;;;;;;;;;;;;;;;5474:49;;;;;5487:9;;5498:15;;5515:7;;5474:49;:::i;:::-;;;;;;;;4500:1030;;;;;:::o;14:173:8:-;82:20;;-1:-1:-1;;;;;131:31:8;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:395::-;255:8;265:6;319:3;312:4;304:6;300:17;296:27;286:2;;344:8;334;327:26;286:2;-1:-1:-1;374:20:8;;417:18;406:30;;403:2;;;456:8;446;439:26;403:2;500:4;492:6;488:17;476:29;;560:3;553:4;543:6;540:1;536:14;528:6;524:27;520:38;517:47;514:2;;;577:1;574;567:12;514:2;276:311;;;;;:::o;592:375::-;643:8;653:6;707:3;700:4;692:6;688:17;684:27;674:2;;732:8;722;715:26;674:2;-1:-1:-1;762:20:8;;805:18;794:30;;791:2;;;844:8;834;827:26;791:2;888:4;880:6;876:17;864:29;;940:3;933:4;924:6;916;912:19;908:30;905:39;902:2;;;957:1;954;947:12;972:1250;1132:6;1140;1148;1156;1164;1172;1180;1188;1241:3;1229:9;1220:7;1216:23;1212:33;1209:2;;;1263:6;1255;1248:22;1209:2;1291:29;1310:9;1291:29;:::i;:::-;1281:39;;1339:38;1373:2;1362:9;1358:18;1339:38;:::i;:::-;1329:48;;1428:2;1417:9;1413:18;1400:32;1451:18;1492:2;1484:6;1481:14;1478:2;;;1513:6;1505;1498:22;1478:2;1557:70;1619:7;1610:6;1599:9;1595:22;1557:70;:::i;:::-;1646:8;;-1:-1:-1;1531:96:8;-1:-1:-1;1734:2:8;1719:18;;1706:32;;-1:-1:-1;1750:16:8;;;1747:2;;;1784:6;1776;1769:22;1747:2;1828:72;1892:7;1881:8;1870:9;1866:24;1828:72;:::i;:::-;1919:8;;-1:-1:-1;1802:98:8;-1:-1:-1;2007:3:8;1992:19;;1979:33;;-1:-1:-1;2024:16:8;;;2021:2;;;2058:6;2050;2043:22;2021:2;;2102:60;2154:7;2143:8;2132:9;2128:24;2102:60;:::i;:::-;1199:1023;;;;-1:-1:-1;1199:1023:8;;-1:-1:-1;1199:1023:8;;;;;;2181:8;-1:-1:-1;;;1199:1023:8:o;2227:646::-;2324:6;2332;2340;2348;2356;2409:3;2397:9;2388:7;2384:23;2380:33;2377:2;;;2431:6;2423;2416:22;2377:2;2459:29;2478:9;2459:29;:::i;:::-;2449:39;;2507:38;2541:2;2530:9;2526:18;2507:38;:::i;:::-;2497:48;;2592:2;2581:9;2577:18;2564:32;2554:42;;2647:2;2636:9;2632:18;2619:32;2674:18;2666:6;2663:30;2660:2;;;2711:6;2703;2696:22;2660:2;2755:58;2805:7;2796:6;2785:9;2781:22;2755:58;:::i;:::-;2367:506;;;;-1:-1:-1;2367:506:8;;-1:-1:-1;2832:8:8;;2729:84;2367:506;-1:-1:-1;;;2367:506:8:o;2878:715::-;2984:6;2992;3000;3008;3016;3024;3077:3;3065:9;3056:7;3052:23;3048:33;3045:2;;;3099:6;3091;3084:22;3045:2;3127:29;3146:9;3127:29;:::i;:::-;3117:39;;3175:38;3209:2;3198:9;3194:18;3175:38;:::i;:::-;3165:48;;3260:2;3249:9;3245:18;3232:32;3222:42;;3311:2;3300:9;3296:18;3283:32;3273:42;;3366:3;3355:9;3351:19;3338:33;3394:18;3386:6;3383:30;3380:2;;;3431:6;3423;3416:22;3380:2;3475:58;3525:7;3516:6;3505:9;3501:22;3475:58;:::i;:::-;3035:558;;;;-1:-1:-1;3035:558:8;;-1:-1:-1;3035:558:8;;3552:8;;3035:558;-1:-1:-1;;;3035:558:8:o;3598:255::-;3656:6;3709:2;3697:9;3688:7;3684:23;3680:32;3677:2;;;3730:6;3722;3715:22;3677:2;3774:9;3761:23;3793:30;3817:5;3793:30;:::i;:::-;3842:5;3667:186;-1:-1:-1;;;3667:186:8:o;3858:259::-;3927:6;3980:2;3968:9;3959:7;3955:23;3951:32;3948:2;;;4001:6;3993;3986:22;3948:2;4038:9;4032:16;4057:30;4081:5;4057:30;:::i;4122:437::-;4175:3;4213:5;4207:12;4240:6;4235:3;4228:19;4266:4;4295:2;4290:3;4286:12;4279:19;;4332:2;4325:5;4321:14;4353:3;4365:169;4379:6;4376:1;4373:13;4365:169;;;4440:13;;4428:26;;4474:12;;;;4509:15;;;;4401:1;4394:9;4365:169;;;-1:-1:-1;4550:3:8;;4183:376;-1:-1:-1;;;;;4183:376:8:o;4564:268::-;4652:6;4647:3;4640:19;4704:6;4697:5;4690:4;4685:3;4681:14;4668:43;-1:-1:-1;4622:3:8;4731:16;;;4749:4;4727:27;;;4720:40;;;;4814:2;4793:15;;;-1:-1:-1;;4789:29:8;4780:39;;;4776:50;;4630:202::o;4837:237::-;4918:1;4911:5;4908:12;4898:2;;4963:10;4958:3;4954:20;4951:1;4944:31;4998:4;4995:1;4988:15;5026:4;5023:1;5016:15;4898:2;5050:18;;4888:186::o;5396:587::-;-1:-1:-1;;;;;5703:15:8;;;5685:34;;5755:15;;5750:2;5735:18;;5728:43;5802:2;5787:18;;5780:34;;;5845:2;5830:18;;5823:34;;;5665:3;5888;5873:19;;5866:32;;;5628:4;;5915:62;;5957:19;;5949:6;5941;5915:62;:::i;:::-;5907:70;5637:346;-1:-1:-1;;;;;;;;5637:346:8:o;5988:1390::-;6346:2;6358:21;;;6428:13;;6331:18;;;6450:22;;;6298:4;;6526;;6503:3;6488:19;;;6553:15;;;6298:4;6599:188;6613:6;6610:1;6607:13;6599:188;;;6662:45;6703:3;6694:6;6688:13;6662:45;:::i;:::-;6727:12;;;;6762:15;;;;6635:1;6628:9;6599:188;;;-1:-1:-1;;;6823:19:8;;;6803:18;;;6796:47;6893:13;;6915:21;;;6991:15;;;;6954:12;;;7026:4;7039:215;7055:8;7050:3;7047:17;7039:215;;;7128:15;;-1:-1:-1;;;;;7124:41:8;7110:56;;7227:17;;;;7188:14;;;;7162:1;7074:11;7039:215;;;7043:3;;7301:9;7294:5;7290:21;7285:2;7274:9;7270:18;7263:49;7329:43;7366:5;7358:6;7329:43;:::i;7782:376::-;7984:2;7969:18;;7996:44;7973:9;8022:6;7996:44;:::i;:::-;-1:-1:-1;;;;;8076:32:8;;;;8071:2;8056:18;;8049:60;8140:2;8125:18;8118:34;7951:207;;-1:-1:-1;7951:207:8:o;8163:779::-;8490:44;8524:9;8516:6;8490:44;:::i;:::-;8565:2;8550:18;;8543:34;;;-1:-1:-1;;;;;8651:15:8;;;8646:2;8631:18;;8624:43;8703:15;;;8698:2;8683:18;;8676:43;8756:15;;8750:3;8735:19;;8728:44;8604:3;8788:19;;8781:35;;;8853:3;8847;8832:19;;8825:32;;;8471:4;;8874:62;;8916:19;;8908:6;8900;8874:62;:::i;:::-;8866:70;8480:462;-1:-1:-1;;;;;;;;;;8480:462:8:o;9723:302::-;9761:3;9789:10;9834:2;9827:5;9823:14;9861:2;9852:7;9849:15;9846:2;;;-1:-1:-1;;;9887:33:8;;9943:4;9940:1;9933:15;9973:4;9894:3;9961:17;9846:2;10017:1;10004:15;;9769:256;-1:-1:-1;;;9769:256:8:o;10030:131::-;-1:-1:-1;;;;;;10104:32:8;;10094:43;;10084:2;;10151:1;10148;10141:12;10084:2;10074:87;:::o", + "sourceMap": "322:10341:7:-:0;;;2311:15;;;;;;;;;;322:10341;;;;;;", + "deployedSourceMap": "322:10341:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3101:270;;;;;;:::i;:::-;;:::i;:::-;;;7548:14:8;;7541:22;7523:41;;7511:2;7496:18;3101:270:7;;;;;;;;3460:374;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;7737:33:8;;;7719:52;;7707:2;7692:18;3460:374:7;7674:103:8;3840:652:7;;;:::i;:::-;;;;;;;;;:::i;2728:367::-;;;;;;:::i;:::-;;:::i;2332:390::-;;;;;;:::i;:::-;;:::i;3101:270::-;3180:4;-1:-1:-1;;;;;;3203:46:7;;-1:-1:-1;;;3203:46:7;;:104;;-1:-1:-1;;;;;;;3261:46:7;;-1:-1:-1;;;3261:46:7;3203:104;:161;;;-1:-1:-1;;;;;;;3319:45:7;;-1:-1:-1;;;3319:45:7;3203:161;3196:168;3101:270;-1:-1:-1;;3101:270:7:o;3460:374::-;3621:6;3643:77;3657:16;3675:1;3678:4;3684:10;3696:8;3706:7;3715:4;;3643:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;3730:50;3742:16;3760:10;3772:7;3730:11;:50::i;:::-;-1:-1:-1;;;;3460:374:7;;;;;;;:::o;3840:652::-;3891:18;3911:16;3929;3956:29;4004:13;:20;;;;3988:37;;;;;;-1:-1:-1;;;3988:37:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3988:37:7;-1:-1:-1;4086:13:7;:20;3956:69;;-1:-1:-1;4035:34:7;;4072:35;;;;;;-1:-1:-1;;;4072:35:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4072:35:7;-1:-1:-1;4159:13:7;:20;4035:72;;-1:-1:-1;4117:25:7;;4145:35;;;;;;-1:-1:-1;;;4145:35:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4145:35:7;;4117:63;;4195:8;4190:238;4213:13;:20;4209:24;;;;4190:238;;;4270:13;4284:1;4270:16;;;;;;;;-1:-1:-1;;;4270:16:7;;;;;;;;;;;;;;;;;;;;;;:26;4254:13;;4270:26;;;;;4254:10;;:13;;;;;;;;-1:-1:-1;;;4254:13:7;;;;;;;;;;;;;;:42;;;;;;;-1:-1:-1;;;4254:42:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;4254:42:7;;;;;;;;;;;;;4333:13;4347:1;4333:16;;;;;;;;-1:-1:-1;;;4333:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;4333:32:7;4310:17;4328:1;4310:20;;;;;;;;-1:-1:-1;;;4310:20:7;;;;;;;;;;;;;;:55;-1:-1:-1;;;;;4310:55:7;;;-1:-1:-1;;;;;4310:55:7;;;;;4393:13;4407:1;4393:16;;;;;;;;-1:-1:-1;;;4393:16:7;;;;;;;;;;;;;;;;;;;:24;;;4379:8;4388:1;4379:11;;;;;;;;-1:-1:-1;;;4379:11:7;;;;;;;;;;;;;;;;;;:38;4235:3;;;;:::i;:::-;;;;4190:238;;;-1:-1:-1;4445:10:7;;4457:17;;-1:-1:-1;4476:8:7;;-1:-1:-1;3840:652:7;-1:-1:-1;3840:652:7:o;2728:367::-;2891:6;;2908:128;2927:14;;;;-1:-1:-1;2908:128:7;;;2962:4;:22;2985:8;2995:4;3001:3;;:6;;;;;;;;-1:-1:-1;;;3001:6:7;;;;;;;;;;;;;;;3009;;3016:1;3009:9;;;;;;;-1:-1:-1;;;3009:9:7;;;;;;;;;;;;;;;3020:4;;2962:63;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2943:3:7;;;;:::i;:::-;;;;2908:128;;;-1:-1:-1;;;;3052:36:7;2728:367;-1:-1:-1;;;;;;;;;2728:367:7:o;2332:390::-;2512:6;2534:77;2548:17;2567:5;2574:4;2580:10;2592:8;2602:2;2606:4;;2534:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;2621:46;2633:17;2652:10;2664:2;2621:11;:46::i;:::-;-1:-1:-1;;;;2332:390:7;;;;;;;;:::o;4500:1030::-;4603:11;4656:9;4648:18;;;;;;-1:-1:-1;;;4648:18:7;;;;;;;;;4627:94;;;;;;5264:19:8;;;;4677:24:7;;;;-1:-1:-1;;4669:33:7;5299:12:8;;;5292:28;;;;5336:12;;5329:28;;;5373:12;;4627:94:7;;;-1:-1:-1;;4627:94:7;;;;;;;;;4617:105;;4627:94;4617:105;;;;4772:1;4736:26;;;;;;;;;:33;4617:105;;-1:-1:-1;4736:37:7;4732:549;;4794:8;4789:482;4812:21;:26;;;;;;;;;;:33;4808:37;;;;4789:482;;;4870:9;4882:26;;;;;;;;;;:29;;;;;;;;;;-1:-1:-1;;;4882:29:7;;;;;;;;;;;;;;;;;4870:41;;4963:9;4933:39;;;;;;-1:-1:-1;;;4933:39:7;;;;;;;;;:13;4947:1;4933:16;;;;;;-1:-1:-1;;;4933:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;:39;;;;;;-1:-1:-1;;;4933:39:7;;;;;;;;;;4929:53;;4974:8;;;4929:53;5032:7;5004:13;5018:1;5004:16;;;;;;-1:-1:-1;;;5004:16:7;;;;;;;;;;;;;;;;;;;:24;;;:35;5000:49;;5041:8;;;5000:49;5107:15;-1:-1:-1;;;;;5071:51:7;:13;5085:1;5071:16;;;;;;-1:-1:-1;;;5071:16:7;;;;;;;;;;;;;;;;;;;;;;:32;;;;-1:-1:-1;;;;;5071:32:7;:51;5067:65;;5124:8;;;5067:65;5250:7;;;4500:1030;;;:::o;4789:482::-;4847:3;;;;:::i;:::-;;;;4789:482;;;;4732:549;5290:22;5315:49;;;;;;;;5328:9;5315:49;;;;;;-1:-1:-1;;;5315:49:7;;;;;;;;;;;-1:-1:-1;;;;;5315:49:7;;;;;;;;;;;;;;;;;-1:-1:-1;5374:26:7;;;;;;;;;5406:13;:20;;5374:53;;;;;;;;;;;;;;;;;;;;5437:22;;;;;;;;;;;;;;;;;;;;;5290:74;;-1:-1:-1;5290:74:7;;5437:22;;;;;-1:-1:-1;;5437:22:7;;;;;;;;;-1:-1:-1;;;5437:22:7;;;;;;;;;;;;;-1:-1:-1;5437:22:7;;;;;;-1:-1:-1;;;;;5437:22:7;;;;;-1:-1:-1;;;;;;5437:22:7;;;;;;;;;;;;;;;;5474:49;;;;;5487:9;;5498:15;;5515:7;;5474:49;:::i;:::-;;;;;;;;4500:1030;;;;;:::o;14:173:8:-;82:20;;-1:-1:-1;;;;;131:31:8;;121:42;;111:2;;177:1;174;167:12;111:2;63:124;;;:::o;192:395::-;255:8;265:6;319:3;312:4;304:6;300:17;296:27;286:2;;344:8;334;327:26;286:2;-1:-1:-1;374:20:8;;417:18;406:30;;403:2;;;456:8;446;439:26;403:2;500:4;492:6;488:17;476:29;;560:3;553:4;543:6;540:1;536:14;528:6;524:27;520:38;517:47;514:2;;;577:1;574;567:12;514:2;276:311;;;;;:::o;592:375::-;643:8;653:6;707:3;700:4;692:6;688:17;684:27;674:2;;732:8;722;715:26;674:2;-1:-1:-1;762:20:8;;805:18;794:30;;791:2;;;844:8;834;827:26;791:2;888:4;880:6;876:17;864:29;;940:3;933:4;924:6;916;912:19;908:30;905:39;902:2;;;957:1;954;947:12;972:1250;1132:6;1140;1148;1156;1164;1172;1180;1188;1241:3;1229:9;1220:7;1216:23;1212:33;1209:2;;;1263:6;1255;1248:22;1209:2;1291:29;1310:9;1291:29;:::i;:::-;1281:39;;1339:38;1373:2;1362:9;1358:18;1339:38;:::i;:::-;1329:48;;1428:2;1417:9;1413:18;1400:32;1451:18;1492:2;1484:6;1481:14;1478:2;;;1513:6;1505;1498:22;1478:2;1557:70;1619:7;1610:6;1599:9;1595:22;1557:70;:::i;:::-;1646:8;;-1:-1:-1;1531:96:8;-1:-1:-1;1734:2:8;1719:18;;1706:32;;-1:-1:-1;1750:16:8;;;1747:2;;;1784:6;1776;1769:22;1747:2;1828:72;1892:7;1881:8;1870:9;1866:24;1828:72;:::i;:::-;1919:8;;-1:-1:-1;1802:98:8;-1:-1:-1;2007:3:8;1992:19;;1979:33;;-1:-1:-1;2024:16:8;;;2021:2;;;2058:6;2050;2043:22;2021:2;;2102:60;2154:7;2143:8;2132:9;2128:24;2102:60;:::i;:::-;1199:1023;;;;-1:-1:-1;1199:1023:8;;-1:-1:-1;1199:1023:8;;;;;;2181:8;-1:-1:-1;;;1199:1023:8:o;2227:646::-;2324:6;2332;2340;2348;2356;2409:3;2397:9;2388:7;2384:23;2380:33;2377:2;;;2431:6;2423;2416:22;2377:2;2459:29;2478:9;2459:29;:::i;:::-;2449:39;;2507:38;2541:2;2530:9;2526:18;2507:38;:::i;:::-;2497:48;;2592:2;2581:9;2577:18;2564:32;2554:42;;2647:2;2636:9;2632:18;2619:32;2674:18;2666:6;2663:30;2660:2;;;2711:6;2703;2696:22;2660:2;2755:58;2805:7;2796:6;2785:9;2781:22;2755:58;:::i;:::-;2367:506;;;;-1:-1:-1;2367:506:8;;-1:-1:-1;2832:8:8;;2729:84;2367:506;-1:-1:-1;;;2367:506:8:o;2878:715::-;2984:6;2992;3000;3008;3016;3024;3077:3;3065:9;3056:7;3052:23;3048:33;3045:2;;;3099:6;3091;3084:22;3045:2;3127:29;3146:9;3127:29;:::i;:::-;3117:39;;3175:38;3209:2;3198:9;3194:18;3175:38;:::i;:::-;3165:48;;3260:2;3249:9;3245:18;3232:32;3222:42;;3311:2;3300:9;3296:18;3283:32;3273:42;;3366:3;3355:9;3351:19;3338:33;3394:18;3386:6;3383:30;3380:2;;;3431:6;3423;3416:22;3380:2;3475:58;3525:7;3516:6;3505:9;3501:22;3475:58;:::i;:::-;3035:558;;;;-1:-1:-1;3035:558:8;;-1:-1:-1;3035:558:8;;3552:8;;3035:558;-1:-1:-1;;;3035:558:8:o;3598:255::-;3656:6;3709:2;3697:9;3688:7;3684:23;3680:32;3677:2;;;3730:6;3722;3715:22;3677:2;3774:9;3761:23;3793:30;3817:5;3793:30;:::i;:::-;3842:5;3667:186;-1:-1:-1;;;3667:186:8:o;3858:259::-;3927:6;3980:2;3968:9;3959:7;3955:23;3951:32;3948:2;;;4001:6;3993;3986:22;3948:2;4038:9;4032:16;4057:30;4081:5;4057:30;:::i;4122:437::-;4175:3;4213:5;4207:12;4240:6;4235:3;4228:19;4266:4;4295:2;4290:3;4286:12;4279:19;;4332:2;4325:5;4321:14;4353:3;4365:169;4379:6;4376:1;4373:13;4365:169;;;4440:13;;4428:26;;4474:12;;;;4509:15;;;;4401:1;4394:9;4365:169;;;-1:-1:-1;4550:3:8;;4183:376;-1:-1:-1;;;;;4183:376:8:o;4564:268::-;4652:6;4647:3;4640:19;4704:6;4697:5;4690:4;4685:3;4681:14;4668:43;-1:-1:-1;4622:3:8;4731:16;;;4749:4;4727:27;;;4720:40;;;;4814:2;4793:15;;;-1:-1:-1;;4789:29:8;4780:39;;;4776:50;;4630:202::o;4837:237::-;4918:1;4911:5;4908:12;4898:2;;4963:10;4958:3;4954:20;4951:1;4944:31;4998:4;4995:1;4988:15;5026:4;5023:1;5016:15;4898:2;5050:18;;4888:186::o;5396:587::-;-1:-1:-1;;;;;5703:15:8;;;5685:34;;5755:15;;5750:2;5735:18;;5728:43;5802:2;5787:18;;5780:34;;;5845:2;5830:18;;5823:34;;;5665:3;5888;5873:19;;5866:32;;;5628:4;;5915:62;;5957:19;;5949:6;5941;5915:62;:::i;:::-;5907:70;5637:346;-1:-1:-1;;;;;;;;5637:346:8:o;5988:1390::-;6346:2;6358:21;;;6428:13;;6331:18;;;6450:22;;;6298:4;;6526;;6503:3;6488:19;;;6553:15;;;6298:4;6599:188;6613:6;6610:1;6607:13;6599:188;;;6662:45;6703:3;6694:6;6688:13;6662:45;:::i;:::-;6727:12;;;;6762:15;;;;6635:1;6628:9;6599:188;;;-1:-1:-1;;;6823:19:8;;;6803:18;;;6796:47;6893:13;;6915:21;;;6991:15;;;;6954:12;;;7026:4;7039:215;7055:8;7050:3;7047:17;7039:215;;;7128:15;;-1:-1:-1;;;;;7124:41:8;7110:56;;7227:17;;;;7188:14;;;;7162:1;7074:11;7039:215;;;7043:3;;7301:9;7294:5;7290:21;7285:2;7274:9;7270:18;7263:49;7329:43;7366:5;7358:6;7329:43;:::i;7782:376::-;7984:2;7969:18;;7996:44;7973:9;8022:6;7996:44;:::i;:::-;-1:-1:-1;;;;;8076:32:8;;;;8071:2;8056:18;;8049:60;8140:2;8125:18;8118:34;7951:207;;-1:-1:-1;7951:207:8:o;8163:779::-;8490:44;8524:9;8516:6;8490:44;:::i;:::-;8565:2;8550:18;;8543:34;;;-1:-1:-1;;;;;8651:15:8;;;8646:2;8631:18;;8624:43;8703:15;;;8698:2;8683:18;;8676:43;8756:15;;8750:3;8735:19;;8728:44;8604:3;8788:19;;8781:35;;;8853:3;8847;8832:19;;8825:32;;;8471:4;;8874:62;;8916:19;;8908:6;8900;8874:62;:::i;:::-;8866:70;8480:462;-1:-1:-1;;;;;;;;;;8480:462:8:o;9723:302::-;9761:3;9789:10;9834:2;9827:5;9823:14;9861:2;9852:7;9849:15;9846:2;;;-1:-1:-1;;;9887:33:8;;9943:4;9940:1;9933:15;9973:4;9894:3;9961:17;9846:2;10017:1;10004:15;;9769:256;-1:-1:-1;;;9769:256:8:o;10030:131::-;-1:-1:-1;;;;;;10104:32:8;;10094:43;;10084:2;;10151:1;10148;10141:12;10084:2;10074:87;:::o", "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.4;\n\nimport \"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\";\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\nimport \"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\";\nimport \"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\";\n\n\ncontract TokenTracker is IERC721Receiver, IERC1155Receiver {\n\n /// token tracking\n enum TokenType{\n ERC20, ERC721, ERC1155, NONE\n }\n event ReceivedToken(TokenType tokenType, uint256 amount, address from, address tokenContract, address operator, uint256 tokenId, bytes data);\n event TokenTracked(TokenType tokenType, address contractAddress, uint256 tokenId);\n event TokenUntracked(TokenType tokenType, address contractAddress, uint256 tokenId);\n event TokenNotFound(TokenType tokenType, address contractAddress, uint256 tokenId);\n event TokenTransferFailed(TokenType tokenType, address contractAddress, uint256 tokenId, address dest, uint256 amount);\n event TokenTransferError(TokenType tokenType, address contractAddress, uint256 tokenId, address dest, uint256 amount, string reason);\n event TokenTransferSucceeded(TokenType tokenType, address contractAddress, uint256 tokenId, address dest, uint256 amount);\n\n // We track tokens in the contract instead of at the client so users can immediately get a record of what tokens they own when they restore their wallet at a new client\n // The tracking of ERC721 and ERC1155 are automatically established upon a token is transferred to this wallet. The tracking of ERC20 needs to be manually established by the client.\n // The gas cost of tracking and untracking operations are of constant complexity. The gas cost is paid by the transferer in the case of automatically established tracking, and paid by the user in the case of manual tracking.\n struct TrackedToken {\n TokenType tokenType;\n address contractAddress;\n uint256 tokenId; // only valid for ERC721 and ERC1155\n }\n\n mapping(bytes32 => uint256[]) trackedTokenPositions; // keccak256(bytes.concat(byte32(uint(tokenType)), bytes32(contractAddress), bytes32(tokenId)) => positions in trackedTokens. Positions should be of length 1 except in very rare occasion of collision\n TrackedToken[] trackedTokens;\n\n constructor(){}\n\n function onERC1155Received(\n address operator,\n address from,\n uint256 id,\n uint256 value,\n bytes calldata data\n ) external override returns (bytes4){\n emit ReceivedToken(TokenType.ERC1155, value, from, msg.sender, operator, id, data);\n _trackToken(TokenType.ERC1155, msg.sender, id);\n return this.onERC1155Received.selector;\n }\n\n function onERC1155BatchReceived(address operator, address from, uint256[] calldata ids, uint256[] calldata values, bytes calldata data) external override returns (bytes4){\n for (uint32 i = 0; i < ids.length; i++) {\n this.onERC1155Received(operator, from, ids[i], values[i], data);\n }\n return this.onERC1155BatchReceived.selector;\n }\n\n function supportsInterface(bytes4 interfaceID) external override pure returns (bool) {\n return interfaceID == this.supportsInterface.selector ||\n interfaceID == this.onERC1155Received.selector ||\n interfaceID == this.onERC721Received.selector;\n }\n\n // identical to ERC1155, except tracked only on ERC721 related data structures\n function onERC721Received(\n address operator,\n address from,\n uint256 tokenId,\n bytes calldata data\n ) external override returns (bytes4){\n emit ReceivedToken(TokenType.ERC721, 1, from, msg.sender, operator, tokenId, data);\n _trackToken(TokenType.ERC721, msg.sender, tokenId);\n return this.onERC721Received.selector;\n }\n\n function getTrackedTokens() external view returns (TokenType[] memory, address[] memory, uint256[] memory){\n TokenType[] memory tokenTypes = new TokenType[](trackedTokens.length);\n address[] memory contractAddresses = new address[](trackedTokens.length);\n uint256[] memory tokenIds = new uint256[](trackedTokens.length);\n for (uint32 i = 0; i < trackedTokens.length; i++) {\n tokenTypes[i] = trackedTokens[i].tokenType;\n contractAddresses[i] = trackedTokens[i].contractAddress;\n tokenIds[i] = trackedTokens[i].tokenId;\n }\n return (tokenTypes, contractAddresses, tokenIds);\n }\n \n\n function _trackToken(TokenType tokenType, address contractAddress, uint256 tokenId) internal {\n bytes32 key = keccak256(bytes.concat(bytes32(uint256(tokenType)), bytes32(bytes20(contractAddress)), bytes32(tokenId)));\n if (trackedTokenPositions[key].length > 0) {\n for (uint32 i = 0; i < trackedTokenPositions[key].length; i++) {\n uint256 j = trackedTokenPositions[key][i];\n if (trackedTokens[j].tokenType != tokenType) continue;\n if (trackedTokens[j].tokenId != tokenId) continue;\n if (trackedTokens[j].contractAddress != contractAddress) continue;\n // we found a token that is already tracked and is identical to the requested token\n return;\n }\n }\n TrackedToken memory tt = TrackedToken(tokenType, contractAddress, tokenId);\n trackedTokenPositions[key].push(trackedTokens.length);\n trackedTokens.push(tt);\n emit TokenTracked(tokenType, contractAddress, tokenId);\n }\n\n function _untrackToken(TokenType tokenType, address contractAddress, uint256 tokenId) internal {\n bytes32 key = keccak256(bytes.concat(bytes32(uint256(tokenType)), bytes32(bytes20(contractAddress)), bytes32(tokenId)));\n if (trackedTokenPositions[key].length == 0) {\n return;\n }\n for (uint32 i = 0; i < trackedTokenPositions[key].length; i++) {\n uint256 j = trackedTokenPositions[key][i];\n if (trackedTokens[j].tokenType != tokenType) continue;\n if (trackedTokens[j].tokenId != tokenId) continue;\n if (trackedTokens[j].contractAddress != contractAddress) continue;\n // found our token\n uint256 swappedPosition = trackedTokens.length - 1;\n trackedTokens[j] = trackedTokens[swappedPosition];\n bytes32 swappedKey = keccak256(bytes.concat(bytes32(uint256(trackedTokens[j].tokenType)), bytes32(bytes20(trackedTokens[j].contractAddress)), bytes32(trackedTokens[j].tokenId)));\n trackedTokens.pop();\n for (uint32 k = 0; k < trackedTokenPositions[swappedKey].length; k++) {\n if (trackedTokenPositions[swappedKey][k] == swappedPosition) {\n trackedTokenPositions[swappedKey][k] = j;\n }\n }\n trackedTokenPositions[key][j] = trackedTokenPositions[key][trackedTokenPositions[key].length - 1];\n trackedTokenPositions[key].pop();\n emit TokenUntracked(tokenType, contractAddress, tokenId);\n return;\n }\n emit TokenNotFound(tokenType, contractAddress, tokenId);\n }\n\n function _overrideTrack(TrackedToken[] memory newTrackedTokens) internal {\n for (uint32 i = 0; i < trackedTokens.length; i++) {\n TokenType tokenType = trackedTokens[i].tokenType;\n address contractAddress = trackedTokens[i].contractAddress;\n uint256 tokenId = trackedTokens[i].tokenId;\n bytes32 key = keccak256(bytes.concat(bytes32(uint256(tokenType)), bytes32(bytes20(contractAddress)), bytes32(tokenId)));\n delete trackedTokenPositions[key];\n }\n delete trackedTokens;\n for (uint32 i = 0; i < newTrackedTokens.length; i++) {\n TokenType tokenType = newTrackedTokens[i].tokenType;\n address contractAddress = newTrackedTokens[i].contractAddress;\n uint256 tokenId = newTrackedTokens[i].tokenId;\n bytes32 key = keccak256(bytes.concat(bytes32(uint256(tokenType)), bytes32(bytes20(contractAddress)), bytes32(tokenId)));\n TrackedToken memory t = TrackedToken(tokenType, contractAddress, tokenId);\n trackedTokens.push(t);\n trackedTokenPositions[key].push(i);\n }\n }\n\n function _overrideTrackWithBytes(bytes calldata data) internal {\n uint32 numTokens = uint32(data.length / 96);\n require(numTokens * 96 == data.length, \"data must have length multiple to 96\");\n TrackedToken[] memory newTrackedTokens = new TrackedToken[](numTokens);\n for (uint32 i = 0; i < numTokens; i++) {\n TokenType tokenType = TokenType(uint256(_asByte32(data[i * 96 : i * 96 + 32])));\n address contractAddress = address(bytes20(_asByte32(data[i * 96 + 32 : i * 96 + 52])));\n uint256 tokenId = uint256(_asByte32(data[i * 96 + 64 : i * 96 + 96]));\n newTrackedTokens[i] = TrackedToken(tokenType, contractAddress, tokenId);\n }\n _overrideTrack(newTrackedTokens);\n }\n\n function _multiTrack(bytes calldata data) internal {\n uint32 numTokens = uint32(data.length / 96);\n require(numTokens * 96 == data.length, \"data must have length multiple to 96\");\n for (uint32 i = 0; i < numTokens; i++) {\n TokenType tokenType = TokenType(uint256(_asByte32(data[i * 96 : i * 96 + 32])));\n address contractAddress = address(bytes20(_asByte32(data[i * 96 + 32 : i * 96 + 52])));\n uint256 tokenId = uint256(_asByte32(data[i * 96 + 64 : i * 96 + 96]));\n _trackToken(tokenType, contractAddress, tokenId);\n }\n }\n\n function _multiUntrack(bytes calldata data) internal {\n uint32 numTokens = uint32(data.length / 96);\n require(numTokens * 96 == data.length, \"data must have length multiple to 96\");\n for (uint32 i = 0; i < numTokens; i++) {\n TokenType tokenType = TokenType(uint256(_asByte32(data[i * 96 : i * 96 + 32])));\n address contractAddress = address(bytes20(_asByte32(data[i * 96 + 32 : i * 96 + 52])));\n uint256 tokenId = uint256(_asByte32(data[i * 96 + 64 : i * 96 + 96]));\n _untrackToken(tokenType, contractAddress, tokenId);\n }\n }\n\n function _asByte32(bytes memory b) pure internal returns (bytes32){\n if (b.length == 0) {\n return bytes32(0x0);\n }\n require(b.length <= 32, \"input bytes too long\");\n bytes32 r;\n uint8 len = uint8((32 - b.length) * 8);\n assembly{\n r := mload(add(b, 32))\n r := shr(len, r)\n r := shl(len, r)\n }\n return r;\n }\n}\n", "sourcePath": "/Users/polymorpher/git/one-wallet/code/contracts/TokenTracker.sol", "ast": { - "absolutePath": "/Users/polymorpher/git/one-wallet/code/contracts/TokenTracker.sol", + "absolutePath": "project:/contracts/TokenTracker.sol", "exportedSymbols": { "IERC1155": [ - 3513 + 121 ], "IERC1155Receiver": [ - 3554 + 162 ], "IERC165": [ - 3778 + 386 ], "IERC721": [ - 3748 + 356 ], "IERC721Receiver": [ - 3766 + 374 ], "TokenTracker": [ - 3391 + 3860 ] }, - "id": 3392, + "id": 3861, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { - "id": 2125, + "id": 2594, "literals": [ "solidity", "^", @@ -7733,53 +7733,53 @@ ".4" ], "nodeType": "PragmaDirective", - "src": "39:23:1" + "src": "39:23:7" }, { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", "file": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "id": 2126, + "id": 2595, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3392, - "sourceUnit": 3767, - "src": "64:66:1", + "scope": 3861, + "sourceUnit": 375, + "src": "64:66:7", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", "file": "@openzeppelin/contracts/token/ERC721/IERC721.sol", - "id": 2127, + "id": 2596, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3392, - "sourceUnit": 3749, - "src": "131:58:1", + "scope": 3861, + "sourceUnit": 357, + "src": "131:58:7", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol", "file": "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol", - "id": 2128, + "id": 2597, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3392, - "sourceUnit": 3555, - "src": "190:68:1", + "scope": 3861, + "sourceUnit": 163, + "src": "190:68:7", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155.sol", "file": "@openzeppelin/contracts/token/ERC1155/IERC1155.sol", - "id": 2129, + "id": 2598, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3392, - "sourceUnit": 3514, - "src": "259:60:1", + "scope": 3861, + "sourceUnit": 122, + "src": "259:60:7", "symbolAliases": [], "unitAlias": "" }, @@ -7788,121 +7788,121 @@ "baseContracts": [ { "baseName": { - "id": 2130, + "id": 2599, "name": "IERC721Receiver", "nodeType": "IdentifierPath", - "referencedDeclaration": 3766, - "src": "347:15:1" + "referencedDeclaration": 374, + "src": "347:15:7" }, - "id": 2131, + "id": 2600, "nodeType": "InheritanceSpecifier", - "src": "347:15:1" + "src": "347:15:7" }, { "baseName": { - "id": 2132, + "id": 2601, "name": "IERC1155Receiver", "nodeType": "IdentifierPath", - "referencedDeclaration": 3554, - "src": "364:16:1" + "referencedDeclaration": 162, + "src": "364:16:7" }, - "id": 2133, + "id": 2602, "nodeType": "InheritanceSpecifier", - "src": "364:16:1" + "src": "364:16:7" } ], "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 3391, + "id": 3860, "linearizedBaseContracts": [ - 3391, - 3554, - 3778, - 3766 + 3860, + 162, + 386, + 374 ], "name": "TokenTracker", - "nameLocation": "331:12:1", + "nameLocation": "331:12:7", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "TokenTracker.TokenType", - "id": 2138, + "id": 2607, "members": [ { - "id": 2134, + "id": 2603, "name": "ERC20", - "nameLocation": "435:5:1", + "nameLocation": "435:5:7", "nodeType": "EnumValue", - "src": "435:5:1" + "src": "435:5:7" }, { - "id": 2135, + "id": 2604, "name": "ERC721", - "nameLocation": "442:6:1", + "nameLocation": "442:6:7", "nodeType": "EnumValue", - "src": "442:6:1" + "src": "442:6:7" }, { - "id": 2136, + "id": 2605, "name": "ERC1155", - "nameLocation": "450:7:1", + "nameLocation": "450:7:7", "nodeType": "EnumValue", - "src": "450:7:1" + "src": "450:7:7" }, { - "id": 2137, + "id": 2606, "name": "NONE", - "nameLocation": "459:4:1", + "nameLocation": "459:4:7", "nodeType": "EnumValue", - "src": "459:4:1" + "src": "459:4:7" } ], "name": "TokenType", - "nameLocation": "416:9:1", + "nameLocation": "416:9:7", "nodeType": "EnumDefinition", - "src": "411:58:1" + "src": "411:58:7" }, { "anonymous": false, - "id": 2155, + "id": 2624, "name": "ReceivedToken", - "nameLocation": "480:13:1", + "nameLocation": "480:13:7", "nodeType": "EventDefinition", "parameters": { - "id": 2154, + "id": 2623, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2141, + "id": 2610, "indexed": false, "mutability": "mutable", "name": "tokenType", - "nameLocation": "504:9:1", + "nameLocation": "504:9:7", "nodeType": "VariableDeclaration", - "scope": 2155, - "src": "494:19:1", + "scope": 2624, + "src": "494:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2140, + "id": 2609, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2139, + "id": 2608, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "494:9:1" + "referencedDeclaration": 2607, + "src": "494:9:7" }, - "referencedDeclaration": 2138, - "src": "494:9:1", + "referencedDeclaration": 2607, + "src": "494:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -7910,14 +7910,14 @@ }, { "constant": false, - "id": 2143, + "id": 2612, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "523:6:1", + "nameLocation": "523:6:7", "nodeType": "VariableDeclaration", - "scope": 2155, - "src": "515:14:1", + "scope": 2624, + "src": "515:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7925,10 +7925,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2142, + "id": 2611, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "515:7:1", + "src": "515:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -7938,14 +7938,14 @@ }, { "constant": false, - "id": 2145, + "id": 2614, "indexed": false, "mutability": "mutable", "name": "from", - "nameLocation": "539:4:1", + "nameLocation": "539:4:7", "nodeType": "VariableDeclaration", - "scope": 2155, - "src": "531:12:1", + "scope": 2624, + "src": "531:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7953,10 +7953,10 @@ "typeString": "address" }, "typeName": { - "id": 2144, + "id": 2613, "name": "address", "nodeType": "ElementaryTypeName", - "src": "531:7:1", + "src": "531:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7967,14 +7967,14 @@ }, { "constant": false, - "id": 2147, + "id": 2616, "indexed": false, "mutability": "mutable", "name": "tokenContract", - "nameLocation": "553:13:1", + "nameLocation": "553:13:7", "nodeType": "VariableDeclaration", - "scope": 2155, - "src": "545:21:1", + "scope": 2624, + "src": "545:21:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -7982,10 +7982,10 @@ "typeString": "address" }, "typeName": { - "id": 2146, + "id": 2615, "name": "address", "nodeType": "ElementaryTypeName", - "src": "545:7:1", + "src": "545:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -7996,14 +7996,14 @@ }, { "constant": false, - "id": 2149, + "id": 2618, "indexed": false, "mutability": "mutable", "name": "operator", - "nameLocation": "576:8:1", + "nameLocation": "576:8:7", "nodeType": "VariableDeclaration", - "scope": 2155, - "src": "568:16:1", + "scope": 2624, + "src": "568:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8011,10 +8011,10 @@ "typeString": "address" }, "typeName": { - "id": 2148, + "id": 2617, "name": "address", "nodeType": "ElementaryTypeName", - "src": "568:7:1", + "src": "568:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8025,14 +8025,14 @@ }, { "constant": false, - "id": 2151, + "id": 2620, "indexed": false, "mutability": "mutable", "name": "tokenId", - "nameLocation": "594:7:1", + "nameLocation": "594:7:7", "nodeType": "VariableDeclaration", - "scope": 2155, - "src": "586:15:1", + "scope": 2624, + "src": "586:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8040,10 +8040,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2150, + "id": 2619, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "586:7:1", + "src": "586:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8053,14 +8053,14 @@ }, { "constant": false, - "id": 2153, + "id": 2622, "indexed": false, "mutability": "mutable", "name": "data", - "nameLocation": "609:4:1", + "nameLocation": "609:4:7", "nodeType": "VariableDeclaration", - "scope": 2155, - "src": "603:10:1", + "scope": 2624, + "src": "603:10:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8068,10 +8068,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2152, + "id": 2621, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "603:5:1", + "src": "603:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -8080,50 +8080,50 @@ "visibility": "internal" } ], - "src": "493:121:1" + "src": "493:121:7" }, - "src": "474:141:1" + "src": "474:141:7" }, { "anonymous": false, - "id": 2164, + "id": 2633, "name": "TokenTracked", - "nameLocation": "626:12:1", + "nameLocation": "626:12:7", "nodeType": "EventDefinition", "parameters": { - "id": 2163, + "id": 2632, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2158, + "id": 2627, "indexed": false, "mutability": "mutable", "name": "tokenType", - "nameLocation": "649:9:1", + "nameLocation": "649:9:7", "nodeType": "VariableDeclaration", - "scope": 2164, - "src": "639:19:1", + "scope": 2633, + "src": "639:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2157, + "id": 2626, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2156, + "id": 2625, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "639:9:1" + "referencedDeclaration": 2607, + "src": "639:9:7" }, - "referencedDeclaration": 2138, - "src": "639:9:1", + "referencedDeclaration": 2607, + "src": "639:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -8131,14 +8131,14 @@ }, { "constant": false, - "id": 2160, + "id": 2629, "indexed": false, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "668:15:1", + "nameLocation": "668:15:7", "nodeType": "VariableDeclaration", - "scope": 2164, - "src": "660:23:1", + "scope": 2633, + "src": "660:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8146,10 +8146,10 @@ "typeString": "address" }, "typeName": { - "id": 2159, + "id": 2628, "name": "address", "nodeType": "ElementaryTypeName", - "src": "660:7:1", + "src": "660:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8160,14 +8160,14 @@ }, { "constant": false, - "id": 2162, + "id": 2631, "indexed": false, "mutability": "mutable", "name": "tokenId", - "nameLocation": "693:7:1", + "nameLocation": "693:7:7", "nodeType": "VariableDeclaration", - "scope": 2164, - "src": "685:15:1", + "scope": 2633, + "src": "685:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8175,10 +8175,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2161, + "id": 2630, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "685:7:1", + "src": "685:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8187,50 +8187,50 @@ "visibility": "internal" } ], - "src": "638:63:1" + "src": "638:63:7" }, - "src": "620:82:1" + "src": "620:82:7" }, { "anonymous": false, - "id": 2173, + "id": 2642, "name": "TokenUntracked", - "nameLocation": "713:14:1", + "nameLocation": "713:14:7", "nodeType": "EventDefinition", "parameters": { - "id": 2172, + "id": 2641, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2167, + "id": 2636, "indexed": false, "mutability": "mutable", "name": "tokenType", - "nameLocation": "738:9:1", + "nameLocation": "738:9:7", "nodeType": "VariableDeclaration", - "scope": 2173, - "src": "728:19:1", + "scope": 2642, + "src": "728:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2166, + "id": 2635, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2165, + "id": 2634, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "728:9:1" + "referencedDeclaration": 2607, + "src": "728:9:7" }, - "referencedDeclaration": 2138, - "src": "728:9:1", + "referencedDeclaration": 2607, + "src": "728:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -8238,14 +8238,14 @@ }, { "constant": false, - "id": 2169, + "id": 2638, "indexed": false, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "757:15:1", + "nameLocation": "757:15:7", "nodeType": "VariableDeclaration", - "scope": 2173, - "src": "749:23:1", + "scope": 2642, + "src": "749:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8253,10 +8253,10 @@ "typeString": "address" }, "typeName": { - "id": 2168, + "id": 2637, "name": "address", "nodeType": "ElementaryTypeName", - "src": "749:7:1", + "src": "749:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8267,14 +8267,14 @@ }, { "constant": false, - "id": 2171, + "id": 2640, "indexed": false, "mutability": "mutable", "name": "tokenId", - "nameLocation": "782:7:1", + "nameLocation": "782:7:7", "nodeType": "VariableDeclaration", - "scope": 2173, - "src": "774:15:1", + "scope": 2642, + "src": "774:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8282,10 +8282,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2170, + "id": 2639, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "774:7:1", + "src": "774:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8294,50 +8294,50 @@ "visibility": "internal" } ], - "src": "727:63:1" + "src": "727:63:7" }, - "src": "707:84:1" + "src": "707:84:7" }, { "anonymous": false, - "id": 2182, + "id": 2651, "name": "TokenNotFound", - "nameLocation": "802:13:1", + "nameLocation": "802:13:7", "nodeType": "EventDefinition", "parameters": { - "id": 2181, + "id": 2650, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2176, + "id": 2645, "indexed": false, "mutability": "mutable", "name": "tokenType", - "nameLocation": "826:9:1", + "nameLocation": "826:9:7", "nodeType": "VariableDeclaration", - "scope": 2182, - "src": "816:19:1", + "scope": 2651, + "src": "816:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2175, + "id": 2644, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2174, + "id": 2643, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "816:9:1" + "referencedDeclaration": 2607, + "src": "816:9:7" }, - "referencedDeclaration": 2138, - "src": "816:9:1", + "referencedDeclaration": 2607, + "src": "816:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -8345,14 +8345,14 @@ }, { "constant": false, - "id": 2178, + "id": 2647, "indexed": false, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "845:15:1", + "nameLocation": "845:15:7", "nodeType": "VariableDeclaration", - "scope": 2182, - "src": "837:23:1", + "scope": 2651, + "src": "837:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8360,10 +8360,10 @@ "typeString": "address" }, "typeName": { - "id": 2177, + "id": 2646, "name": "address", "nodeType": "ElementaryTypeName", - "src": "837:7:1", + "src": "837:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8374,14 +8374,14 @@ }, { "constant": false, - "id": 2180, + "id": 2649, "indexed": false, "mutability": "mutable", "name": "tokenId", - "nameLocation": "870:7:1", + "nameLocation": "870:7:7", "nodeType": "VariableDeclaration", - "scope": 2182, - "src": "862:15:1", + "scope": 2651, + "src": "862:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8389,10 +8389,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2179, + "id": 2648, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "862:7:1", + "src": "862:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8401,50 +8401,50 @@ "visibility": "internal" } ], - "src": "815:63:1" + "src": "815:63:7" }, - "src": "796:83:1" + "src": "796:83:7" }, { "anonymous": false, - "id": 2195, + "id": 2664, "name": "TokenTransferFailed", - "nameLocation": "890:19:1", + "nameLocation": "890:19:7", "nodeType": "EventDefinition", "parameters": { - "id": 2194, + "id": 2663, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2185, + "id": 2654, "indexed": false, "mutability": "mutable", "name": "tokenType", - "nameLocation": "920:9:1", + "nameLocation": "920:9:7", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "910:19:1", + "scope": 2664, + "src": "910:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2184, + "id": 2653, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2183, + "id": 2652, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "910:9:1" + "referencedDeclaration": 2607, + "src": "910:9:7" }, - "referencedDeclaration": 2138, - "src": "910:9:1", + "referencedDeclaration": 2607, + "src": "910:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -8452,14 +8452,14 @@ }, { "constant": false, - "id": 2187, + "id": 2656, "indexed": false, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "939:15:1", + "nameLocation": "939:15:7", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "931:23:1", + "scope": 2664, + "src": "931:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8467,10 +8467,10 @@ "typeString": "address" }, "typeName": { - "id": 2186, + "id": 2655, "name": "address", "nodeType": "ElementaryTypeName", - "src": "931:7:1", + "src": "931:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8481,14 +8481,14 @@ }, { "constant": false, - "id": 2189, + "id": 2658, "indexed": false, "mutability": "mutable", "name": "tokenId", - "nameLocation": "964:7:1", + "nameLocation": "964:7:7", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "956:15:1", + "scope": 2664, + "src": "956:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8496,10 +8496,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2188, + "id": 2657, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "956:7:1", + "src": "956:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8509,14 +8509,14 @@ }, { "constant": false, - "id": 2191, + "id": 2660, "indexed": false, "mutability": "mutable", "name": "dest", - "nameLocation": "981:4:1", + "nameLocation": "981:4:7", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "973:12:1", + "scope": 2664, + "src": "973:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8524,10 +8524,10 @@ "typeString": "address" }, "typeName": { - "id": 2190, + "id": 2659, "name": "address", "nodeType": "ElementaryTypeName", - "src": "973:7:1", + "src": "973:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8538,14 +8538,14 @@ }, { "constant": false, - "id": 2193, + "id": 2662, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "995:6:1", + "nameLocation": "995:6:7", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "987:14:1", + "scope": 2664, + "src": "987:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8553,10 +8553,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2192, + "id": 2661, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "987:7:1", + "src": "987:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8565,50 +8565,50 @@ "visibility": "internal" } ], - "src": "909:93:1" + "src": "909:93:7" }, - "src": "884:119:1" + "src": "884:119:7" }, { "anonymous": false, - "id": 2210, + "id": 2679, "name": "TokenTransferError", - "nameLocation": "1014:18:1", + "nameLocation": "1014:18:7", "nodeType": "EventDefinition", "parameters": { - "id": 2209, + "id": 2678, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2198, + "id": 2667, "indexed": false, "mutability": "mutable", "name": "tokenType", - "nameLocation": "1043:9:1", + "nameLocation": "1043:9:7", "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "1033:19:1", + "scope": 2679, + "src": "1033:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2197, + "id": 2666, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2196, + "id": 2665, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "1033:9:1" + "referencedDeclaration": 2607, + "src": "1033:9:7" }, - "referencedDeclaration": 2138, - "src": "1033:9:1", + "referencedDeclaration": 2607, + "src": "1033:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -8616,14 +8616,14 @@ }, { "constant": false, - "id": 2200, + "id": 2669, "indexed": false, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "1062:15:1", + "nameLocation": "1062:15:7", "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "1054:23:1", + "scope": 2679, + "src": "1054:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8631,10 +8631,10 @@ "typeString": "address" }, "typeName": { - "id": 2199, + "id": 2668, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1054:7:1", + "src": "1054:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8645,14 +8645,14 @@ }, { "constant": false, - "id": 2202, + "id": 2671, "indexed": false, "mutability": "mutable", "name": "tokenId", - "nameLocation": "1087:7:1", + "nameLocation": "1087:7:7", "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "1079:15:1", + "scope": 2679, + "src": "1079:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8660,10 +8660,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2201, + "id": 2670, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1079:7:1", + "src": "1079:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8673,14 +8673,14 @@ }, { "constant": false, - "id": 2204, + "id": 2673, "indexed": false, "mutability": "mutable", "name": "dest", - "nameLocation": "1104:4:1", + "nameLocation": "1104:4:7", "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "1096:12:1", + "scope": 2679, + "src": "1096:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8688,10 +8688,10 @@ "typeString": "address" }, "typeName": { - "id": 2203, + "id": 2672, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1096:7:1", + "src": "1096:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8702,14 +8702,14 @@ }, { "constant": false, - "id": 2206, + "id": 2675, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "1118:6:1", + "nameLocation": "1118:6:7", "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "1110:14:1", + "scope": 2679, + "src": "1110:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8717,10 +8717,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2205, + "id": 2674, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1110:7:1", + "src": "1110:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8730,14 +8730,14 @@ }, { "constant": false, - "id": 2208, + "id": 2677, "indexed": false, "mutability": "mutable", "name": "reason", - "nameLocation": "1133:6:1", + "nameLocation": "1133:6:7", "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "1126:13:1", + "scope": 2679, + "src": "1126:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8745,10 +8745,10 @@ "typeString": "string" }, "typeName": { - "id": 2207, + "id": 2676, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1126:6:1", + "src": "1126:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -8757,50 +8757,50 @@ "visibility": "internal" } ], - "src": "1032:108:1" + "src": "1032:108:7" }, - "src": "1008:133:1" + "src": "1008:133:7" }, { "anonymous": false, - "id": 2223, + "id": 2692, "name": "TokenTransferSucceeded", - "nameLocation": "1152:22:1", + "nameLocation": "1152:22:7", "nodeType": "EventDefinition", "parameters": { - "id": 2222, + "id": 2691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2213, + "id": 2682, "indexed": false, "mutability": "mutable", "name": "tokenType", - "nameLocation": "1185:9:1", + "nameLocation": "1185:9:7", "nodeType": "VariableDeclaration", - "scope": 2223, - "src": "1175:19:1", + "scope": 2692, + "src": "1175:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2212, + "id": 2681, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2211, + "id": 2680, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "1175:9:1" + "referencedDeclaration": 2607, + "src": "1175:9:7" }, - "referencedDeclaration": 2138, - "src": "1175:9:1", + "referencedDeclaration": 2607, + "src": "1175:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -8808,14 +8808,14 @@ }, { "constant": false, - "id": 2215, + "id": 2684, "indexed": false, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "1204:15:1", + "nameLocation": "1204:15:7", "nodeType": "VariableDeclaration", - "scope": 2223, - "src": "1196:23:1", + "scope": 2692, + "src": "1196:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8823,10 +8823,10 @@ "typeString": "address" }, "typeName": { - "id": 2214, + "id": 2683, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1196:7:1", + "src": "1196:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8837,14 +8837,14 @@ }, { "constant": false, - "id": 2217, + "id": 2686, "indexed": false, "mutability": "mutable", "name": "tokenId", - "nameLocation": "1229:7:1", + "nameLocation": "1229:7:7", "nodeType": "VariableDeclaration", - "scope": 2223, - "src": "1221:15:1", + "scope": 2692, + "src": "1221:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8852,10 +8852,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2216, + "id": 2685, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1221:7:1", + "src": "1221:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8865,14 +8865,14 @@ }, { "constant": false, - "id": 2219, + "id": 2688, "indexed": false, "mutability": "mutable", "name": "dest", - "nameLocation": "1246:4:1", + "nameLocation": "1246:4:7", "nodeType": "VariableDeclaration", - "scope": 2223, - "src": "1238:12:1", + "scope": 2692, + "src": "1238:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8880,10 +8880,10 @@ "typeString": "address" }, "typeName": { - "id": 2218, + "id": 2687, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1238:7:1", + "src": "1238:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8894,14 +8894,14 @@ }, { "constant": false, - "id": 2221, + "id": 2690, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "1260:6:1", + "nameLocation": "1260:6:7", "nodeType": "VariableDeclaration", - "scope": 2223, - "src": "1252:14:1", + "scope": 2692, + "src": "1252:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8909,10 +8909,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2220, + "id": 2689, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1252:7:1", + "src": "1252:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -8921,43 +8921,43 @@ "visibility": "internal" } ], - "src": "1174:93:1" + "src": "1174:93:7" }, - "src": "1146:122:1" + "src": "1146:122:7" }, { "canonicalName": "TokenTracker.TrackedToken", - "id": 2231, + "id": 2700, "members": [ { "constant": false, - "id": 2226, + "id": 2695, "mutability": "mutable", "name": "tokenType", - "nameLocation": "1902:9:1", + "nameLocation": "1902:9:7", "nodeType": "VariableDeclaration", - "scope": 2231, - "src": "1892:19:1", + "scope": 2700, + "src": "1892:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2225, + "id": 2694, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2224, + "id": 2693, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "1892:9:1" + "referencedDeclaration": 2607, + "src": "1892:9:7" }, - "referencedDeclaration": 2138, - "src": "1892:9:1", + "referencedDeclaration": 2607, + "src": "1892:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -8965,13 +8965,13 @@ }, { "constant": false, - "id": 2228, + "id": 2697, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "1929:15:1", + "nameLocation": "1929:15:7", "nodeType": "VariableDeclaration", - "scope": 2231, - "src": "1921:23:1", + "scope": 2700, + "src": "1921:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -8979,10 +8979,10 @@ "typeString": "address" }, "typeName": { - "id": 2227, + "id": 2696, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1921:7:1", + "src": "1921:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -8993,13 +8993,13 @@ }, { "constant": false, - "id": 2230, + "id": 2699, "mutability": "mutable", "name": "tokenId", - "nameLocation": "1962:7:1", + "nameLocation": "1962:7:7", "nodeType": "VariableDeclaration", - "scope": 2231, - "src": "1954:15:1", + "scope": 2700, + "src": "1954:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9007,10 +9007,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2229, + "id": 2698, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1954:7:1", + "src": "1954:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9020,21 +9020,21 @@ } ], "name": "TrackedToken", - "nameLocation": "1869:12:1", + "nameLocation": "1869:12:7", "nodeType": "StructDefinition", - "scope": 3391, - "src": "1862:151:1", + "scope": 3860, + "src": "1862:151:7", "visibility": "public" }, { "constant": false, - "id": 2236, + "id": 2705, "mutability": "mutable", "name": "trackedTokenPositions", - "nameLocation": "2049:21:1", + "nameLocation": "2049:21:7", "nodeType": "VariableDeclaration", - "scope": 3391, - "src": "2019:51:1", + "scope": 3860, + "src": "2019:51:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -9042,37 +9042,37 @@ "typeString": "mapping(bytes32 => uint256[])" }, "typeName": { - "id": 2235, + "id": 2704, "keyType": { - "id": 2232, + "id": 2701, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2027:7:1", + "src": "2027:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "2019:29:1", + "src": "2019:29:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[])" }, "valueType": { "baseType": { - "id": 2233, + "id": 2702, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2038:7:1", + "src": "2038:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2234, + "id": 2703, "nodeType": "ArrayTypeName", - "src": "2038:9:1", + "src": "2038:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -9083,42 +9083,42 @@ }, { "constant": false, - "id": 2240, + "id": 2709, "mutability": "mutable", "name": "trackedTokens", - "nameLocation": "2291:13:1", + "nameLocation": "2291:13:7", "nodeType": "VariableDeclaration", - "scope": 3391, - "src": "2276:28:1", + "scope": 3860, + "src": "2276:28:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken[]" }, "typeName": { "baseType": { - "id": 2238, + "id": 2707, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2237, + "id": 2706, "name": "TrackedToken", "nodeType": "IdentifierPath", - "referencedDeclaration": 2231, - "src": "2276:12:1" + "referencedDeclaration": 2700, + "src": "2276:12:7" }, - "referencedDeclaration": 2231, - "src": "2276:12:1", + "referencedDeclaration": 2700, + "src": "2276:12:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage_ptr", "typeString": "struct TokenTracker.TrackedToken" } }, - "id": 2239, + "id": 2708, "nodeType": "ArrayTypeName", - "src": "2276:14:1", + "src": "2276:14:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr", "typeString": "struct TokenTracker.TrackedToken[]" } }, @@ -9126,12 +9126,12 @@ }, { "body": { - "id": 2243, + "id": 2712, "nodeType": "Block", - "src": "2324:2:1", + "src": "2324:2:7", "statements": [] }, - "id": 2244, + "id": 2713, "implemented": true, "kind": "constructor", "modifiers": [], @@ -9139,81 +9139,81 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 2241, + "id": 2710, "nodeType": "ParameterList", "parameters": [], - "src": "2322:2:1" + "src": "2322:2:7" }, "returnParameters": { - "id": 2242, + "id": 2711, "nodeType": "ParameterList", "parameters": [], - "src": "2324:0:1" + "src": "2324:0:7" }, - "scope": 3391, - "src": "2311:15:1", + "scope": 3860, + "src": "2311:15:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "baseFunctions": [ - 3535 + 143 ], "body": { - "id": 2284, + "id": 2753, "nodeType": "Block", - "src": "2519:203:1", + "src": "2519:203:7", "statements": [ { "eventCall": { "arguments": [ { "expression": { - "id": 2261, + "id": 2730, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "2548:9:1", + "referencedDeclaration": 2607, + "src": "2548:9:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2138_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 2262, + "id": 2731, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ERC1155", "nodeType": "MemberAccess", - "referencedDeclaration": 2136, - "src": "2548:17:1", + "referencedDeclaration": 2605, + "src": "2548:17:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 2263, + "id": 2732, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2252, - "src": "2567:5:1", + "referencedDeclaration": 2721, + "src": "2567:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2264, + "id": 2733, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "2574:4:1", + "referencedDeclaration": 2717, + "src": "2574:4:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9221,61 +9221,61 @@ }, { "expression": { - "id": 2265, + "id": 2734, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "2580:3:1", + "src": "2580:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2266, + "id": 2735, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "2580:10:1", + "src": "2580:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2267, + "id": 2736, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2246, - "src": "2592:8:1", + "referencedDeclaration": 2715, + "src": "2592:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2268, + "id": 2737, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2250, - "src": "2602:2:1", + "referencedDeclaration": 2719, + "src": "2602:2:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2269, + "id": 2738, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2606:4:1", + "referencedDeclaration": 2723, + "src": "2606:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -9285,7 +9285,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -9313,18 +9313,18 @@ "typeString": "bytes calldata" } ], - "id": 2260, + "id": 2729, "name": "ReceivedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2155, - "src": "2534:13:1", + "referencedDeclaration": 2624, + "src": "2534:13:7", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2138_$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,uint256,address,address,address,uint256,bytes memory)" } }, - "id": 2270, + "id": 2739, "isConstant": false, "isLValue": false, "isPure": false, @@ -9332,80 +9332,80 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2534:77:1", + "src": "2534:77:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2271, + "id": 2740, "nodeType": "EmitStatement", - "src": "2529:82:1" + "src": "2529:82:7" }, { "expression": { "arguments": [ { "expression": { - "id": 2273, + "id": 2742, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "2633:9:1", + "referencedDeclaration": 2607, + "src": "2633:9:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2138_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 2274, + "id": 2743, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ERC1155", "nodeType": "MemberAccess", - "referencedDeclaration": 2136, - "src": "2633:17:1", + "referencedDeclaration": 2605, + "src": "2633:17:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { "expression": { - "id": 2275, + "id": 2744, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "2652:3:1", + "src": "2652:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2276, + "id": 2745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "2652:10:1", + "src": "2652:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2277, + "id": 2746, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2250, - "src": "2664:2:1", + "referencedDeclaration": 2719, + "src": "2664:2:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9415,7 +9415,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -9427,18 +9427,18 @@ "typeString": "uint256" } ], - "id": 2272, + "id": 2741, "name": "_trackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "2621:11:1", + "referencedDeclaration": 3089, + "src": "2621:11:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2138_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 2278, + "id": 2747, "isConstant": false, "isLValue": false, "isPure": false, @@ -9446,93 +9446,93 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2621:46:1", + "src": "2621:46:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2279, + "id": 2748, "nodeType": "ExpressionStatement", - "src": "2621:46:1" + "src": "2621:46:7" }, { "expression": { "expression": { "expression": { - "id": 2280, + "id": 2749, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "2684:4:1", + "src": "2684:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenTracker_$3391", + "typeIdentifier": "t_contract$_TokenTracker_$3860", "typeString": "contract TokenTracker" } }, - "id": 2281, + "id": 2750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC1155Received", "nodeType": "MemberAccess", - "referencedDeclaration": 2285, - "src": "2684:22:1", + "referencedDeclaration": 2754, + "src": "2684:22:7", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)" } }, - "id": 2282, + "id": 2751, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "2684:31:1", + "src": "2684:31:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "functionReturnParameters": 2259, - "id": 2283, + "functionReturnParameters": 2728, + "id": 2752, "nodeType": "Return", - "src": "2677:38:1" + "src": "2677:38:7" } ] }, "functionSelector": "f23a6e61", - "id": 2285, + "id": 2754, "implemented": true, "kind": "function", "modifiers": [], "name": "onERC1155Received", - "nameLocation": "2341:17:1", + "nameLocation": "2341:17:7", "nodeType": "FunctionDefinition", "overrides": { - "id": 2256, + "id": 2725, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "2494:8:1" + "src": "2494:8:7" }, "parameters": { - "id": 2255, + "id": 2724, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2246, + "id": 2715, "mutability": "mutable", "name": "operator", - "nameLocation": "2376:8:1", + "nameLocation": "2376:8:7", "nodeType": "VariableDeclaration", - "scope": 2285, - "src": "2368:16:1", + "scope": 2754, + "src": "2368:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9540,10 +9540,10 @@ "typeString": "address" }, "typeName": { - "id": 2245, + "id": 2714, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2368:7:1", + "src": "2368:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9554,13 +9554,13 @@ }, { "constant": false, - "id": 2248, + "id": 2717, "mutability": "mutable", "name": "from", - "nameLocation": "2402:4:1", + "nameLocation": "2402:4:7", "nodeType": "VariableDeclaration", - "scope": 2285, - "src": "2394:12:1", + "scope": 2754, + "src": "2394:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9568,10 +9568,10 @@ "typeString": "address" }, "typeName": { - "id": 2247, + "id": 2716, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2394:7:1", + "src": "2394:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -9582,13 +9582,13 @@ }, { "constant": false, - "id": 2250, + "id": 2719, "mutability": "mutable", "name": "id", - "nameLocation": "2424:2:1", + "nameLocation": "2424:2:7", "nodeType": "VariableDeclaration", - "scope": 2285, - "src": "2416:10:1", + "scope": 2754, + "src": "2416:10:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9596,10 +9596,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2249, + "id": 2718, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2416:7:1", + "src": "2416:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9609,13 +9609,13 @@ }, { "constant": false, - "id": 2252, + "id": 2721, "mutability": "mutable", "name": "value", - "nameLocation": "2444:5:1", + "nameLocation": "2444:5:7", "nodeType": "VariableDeclaration", - "scope": 2285, - "src": "2436:13:1", + "scope": 2754, + "src": "2436:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9623,10 +9623,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2251, + "id": 2720, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2436:7:1", + "src": "2436:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9636,13 +9636,13 @@ }, { "constant": false, - "id": 2254, + "id": 2723, "mutability": "mutable", "name": "data", - "nameLocation": "2474:4:1", + "nameLocation": "2474:4:7", "nodeType": "VariableDeclaration", - "scope": 2285, - "src": "2459:19:1", + "scope": 2754, + "src": "2459:19:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -9650,10 +9650,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2253, + "id": 2722, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2459:5:1", + "src": "2459:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -9662,21 +9662,21 @@ "visibility": "internal" } ], - "src": "2358:126:1" + "src": "2358:126:7" }, "returnParameters": { - "id": 2259, + "id": 2728, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2258, + "id": 2727, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2285, - "src": "2512:6:1", + "scope": 2754, + "src": "2512:6:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9684,10 +9684,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 2257, + "id": 2726, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "2512:6:1", + "src": "2512:6:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -9696,51 +9696,51 @@ "visibility": "internal" } ], - "src": "2511:8:1" + "src": "2511:8:7" }, - "scope": 3391, - "src": "2332:390:1", + "scope": 3860, + "src": "2332:390:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 3553 + 161 ], "body": { - "id": 2334, + "id": 2803, "nodeType": "Block", - "src": "2898:197:1", + "src": "2898:197:7", "statements": [ { "body": { - "id": 2328, + "id": 2797, "nodeType": "Block", - "src": "2948:88:1", + "src": "2948:88:7", "statements": [ { "expression": { "arguments": [ { - "id": 2317, + "id": 2786, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2287, - "src": "2985:8:1", + "referencedDeclaration": 2756, + "src": "2985:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2318, + "id": 2787, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2289, - "src": "2995:4:1", + "referencedDeclaration": 2758, + "src": "2995:4:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -9748,25 +9748,25 @@ }, { "baseExpression": { - "id": 2319, + "id": 2788, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2292, - "src": "3001:3:1", + "referencedDeclaration": 2761, + "src": "3001:3:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 2321, + "id": 2790, "indexExpression": { - "id": 2320, + "id": 2789, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2304, - "src": "3005:1:1", + "referencedDeclaration": 2773, + "src": "3005:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -9777,7 +9777,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3001:6:1", + "src": "3001:6:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -9785,25 +9785,25 @@ }, { "baseExpression": { - "id": 2322, + "id": 2791, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2295, - "src": "3009:6:1", + "referencedDeclaration": 2764, + "src": "3009:6:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 2324, + "id": 2793, "indexExpression": { - "id": 2323, + "id": 2792, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2304, - "src": "3016:1:1", + "referencedDeclaration": 2773, + "src": "3016:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -9814,19 +9814,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3009:9:1", + "src": "3009:9:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2325, + "id": 2794, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2297, - "src": "3020:4:1", + "referencedDeclaration": 2766, + "src": "3020:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -9857,32 +9857,32 @@ } ], "expression": { - "id": 2314, + "id": 2783, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "2962:4:1", + "src": "2962:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenTracker_$3391", + "typeIdentifier": "t_contract$_TokenTracker_$3860", "typeString": "contract TokenTracker" } }, - "id": 2316, + "id": 2785, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC1155Received", "nodeType": "MemberAccess", - "referencedDeclaration": 2285, - "src": "2962:22:1", + "referencedDeclaration": 2754, + "src": "2962:22:7", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)" } }, - "id": 2326, + "id": 2795, "isConstant": false, "isLValue": false, "isPure": false, @@ -9890,16 +9890,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2962:63:1", + "src": "2962:63:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 2327, + "id": 2796, "nodeType": "ExpressionStatement", - "src": "2962:63:1" + "src": "2962:63:7" } ] }, @@ -9908,18 +9908,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2310, + "id": 2779, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2307, + "id": 2776, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2304, - "src": "2927:1:1", + "referencedDeclaration": 2773, + "src": "2927:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -9929,51 +9929,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2308, + "id": 2777, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2292, - "src": "2931:3:1", + "referencedDeclaration": 2761, + "src": "2931:3:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 2309, + "id": 2778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "2931:10:1", + "src": "2931:10:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2927:14:1", + "src": "2927:14:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2329, + "id": 2798, "initializationExpression": { "assignments": [ - 2304 + 2773 ], "declarations": [ { "constant": false, - "id": 2304, + "id": 2773, "mutability": "mutable", "name": "i", - "nameLocation": "2920:1:1", + "nameLocation": "2920:1:7", "nodeType": "VariableDeclaration", - "scope": 2329, - "src": "2913:8:1", + "scope": 2798, + "src": "2913:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -9981,10 +9981,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2303, + "id": 2772, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2913:6:1", + "src": "2913:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -9993,17 +9993,17 @@ "visibility": "internal" } ], - "id": 2306, + "id": 2775, "initialValue": { "hexValue": "30", - "id": 2305, + "id": 2774, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2924:1:1", + "src": "2924:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -10011,11 +10011,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "2913:12:1" + "src": "2913:12:7" }, "loopExpression": { "expression": { - "id": 2312, + "id": 2781, "isConstant": false, "isLValue": false, "isPure": false, @@ -10023,14 +10023,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2943:3:1", + "src": "2943:3:7", "subExpression": { - "id": 2311, + "id": 2780, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2304, - "src": "2943:1:1", + "referencedDeclaration": 2773, + "src": "2943:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -10041,89 +10041,89 @@ "typeString": "uint32" } }, - "id": 2313, + "id": 2782, "nodeType": "ExpressionStatement", - "src": "2943:3:1" + "src": "2943:3:7" }, "nodeType": "ForStatement", - "src": "2908:128:1" + "src": "2908:128:7" }, { "expression": { "expression": { "expression": { - "id": 2330, + "id": 2799, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "3052:4:1", + "src": "3052:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenTracker_$3391", + "typeIdentifier": "t_contract$_TokenTracker_$3860", "typeString": "contract TokenTracker" } }, - "id": 2331, + "id": 2800, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC1155BatchReceived", "nodeType": "MemberAccess", - "referencedDeclaration": 2335, - "src": "3052:27:1", + "referencedDeclaration": 2804, + "src": "3052:27:7", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)" } }, - "id": 2332, + "id": 2801, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "3052:36:1", + "src": "3052:36:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "functionReturnParameters": 2302, - "id": 2333, + "functionReturnParameters": 2771, + "id": 2802, "nodeType": "Return", - "src": "3045:43:1" + "src": "3045:43:7" } ] }, "functionSelector": "bc197c81", - "id": 2335, + "id": 2804, "implemented": true, "kind": "function", "modifiers": [], "name": "onERC1155BatchReceived", - "nameLocation": "2737:22:1", + "nameLocation": "2737:22:7", "nodeType": "FunctionDefinition", "overrides": { - "id": 2299, + "id": 2768, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "2873:8:1" + "src": "2873:8:7" }, "parameters": { - "id": 2298, + "id": 2767, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2287, + "id": 2756, "mutability": "mutable", "name": "operator", - "nameLocation": "2768:8:1", + "nameLocation": "2768:8:7", "nodeType": "VariableDeclaration", - "scope": 2335, - "src": "2760:16:1", + "scope": 2804, + "src": "2760:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10131,10 +10131,10 @@ "typeString": "address" }, "typeName": { - "id": 2286, + "id": 2755, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2760:7:1", + "src": "2760:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10145,13 +10145,13 @@ }, { "constant": false, - "id": 2289, + "id": 2758, "mutability": "mutable", "name": "from", - "nameLocation": "2786:4:1", + "nameLocation": "2786:4:7", "nodeType": "VariableDeclaration", - "scope": 2335, - "src": "2778:12:1", + "scope": 2804, + "src": "2778:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10159,10 +10159,10 @@ "typeString": "address" }, "typeName": { - "id": 2288, + "id": 2757, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2778:7:1", + "src": "2778:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -10173,13 +10173,13 @@ }, { "constant": false, - "id": 2292, + "id": 2761, "mutability": "mutable", "name": "ids", - "nameLocation": "2811:3:1", + "nameLocation": "2811:3:7", "nodeType": "VariableDeclaration", - "scope": 2335, - "src": "2792:22:1", + "scope": 2804, + "src": "2792:22:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -10188,18 +10188,18 @@ }, "typeName": { "baseType": { - "id": 2290, + "id": 2759, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2792:7:1", + "src": "2792:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2291, + "id": 2760, "nodeType": "ArrayTypeName", - "src": "2792:9:1", + "src": "2792:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -10209,13 +10209,13 @@ }, { "constant": false, - "id": 2295, + "id": 2764, "mutability": "mutable", "name": "values", - "nameLocation": "2835:6:1", + "nameLocation": "2835:6:7", "nodeType": "VariableDeclaration", - "scope": 2335, - "src": "2816:25:1", + "scope": 2804, + "src": "2816:25:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -10224,18 +10224,18 @@ }, "typeName": { "baseType": { - "id": 2293, + "id": 2762, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2816:7:1", + "src": "2816:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2294, + "id": 2763, "nodeType": "ArrayTypeName", - "src": "2816:9:1", + "src": "2816:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -10245,13 +10245,13 @@ }, { "constant": false, - "id": 2297, + "id": 2766, "mutability": "mutable", "name": "data", - "nameLocation": "2858:4:1", + "nameLocation": "2858:4:7", "nodeType": "VariableDeclaration", - "scope": 2335, - "src": "2843:19:1", + "scope": 2804, + "src": "2843:19:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -10259,10 +10259,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2296, + "id": 2765, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2843:5:1", + "src": "2843:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -10271,21 +10271,21 @@ "visibility": "internal" } ], - "src": "2759:104:1" + "src": "2759:104:7" }, "returnParameters": { - "id": 2302, + "id": 2771, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2301, + "id": 2770, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2335, - "src": "2891:6:1", + "scope": 2804, + "src": "2891:6:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10293,10 +10293,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 2300, + "id": 2769, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "2891:6:1", + "src": "2891:6:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -10305,22 +10305,22 @@ "visibility": "internal" } ], - "src": "2890:8:1" + "src": "2890:8:7" }, - "scope": 3391, - "src": "2728:367:1", + "scope": 3860, + "src": "2728:367:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 3777 + 385 ], "body": { - "id": 2361, + "id": 2830, "nodeType": "Block", - "src": "3186:185:1", + "src": "3186:185:7", "statements": [ { "expression": { @@ -10328,7 +10328,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2359, + "id": 2828, "isConstant": false, "isLValue": false, "isPure": false, @@ -10338,7 +10338,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2353, + "id": 2822, "isConstant": false, "isLValue": false, "isPure": false, @@ -10348,18 +10348,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 2347, + "id": 2816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2343, + "id": 2812, "name": "interfaceID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2337, - "src": "3203:11:1", + "referencedDeclaration": 2806, + "src": "3203:11:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -10370,45 +10370,45 @@ "rightExpression": { "expression": { "expression": { - "id": 2344, + "id": 2813, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "3218:4:1", + "src": "3218:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenTracker_$3391", + "typeIdentifier": "t_contract$_TokenTracker_$3860", "typeString": "contract TokenTracker" } }, - "id": 2345, + "id": 2814, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "supportsInterface", "nodeType": "MemberAccess", - "referencedDeclaration": 2362, - "src": "3218:22:1", + "referencedDeclaration": 2831, + "src": "3218:22:7", "typeDescriptions": { "typeIdentifier": "t_function_external_pure$_t_bytes4_$returns$_t_bool_$", "typeString": "function (bytes4) pure external returns (bool)" } }, - "id": 2346, + "id": 2815, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "3218:31:1", + "src": "3218:31:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "3203:46:1", + "src": "3203:46:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10421,18 +10421,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 2352, + "id": 2821, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2348, + "id": 2817, "name": "interfaceID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2337, - "src": "3261:11:1", + "referencedDeclaration": 2806, + "src": "3261:11:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -10443,51 +10443,51 @@ "rightExpression": { "expression": { "expression": { - "id": 2349, + "id": 2818, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "3276:4:1", + "src": "3276:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenTracker_$3391", + "typeIdentifier": "t_contract$_TokenTracker_$3860", "typeString": "contract TokenTracker" } }, - "id": 2350, + "id": 2819, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC1155Received", "nodeType": "MemberAccess", - "referencedDeclaration": 2285, - "src": "3276:22:1", + "referencedDeclaration": 2754, + "src": "3276:22:7", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)" } }, - "id": 2351, + "id": 2820, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "3276:31:1", + "src": "3276:31:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "3261:46:1", + "src": "3261:46:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3203:104:1", + "src": "3203:104:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10500,18 +10500,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 2358, + "id": 2827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2354, + "id": 2823, "name": "interfaceID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2337, - "src": "3319:11:1", + "referencedDeclaration": 2806, + "src": "3319:11:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -10522,90 +10522,90 @@ "rightExpression": { "expression": { "expression": { - "id": 2355, + "id": 2824, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "3334:4:1", + "src": "3334:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenTracker_$3391", + "typeIdentifier": "t_contract$_TokenTracker_$3860", "typeString": "contract TokenTracker" } }, - "id": 2356, + "id": 2825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC721Received", "nodeType": "MemberAccess", - "referencedDeclaration": 2401, - "src": "3334:21:1", + "referencedDeclaration": 2870, + "src": "3334:21:7", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" } }, - "id": 2357, + "id": 2826, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "3334:30:1", + "src": "3334:30:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "3319:45:1", + "src": "3319:45:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3203:161:1", + "src": "3203:161:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2342, - "id": 2360, + "functionReturnParameters": 2811, + "id": 2829, "nodeType": "Return", - "src": "3196:168:1" + "src": "3196:168:7" } ] }, "functionSelector": "01ffc9a7", - "id": 2362, + "id": 2831, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", - "nameLocation": "3110:17:1", + "nameLocation": "3110:17:7", "nodeType": "FunctionDefinition", "overrides": { - "id": 2339, + "id": 2808, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "3157:8:1" + "src": "3157:8:7" }, "parameters": { - "id": 2338, + "id": 2807, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2337, + "id": 2806, "mutability": "mutable", "name": "interfaceID", - "nameLocation": "3135:11:1", + "nameLocation": "3135:11:7", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3128:18:1", + "scope": 2831, + "src": "3128:18:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10613,10 +10613,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 2336, + "id": 2805, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "3128:6:1", + "src": "3128:6:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -10625,21 +10625,21 @@ "visibility": "internal" } ], - "src": "3127:20:1" + "src": "3127:20:7" }, "returnParameters": { - "id": 2342, + "id": 2811, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2341, + "id": 2810, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3180:4:1", + "scope": 2831, + "src": "3180:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -10647,10 +10647,10 @@ "typeString": "bool" }, "typeName": { - "id": 2340, + "id": 2809, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3180:4:1", + "src": "3180:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -10659,63 +10659,63 @@ "visibility": "internal" } ], - "src": "3179:6:1" + "src": "3179:6:7" }, - "scope": 3391, - "src": "3101:270:1", + "scope": 3860, + "src": "3101:270:7", "stateMutability": "pure", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 3765 + 373 ], "body": { - "id": 2400, + "id": 2869, "nodeType": "Block", - "src": "3628:206:1", + "src": "3628:206:7", "statements": [ { "eventCall": { "arguments": [ { "expression": { - "id": 2377, + "id": 2846, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "3657:9:1", + "referencedDeclaration": 2607, + "src": "3657:9:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2138_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 2378, + "id": 2847, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ERC721", "nodeType": "MemberAccess", - "referencedDeclaration": 2135, - "src": "3657:16:1", + "referencedDeclaration": 2604, + "src": "3657:16:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { "hexValue": "31", - "id": 2379, + "id": 2848, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3675:1:1", + "src": "3675:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -10723,12 +10723,12 @@ "value": "1" }, { - "id": 2380, + "id": 2849, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2366, - "src": "3678:4:1", + "referencedDeclaration": 2835, + "src": "3678:4:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -10736,61 +10736,61 @@ }, { "expression": { - "id": 2381, + "id": 2850, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "3684:3:1", + "src": "3684:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2382, + "id": 2851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "3684:10:1", + "src": "3684:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2383, + "id": 2852, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2364, - "src": "3696:8:1", + "referencedDeclaration": 2833, + "src": "3696:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2384, + "id": 2853, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2368, - "src": "3706:7:1", + "referencedDeclaration": 2837, + "src": "3706:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2385, + "id": 2854, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2370, - "src": "3715:4:1", + "referencedDeclaration": 2839, + "src": "3715:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -10800,7 +10800,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -10828,18 +10828,18 @@ "typeString": "bytes calldata" } ], - "id": 2376, + "id": 2845, "name": "ReceivedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2155, - "src": "3643:13:1", + "referencedDeclaration": 2624, + "src": "3643:13:7", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2138_$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,uint256,address,address,address,uint256,bytes memory)" } }, - "id": 2386, + "id": 2855, "isConstant": false, "isLValue": false, "isPure": false, @@ -10847,80 +10847,80 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3643:77:1", + "src": "3643:77:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2387, + "id": 2856, "nodeType": "EmitStatement", - "src": "3638:82:1" + "src": "3638:82:7" }, { "expression": { "arguments": [ { "expression": { - "id": 2389, + "id": 2858, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "3742:9:1", + "referencedDeclaration": 2607, + "src": "3742:9:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2138_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 2390, + "id": 2859, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ERC721", "nodeType": "MemberAccess", - "referencedDeclaration": 2135, - "src": "3742:16:1", + "referencedDeclaration": 2604, + "src": "3742:16:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { "expression": { - "id": 2391, + "id": 2860, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "3760:3:1", + "src": "3760:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2392, + "id": 2861, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "3760:10:1", + "src": "3760:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2393, + "id": 2862, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2368, - "src": "3772:7:1", + "referencedDeclaration": 2837, + "src": "3772:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -10930,7 +10930,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -10942,18 +10942,18 @@ "typeString": "uint256" } ], - "id": 2388, + "id": 2857, "name": "_trackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "3730:11:1", + "referencedDeclaration": 3089, + "src": "3730:11:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2138_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 2394, + "id": 2863, "isConstant": false, "isLValue": false, "isPure": false, @@ -10961,93 +10961,93 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3730:50:1", + "src": "3730:50:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2395, + "id": 2864, "nodeType": "ExpressionStatement", - "src": "3730:50:1" + "src": "3730:50:7" }, { "expression": { "expression": { "expression": { - "id": 2396, + "id": 2865, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "3797:4:1", + "src": "3797:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenTracker_$3391", + "typeIdentifier": "t_contract$_TokenTracker_$3860", "typeString": "contract TokenTracker" } }, - "id": 2397, + "id": 2866, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC721Received", "nodeType": "MemberAccess", - "referencedDeclaration": 2401, - "src": "3797:21:1", + "referencedDeclaration": 2870, + "src": "3797:21:7", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" } }, - "id": 2398, + "id": 2867, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "3797:30:1", + "src": "3797:30:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "functionReturnParameters": 2375, - "id": 2399, + "functionReturnParameters": 2844, + "id": 2868, "nodeType": "Return", - "src": "3790:37:1" + "src": "3790:37:7" } ] }, "functionSelector": "150b7a02", - "id": 2401, + "id": 2870, "implemented": true, "kind": "function", "modifiers": [], "name": "onERC721Received", - "nameLocation": "3469:16:1", + "nameLocation": "3469:16:7", "nodeType": "FunctionDefinition", "overrides": { - "id": 2372, + "id": 2841, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "3603:8:1" + "src": "3603:8:7" }, "parameters": { - "id": 2371, + "id": 2840, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2364, + "id": 2833, "mutability": "mutable", "name": "operator", - "nameLocation": "3503:8:1", + "nameLocation": "3503:8:7", "nodeType": "VariableDeclaration", - "scope": 2401, - "src": "3495:16:1", + "scope": 2870, + "src": "3495:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11055,10 +11055,10 @@ "typeString": "address" }, "typeName": { - "id": 2363, + "id": 2832, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3495:7:1", + "src": "3495:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11069,13 +11069,13 @@ }, { "constant": false, - "id": 2366, + "id": 2835, "mutability": "mutable", "name": "from", - "nameLocation": "3529:4:1", + "nameLocation": "3529:4:7", "nodeType": "VariableDeclaration", - "scope": 2401, - "src": "3521:12:1", + "scope": 2870, + "src": "3521:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11083,10 +11083,10 @@ "typeString": "address" }, "typeName": { - "id": 2365, + "id": 2834, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3521:7:1", + "src": "3521:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -11097,13 +11097,13 @@ }, { "constant": false, - "id": 2368, + "id": 2837, "mutability": "mutable", "name": "tokenId", - "nameLocation": "3551:7:1", + "nameLocation": "3551:7:7", "nodeType": "VariableDeclaration", - "scope": 2401, - "src": "3543:15:1", + "scope": 2870, + "src": "3543:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11111,10 +11111,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2367, + "id": 2836, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3543:7:1", + "src": "3543:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11124,13 +11124,13 @@ }, { "constant": false, - "id": 2370, + "id": 2839, "mutability": "mutable", "name": "data", - "nameLocation": "3583:4:1", + "nameLocation": "3583:4:7", "nodeType": "VariableDeclaration", - "scope": 2401, - "src": "3568:19:1", + "scope": 2870, + "src": "3568:19:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -11138,10 +11138,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2369, + "id": 2838, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3568:5:1", + "src": "3568:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -11150,21 +11150,21 @@ "visibility": "internal" } ], - "src": "3485:108:1" + "src": "3485:108:7" }, "returnParameters": { - "id": 2375, + "id": 2844, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2374, + "id": 2843, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2401, - "src": "3621:6:1", + "scope": 2870, + "src": "3621:6:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -11172,10 +11172,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 2373, + "id": 2842, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "3621:6:1", + "src": "3621:6:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -11184,93 +11184,93 @@ "visibility": "internal" } ], - "src": "3620:8:1" + "src": "3620:8:7" }, - "scope": 3391, - "src": "3460:374:1", + "scope": 3860, + "src": "3460:374:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 2496, + "id": 2965, "nodeType": "Block", - "src": "3946:546:1", + "src": "3946:546:7", "statements": [ { "assignments": [ - 2418 + 2887 ], "declarations": [ { "constant": false, - "id": 2418, + "id": 2887, "mutability": "mutable", "name": "tokenTypes", - "nameLocation": "3975:10:1", + "nameLocation": "3975:10:7", "nodeType": "VariableDeclaration", - "scope": 2496, - "src": "3956:29:1", + "scope": 2965, + "src": "3956:29:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr", "typeString": "enum TokenTracker.TokenType[]" }, "typeName": { "baseType": { - "id": 2416, + "id": 2885, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2415, + "id": 2884, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "3956:9:1" + "referencedDeclaration": 2607, + "src": "3956:9:7" }, - "referencedDeclaration": 2138, - "src": "3956:9:1", + "referencedDeclaration": 2607, + "src": "3956:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "id": 2417, + "id": 2886, "nodeType": "ArrayTypeName", - "src": "3956:11:1", + "src": "3956:11:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_storage_ptr", "typeString": "enum TokenTracker.TokenType[]" } }, "visibility": "internal" } ], - "id": 2426, + "id": 2895, "initialValue": { "arguments": [ { "expression": { - "id": 2423, + "id": 2892, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4004:13:1", + "referencedDeclaration": 2709, + "src": "4004:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2424, + "id": 2893, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "4004:20:1", + "src": "4004:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11284,45 +11284,45 @@ "typeString": "uint256" } ], - "id": 2422, + "id": 2891, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3988:15:1", + "src": "3988:15:7", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (enum TokenTracker.TokenType[] memory)" }, "typeName": { "baseType": { - "id": 2420, + "id": 2889, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2419, + "id": 2888, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "3992:9:1" + "referencedDeclaration": 2607, + "src": "3992:9:7" }, - "referencedDeclaration": 2138, - "src": "3992:9:1", + "referencedDeclaration": 2607, + "src": "3992:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "id": 2421, + "id": 2890, "nodeType": "ArrayTypeName", - "src": "3992:11:1", + "src": "3992:11:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_storage_ptr", "typeString": "enum TokenTracker.TokenType[]" } } }, - "id": 2425, + "id": 2894, "isConstant": false, "isLValue": false, "isPure": false, @@ -11330,30 +11330,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3988:37:1", + "src": "3988:37:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr", "typeString": "enum TokenTracker.TokenType[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "3956:69:1" + "src": "3956:69:7" }, { "assignments": [ - 2431 + 2900 ], "declarations": [ { "constant": false, - "id": 2431, + "id": 2900, "mutability": "mutable", "name": "contractAddresses", - "nameLocation": "4052:17:1", + "nameLocation": "4052:17:7", "nodeType": "VariableDeclaration", - "scope": 2496, - "src": "4035:34:1", + "scope": 2965, + "src": "4035:34:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -11362,18 +11362,18 @@ }, "typeName": { "baseType": { - "id": 2429, + "id": 2898, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4035:7:1", + "src": "4035:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2430, + "id": 2899, "nodeType": "ArrayTypeName", - "src": "4035:9:1", + "src": "4035:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -11382,30 +11382,30 @@ "visibility": "internal" } ], - "id": 2438, + "id": 2907, "initialValue": { "arguments": [ { "expression": { - "id": 2435, + "id": 2904, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4086:13:1", + "referencedDeclaration": 2709, + "src": "4086:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2436, + "id": 2905, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "4086:20:1", + "src": "4086:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11419,39 +11419,39 @@ "typeString": "uint256" } ], - "id": 2434, + "id": 2903, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4072:13:1", + "src": "4072:13:7", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 2432, + "id": 2901, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4076:7:1", + "src": "4076:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2433, + "id": 2902, "nodeType": "ArrayTypeName", - "src": "4076:9:1", + "src": "4076:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 2437, + "id": 2906, "isConstant": false, "isLValue": false, "isPure": false, @@ -11459,7 +11459,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4072:35:1", + "src": "4072:35:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", @@ -11467,22 +11467,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4035:72:1" + "src": "4035:72:7" }, { "assignments": [ - 2443 + 2912 ], "declarations": [ { "constant": false, - "id": 2443, + "id": 2912, "mutability": "mutable", "name": "tokenIds", - "nameLocation": "4134:8:1", + "nameLocation": "4134:8:7", "nodeType": "VariableDeclaration", - "scope": 2496, - "src": "4117:25:1", + "scope": 2965, + "src": "4117:25:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -11491,18 +11491,18 @@ }, "typeName": { "baseType": { - "id": 2441, + "id": 2910, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4117:7:1", + "src": "4117:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2442, + "id": 2911, "nodeType": "ArrayTypeName", - "src": "4117:9:1", + "src": "4117:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -11511,30 +11511,30 @@ "visibility": "internal" } ], - "id": 2450, + "id": 2919, "initialValue": { "arguments": [ { "expression": { - "id": 2447, + "id": 2916, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4159:13:1", + "referencedDeclaration": 2709, + "src": "4159:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2448, + "id": 2917, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "4159:20:1", + "src": "4159:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11548,38 +11548,38 @@ "typeString": "uint256" } ], - "id": 2446, + "id": 2915, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4145:13:1", + "src": "4145:13:7", "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": 2444, + "id": 2913, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4149:7:1", + "src": "4149:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2445, + "id": 2914, "nodeType": "ArrayTypeName", - "src": "4149:9:1", + "src": "4149:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 2449, + "id": 2918, "isConstant": false, "isLValue": false, "isPure": false, @@ -11587,7 +11587,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4145:35:1", + "src": "4145:35:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", @@ -11595,42 +11595,42 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4117:63:1" + "src": "4117:63:7" }, { "body": { - "id": 2489, + "id": 2958, "nodeType": "Block", - "src": "4240:188:1", + "src": "4240:188:7", "statements": [ { "expression": { - "id": 2469, + "id": 2938, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2462, + "id": 2931, "name": "tokenTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4254:10:1", + "referencedDeclaration": 2887, + "src": "4254:10:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr", "typeString": "enum TokenTracker.TokenType[] memory" } }, - "id": 2464, + "id": 2933, "indexExpression": { - "id": 2463, + "id": 2932, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4265:1:1", + "referencedDeclaration": 2921, + "src": "4265:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11641,9 +11641,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4254:13:1", + "src": "4254:13:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -11652,25 +11652,25 @@ "rightHandSide": { "expression": { "baseExpression": { - "id": 2465, + "id": 2934, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4270:13:1", + "referencedDeclaration": 2709, + "src": "4270:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2467, + "id": 2936, "indexExpression": { - "id": 2466, + "id": 2935, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4284:1:1", + "referencedDeclaration": 2921, + "src": "4284:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11681,64 +11681,64 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4270:16:1", + "src": "4270:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2468, + "id": 2937, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenType", "nodeType": "MemberAccess", - "referencedDeclaration": 2226, - "src": "4270:26:1", + "referencedDeclaration": 2695, + "src": "4270:26:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "src": "4254:42:1", + "src": "4254:42:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "id": 2470, + "id": 2939, "nodeType": "ExpressionStatement", - "src": "4254:42:1" + "src": "4254:42:7" }, { "expression": { - "id": 2478, + "id": 2947, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2471, + "id": 2940, "name": "contractAddresses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2431, - "src": "4310:17:1", + "referencedDeclaration": 2900, + "src": "4310:17:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2473, + "id": 2942, "indexExpression": { - "id": 2472, + "id": 2941, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4328:1:1", + "referencedDeclaration": 2921, + "src": "4328:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11749,7 +11749,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4310:20:1", + "src": "4310:20:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -11760,25 +11760,25 @@ "rightHandSide": { "expression": { "baseExpression": { - "id": 2474, + "id": 2943, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4333:13:1", + "referencedDeclaration": 2709, + "src": "4333:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2476, + "id": 2945, "indexExpression": { - "id": 2475, + "id": 2944, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4347:1:1", + "referencedDeclaration": 2921, + "src": "4347:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11789,64 +11789,64 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4333:16:1", + "src": "4333:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2477, + "id": 2946, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contractAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 2228, - "src": "4333:32:1", + "referencedDeclaration": 2697, + "src": "4333:32:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4310:55:1", + "src": "4310:55:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2479, + "id": 2948, "nodeType": "ExpressionStatement", - "src": "4310:55:1" + "src": "4310:55:7" }, { "expression": { - "id": 2487, + "id": 2956, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2480, + "id": 2949, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2443, - "src": "4379:8:1", + "referencedDeclaration": 2912, + "src": "4379:8:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 2482, + "id": 2951, "indexExpression": { - "id": 2481, + "id": 2950, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4388:1:1", + "referencedDeclaration": 2921, + "src": "4388:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11857,7 +11857,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4379:11:1", + "src": "4379:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -11868,25 +11868,25 @@ "rightHandSide": { "expression": { "baseExpression": { - "id": 2483, + "id": 2952, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4393:13:1", + "referencedDeclaration": 2709, + "src": "4393:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2485, + "id": 2954, "indexExpression": { - "id": 2484, + "id": 2953, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4407:1:1", + "referencedDeclaration": 2921, + "src": "4407:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11897,35 +11897,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4393:16:1", + "src": "4393:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2486, + "id": 2955, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenId", "nodeType": "MemberAccess", - "referencedDeclaration": 2230, - "src": "4393:24:1", + "referencedDeclaration": 2699, + "src": "4393:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4379:38:1", + "src": "4379:38:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2488, + "id": 2957, "nodeType": "ExpressionStatement", - "src": "4379:38:1" + "src": "4379:38:7" } ] }, @@ -11934,18 +11934,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2458, + "id": 2927, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2455, + "id": 2924, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4209:1:1", + "referencedDeclaration": 2921, + "src": "4209:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -11955,51 +11955,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2456, + "id": 2925, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4213:13:1", + "referencedDeclaration": 2709, + "src": "4213:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2457, + "id": 2926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "4213:20:1", + "src": "4213:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4209:24:1", + "src": "4209:24:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2490, + "id": 2959, "initializationExpression": { "assignments": [ - 2452 + 2921 ], "declarations": [ { "constant": false, - "id": 2452, + "id": 2921, "mutability": "mutable", "name": "i", - "nameLocation": "4202:1:1", + "nameLocation": "4202:1:7", "nodeType": "VariableDeclaration", - "scope": 2490, - "src": "4195:8:1", + "scope": 2959, + "src": "4195:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12007,10 +12007,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2451, + "id": 2920, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4195:6:1", + "src": "4195:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -12019,17 +12019,17 @@ "visibility": "internal" } ], - "id": 2454, + "id": 2923, "initialValue": { "hexValue": "30", - "id": 2453, + "id": 2922, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4206:1:1", + "src": "4206:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -12037,11 +12037,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4195:12:1" + "src": "4195:12:7" }, "loopExpression": { "expression": { - "id": 2460, + "id": 2929, "isConstant": false, "isLValue": false, "isPure": false, @@ -12049,14 +12049,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4235:3:1", + "src": "4235:3:7", "subExpression": { - "id": 2459, + "id": 2928, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4235:1:1", + "referencedDeclaration": 2921, + "src": "4235:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -12067,129 +12067,129 @@ "typeString": "uint32" } }, - "id": 2461, + "id": 2930, "nodeType": "ExpressionStatement", - "src": "4235:3:1" + "src": "4235:3:7" }, "nodeType": "ForStatement", - "src": "4190:238:1" + "src": "4190:238:7" }, { "expression": { "components": [ { - "id": 2491, + "id": 2960, "name": "tokenTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4445:10:1", + "referencedDeclaration": 2887, + "src": "4445:10:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr", "typeString": "enum TokenTracker.TokenType[] memory" } }, { - "id": 2492, + "id": 2961, "name": "contractAddresses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2431, - "src": "4457:17:1", + "referencedDeclaration": 2900, + "src": "4457:17:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, { - "id": 2493, + "id": 2962, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2443, - "src": "4476:8:1", + "referencedDeclaration": 2912, + "src": "4476:8:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } } ], - "id": 2494, + "id": 2963, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4444:41:1", + "src": "4444:41:7", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeIdentifier": "t_tuple$_t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", "typeString": "tuple(enum TokenTracker.TokenType[] memory,address[] memory,uint256[] memory)" } }, - "functionReturnParameters": 2413, - "id": 2495, + "functionReturnParameters": 2882, + "id": 2964, "nodeType": "Return", - "src": "4437:48:1" + "src": "4437:48:7" } ] }, "functionSelector": "695def4c", - "id": 2497, + "id": 2966, "implemented": true, "kind": "function", "modifiers": [], "name": "getTrackedTokens", - "nameLocation": "3849:16:1", + "nameLocation": "3849:16:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 2402, + "id": 2871, "nodeType": "ParameterList", "parameters": [], - "src": "3865:2:1" + "src": "3865:2:7" }, "returnParameters": { - "id": 2413, + "id": 2882, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2406, + "id": 2875, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2497, - "src": "3891:18:1", + "scope": 2966, + "src": "3891:18:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr", "typeString": "enum TokenTracker.TokenType[]" }, "typeName": { "baseType": { - "id": 2404, + "id": 2873, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2403, + "id": 2872, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "3891:9:1" + "referencedDeclaration": 2607, + "src": "3891:9:7" }, - "referencedDeclaration": 2138, - "src": "3891:9:1", + "referencedDeclaration": 2607, + "src": "3891:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "id": 2405, + "id": 2874, "nodeType": "ArrayTypeName", - "src": "3891:11:1", + "src": "3891:11:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_storage_ptr", "typeString": "enum TokenTracker.TokenType[]" } }, @@ -12197,13 +12197,13 @@ }, { "constant": false, - "id": 2409, + "id": 2878, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2497, - "src": "3911:16:1", + "scope": 2966, + "src": "3911:16:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -12212,19 +12212,19 @@ }, "typeName": { "baseType": { - "id": 2407, + "id": 2876, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3911:7:1", + "src": "3911:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2408, + "id": 2877, "nodeType": "ArrayTypeName", - "src": "3911:9:1", + "src": "3911:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -12234,13 +12234,13 @@ }, { "constant": false, - "id": 2412, + "id": 2881, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2497, - "src": "3929:16:1", + "scope": 2966, + "src": "3929:16:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -12249,18 +12249,18 @@ }, "typeName": { "baseType": { - "id": 2410, + "id": 2879, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3929:7:1", + "src": "3929:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2411, + "id": 2880, "nodeType": "ArrayTypeName", - "src": "3929:9:1", + "src": "3929:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -12269,34 +12269,34 @@ "visibility": "internal" } ], - "src": "3890:56:1" + "src": "3890:56:7" }, - "scope": 3391, - "src": "3840:652:1", + "scope": 3860, + "src": "3840:652:7", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 2619, + "id": 3088, "nodeType": "Block", - "src": "4593:937:1", + "src": "4593:937:7", "statements": [ { "assignments": [ - 2508 + 2977 ], "declarations": [ { "constant": false, - "id": 2508, + "id": 2977, "mutability": "mutable", "name": "key", - "nameLocation": "4611:3:1", + "nameLocation": "4611:3:7", "nodeType": "VariableDeclaration", - "scope": 2619, - "src": "4603:11:1", + "scope": 3088, + "src": "4603:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12304,10 +12304,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2507, + "id": 2976, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4603:7:1", + "src": "4603:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12316,7 +12316,7 @@ "visibility": "internal" } ], - "id": 2533, + "id": 3002, "initialValue": { "arguments": [ { @@ -12326,14 +12326,14 @@ { "arguments": [ { - "id": 2517, + "id": 2986, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2500, - "src": "4656:9:1", + "referencedDeclaration": 2969, + "src": "4656:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } } @@ -12341,30 +12341,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } ], - "id": 2516, + "id": 2985, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4648:7:1", + "src": "4648:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 2515, + "id": 2984, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4648:7:1", + "src": "4648:7:7", "typeDescriptions": {} } }, - "id": 2518, + "id": 2987, "isConstant": false, "isLValue": false, "isPure": false, @@ -12372,7 +12372,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4648:18:1", + "src": "4648:18:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -12387,26 +12387,26 @@ "typeString": "uint256" } ], - "id": 2514, + "id": 2983, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4640:7:1", + "src": "4640:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2513, + "id": 2982, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4640:7:1", + "src": "4640:7:7", "typeDescriptions": {} } }, - "id": 2519, + "id": 2988, "isConstant": false, "isLValue": false, "isPure": false, @@ -12414,7 +12414,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4640:27:1", + "src": "4640:27:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -12426,12 +12426,12 @@ { "arguments": [ { - "id": 2524, + "id": 2993, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2502, - "src": "4685:15:1", + "referencedDeclaration": 2971, + "src": "4685:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -12445,26 +12445,26 @@ "typeString": "address" } ], - "id": 2523, + "id": 2992, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4677:7:1", + "src": "4677:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 2522, + "id": 2991, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "4677:7:1", + "src": "4677:7:7", "typeDescriptions": {} } }, - "id": 2525, + "id": 2994, "isConstant": false, "isLValue": false, "isPure": false, @@ -12472,7 +12472,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4677:24:1", + "src": "4677:24:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -12487,26 +12487,26 @@ "typeString": "bytes20" } ], - "id": 2521, + "id": 2990, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4669:7:1", + "src": "4669:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2520, + "id": 2989, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4669:7:1", + "src": "4669:7:7", "typeDescriptions": {} } }, - "id": 2526, + "id": 2995, "isConstant": false, "isLValue": false, "isPure": false, @@ -12514,7 +12514,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4669:33:1", + "src": "4669:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -12524,12 +12524,12 @@ { "arguments": [ { - "id": 2529, + "id": 2998, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "4712:7:1", + "referencedDeclaration": 2973, + "src": "4712:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12543,26 +12543,26 @@ "typeString": "uint256" } ], - "id": 2528, + "id": 2997, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4704:7:1", + "src": "4704:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2527, + "id": 2996, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4704:7:1", + "src": "4704:7:7", "typeDescriptions": {} } }, - "id": 2530, + "id": 2999, "isConstant": false, "isLValue": false, "isPure": false, @@ -12570,7 +12570,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4704:16:1", + "src": "4704:16:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -12594,39 +12594,39 @@ } ], "expression": { - "id": 2511, + "id": 2980, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4627:5:1", + "src": "4627:5:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2510, + "id": 2979, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4627:5:1", + "src": "4627:5:7", "typeDescriptions": {} } }, - "id": 2512, + "id": 2981, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "4627:12:1", + "src": "4627:12:7", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2531, + "id": 3000, "isConstant": false, "isLValue": false, "isPure": false, @@ -12634,7 +12634,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4627:94:1", + "src": "4627:94:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -12649,18 +12649,18 @@ "typeString": "bytes memory" } ], - "id": 2509, + "id": 2978, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "4617:9:1", + "src": "4617:9:7", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2532, + "id": 3001, "isConstant": false, "isLValue": false, "isPure": false, @@ -12668,7 +12668,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4617:105:1", + "src": "4617:105:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -12676,7 +12676,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4603:119:1" + "src": "4603:119:7" }, { "condition": { @@ -12684,7 +12684,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2539, + "id": 3008, "isConstant": false, "isLValue": false, "isPure": false, @@ -12692,25 +12692,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2534, + "id": 3003, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "4736:21:1", + "referencedDeclaration": 2705, + "src": "4736:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2536, + "id": 3005, "indexExpression": { - "id": 2535, + "id": 3004, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2508, - "src": "4758:3:1", + "referencedDeclaration": 2977, + "src": "4758:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12721,20 +12721,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4736:26:1", + "src": "4736:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2537, + "id": 3006, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "4736:33:1", + "src": "4736:33:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12744,54 +12744,54 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2538, + "id": 3007, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4772:1:1", + "src": "4772:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4736:37:1", + "src": "4736:37:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2589, + "id": 3058, "nodeType": "IfStatement", - "src": "4732:549:1", + "src": "4732:549:7", "trueBody": { - "id": 2588, + "id": 3057, "nodeType": "Block", - "src": "4775:506:1", + "src": "4775:506:7", "statements": [ { "body": { - "id": 2586, + "id": 3055, "nodeType": "Block", - "src": "4852:419:1", + "src": "4852:419:7", "statements": [ { "assignments": [ - 2554 + 3023 ], "declarations": [ { "constant": false, - "id": 2554, + "id": 3023, "mutability": "mutable", "name": "j", - "nameLocation": "4878:1:1", + "nameLocation": "4878:1:7", "nodeType": "VariableDeclaration", - "scope": 2586, - "src": "4870:9:1", + "scope": 3055, + "src": "4870:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -12799,10 +12799,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2553, + "id": 3022, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4870:7:1", + "src": "4870:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12811,29 +12811,29 @@ "visibility": "internal" } ], - "id": 2560, + "id": 3029, "initialValue": { "baseExpression": { "baseExpression": { - "id": 2555, + "id": 3024, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "4882:21:1", + "referencedDeclaration": 2705, + "src": "4882:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2557, + "id": 3026, "indexExpression": { - "id": 2556, + "id": 3025, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2508, - "src": "4904:3:1", + "referencedDeclaration": 2977, + "src": "4904:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -12844,20 +12844,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4882:26:1", + "src": "4882:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2559, + "id": 3028, "indexExpression": { - "id": 2558, + "id": 3027, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2541, - "src": "4909:1:1", + "referencedDeclaration": 3010, + "src": "4909:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -12868,22 +12868,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4882:29:1", + "src": "4882:29:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4870:41:1" + "src": "4870:41:7" }, { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, - "id": 2566, + "id": 3035, "isConstant": false, "isLValue": false, "isPure": false, @@ -12891,25 +12891,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2561, + "id": 3030, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4933:13:1", + "referencedDeclaration": 2709, + "src": "4933:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2563, + "id": 3032, "indexExpression": { - "id": 2562, + "id": 3031, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, - "src": "4947:1:1", + "referencedDeclaration": 3023, + "src": "4947:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -12920,53 +12920,53 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4933:16:1", + "src": "4933:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2564, + "id": 3033, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenType", "nodeType": "MemberAccess", - "referencedDeclaration": 2226, - "src": "4933:26:1", + "referencedDeclaration": 2695, + "src": "4933:26:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 2565, + "id": 3034, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2500, - "src": "4963:9:1", + "referencedDeclaration": 2969, + "src": "4963:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "src": "4933:39:1", + "src": "4933:39:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2568, + "id": 3037, "nodeType": "IfStatement", - "src": "4929:53:1", + "src": "4929:53:7", "trueBody": { - "id": 2567, + "id": 3036, "nodeType": "Continue", - "src": "4974:8:1" + "src": "4974:8:7" } }, { @@ -12975,7 +12975,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2574, + "id": 3043, "isConstant": false, "isLValue": false, "isPure": false, @@ -12983,25 +12983,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2569, + "id": 3038, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "5004:13:1", + "referencedDeclaration": 2709, + "src": "5004:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2571, + "id": 3040, "indexExpression": { - "id": 2570, + "id": 3039, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, - "src": "5018:1:1", + "referencedDeclaration": 3023, + "src": "5018:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13012,21 +13012,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5004:16:1", + "src": "5004:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2572, + "id": 3041, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenId", "nodeType": "MemberAccess", - "referencedDeclaration": 2230, - "src": "5004:24:1", + "referencedDeclaration": 2699, + "src": "5004:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13035,30 +13035,30 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 2573, + "id": 3042, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "5032:7:1", + "referencedDeclaration": 2973, + "src": "5032:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5004:35:1", + "src": "5004:35:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2576, + "id": 3045, "nodeType": "IfStatement", - "src": "5000:49:1", + "src": "5000:49:7", "trueBody": { - "id": 2575, + "id": 3044, "nodeType": "Continue", - "src": "5041:8:1" + "src": "5041:8:7" } }, { @@ -13067,7 +13067,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2582, + "id": 3051, "isConstant": false, "isLValue": false, "isPure": false, @@ -13075,25 +13075,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2577, + "id": 3046, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "5071:13:1", + "referencedDeclaration": 2709, + "src": "5071:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2579, + "id": 3048, "indexExpression": { - "id": 2578, + "id": 3047, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, - "src": "5085:1:1", + "referencedDeclaration": 3023, + "src": "5085:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13104,21 +13104,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5071:16:1", + "src": "5071:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2580, + "id": 3049, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contractAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 2228, - "src": "5071:32:1", + "referencedDeclaration": 2697, + "src": "5071:32:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -13127,37 +13127,37 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 2581, + "id": 3050, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2502, - "src": "5107:15:1", + "referencedDeclaration": 2971, + "src": "5107:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5071:51:1", + "src": "5071:51:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2584, + "id": 3053, "nodeType": "IfStatement", - "src": "5067:65:1", + "src": "5067:65:7", "trueBody": { - "id": 2583, + "id": 3052, "nodeType": "Continue", - "src": "5124:8:1" + "src": "5124:8:7" } }, { - "functionReturnParameters": 2506, - "id": 2585, + "functionReturnParameters": 2975, + "id": 3054, "nodeType": "Return", - "src": "5250:7:1" + "src": "5250:7:7" } ] }, @@ -13166,18 +13166,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2549, + "id": 3018, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2544, + "id": 3013, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2541, - "src": "4808:1:1", + "referencedDeclaration": 3010, + "src": "4808:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13188,25 +13188,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 2545, + "id": 3014, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "4812:21:1", + "referencedDeclaration": 2705, + "src": "4812:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2547, + "id": 3016, "indexExpression": { - "id": 2546, + "id": 3015, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2508, - "src": "4834:3:1", + "referencedDeclaration": 2977, + "src": "4834:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13217,46 +13217,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4812:26:1", + "src": "4812:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2548, + "id": 3017, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "4812:33:1", + "src": "4812:33:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4808:37:1", + "src": "4808:37:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2587, + "id": 3056, "initializationExpression": { "assignments": [ - 2541 + 3010 ], "declarations": [ { "constant": false, - "id": 2541, + "id": 3010, "mutability": "mutable", "name": "i", - "nameLocation": "4801:1:1", + "nameLocation": "4801:1:7", "nodeType": "VariableDeclaration", - "scope": 2587, - "src": "4794:8:1", + "scope": 3056, + "src": "4794:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13264,10 +13264,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2540, + "id": 3009, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4794:6:1", + "src": "4794:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13276,17 +13276,17 @@ "visibility": "internal" } ], - "id": 2543, + "id": 3012, "initialValue": { "hexValue": "30", - "id": 2542, + "id": 3011, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4805:1:1", + "src": "4805:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -13294,11 +13294,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4794:12:1" + "src": "4794:12:7" }, "loopExpression": { "expression": { - "id": 2551, + "id": 3020, "isConstant": false, "isLValue": false, "isPure": false, @@ -13306,14 +13306,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4847:3:1", + "src": "4847:3:7", "subExpression": { - "id": 2550, + "id": 3019, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2541, - "src": "4847:1:1", + "referencedDeclaration": 3010, + "src": "4847:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -13324,90 +13324,90 @@ "typeString": "uint32" } }, - "id": 2552, + "id": 3021, "nodeType": "ExpressionStatement", - "src": "4847:3:1" + "src": "4847:3:7" }, "nodeType": "ForStatement", - "src": "4789:482:1" + "src": "4789:482:7" } ] } }, { "assignments": [ - 2592 + 3061 ], "declarations": [ { "constant": false, - "id": 2592, + "id": 3061, "mutability": "mutable", "name": "tt", - "nameLocation": "5310:2:1", + "nameLocation": "5310:2:7", "nodeType": "VariableDeclaration", - "scope": 2619, - "src": "5290:22:1", + "scope": 3088, + "src": "5290:22:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken" }, "typeName": { - "id": 2591, + "id": 3060, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2590, + "id": 3059, "name": "TrackedToken", "nodeType": "IdentifierPath", - "referencedDeclaration": 2231, - "src": "5290:12:1" + "referencedDeclaration": 2700, + "src": "5290:12:7" }, - "referencedDeclaration": 2231, - "src": "5290:12:1", + "referencedDeclaration": 2700, + "src": "5290:12:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage_ptr", "typeString": "struct TokenTracker.TrackedToken" } }, "visibility": "internal" } ], - "id": 2598, + "id": 3067, "initialValue": { "arguments": [ { - "id": 2594, + "id": 3063, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2500, - "src": "5328:9:1", + "referencedDeclaration": 2969, + "src": "5328:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 2595, + "id": 3064, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2502, - "src": "5339:15:1", + "referencedDeclaration": 2971, + "src": "5339:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2596, + "id": 3065, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "5356:7:1", + "referencedDeclaration": 2973, + "src": "5356:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13417,7 +13417,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -13429,18 +13429,18 @@ "typeString": "uint256" } ], - "id": 2593, + "id": 3062, "name": "TrackedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2231, - "src": "5315:12:1", + "referencedDeclaration": 2700, + "src": "5315:12:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_TrackedToken_$2231_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_TrackedToken_$2700_storage_ptr_$", "typeString": "type(struct TokenTracker.TrackedToken storage pointer)" } }, - "id": 2597, + "id": 3066, "isConstant": false, "isLValue": false, "isPure": false, @@ -13448,40 +13448,40 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5315:49:1", + "src": "5315:49:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5290:74:1" + "src": "5290:74:7" }, { "expression": { "arguments": [ { "expression": { - "id": 2603, + "id": 3072, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "5406:13:1", + "referencedDeclaration": 2709, + "src": "5406:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2604, + "id": 3073, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "5406:20:1", + "src": "5406:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13497,25 +13497,25 @@ ], "expression": { "baseExpression": { - "id": 2599, + "id": 3068, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "5374:21:1", + "referencedDeclaration": 2705, + "src": "5374:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2601, + "id": 3070, "indexExpression": { - "id": 2600, + "id": 3069, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2508, - "src": "5396:3:1", + "referencedDeclaration": 2977, + "src": "5396:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13526,26 +13526,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5374:26:1", + "src": "5374:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2602, + "id": 3071, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "5374:31:1", + "src": "5374:31:7", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$", "typeString": "function (uint256[] storage pointer,uint256)" } }, - "id": 2605, + "id": 3074, "isConstant": false, "isLValue": false, "isPure": false, @@ -13553,29 +13553,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5374:53:1", + "src": "5374:53:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2606, + "id": 3075, "nodeType": "ExpressionStatement", - "src": "5374:53:1" + "src": "5374:53:7" }, { "expression": { "arguments": [ { - "id": 2610, + "id": 3079, "name": "tt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2592, - "src": "5456:2:1", + "referencedDeclaration": 3061, + "src": "5456:2:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } } @@ -13583,36 +13583,36 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } ], "expression": { - "id": 2607, + "id": 3076, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "5437:13:1", + "referencedDeclaration": 2709, + "src": "5437:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2609, + "id": 3078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "5437:18:1", + "src": "5437:18:7", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr_$_t_struct$_TrackedToken_$2231_storage_$returns$__$bound_to$_t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr_$", + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr_$_t_struct$_TrackedToken_$2700_storage_$returns$__$bound_to$_t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr_$", "typeString": "function (struct TokenTracker.TrackedToken storage ref[] storage pointer,struct TokenTracker.TrackedToken storage ref)" } }, - "id": 2611, + "id": 3080, "isConstant": false, "isLValue": false, "isPure": false, @@ -13620,51 +13620,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5437:22:1", + "src": "5437:22:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2612, + "id": 3081, "nodeType": "ExpressionStatement", - "src": "5437:22:1" + "src": "5437:22:7" }, { "eventCall": { "arguments": [ { - "id": 2614, + "id": 3083, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2500, - "src": "5487:9:1", + "referencedDeclaration": 2969, + "src": "5487:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 2615, + "id": 3084, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2502, - "src": "5498:15:1", + "referencedDeclaration": 2971, + "src": "5498:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2616, + "id": 3085, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "5515:7:1", + "referencedDeclaration": 2973, + "src": "5515:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13674,7 +13674,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -13686,18 +13686,18 @@ "typeString": "uint256" } ], - "id": 2613, + "id": 3082, "name": "TokenTracked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2164, - "src": "5474:12:1", + "referencedDeclaration": 2633, + "src": "5474:12:7", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2138_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 2617, + "id": 3086, "isConstant": false, "isLValue": false, "isPure": false, @@ -13705,59 +13705,59 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5474:49:1", + "src": "5474:49:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2618, + "id": 3087, "nodeType": "EmitStatement", - "src": "5469:54:1" + "src": "5469:54:7" } ] }, - "id": 2620, + "id": 3089, "implemented": true, "kind": "function", "modifiers": [], "name": "_trackToken", - "nameLocation": "4509:11:1", + "nameLocation": "4509:11:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 2505, + "id": 2974, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2500, + "id": 2969, "mutability": "mutable", "name": "tokenType", - "nameLocation": "4531:9:1", + "nameLocation": "4531:9:7", "nodeType": "VariableDeclaration", - "scope": 2620, - "src": "4521:19:1", + "scope": 3089, + "src": "4521:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2499, + "id": 2968, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2498, + "id": 2967, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "4521:9:1" + "referencedDeclaration": 2607, + "src": "4521:9:7" }, - "referencedDeclaration": 2138, - "src": "4521:9:1", + "referencedDeclaration": 2607, + "src": "4521:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -13765,13 +13765,13 @@ }, { "constant": false, - "id": 2502, + "id": 2971, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "4550:15:1", + "nameLocation": "4550:15:7", "nodeType": "VariableDeclaration", - "scope": 2620, - "src": "4542:23:1", + "scope": 3089, + "src": "4542:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13779,10 +13779,10 @@ "typeString": "address" }, "typeName": { - "id": 2501, + "id": 2970, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4542:7:1", + "src": "4542:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -13793,13 +13793,13 @@ }, { "constant": false, - "id": 2504, + "id": 2973, "mutability": "mutable", "name": "tokenId", - "nameLocation": "4575:7:1", + "nameLocation": "4575:7:7", "nodeType": "VariableDeclaration", - "scope": 2620, - "src": "4567:15:1", + "scope": 3089, + "src": "4567:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13807,10 +13807,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2503, + "id": 2972, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4567:7:1", + "src": "4567:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -13819,40 +13819,40 @@ "visibility": "internal" } ], - "src": "4520:63:1" + "src": "4520:63:7" }, "returnParameters": { - "id": 2506, + "id": 2975, "nodeType": "ParameterList", "parameters": [], - "src": "4593:0:1" + "src": "4593:0:7" }, - "scope": 3391, - "src": "4500:1030:1", + "scope": 3860, + "src": "4500:1030:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2837, + "id": 3306, "nodeType": "Block", - "src": "5631:1518:1", + "src": "5631:1518:7", "statements": [ { "assignments": [ - 2631 + 3100 ], "declarations": [ { "constant": false, - "id": 2631, + "id": 3100, "mutability": "mutable", "name": "key", - "nameLocation": "5649:3:1", + "nameLocation": "5649:3:7", "nodeType": "VariableDeclaration", - "scope": 2837, - "src": "5641:11:1", + "scope": 3306, + "src": "5641:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -13860,10 +13860,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2630, + "id": 3099, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5641:7:1", + "src": "5641:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -13872,7 +13872,7 @@ "visibility": "internal" } ], - "id": 2656, + "id": 3125, "initialValue": { "arguments": [ { @@ -13882,14 +13882,14 @@ { "arguments": [ { - "id": 2640, + "id": 3109, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "5694:9:1", + "referencedDeclaration": 3092, + "src": "5694:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } } @@ -13897,30 +13897,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } ], - "id": 2639, + "id": 3108, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5686:7:1", + "src": "5686:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 2638, + "id": 3107, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5686:7:1", + "src": "5686:7:7", "typeDescriptions": {} } }, - "id": 2641, + "id": 3110, "isConstant": false, "isLValue": false, "isPure": false, @@ -13928,7 +13928,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5686:18:1", + "src": "5686:18:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -13943,26 +13943,26 @@ "typeString": "uint256" } ], - "id": 2637, + "id": 3106, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5678:7:1", + "src": "5678:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2636, + "id": 3105, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5678:7:1", + "src": "5678:7:7", "typeDescriptions": {} } }, - "id": 2642, + "id": 3111, "isConstant": false, "isLValue": false, "isPure": false, @@ -13970,7 +13970,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5678:27:1", + "src": "5678:27:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -13982,12 +13982,12 @@ { "arguments": [ { - "id": 2647, + "id": 3116, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2625, - "src": "5723:15:1", + "referencedDeclaration": 3094, + "src": "5723:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14001,26 +14001,26 @@ "typeString": "address" } ], - "id": 2646, + "id": 3115, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5715:7:1", + "src": "5715:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 2645, + "id": 3114, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "5715:7:1", + "src": "5715:7:7", "typeDescriptions": {} } }, - "id": 2648, + "id": 3117, "isConstant": false, "isLValue": false, "isPure": false, @@ -14028,7 +14028,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5715:24:1", + "src": "5715:24:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -14043,26 +14043,26 @@ "typeString": "bytes20" } ], - "id": 2644, + "id": 3113, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5707:7:1", + "src": "5707:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2643, + "id": 3112, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5707:7:1", + "src": "5707:7:7", "typeDescriptions": {} } }, - "id": 2649, + "id": 3118, "isConstant": false, "isLValue": false, "isPure": false, @@ -14070,7 +14070,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5707:33:1", + "src": "5707:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -14080,12 +14080,12 @@ { "arguments": [ { - "id": 2652, + "id": 3121, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2627, - "src": "5750:7:1", + "referencedDeclaration": 3096, + "src": "5750:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14099,26 +14099,26 @@ "typeString": "uint256" } ], - "id": 2651, + "id": 3120, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5742:7:1", + "src": "5742:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2650, + "id": 3119, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5742:7:1", + "src": "5742:7:7", "typeDescriptions": {} } }, - "id": 2653, + "id": 3122, "isConstant": false, "isLValue": false, "isPure": false, @@ -14126,7 +14126,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5742:16:1", + "src": "5742:16:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -14150,39 +14150,39 @@ } ], "expression": { - "id": 2634, + "id": 3103, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5665:5:1", + "src": "5665:5:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2633, + "id": 3102, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5665:5:1", + "src": "5665:5:7", "typeDescriptions": {} } }, - "id": 2635, + "id": 3104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "5665:12:1", + "src": "5665:12:7", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2654, + "id": 3123, "isConstant": false, "isLValue": false, "isPure": false, @@ -14190,7 +14190,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5665:94:1", + "src": "5665:94:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -14205,18 +14205,18 @@ "typeString": "bytes memory" } ], - "id": 2632, + "id": 3101, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "5655:9:1", + "src": "5655:9:7", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2655, + "id": 3124, "isConstant": false, "isLValue": false, "isPure": false, @@ -14224,7 +14224,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5655:105:1", + "src": "5655:105:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -14232,7 +14232,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5641:119:1" + "src": "5641:119:7" }, { "condition": { @@ -14240,7 +14240,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2662, + "id": 3131, "isConstant": false, "isLValue": false, "isPure": false, @@ -14248,25 +14248,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2657, + "id": 3126, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "5774:21:1", + "referencedDeclaration": 2705, + "src": "5774:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2659, + "id": 3128, "indexExpression": { - "id": 2658, + "id": 3127, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "5796:3:1", + "referencedDeclaration": 3100, + "src": "5796:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14277,20 +14277,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5774:26:1", + "src": "5774:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2660, + "id": 3129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "5774:33:1", + "src": "5774:33:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14300,63 +14300,63 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 2661, + "id": 3130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5811:1:1", + "src": "5811:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "5774:38:1", + "src": "5774:38:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2665, + "id": 3134, "nodeType": "IfStatement", - "src": "5770:75:1", + "src": "5770:75:7", "trueBody": { - "id": 2664, + "id": 3133, "nodeType": "Block", - "src": "5814:31:1", + "src": "5814:31:7", "statements": [ { - "functionReturnParameters": 2629, - "id": 2663, + "functionReturnParameters": 3098, + "id": 3132, "nodeType": "Return", - "src": "5828:7:1" + "src": "5828:7:7" } ] } }, { "body": { - "id": 2829, + "id": 3298, "nodeType": "Block", - "src": "5917:1161:1", + "src": "5917:1161:7", "statements": [ { "assignments": [ - 2680 + 3149 ], "declarations": [ { "constant": false, - "id": 2680, + "id": 3149, "mutability": "mutable", "name": "j", - "nameLocation": "5939:1:1", + "nameLocation": "5939:1:7", "nodeType": "VariableDeclaration", - "scope": 2829, - "src": "5931:9:1", + "scope": 3298, + "src": "5931:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14364,10 +14364,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2679, + "id": 3148, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5931:7:1", + "src": "5931:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14376,29 +14376,29 @@ "visibility": "internal" } ], - "id": 2686, + "id": 3155, "initialValue": { "baseExpression": { "baseExpression": { - "id": 2681, + "id": 3150, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "5943:21:1", + "referencedDeclaration": 2705, + "src": "5943:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2683, + "id": 3152, "indexExpression": { - "id": 2682, + "id": 3151, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "5965:3:1", + "referencedDeclaration": 3100, + "src": "5965:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14409,20 +14409,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5943:26:1", + "src": "5943:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2685, + "id": 3154, "indexExpression": { - "id": 2684, + "id": 3153, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "5970:1:1", + "referencedDeclaration": 3136, + "src": "5970:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -14433,22 +14433,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5943:29:1", + "src": "5943:29:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5931:41:1" + "src": "5931:41:7" }, { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, - "id": 2692, + "id": 3161, "isConstant": false, "isLValue": false, "isPure": false, @@ -14456,25 +14456,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2687, + "id": 3156, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "5990:13:1", + "referencedDeclaration": 2709, + "src": "5990:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2689, + "id": 3158, "indexExpression": { - "id": 2688, + "id": 3157, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6004:1:1", + "referencedDeclaration": 3149, + "src": "6004:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14485,53 +14485,53 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5990:16:1", + "src": "5990:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2690, + "id": 3159, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenType", "nodeType": "MemberAccess", - "referencedDeclaration": 2226, - "src": "5990:26:1", + "referencedDeclaration": 2695, + "src": "5990:26:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 2691, + "id": 3160, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "6020:9:1", + "referencedDeclaration": 3092, + "src": "6020:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "src": "5990:39:1", + "src": "5990:39:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2694, + "id": 3163, "nodeType": "IfStatement", - "src": "5986:53:1", + "src": "5986:53:7", "trueBody": { - "id": 2693, + "id": 3162, "nodeType": "Continue", - "src": "6031:8:1" + "src": "6031:8:7" } }, { @@ -14540,7 +14540,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2700, + "id": 3169, "isConstant": false, "isLValue": false, "isPure": false, @@ -14548,25 +14548,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2695, + "id": 3164, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6057:13:1", + "referencedDeclaration": 2709, + "src": "6057:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2697, + "id": 3166, "indexExpression": { - "id": 2696, + "id": 3165, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6071:1:1", + "referencedDeclaration": 3149, + "src": "6071:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14577,21 +14577,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6057:16:1", + "src": "6057:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2698, + "id": 3167, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenId", "nodeType": "MemberAccess", - "referencedDeclaration": 2230, - "src": "6057:24:1", + "referencedDeclaration": 2699, + "src": "6057:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14600,30 +14600,30 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 2699, + "id": 3168, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2627, - "src": "6085:7:1", + "referencedDeclaration": 3096, + "src": "6085:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6057:35:1", + "src": "6057:35:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2702, + "id": 3171, "nodeType": "IfStatement", - "src": "6053:49:1", + "src": "6053:49:7", "trueBody": { - "id": 2701, + "id": 3170, "nodeType": "Continue", - "src": "6094:8:1" + "src": "6094:8:7" } }, { @@ -14632,7 +14632,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2708, + "id": 3177, "isConstant": false, "isLValue": false, "isPure": false, @@ -14640,25 +14640,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2703, + "id": 3172, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6120:13:1", + "referencedDeclaration": 2709, + "src": "6120:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2705, + "id": 3174, "indexExpression": { - "id": 2704, + "id": 3173, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6134:1:1", + "referencedDeclaration": 3149, + "src": "6134:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14669,21 +14669,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6120:16:1", + "src": "6120:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2706, + "id": 3175, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contractAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 2228, - "src": "6120:32:1", + "referencedDeclaration": 2697, + "src": "6120:32:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -14692,46 +14692,46 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 2707, + "id": 3176, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2625, - "src": "6156:15:1", + "referencedDeclaration": 3094, + "src": "6156:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6120:51:1", + "src": "6120:51:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2710, + "id": 3179, "nodeType": "IfStatement", - "src": "6116:65:1", + "src": "6116:65:7", "trueBody": { - "id": 2709, + "id": 3178, "nodeType": "Continue", - "src": "6173:8:1" + "src": "6173:8:7" } }, { "assignments": [ - 2712 + 3181 ], "declarations": [ { "constant": false, - "id": 2712, + "id": 3181, "mutability": "mutable", "name": "swappedPosition", - "nameLocation": "6234:15:1", + "nameLocation": "6234:15:7", "nodeType": "VariableDeclaration", - "scope": 2829, - "src": "6226:23:1", + "scope": 3298, + "src": "6226:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14739,10 +14739,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2711, + "id": 3180, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6226:7:1", + "src": "6226:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14751,38 +14751,38 @@ "visibility": "internal" } ], - "id": 2717, + "id": 3186, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2716, + "id": 3185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2713, + "id": 3182, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6252:13:1", + "referencedDeclaration": 2709, + "src": "6252:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2714, + "id": 3183, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6252:20:1", + "src": "6252:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14792,57 +14792,57 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 2715, + "id": 3184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6275:1:1", + "src": "6275:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "6252:24:1", + "src": "6252:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "6226:50:1" + "src": "6226:50:7" }, { "expression": { - "id": 2724, + "id": 3193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2718, + "id": 3187, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6290:13:1", + "referencedDeclaration": 2709, + "src": "6290:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2720, + "id": 3189, "indexExpression": { - "id": 2719, + "id": 3188, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6304:1:1", + "referencedDeclaration": 3149, + "src": "6304:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14853,9 +14853,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6290:16:1", + "src": "6290:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, @@ -14863,25 +14863,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 2721, + "id": 3190, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6309:13:1", + "referencedDeclaration": 2709, + "src": "6309:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2723, + "id": 3192, "indexExpression": { - "id": 2722, + "id": 3191, "name": "swappedPosition", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2712, - "src": "6323:15:1", + "referencedDeclaration": 3181, + "src": "6323:15:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14892,36 +14892,36 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6309:30:1", + "src": "6309:30:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "src": "6290:49:1", + "src": "6290:49:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2725, + "id": 3194, "nodeType": "ExpressionStatement", - "src": "6290:49:1" + "src": "6290:49:7" }, { "assignments": [ - 2727 + 3196 ], "declarations": [ { "constant": false, - "id": 2727, + "id": 3196, "mutability": "mutable", "name": "swappedKey", - "nameLocation": "6361:10:1", + "nameLocation": "6361:10:7", "nodeType": "VariableDeclaration", - "scope": 2829, - "src": "6353:18:1", + "scope": 3298, + "src": "6353:18:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -14929,10 +14929,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2726, + "id": 3195, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6353:7:1", + "src": "6353:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -14941,7 +14941,7 @@ "visibility": "internal" } ], - "id": 2761, + "id": 3230, "initialValue": { "arguments": [ { @@ -14953,25 +14953,25 @@ { "expression": { "baseExpression": { - "id": 2736, + "id": 3205, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6413:13:1", + "referencedDeclaration": 2709, + "src": "6413:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2738, + "id": 3207, "indexExpression": { - "id": 2737, + "id": 3206, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6427:1:1", + "referencedDeclaration": 3149, + "src": "6427:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -14982,23 +14982,23 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6413:16:1", + "src": "6413:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2739, + "id": 3208, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenType", "nodeType": "MemberAccess", - "referencedDeclaration": 2226, - "src": "6413:26:1", + "referencedDeclaration": 2695, + "src": "6413:26:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } } @@ -15006,30 +15006,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } ], - "id": 2735, + "id": 3204, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6405:7:1", + "src": "6405:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 2734, + "id": 3203, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6405:7:1", + "src": "6405:7:7", "typeDescriptions": {} } }, - "id": 2740, + "id": 3209, "isConstant": false, "isLValue": false, "isPure": false, @@ -15037,7 +15037,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6405:35:1", + "src": "6405:35:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -15052,26 +15052,26 @@ "typeString": "uint256" } ], - "id": 2733, + "id": 3202, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6397:7:1", + "src": "6397:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2732, + "id": 3201, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6397:7:1", + "src": "6397:7:7", "typeDescriptions": {} } }, - "id": 2741, + "id": 3210, "isConstant": false, "isLValue": false, "isPure": false, @@ -15079,7 +15079,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6397:44:1", + "src": "6397:44:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -15093,25 +15093,25 @@ { "expression": { "baseExpression": { - "id": 2746, + "id": 3215, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6459:13:1", + "referencedDeclaration": 2709, + "src": "6459:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2748, + "id": 3217, "indexExpression": { - "id": 2747, + "id": 3216, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6473:1:1", + "referencedDeclaration": 3149, + "src": "6473:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15122,21 +15122,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6459:16:1", + "src": "6459:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2749, + "id": 3218, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contractAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 2228, - "src": "6459:32:1", + "referencedDeclaration": 2697, + "src": "6459:32:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -15150,26 +15150,26 @@ "typeString": "address" } ], - "id": 2745, + "id": 3214, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6451:7:1", + "src": "6451:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 2744, + "id": 3213, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "6451:7:1", + "src": "6451:7:7", "typeDescriptions": {} } }, - "id": 2750, + "id": 3219, "isConstant": false, "isLValue": false, "isPure": false, @@ -15177,7 +15177,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6451:41:1", + "src": "6451:41:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -15192,26 +15192,26 @@ "typeString": "bytes20" } ], - "id": 2743, + "id": 3212, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6443:7:1", + "src": "6443:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2742, + "id": 3211, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6443:7:1", + "src": "6443:7:7", "typeDescriptions": {} } }, - "id": 2751, + "id": 3220, "isConstant": false, "isLValue": false, "isPure": false, @@ -15219,7 +15219,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6443:50:1", + "src": "6443:50:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -15231,25 +15231,25 @@ { "expression": { "baseExpression": { - "id": 2754, + "id": 3223, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6503:13:1", + "referencedDeclaration": 2709, + "src": "6503:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2756, + "id": 3225, "indexExpression": { - "id": 2755, + "id": 3224, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6517:1:1", + "referencedDeclaration": 3149, + "src": "6517:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15260,21 +15260,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6503:16:1", + "src": "6503:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2757, + "id": 3226, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenId", "nodeType": "MemberAccess", - "referencedDeclaration": 2230, - "src": "6503:24:1", + "referencedDeclaration": 2699, + "src": "6503:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15288,26 +15288,26 @@ "typeString": "uint256" } ], - "id": 2753, + "id": 3222, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6495:7:1", + "src": "6495:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2752, + "id": 3221, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6495:7:1", + "src": "6495:7:7", "typeDescriptions": {} } }, - "id": 2758, + "id": 3227, "isConstant": false, "isLValue": false, "isPure": false, @@ -15315,7 +15315,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6495:33:1", + "src": "6495:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -15339,39 +15339,39 @@ } ], "expression": { - "id": 2730, + "id": 3199, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6384:5:1", + "src": "6384:5:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2729, + "id": 3198, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6384:5:1", + "src": "6384:5:7", "typeDescriptions": {} } }, - "id": 2731, + "id": 3200, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "6384:12:1", + "src": "6384:12:7", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2759, + "id": 3228, "isConstant": false, "isLValue": false, "isPure": false, @@ -15379,7 +15379,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6384:145:1", + "src": "6384:145:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -15394,18 +15394,18 @@ "typeString": "bytes memory" } ], - "id": 2728, + "id": 3197, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "6374:9:1", + "src": "6374:9:7", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2760, + "id": 3229, "isConstant": false, "isLValue": false, "isPure": false, @@ -15413,7 +15413,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6374:156:1", + "src": "6374:156:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -15421,7 +15421,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6353:177:1" + "src": "6353:177:7" }, { "expression": { @@ -15429,31 +15429,31 @@ "expression": { "argumentTypes": [], "expression": { - "id": 2762, + "id": 3231, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6544:13:1", + "referencedDeclaration": 2709, + "src": "6544:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2764, + "id": 3233, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pop", "nodeType": "MemberAccess", - "src": "6544:17:1", + "src": "6544:17:7", "typeDescriptions": { - "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr_$", + "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr_$", "typeString": "function (struct TokenTracker.TrackedToken storage ref[] storage pointer)" } }, - "id": 2765, + "id": 3234, "isConstant": false, "isLValue": false, "isPure": false, @@ -15461,22 +15461,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6544:19:1", + "src": "6544:19:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2766, + "id": 3235, "nodeType": "ExpressionStatement", - "src": "6544:19:1" + "src": "6544:19:7" }, { "body": { - "id": 2797, + "id": 3266, "nodeType": "Block", - "src": "6647:174:1", + "src": "6647:174:7", "statements": [ { "condition": { @@ -15484,7 +15484,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2786, + "id": 3255, "isConstant": false, "isLValue": false, "isPure": false, @@ -15492,25 +15492,25 @@ "leftExpression": { "baseExpression": { "baseExpression": { - "id": 2780, + "id": 3249, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "6669:21:1", + "referencedDeclaration": 2705, + "src": "6669:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2782, + "id": 3251, "indexExpression": { - "id": 2781, + "id": 3250, "name": "swappedKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "6691:10:1", + "referencedDeclaration": 3196, + "src": "6691:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15521,20 +15521,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6669:33:1", + "src": "6669:33:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2784, + "id": 3253, "indexExpression": { - "id": 2783, + "id": 3252, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2768, - "src": "6703:1:1", + "referencedDeclaration": 3237, + "src": "6703:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15545,7 +15545,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6669:36:1", + "src": "6669:36:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15554,34 +15554,34 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 2785, + "id": 3254, "name": "swappedPosition", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2712, - "src": "6709:15:1", + "referencedDeclaration": 3181, + "src": "6709:15:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6669:55:1", + "src": "6669:55:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2796, + "id": 3265, "nodeType": "IfStatement", - "src": "6665:142:1", + "src": "6665:142:7", "trueBody": { - "id": 2795, + "id": 3264, "nodeType": "Block", - "src": "6726:81:1", + "src": "6726:81:7", "statements": [ { "expression": { - "id": 2793, + "id": 3262, "isConstant": false, "isLValue": false, "isPure": false, @@ -15589,25 +15589,25 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 2787, + "id": 3256, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "6748:21:1", + "referencedDeclaration": 2705, + "src": "6748:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2790, + "id": 3259, "indexExpression": { - "id": 2788, + "id": 3257, "name": "swappedKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "6770:10:1", + "referencedDeclaration": 3196, + "src": "6770:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15618,20 +15618,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6748:33:1", + "src": "6748:33:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2791, + "id": 3260, "indexExpression": { - "id": 2789, + "id": 3258, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2768, - "src": "6782:1:1", + "referencedDeclaration": 3237, + "src": "6782:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15642,7 +15642,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6748:36:1", + "src": "6748:36:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15651,26 +15651,26 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2792, + "id": 3261, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6787:1:1", + "referencedDeclaration": 3149, + "src": "6787:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6748:40:1", + "src": "6748:40:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2794, + "id": 3263, "nodeType": "ExpressionStatement", - "src": "6748:40:1" + "src": "6748:40:7" } ] } @@ -15682,18 +15682,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2776, + "id": 3245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2771, + "id": 3240, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2768, - "src": "6596:1:1", + "referencedDeclaration": 3237, + "src": "6596:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15704,25 +15704,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 2772, + "id": 3241, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "6600:21:1", + "referencedDeclaration": 2705, + "src": "6600:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2774, + "id": 3243, "indexExpression": { - "id": 2773, + "id": 3242, "name": "swappedKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "6622:10:1", + "referencedDeclaration": 3196, + "src": "6622:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15733,46 +15733,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6600:33:1", + "src": "6600:33:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2775, + "id": 3244, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6600:40:1", + "src": "6600:40:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6596:44:1", + "src": "6596:44:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2798, + "id": 3267, "initializationExpression": { "assignments": [ - 2768 + 3237 ], "declarations": [ { "constant": false, - "id": 2768, + "id": 3237, "mutability": "mutable", "name": "k", - "nameLocation": "6589:1:1", + "nameLocation": "6589:1:7", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "6582:8:1", + "scope": 3267, + "src": "6582:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -15780,10 +15780,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2767, + "id": 3236, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6582:6:1", + "src": "6582:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15792,17 +15792,17 @@ "visibility": "internal" } ], - "id": 2770, + "id": 3239, "initialValue": { "hexValue": "30", - "id": 2769, + "id": 3238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6593:1:1", + "src": "6593:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -15810,11 +15810,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6582:12:1" + "src": "6582:12:7" }, "loopExpression": { "expression": { - "id": 2778, + "id": 3247, "isConstant": false, "isLValue": false, "isPure": false, @@ -15822,14 +15822,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6642:3:1", + "src": "6642:3:7", "subExpression": { - "id": 2777, + "id": 3246, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2768, - "src": "6642:1:1", + "referencedDeclaration": 3237, + "src": "6642:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -15840,16 +15840,16 @@ "typeString": "uint32" } }, - "id": 2779, + "id": 3248, "nodeType": "ExpressionStatement", - "src": "6642:3:1" + "src": "6642:3:7" }, "nodeType": "ForStatement", - "src": "6577:244:1" + "src": "6577:244:7" }, { "expression": { - "id": 2814, + "id": 3283, "isConstant": false, "isLValue": false, "isPure": false, @@ -15857,25 +15857,25 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 2799, + "id": 3268, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "6834:21:1", + "referencedDeclaration": 2705, + "src": "6834:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2802, + "id": 3271, "indexExpression": { - "id": 2800, + "id": 3269, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "6856:3:1", + "referencedDeclaration": 3100, + "src": "6856:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15886,20 +15886,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6834:26:1", + "src": "6834:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2803, + "id": 3272, "indexExpression": { - "id": 2801, + "id": 3270, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6861:1:1", + "referencedDeclaration": 3149, + "src": "6861:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15910,7 +15910,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6834:29:1", + "src": "6834:29:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -15921,25 +15921,25 @@ "rightHandSide": { "baseExpression": { "baseExpression": { - "id": 2804, + "id": 3273, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "6866:21:1", + "referencedDeclaration": 2705, + "src": "6866:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2806, + "id": 3275, "indexExpression": { - "id": 2805, + "id": 3274, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "6888:3:1", + "referencedDeclaration": 3100, + "src": "6888:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15950,19 +15950,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6866:26:1", + "src": "6866:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2813, + "id": 3282, "indexExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2812, + "id": 3281, "isConstant": false, "isLValue": false, "isPure": false, @@ -15970,25 +15970,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2807, + "id": 3276, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "6893:21:1", + "referencedDeclaration": 2705, + "src": "6893:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2809, + "id": 3278, "indexExpression": { - "id": 2808, + "id": 3277, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "6915:3:1", + "referencedDeclaration": 3100, + "src": "6915:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -15999,20 +15999,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6893:26:1", + "src": "6893:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2810, + "id": 3279, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6893:33:1", + "src": "6893:33:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16022,21 +16022,21 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 2811, + "id": 3280, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6929:1:1", + "src": "6929:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "6893:37:1", + "src": "6893:37:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16047,21 +16047,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6866:65:1", + "src": "6866:65:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6834:97:1", + "src": "6834:97:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2815, + "id": 3284, "nodeType": "ExpressionStatement", - "src": "6834:97:1" + "src": "6834:97:7" }, { "expression": { @@ -16070,25 +16070,25 @@ "argumentTypes": [], "expression": { "baseExpression": { - "id": 2816, + "id": 3285, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "6945:21:1", + "referencedDeclaration": 2705, + "src": "6945:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2818, + "id": 3287, "indexExpression": { - "id": 2817, + "id": 3286, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "6967:3:1", + "referencedDeclaration": 3100, + "src": "6967:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -16099,26 +16099,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6945:26:1", + "src": "6945:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2819, + "id": 3288, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pop", "nodeType": "MemberAccess", - "src": "6945:30:1", + "src": "6945:30:7", "typeDescriptions": { "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$", "typeString": "function (uint256[] storage pointer)" } }, - "id": 2820, + "id": 3289, "isConstant": false, "isLValue": false, "isPure": false, @@ -16126,51 +16126,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6945:32:1", + "src": "6945:32:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2821, + "id": 3290, "nodeType": "ExpressionStatement", - "src": "6945:32:1" + "src": "6945:32:7" }, { "eventCall": { "arguments": [ { - "id": 2823, + "id": 3292, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "7011:9:1", + "referencedDeclaration": 3092, + "src": "7011:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 2824, + "id": 3293, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2625, - "src": "7022:15:1", + "referencedDeclaration": 3094, + "src": "7022:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2825, + "id": 3294, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2627, - "src": "7039:7:1", + "referencedDeclaration": 3096, + "src": "7039:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16180,7 +16180,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -16192,18 +16192,18 @@ "typeString": "uint256" } ], - "id": 2822, + "id": 3291, "name": "TokenUntracked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2173, - "src": "6996:14:1", + "referencedDeclaration": 2642, + "src": "6996:14:7", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2138_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 2826, + "id": 3295, "isConstant": false, "isLValue": false, "isPure": false, @@ -16211,22 +16211,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6996:51:1", + "src": "6996:51:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2827, + "id": 3296, "nodeType": "EmitStatement", - "src": "6991:56:1" + "src": "6991:56:7" }, { - "functionReturnParameters": 2629, - "id": 2828, + "functionReturnParameters": 3098, + "id": 3297, "nodeType": "Return", - "src": "7061:7:1" + "src": "7061:7:7" } ] }, @@ -16235,18 +16235,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2675, + "id": 3144, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2670, + "id": 3139, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "5873:1:1", + "referencedDeclaration": 3136, + "src": "5873:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -16257,25 +16257,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 2671, + "id": 3140, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "5877:21:1", + "referencedDeclaration": 2705, + "src": "5877:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2673, + "id": 3142, "indexExpression": { - "id": 2672, + "id": 3141, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "5899:3:1", + "referencedDeclaration": 3100, + "src": "5899:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -16286,46 +16286,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5877:26:1", + "src": "5877:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2674, + "id": 3143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "5877:33:1", + "src": "5877:33:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5873:37:1", + "src": "5873:37:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2830, + "id": 3299, "initializationExpression": { "assignments": [ - 2667 + 3136 ], "declarations": [ { "constant": false, - "id": 2667, + "id": 3136, "mutability": "mutable", "name": "i", - "nameLocation": "5866:1:1", + "nameLocation": "5866:1:7", "nodeType": "VariableDeclaration", - "scope": 2830, - "src": "5859:8:1", + "scope": 3299, + "src": "5859:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16333,10 +16333,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2666, + "id": 3135, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5859:6:1", + "src": "5859:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -16345,17 +16345,17 @@ "visibility": "internal" } ], - "id": 2669, + "id": 3138, "initialValue": { "hexValue": "30", - "id": 2668, + "id": 3137, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5870:1:1", + "src": "5870:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -16363,11 +16363,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "5859:12:1" + "src": "5859:12:7" }, "loopExpression": { "expression": { - "id": 2677, + "id": 3146, "isConstant": false, "isLValue": false, "isPure": false, @@ -16375,14 +16375,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5912:3:1", + "src": "5912:3:7", "subExpression": { - "id": 2676, + "id": 3145, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "5912:1:1", + "referencedDeclaration": 3136, + "src": "5912:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -16393,47 +16393,47 @@ "typeString": "uint32" } }, - "id": 2678, + "id": 3147, "nodeType": "ExpressionStatement", - "src": "5912:3:1" + "src": "5912:3:7" }, "nodeType": "ForStatement", - "src": "5854:1224:1" + "src": "5854:1224:7" }, { "eventCall": { "arguments": [ { - "id": 2832, + "id": 3301, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "7106:9:1", + "referencedDeclaration": 3092, + "src": "7106:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 2833, + "id": 3302, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2625, - "src": "7117:15:1", + "referencedDeclaration": 3094, + "src": "7117:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2834, + "id": 3303, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2627, - "src": "7134:7:1", + "referencedDeclaration": 3096, + "src": "7134:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16443,7 +16443,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -16455,18 +16455,18 @@ "typeString": "uint256" } ], - "id": 2831, + "id": 3300, "name": "TokenNotFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "7092:13:1", + "referencedDeclaration": 2651, + "src": "7092:13:7", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2138_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 2835, + "id": 3304, "isConstant": false, "isLValue": false, "isPure": false, @@ -16474,59 +16474,59 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7092:50:1", + "src": "7092:50:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2836, + "id": 3305, "nodeType": "EmitStatement", - "src": "7087:55:1" + "src": "7087:55:7" } ] }, - "id": 2838, + "id": 3307, "implemented": true, "kind": "function", "modifiers": [], "name": "_untrackToken", - "nameLocation": "5545:13:1", + "nameLocation": "5545:13:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 2628, + "id": 3097, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2623, + "id": 3092, "mutability": "mutable", "name": "tokenType", - "nameLocation": "5569:9:1", + "nameLocation": "5569:9:7", "nodeType": "VariableDeclaration", - "scope": 2838, - "src": "5559:19:1", + "scope": 3307, + "src": "5559:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2622, + "id": 3091, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2621, + "id": 3090, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "5559:9:1" + "referencedDeclaration": 2607, + "src": "5559:9:7" }, - "referencedDeclaration": 2138, - "src": "5559:9:1", + "referencedDeclaration": 2607, + "src": "5559:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -16534,13 +16534,13 @@ }, { "constant": false, - "id": 2625, + "id": 3094, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "5588:15:1", + "nameLocation": "5588:15:7", "nodeType": "VariableDeclaration", - "scope": 2838, - "src": "5580:23:1", + "scope": 3307, + "src": "5580:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16548,10 +16548,10 @@ "typeString": "address" }, "typeName": { - "id": 2624, + "id": 3093, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5580:7:1", + "src": "5580:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16562,13 +16562,13 @@ }, { "constant": false, - "id": 2627, + "id": 3096, "mutability": "mutable", "name": "tokenId", - "nameLocation": "5613:7:1", + "nameLocation": "5613:7:7", "nodeType": "VariableDeclaration", - "scope": 2838, - "src": "5605:15:1", + "scope": 3307, + "src": "5605:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16576,10 +16576,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2626, + "id": 3095, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5605:7:1", + "src": "5605:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16588,95 +16588,95 @@ "visibility": "internal" } ], - "src": "5558:63:1" + "src": "5558:63:7" }, "returnParameters": { - "id": 2629, + "id": 3098, "nodeType": "ParameterList", "parameters": [], - "src": "5631:0:1" + "src": "5631:0:7" }, - "scope": 3391, - "src": "5536:1613:1", + "scope": 3860, + "src": "5536:1613:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2999, + "id": 3468, "nodeType": "Block", - "src": "7228:1052:1", + "src": "7228:1052:7", "statements": [ { "body": { - "id": 2910, + "id": 3379, "nodeType": "Block", - "src": "7288:381:1", + "src": "7288:381:7", "statements": [ { "assignments": [ - 2858 + 3327 ], "declarations": [ { "constant": false, - "id": 2858, + "id": 3327, "mutability": "mutable", "name": "tokenType", - "nameLocation": "7312:9:1", + "nameLocation": "7312:9:7", "nodeType": "VariableDeclaration", - "scope": 2910, - "src": "7302:19:1", + "scope": 3379, + "src": "7302:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2857, + "id": 3326, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2856, + "id": 3325, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "7302:9:1" + "referencedDeclaration": 2607, + "src": "7302:9:7" }, - "referencedDeclaration": 2138, - "src": "7302:9:1", + "referencedDeclaration": 2607, + "src": "7302:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "visibility": "internal" } ], - "id": 2863, + "id": 3332, "initialValue": { "expression": { "baseExpression": { - "id": 2859, + "id": 3328, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "7324:13:1", + "referencedDeclaration": 2709, + "src": "7324:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2861, + "id": 3330, "indexExpression": { - "id": 2860, + "id": 3329, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "7338:1:1", + "referencedDeclaration": 3315, + "src": "7338:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -16687,43 +16687,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7324:16:1", + "src": "7324:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2862, + "id": 3331, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenType", "nodeType": "MemberAccess", - "referencedDeclaration": 2226, - "src": "7324:26:1", + "referencedDeclaration": 2695, + "src": "7324:26:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "nodeType": "VariableDeclarationStatement", - "src": "7302:48:1" + "src": "7302:48:7" }, { "assignments": [ - 2865 + 3334 ], "declarations": [ { "constant": false, - "id": 2865, + "id": 3334, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "7372:15:1", + "nameLocation": "7372:15:7", "nodeType": "VariableDeclaration", - "scope": 2910, - "src": "7364:23:1", + "scope": 3379, + "src": "7364:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16731,10 +16731,10 @@ "typeString": "address" }, "typeName": { - "id": 2864, + "id": 3333, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7364:7:1", + "src": "7364:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -16744,29 +16744,29 @@ "visibility": "internal" } ], - "id": 2870, + "id": 3339, "initialValue": { "expression": { "baseExpression": { - "id": 2866, + "id": 3335, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "7390:13:1", + "referencedDeclaration": 2709, + "src": "7390:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2868, + "id": 3337, "indexExpression": { - "id": 2867, + "id": 3336, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "7404:1:1", + "referencedDeclaration": 3315, + "src": "7404:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -16777,43 +16777,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7390:16:1", + "src": "7390:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2869, + "id": 3338, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contractAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 2228, - "src": "7390:32:1", + "referencedDeclaration": 2697, + "src": "7390:32:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "7364:58:1" + "src": "7364:58:7" }, { "assignments": [ - 2872 + 3341 ], "declarations": [ { "constant": false, - "id": 2872, + "id": 3341, "mutability": "mutable", "name": "tokenId", - "nameLocation": "7444:7:1", + "nameLocation": "7444:7:7", "nodeType": "VariableDeclaration", - "scope": 2910, - "src": "7436:15:1", + "scope": 3379, + "src": "7436:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16821,10 +16821,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2871, + "id": 3340, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7436:7:1", + "src": "7436:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -16833,29 +16833,29 @@ "visibility": "internal" } ], - "id": 2877, + "id": 3346, "initialValue": { "expression": { "baseExpression": { - "id": 2873, + "id": 3342, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "7454:13:1", + "referencedDeclaration": 2709, + "src": "7454:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2875, + "id": 3344, "indexExpression": { - "id": 2874, + "id": 3343, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "7468:1:1", + "referencedDeclaration": 3315, + "src": "7468:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -16866,43 +16866,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7454:16:1", + "src": "7454:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2876, + "id": 3345, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenId", "nodeType": "MemberAccess", - "referencedDeclaration": 2230, - "src": "7454:24:1", + "referencedDeclaration": 2699, + "src": "7454:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "7436:42:1" + "src": "7436:42:7" }, { "assignments": [ - 2879 + 3348 ], "declarations": [ { "constant": false, - "id": 2879, + "id": 3348, "mutability": "mutable", "name": "key", - "nameLocation": "7500:3:1", + "nameLocation": "7500:3:7", "nodeType": "VariableDeclaration", - "scope": 2910, - "src": "7492:11:1", + "scope": 3379, + "src": "7492:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -16910,10 +16910,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2878, + "id": 3347, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7492:7:1", + "src": "7492:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -16922,7 +16922,7 @@ "visibility": "internal" } ], - "id": 2904, + "id": 3373, "initialValue": { "arguments": [ { @@ -16932,14 +16932,14 @@ { "arguments": [ { - "id": 2888, + "id": 3357, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2858, - "src": "7545:9:1", + "referencedDeclaration": 3327, + "src": "7545:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } } @@ -16947,30 +16947,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } ], - "id": 2887, + "id": 3356, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7537:7:1", + "src": "7537:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 2886, + "id": 3355, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7537:7:1", + "src": "7537:7:7", "typeDescriptions": {} } }, - "id": 2889, + "id": 3358, "isConstant": false, "isLValue": false, "isPure": false, @@ -16978,7 +16978,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7537:18:1", + "src": "7537:18:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -16993,26 +16993,26 @@ "typeString": "uint256" } ], - "id": 2885, + "id": 3354, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7529:7:1", + "src": "7529:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2884, + "id": 3353, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7529:7:1", + "src": "7529:7:7", "typeDescriptions": {} } }, - "id": 2890, + "id": 3359, "isConstant": false, "isLValue": false, "isPure": false, @@ -17020,7 +17020,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7529:27:1", + "src": "7529:27:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -17032,12 +17032,12 @@ { "arguments": [ { - "id": 2895, + "id": 3364, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2865, - "src": "7574:15:1", + "referencedDeclaration": 3334, + "src": "7574:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17051,26 +17051,26 @@ "typeString": "address" } ], - "id": 2894, + "id": 3363, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7566:7:1", + "src": "7566:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 2893, + "id": 3362, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "7566:7:1", + "src": "7566:7:7", "typeDescriptions": {} } }, - "id": 2896, + "id": 3365, "isConstant": false, "isLValue": false, "isPure": false, @@ -17078,7 +17078,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7566:24:1", + "src": "7566:24:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -17093,26 +17093,26 @@ "typeString": "bytes20" } ], - "id": 2892, + "id": 3361, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7558:7:1", + "src": "7558:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2891, + "id": 3360, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7558:7:1", + "src": "7558:7:7", "typeDescriptions": {} } }, - "id": 2897, + "id": 3366, "isConstant": false, "isLValue": false, "isPure": false, @@ -17120,7 +17120,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7558:33:1", + "src": "7558:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -17130,12 +17130,12 @@ { "arguments": [ { - "id": 2900, + "id": 3369, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2872, - "src": "7601:7:1", + "referencedDeclaration": 3341, + "src": "7601:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17149,26 +17149,26 @@ "typeString": "uint256" } ], - "id": 2899, + "id": 3368, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7593:7:1", + "src": "7593:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2898, + "id": 3367, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7593:7:1", + "src": "7593:7:7", "typeDescriptions": {} } }, - "id": 2901, + "id": 3370, "isConstant": false, "isLValue": false, "isPure": false, @@ -17176,7 +17176,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7593:16:1", + "src": "7593:16:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -17200,39 +17200,39 @@ } ], "expression": { - "id": 2882, + "id": 3351, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7516:5:1", + "src": "7516:5:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2881, + "id": 3350, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7516:5:1", + "src": "7516:5:7", "typeDescriptions": {} } }, - "id": 2883, + "id": 3352, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "7516:12:1", + "src": "7516:12:7", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2902, + "id": 3371, "isConstant": false, "isLValue": false, "isPure": false, @@ -17240,7 +17240,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7516:94:1", + "src": "7516:94:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -17255,18 +17255,18 @@ "typeString": "bytes memory" } ], - "id": 2880, + "id": 3349, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "7506:9:1", + "src": "7506:9:7", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2903, + "id": 3372, "isConstant": false, "isLValue": false, "isPure": false, @@ -17274,7 +17274,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7506:105:1", + "src": "7506:105:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -17282,11 +17282,11 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7492:119:1" + "src": "7492:119:7" }, { "expression": { - "id": 2908, + "id": 3377, "isConstant": false, "isLValue": false, "isPure": false, @@ -17294,28 +17294,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "7625:33:1", + "src": "7625:33:7", "subExpression": { "baseExpression": { - "id": 2905, + "id": 3374, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "7632:21:1", + "referencedDeclaration": 2705, + "src": "7632:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2907, + "id": 3376, "indexExpression": { - "id": 2906, + "id": 3375, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "7654:3:1", + "referencedDeclaration": 3348, + "src": "7654:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17326,7 +17326,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7632:26:1", + "src": "7632:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" @@ -17337,9 +17337,9 @@ "typeString": "tuple()" } }, - "id": 2909, + "id": 3378, "nodeType": "ExpressionStatement", - "src": "7625:33:1" + "src": "7625:33:7" } ] }, @@ -17348,18 +17348,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2852, + "id": 3321, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2849, + "id": 3318, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "7257:1:1", + "referencedDeclaration": 3315, + "src": "7257:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -17369,51 +17369,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2850, + "id": 3319, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "7261:13:1", + "referencedDeclaration": 2709, + "src": "7261:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2851, + "id": 3320, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7261:20:1", + "src": "7261:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7257:24:1", + "src": "7257:24:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2911, + "id": 3380, "initializationExpression": { "assignments": [ - 2846 + 3315 ], "declarations": [ { "constant": false, - "id": 2846, + "id": 3315, "mutability": "mutable", "name": "i", - "nameLocation": "7250:1:1", + "nameLocation": "7250:1:7", "nodeType": "VariableDeclaration", - "scope": 2911, - "src": "7243:8:1", + "scope": 3380, + "src": "7243:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17421,10 +17421,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2845, + "id": 3314, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7243:6:1", + "src": "7243:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -17433,17 +17433,17 @@ "visibility": "internal" } ], - "id": 2848, + "id": 3317, "initialValue": { "hexValue": "30", - "id": 2847, + "id": 3316, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7254:1:1", + "src": "7254:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -17451,11 +17451,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "7243:12:1" + "src": "7243:12:7" }, "loopExpression": { "expression": { - "id": 2854, + "id": 3323, "isConstant": false, "isLValue": false, "isPure": false, @@ -17463,14 +17463,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "7283:3:1", + "src": "7283:3:7", "subExpression": { - "id": 2853, + "id": 3322, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "7283:1:1", + "referencedDeclaration": 3315, + "src": "7283:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -17481,16 +17481,16 @@ "typeString": "uint32" } }, - "id": 2855, + "id": 3324, "nodeType": "ExpressionStatement", - "src": "7283:3:1" + "src": "7283:3:7" }, "nodeType": "ForStatement", - "src": "7238:431:1" + "src": "7238:431:7" }, { "expression": { - "id": 2913, + "id": 3382, "isConstant": false, "isLValue": false, "isPure": false, @@ -17498,16 +17498,16 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "7678:20:1", + "src": "7678:20:7", "subExpression": { - "id": 2912, + "id": 3381, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "7685:13:1", + "referencedDeclaration": 2709, + "src": "7685:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, @@ -17516,79 +17516,79 @@ "typeString": "tuple()" } }, - "id": 2914, + "id": 3383, "nodeType": "ExpressionStatement", - "src": "7678:20:1" + "src": "7678:20:7" }, { "body": { - "id": 2997, + "id": 3466, "nodeType": "Block", - "src": "7761:513:1", + "src": "7761:513:7", "statements": [ { "assignments": [ - 2928 + 3397 ], "declarations": [ { "constant": false, - "id": 2928, + "id": 3397, "mutability": "mutable", "name": "tokenType", - "nameLocation": "7785:9:1", + "nameLocation": "7785:9:7", "nodeType": "VariableDeclaration", - "scope": 2997, - "src": "7775:19:1", + "scope": 3466, + "src": "7775:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2927, + "id": 3396, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2926, + "id": 3395, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "7775:9:1" + "referencedDeclaration": 2607, + "src": "7775:9:7" }, - "referencedDeclaration": 2138, - "src": "7775:9:1", + "referencedDeclaration": 2607, + "src": "7775:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "visibility": "internal" } ], - "id": 2933, + "id": 3402, "initialValue": { "expression": { "baseExpression": { - "id": 2929, + "id": 3398, "name": "newTrackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2842, - "src": "7797:16:1", + "referencedDeclaration": 3311, + "src": "7797:16:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } }, - "id": 2931, + "id": 3400, "indexExpression": { - "id": 2930, + "id": 3399, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "7814:1:1", + "referencedDeclaration": 3385, + "src": "7814:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -17599,43 +17599,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7797:19:1", + "src": "7797:19:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, - "id": 2932, + "id": 3401, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenType", "nodeType": "MemberAccess", - "referencedDeclaration": 2226, - "src": "7797:29:1", + "referencedDeclaration": 2695, + "src": "7797:29:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "nodeType": "VariableDeclarationStatement", - "src": "7775:51:1" + "src": "7775:51:7" }, { "assignments": [ - 2935 + 3404 ], "declarations": [ { "constant": false, - "id": 2935, + "id": 3404, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "7848:15:1", + "nameLocation": "7848:15:7", "nodeType": "VariableDeclaration", - "scope": 2997, - "src": "7840:23:1", + "scope": 3466, + "src": "7840:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17643,10 +17643,10 @@ "typeString": "address" }, "typeName": { - "id": 2934, + "id": 3403, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7840:7:1", + "src": "7840:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -17656,29 +17656,29 @@ "visibility": "internal" } ], - "id": 2940, + "id": 3409, "initialValue": { "expression": { "baseExpression": { - "id": 2936, + "id": 3405, "name": "newTrackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2842, - "src": "7866:16:1", + "referencedDeclaration": 3311, + "src": "7866:16:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } }, - "id": 2938, + "id": 3407, "indexExpression": { - "id": 2937, + "id": 3406, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "7883:1:1", + "referencedDeclaration": 3385, + "src": "7883:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -17689,43 +17689,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7866:19:1", + "src": "7866:19:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, - "id": 2939, + "id": 3408, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contractAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 2228, - "src": "7866:35:1", + "referencedDeclaration": 2697, + "src": "7866:35:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "7840:61:1" + "src": "7840:61:7" }, { "assignments": [ - 2942 + 3411 ], "declarations": [ { "constant": false, - "id": 2942, + "id": 3411, "mutability": "mutable", "name": "tokenId", - "nameLocation": "7923:7:1", + "nameLocation": "7923:7:7", "nodeType": "VariableDeclaration", - "scope": 2997, - "src": "7915:15:1", + "scope": 3466, + "src": "7915:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17733,10 +17733,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2941, + "id": 3410, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7915:7:1", + "src": "7915:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -17745,29 +17745,29 @@ "visibility": "internal" } ], - "id": 2947, + "id": 3416, "initialValue": { "expression": { "baseExpression": { - "id": 2943, + "id": 3412, "name": "newTrackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2842, - "src": "7933:16:1", + "referencedDeclaration": 3311, + "src": "7933:16:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } }, - "id": 2945, + "id": 3414, "indexExpression": { - "id": 2944, + "id": 3413, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "7950:1:1", + "referencedDeclaration": 3385, + "src": "7950:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -17778,43 +17778,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7933:19:1", + "src": "7933:19:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, - "id": 2946, + "id": 3415, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenId", "nodeType": "MemberAccess", - "referencedDeclaration": 2230, - "src": "7933:27:1", + "referencedDeclaration": 2699, + "src": "7933:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "7915:45:1" + "src": "7915:45:7" }, { "assignments": [ - 2949 + 3418 ], "declarations": [ { "constant": false, - "id": 2949, + "id": 3418, "mutability": "mutable", "name": "key", - "nameLocation": "7982:3:1", + "nameLocation": "7982:3:7", "nodeType": "VariableDeclaration", - "scope": 2997, - "src": "7974:11:1", + "scope": 3466, + "src": "7974:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -17822,10 +17822,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2948, + "id": 3417, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7974:7:1", + "src": "7974:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -17834,7 +17834,7 @@ "visibility": "internal" } ], - "id": 2974, + "id": 3443, "initialValue": { "arguments": [ { @@ -17844,14 +17844,14 @@ { "arguments": [ { - "id": 2958, + "id": 3427, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2928, - "src": "8027:9:1", + "referencedDeclaration": 3397, + "src": "8027:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } } @@ -17859,30 +17859,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } ], - "id": 2957, + "id": 3426, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8019:7:1", + "src": "8019:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 2956, + "id": 3425, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8019:7:1", + "src": "8019:7:7", "typeDescriptions": {} } }, - "id": 2959, + "id": 3428, "isConstant": false, "isLValue": false, "isPure": false, @@ -17890,7 +17890,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8019:18:1", + "src": "8019:18:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -17905,26 +17905,26 @@ "typeString": "uint256" } ], - "id": 2955, + "id": 3424, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8011:7:1", + "src": "8011:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2954, + "id": 3423, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8011:7:1", + "src": "8011:7:7", "typeDescriptions": {} } }, - "id": 2960, + "id": 3429, "isConstant": false, "isLValue": false, "isPure": false, @@ -17932,7 +17932,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8011:27:1", + "src": "8011:27:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -17944,12 +17944,12 @@ { "arguments": [ { - "id": 2965, + "id": 3434, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2935, - "src": "8056:15:1", + "referencedDeclaration": 3404, + "src": "8056:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -17963,26 +17963,26 @@ "typeString": "address" } ], - "id": 2964, + "id": 3433, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8048:7:1", + "src": "8048:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 2963, + "id": 3432, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "8048:7:1", + "src": "8048:7:7", "typeDescriptions": {} } }, - "id": 2966, + "id": 3435, "isConstant": false, "isLValue": false, "isPure": false, @@ -17990,7 +17990,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8048:24:1", + "src": "8048:24:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -18005,26 +18005,26 @@ "typeString": "bytes20" } ], - "id": 2962, + "id": 3431, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8040:7:1", + "src": "8040:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2961, + "id": 3430, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8040:7:1", + "src": "8040:7:7", "typeDescriptions": {} } }, - "id": 2967, + "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, @@ -18032,7 +18032,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8040:33:1", + "src": "8040:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -18042,12 +18042,12 @@ { "arguments": [ { - "id": 2970, + "id": 3439, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "8083:7:1", + "referencedDeclaration": 3411, + "src": "8083:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18061,26 +18061,26 @@ "typeString": "uint256" } ], - "id": 2969, + "id": 3438, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8075:7:1", + "src": "8075:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2968, + "id": 3437, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8075:7:1", + "src": "8075:7:7", "typeDescriptions": {} } }, - "id": 2971, + "id": 3440, "isConstant": false, "isLValue": false, "isPure": false, @@ -18088,7 +18088,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8075:16:1", + "src": "8075:16:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -18112,39 +18112,39 @@ } ], "expression": { - "id": 2952, + "id": 3421, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7998:5:1", + "src": "7998:5:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2951, + "id": 3420, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7998:5:1", + "src": "7998:5:7", "typeDescriptions": {} } }, - "id": 2953, + "id": 3422, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "7998:12:1", + "src": "7998:12:7", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2972, + "id": 3441, "isConstant": false, "isLValue": false, "isPure": false, @@ -18152,7 +18152,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7998:94:1", + "src": "7998:94:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -18167,18 +18167,18 @@ "typeString": "bytes memory" } ], - "id": 2950, + "id": 3419, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "7988:9:1", + "src": "7988:9:7", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2973, + "id": 3442, "isConstant": false, "isLValue": false, "isPure": false, @@ -18186,7 +18186,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7988:105:1", + "src": "7988:105:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -18194,82 +18194,82 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7974:119:1" + "src": "7974:119:7" }, { "assignments": [ - 2977 + 3446 ], "declarations": [ { "constant": false, - "id": 2977, + "id": 3446, "mutability": "mutable", "name": "t", - "nameLocation": "8127:1:1", + "nameLocation": "8127:1:7", "nodeType": "VariableDeclaration", - "scope": 2997, - "src": "8107:21:1", + "scope": 3466, + "src": "8107:21:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken" }, "typeName": { - "id": 2976, + "id": 3445, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2975, + "id": 3444, "name": "TrackedToken", "nodeType": "IdentifierPath", - "referencedDeclaration": 2231, - "src": "8107:12:1" + "referencedDeclaration": 2700, + "src": "8107:12:7" }, - "referencedDeclaration": 2231, - "src": "8107:12:1", + "referencedDeclaration": 2700, + "src": "8107:12:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage_ptr", "typeString": "struct TokenTracker.TrackedToken" } }, "visibility": "internal" } ], - "id": 2983, + "id": 3452, "initialValue": { "arguments": [ { - "id": 2979, + "id": 3448, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2928, - "src": "8144:9:1", + "referencedDeclaration": 3397, + "src": "8144:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 2980, + "id": 3449, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2935, - "src": "8155:15:1", + "referencedDeclaration": 3404, + "src": "8155:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2981, + "id": 3450, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "8172:7:1", + "referencedDeclaration": 3411, + "src": "8172:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18279,7 +18279,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -18291,18 +18291,18 @@ "typeString": "uint256" } ], - "id": 2978, + "id": 3447, "name": "TrackedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2231, - "src": "8131:12:1", + "referencedDeclaration": 2700, + "src": "8131:12:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_TrackedToken_$2231_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_TrackedToken_$2700_storage_ptr_$", "typeString": "type(struct TokenTracker.TrackedToken storage pointer)" } }, - "id": 2982, + "id": 3451, "isConstant": false, "isLValue": false, "isPure": false, @@ -18310,28 +18310,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8131:49:1", + "src": "8131:49:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "8107:73:1" + "src": "8107:73:7" }, { "expression": { "arguments": [ { - "id": 2987, + "id": 3456, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2977, - "src": "8213:1:1", + "referencedDeclaration": 3446, + "src": "8213:1:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } } @@ -18339,36 +18339,36 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } ], "expression": { - "id": 2984, + "id": 3453, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "8194:13:1", + "referencedDeclaration": 2709, + "src": "8194:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2986, + "id": 3455, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "8194:18:1", + "src": "8194:18:7", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr_$_t_struct$_TrackedToken_$2231_storage_$returns$__$bound_to$_t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr_$", + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr_$_t_struct$_TrackedToken_$2700_storage_$returns$__$bound_to$_t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr_$", "typeString": "function (struct TokenTracker.TrackedToken storage ref[] storage pointer,struct TokenTracker.TrackedToken storage ref)" } }, - "id": 2988, + "id": 3457, "isConstant": false, "isLValue": false, "isPure": false, @@ -18376,27 +18376,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8194:21:1", + "src": "8194:21:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2989, + "id": 3458, "nodeType": "ExpressionStatement", - "src": "8194:21:1" + "src": "8194:21:7" }, { "expression": { "arguments": [ { - "id": 2994, + "id": 3463, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "8261:1:1", + "referencedDeclaration": 3385, + "src": "8261:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -18412,25 +18412,25 @@ ], "expression": { "baseExpression": { - "id": 2990, + "id": 3459, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "8229:21:1", + "referencedDeclaration": 2705, + "src": "8229:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2992, + "id": 3461, "indexExpression": { - "id": 2991, + "id": 3460, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2949, - "src": "8251:3:1", + "referencedDeclaration": 3418, + "src": "8251:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -18441,26 +18441,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8229:26:1", + "src": "8229:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2993, + "id": 3462, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "8229:31:1", + "src": "8229:31:7", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$", "typeString": "function (uint256[] storage pointer,uint256)" } }, - "id": 2995, + "id": 3464, "isConstant": false, "isLValue": false, "isPure": false, @@ -18468,16 +18468,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8229:34:1", + "src": "8229:34:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2996, + "id": 3465, "nodeType": "ExpressionStatement", - "src": "8229:34:1" + "src": "8229:34:7" } ] }, @@ -18486,18 +18486,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2922, + "id": 3391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2919, + "id": 3388, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "7727:1:1", + "referencedDeclaration": 3385, + "src": "7727:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -18507,51 +18507,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2920, + "id": 3389, "name": "newTrackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2842, - "src": "7731:16:1", + "referencedDeclaration": 3311, + "src": "7731:16:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } }, - "id": 2921, + "id": 3390, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7731:23:1", + "src": "7731:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7727:27:1", + "src": "7727:27:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2998, + "id": 3467, "initializationExpression": { "assignments": [ - 2916 + 3385 ], "declarations": [ { "constant": false, - "id": 2916, + "id": 3385, "mutability": "mutable", "name": "i", - "nameLocation": "7720:1:1", + "nameLocation": "7720:1:7", "nodeType": "VariableDeclaration", - "scope": 2998, - "src": "7713:8:1", + "scope": 3467, + "src": "7713:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18559,10 +18559,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2915, + "id": 3384, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7713:6:1", + "src": "7713:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -18571,17 +18571,17 @@ "visibility": "internal" } ], - "id": 2918, + "id": 3387, "initialValue": { "hexValue": "30", - "id": 2917, + "id": 3386, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7724:1:1", + "src": "7724:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -18589,11 +18589,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "7713:12:1" + "src": "7713:12:7" }, "loopExpression": { "expression": { - "id": 2924, + "id": 3393, "isConstant": false, "isLValue": false, "isPure": false, @@ -18601,14 +18601,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "7756:3:1", + "src": "7756:3:7", "subExpression": { - "id": 2923, + "id": 3392, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "7756:1:1", + "referencedDeclaration": 3385, + "src": "7756:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -18619,104 +18619,104 @@ "typeString": "uint32" } }, - "id": 2925, + "id": 3394, "nodeType": "ExpressionStatement", - "src": "7756:3:1" + "src": "7756:3:7" }, "nodeType": "ForStatement", - "src": "7708:566:1" + "src": "7708:566:7" } ] }, - "id": 3000, + "id": 3469, "implemented": true, "kind": "function", "modifiers": [], "name": "_overrideTrack", - "nameLocation": "7164:14:1", + "nameLocation": "7164:14:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 2843, + "id": 3312, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2842, + "id": 3311, "mutability": "mutable", "name": "newTrackedTokens", - "nameLocation": "7201:16:1", + "nameLocation": "7201:16:7", "nodeType": "VariableDeclaration", - "scope": 3000, - "src": "7179:38:1", + "scope": 3469, + "src": "7179:38:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken[]" }, "typeName": { "baseType": { - "id": 2840, + "id": 3309, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2839, + "id": 3308, "name": "TrackedToken", "nodeType": "IdentifierPath", - "referencedDeclaration": 2231, - "src": "7179:12:1" + "referencedDeclaration": 2700, + "src": "7179:12:7" }, - "referencedDeclaration": 2231, - "src": "7179:12:1", + "referencedDeclaration": 2700, + "src": "7179:12:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage_ptr", "typeString": "struct TokenTracker.TrackedToken" } }, - "id": 2841, + "id": 3310, "nodeType": "ArrayTypeName", - "src": "7179:14:1", + "src": "7179:14:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr", "typeString": "struct TokenTracker.TrackedToken[]" } }, "visibility": "internal" } ], - "src": "7178:40:1" + "src": "7178:40:7" }, "returnParameters": { - "id": 2844, + "id": 3313, "nodeType": "ParameterList", "parameters": [], - "src": "7228:0:1" + "src": "7228:0:7" }, - "scope": 3391, - "src": "7155:1125:1", + "scope": 3860, + "src": "7155:1125:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3127, + "id": 3596, "nodeType": "Block", - "src": "8349:690:1", + "src": "8349:690:7", "statements": [ { "assignments": [ - 3006 + 3475 ], "declarations": [ { "constant": false, - "id": 3006, + "id": 3475, "mutability": "mutable", "name": "numTokens", - "nameLocation": "8366:9:1", + "nameLocation": "8366:9:7", "nodeType": "VariableDeclaration", - "scope": 3127, - "src": "8359:16:1", + "scope": 3596, + "src": "8359:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -18724,10 +18724,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3005, + "id": 3474, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "8359:6:1", + "src": "8359:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -18736,7 +18736,7 @@ "visibility": "internal" } ], - "id": 3014, + "id": 3483, "initialValue": { "arguments": [ { @@ -18744,32 +18744,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3012, + "id": 3481, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 3009, + "id": 3478, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "8385:4:1", + "referencedDeclaration": 3471, + "src": "8385:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 3010, + "id": 3479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "8385:11:1", + "src": "8385:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18779,21 +18779,21 @@ "operator": "/", "rightExpression": { "hexValue": "3936", - "id": 3011, + "id": 3480, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8399:2:1", + "src": "8399:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8385:16:1", + "src": "8385:16:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -18807,26 +18807,26 @@ "typeString": "uint256" } ], - "id": 3008, + "id": 3477, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8378:6:1", + "src": "8378:6:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 3007, + "id": 3476, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "8378:6:1", + "src": "8378:6:7", "typeDescriptions": {} } }, - "id": 3013, + "id": 3482, "isConstant": false, "isLValue": false, "isPure": false, @@ -18834,7 +18834,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8378:24:1", + "src": "8378:24:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -18842,7 +18842,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8359:43:1" + "src": "8359:43:7" }, { "expression": { @@ -18852,7 +18852,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3021, + "id": 3490, "isConstant": false, "isLValue": false, "isPure": false, @@ -18862,18 +18862,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3018, + "id": 3487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3016, + "id": 3485, "name": "numTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3006, - "src": "8420:9:1", + "referencedDeclaration": 3475, + "src": "8420:9:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -18883,21 +18883,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3017, + "id": 3486, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8432:2:1", + "src": "8432:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8420:14:1", + "src": "8420:14:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -18907,31 +18907,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 3019, + "id": 3488, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "8438:4:1", + "referencedDeclaration": 3471, + "src": "8438:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 3020, + "id": 3489, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "8438:11:1", + "src": "8438:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8420:29:1", + "src": "8420:29:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -18939,14 +18939,14 @@ }, { "hexValue": "64617461206d7573742068617665206c656e677468206d756c7469706c6520746f203936", - "id": 3022, + "id": 3491, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8451:38:1", + "src": "8451:38:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7fb6a81bbdba15000418055bc5e058938e4fd0b50065d70de11ee03ca8f293e3", "typeString": "literal_string \"data must have length multiple to 96\"" @@ -18965,7 +18965,7 @@ "typeString": "literal_string \"data must have length multiple to 96\"" } ], - "id": 3015, + "id": 3484, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -18973,13 +18973,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "8412:7:1", + "src": "8412:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3023, + "id": 3492, "isConstant": false, "isLValue": false, "isPure": false, @@ -18987,76 +18987,76 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8412:78:1", + "src": "8412:78:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3024, + "id": 3493, "nodeType": "ExpressionStatement", - "src": "8412:78:1" + "src": "8412:78:7" }, { "assignments": [ - 3029 + 3498 ], "declarations": [ { "constant": false, - "id": 3029, + "id": 3498, "mutability": "mutable", "name": "newTrackedTokens", - "nameLocation": "8522:16:1", + "nameLocation": "8522:16:7", "nodeType": "VariableDeclaration", - "scope": 3127, - "src": "8500:38:1", + "scope": 3596, + "src": "8500:38:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken[]" }, "typeName": { "baseType": { - "id": 3027, + "id": 3496, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3026, + "id": 3495, "name": "TrackedToken", "nodeType": "IdentifierPath", - "referencedDeclaration": 2231, - "src": "8500:12:1" + "referencedDeclaration": 2700, + "src": "8500:12:7" }, - "referencedDeclaration": 2231, - "src": "8500:12:1", + "referencedDeclaration": 2700, + "src": "8500:12:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage_ptr", "typeString": "struct TokenTracker.TrackedToken" } }, - "id": 3028, + "id": 3497, "nodeType": "ArrayTypeName", - "src": "8500:14:1", + "src": "8500:14:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr", "typeString": "struct TokenTracker.TrackedToken[]" } }, "visibility": "internal" } ], - "id": 3036, + "id": 3505, "initialValue": { "arguments": [ { - "id": 3034, + "id": 3503, "name": "numTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3006, - "src": "8560:9:1", + "referencedDeclaration": 3475, + "src": "8560:9:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19070,45 +19070,45 @@ "typeString": "uint32" } ], - "id": 3033, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "8541:18:1", + "src": "8541:18:7", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct TokenTracker.TrackedToken memory[] memory)" }, "typeName": { "baseType": { - "id": 3031, + "id": 3500, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3030, + "id": 3499, "name": "TrackedToken", "nodeType": "IdentifierPath", - "referencedDeclaration": 2231, - "src": "8545:12:1" + "referencedDeclaration": 2700, + "src": "8545:12:7" }, - "referencedDeclaration": 2231, - "src": "8545:12:1", + "referencedDeclaration": 2700, + "src": "8545:12:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage_ptr", "typeString": "struct TokenTracker.TrackedToken" } }, - "id": 3032, + "id": 3501, "nodeType": "ArrayTypeName", - "src": "8545:14:1", + "src": "8545:14:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr", "typeString": "struct TokenTracker.TrackedToken[]" } } }, - "id": 3035, + "id": 3504, "isConstant": false, "isLValue": false, "isPure": false, @@ -19116,63 +19116,63 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8541:29:1", + "src": "8541:29:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "8500:70:1" + "src": "8500:70:7" }, { "body": { - "id": 3121, + "id": 3590, "nodeType": "Block", - "src": "8619:372:1", + "src": "8619:372:7", "statements": [ { "assignments": [ - 3049 + 3518 ], "declarations": [ { "constant": false, - "id": 3049, + "id": 3518, "mutability": "mutable", "name": "tokenType", - "nameLocation": "8643:9:1", + "nameLocation": "8643:9:7", "nodeType": "VariableDeclaration", - "scope": 3121, - "src": "8633:19:1", + "scope": 3590, + "src": "8633:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 3048, + "id": 3517, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3047, + "id": 3516, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "8633:9:1" + "referencedDeclaration": 2607, + "src": "8633:9:7" }, - "referencedDeclaration": 2138, - "src": "8633:9:1", + "referencedDeclaration": 2607, + "src": "8633:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "visibility": "internal" } ], - "id": 3067, + "id": 3536, "initialValue": { "arguments": [ { @@ -19181,12 +19181,12 @@ "arguments": [ { "baseExpression": { - "id": 3054, + "id": 3523, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "8683:4:1", + "referencedDeclaration": 3471, + "src": "8683:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -19197,7 +19197,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3062, + "id": 3531, "isConstant": false, "isLValue": false, "isPure": false, @@ -19207,18 +19207,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3060, + "id": 3529, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3058, + "id": 3527, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8697:1:1", + "referencedDeclaration": 3507, + "src": "8697:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19228,21 +19228,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3059, + "id": 3528, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8701:2:1", + "src": "8701:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8697:6:1", + "src": "8697:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19252,50 +19252,50 @@ "operator": "+", "rightExpression": { "hexValue": "3332", - "id": 3061, + "id": 3530, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8706:2:1", + "src": "8706:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "8697:11:1", + "src": "8697:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3063, + "id": 3532, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "8683:26:1", + "src": "8683:26:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3057, + "id": 3526, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3055, + "id": 3524, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8688:1:1", + "referencedDeclaration": 3507, + "src": "8688:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19305,21 +19305,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3056, + "id": 3525, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8692:2:1", + "src": "8692:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8688:6:1", + "src": "8688:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19338,18 +19338,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3053, + "id": 3522, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "8673:9:1", + "referencedDeclaration": 3859, + "src": "8673:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3064, + "id": 3533, "isConstant": false, "isLValue": false, "isPure": false, @@ -19357,7 +19357,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8673:37:1", + "src": "8673:37:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -19372,26 +19372,26 @@ "typeString": "bytes32" } ], - "id": 3052, + "id": 3521, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8665:7:1", + "src": "8665:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3051, + "id": 3520, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8665:7:1", + "src": "8665:7:7", "typeDescriptions": {} } }, - "id": 3065, + "id": 3534, "isConstant": false, "isLValue": false, "isPure": false, @@ -19399,7 +19399,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8665:46:1", + "src": "8665:46:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -19414,18 +19414,18 @@ "typeString": "uint256" } ], - "id": 3050, + "id": 3519, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "8655:9:1", + "referencedDeclaration": 2607, + "src": "8655:9:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2138_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 3066, + "id": 3535, "isConstant": false, "isLValue": false, "isPure": false, @@ -19433,30 +19433,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8655:57:1", + "src": "8655:57:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "nodeType": "VariableDeclarationStatement", - "src": "8633:79:1" + "src": "8633:79:7" }, { "assignments": [ - 3069 + 3538 ], "declarations": [ { "constant": false, - "id": 3069, + "id": 3538, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "8734:15:1", + "nameLocation": "8734:15:7", "nodeType": "VariableDeclaration", - "scope": 3121, - "src": "8726:23:1", + "scope": 3590, + "src": "8726:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19464,10 +19464,10 @@ "typeString": "address" }, "typeName": { - "id": 3068, + "id": 3537, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8726:7:1", + "src": "8726:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -19477,7 +19477,7 @@ "visibility": "internal" } ], - "id": 3090, + "id": 3559, "initialValue": { "arguments": [ { @@ -19486,12 +19486,12 @@ "arguments": [ { "baseExpression": { - "id": 3075, + "id": 3544, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "8778:4:1", + "referencedDeclaration": 3471, + "src": "8778:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -19502,7 +19502,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3085, + "id": 3554, "isConstant": false, "isLValue": false, "isPure": false, @@ -19512,18 +19512,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3083, + "id": 3552, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3081, + "id": 3550, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8797:1:1", + "referencedDeclaration": 3507, + "src": "8797:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19533,21 +19533,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3082, + "id": 3551, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8801:2:1", + "src": "8801:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8797:6:1", + "src": "8797:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19557,39 +19557,39 @@ "operator": "+", "rightExpression": { "hexValue": "3532", - "id": 3084, + "id": 3553, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8806:2:1", + "src": "8806:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_52_by_1", "typeString": "int_const 52" }, "value": "52" }, - "src": "8797:11:1", + "src": "8797:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3086, + "id": 3555, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "8778:31:1", + "src": "8778:31:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3080, + "id": 3549, "isConstant": false, "isLValue": false, "isPure": false, @@ -19599,18 +19599,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3078, + "id": 3547, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3076, + "id": 3545, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8783:1:1", + "referencedDeclaration": 3507, + "src": "8783:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19620,21 +19620,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3077, + "id": 3546, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8787:2:1", + "src": "8787:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8783:6:1", + "src": "8783:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19644,21 +19644,21 @@ "operator": "+", "rightExpression": { "hexValue": "3332", - "id": 3079, + "id": 3548, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8792:2:1", + "src": "8792:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "8783:11:1", + "src": "8783:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19677,18 +19677,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3074, + "id": 3543, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "8768:9:1", + "referencedDeclaration": 3859, + "src": "8768:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3087, + "id": 3556, "isConstant": false, "isLValue": false, "isPure": false, @@ -19696,7 +19696,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8768:42:1", + "src": "8768:42:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -19711,26 +19711,26 @@ "typeString": "bytes32" } ], - "id": 3073, + "id": 3542, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8760:7:1", + "src": "8760:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 3072, + "id": 3541, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "8760:7:1", + "src": "8760:7:7", "typeDescriptions": {} } }, - "id": 3088, + "id": 3557, "isConstant": false, "isLValue": false, "isPure": false, @@ -19738,7 +19738,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8760:51:1", + "src": "8760:51:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -19753,26 +19753,26 @@ "typeString": "bytes20" } ], - "id": 3071, + "id": 3540, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8752:7:1", + "src": "8752:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 3070, + "id": 3539, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8752:7:1", + "src": "8752:7:7", "typeDescriptions": {} } }, - "id": 3089, + "id": 3558, "isConstant": false, "isLValue": false, "isPure": false, @@ -19780,7 +19780,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8752:60:1", + "src": "8752:60:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -19788,22 +19788,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8726:86:1" + "src": "8726:86:7" }, { "assignments": [ - 3092 + 3561 ], "declarations": [ { "constant": false, - "id": 3092, + "id": 3561, "mutability": "mutable", "name": "tokenId", - "nameLocation": "8834:7:1", + "nameLocation": "8834:7:7", "nodeType": "VariableDeclaration", - "scope": 3121, - "src": "8826:15:1", + "scope": 3590, + "src": "8826:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -19811,10 +19811,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3091, + "id": 3560, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8826:7:1", + "src": "8826:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -19823,19 +19823,19 @@ "visibility": "internal" } ], - "id": 3110, + "id": 3579, "initialValue": { "arguments": [ { "arguments": [ { "baseExpression": { - "id": 3096, + "id": 3565, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "8862:4:1", + "referencedDeclaration": 3471, + "src": "8862:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -19846,7 +19846,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3106, + "id": 3575, "isConstant": false, "isLValue": false, "isPure": false, @@ -19856,18 +19856,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3104, + "id": 3573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3102, + "id": 3571, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8881:1:1", + "referencedDeclaration": 3507, + "src": "8881:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19877,21 +19877,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3103, + "id": 3572, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8885:2:1", + "src": "8885:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8881:6:1", + "src": "8881:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19901,39 +19901,39 @@ "operator": "+", "rightExpression": { "hexValue": "3936", - "id": 3105, + "id": 3574, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8890:2:1", + "src": "8890:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8881:11:1", + "src": "8881:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3107, + "id": 3576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "8862:31:1", + "src": "8862:31:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3101, + "id": 3570, "isConstant": false, "isLValue": false, "isPure": false, @@ -19943,18 +19943,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3099, + "id": 3568, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3097, + "id": 3566, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8867:1:1", + "referencedDeclaration": 3507, + "src": "8867:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19964,21 +19964,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3098, + "id": 3567, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8871:2:1", + "src": "8871:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8867:6:1", + "src": "8867:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -19988,21 +19988,21 @@ "operator": "+", "rightExpression": { "hexValue": "3634", - "id": 3100, + "id": 3569, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8876:2:1", + "src": "8876:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "8867:11:1", + "src": "8867:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -20021,18 +20021,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3095, + "id": 3564, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "8852:9:1", + "referencedDeclaration": 3859, + "src": "8852:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3108, + "id": 3577, "isConstant": false, "isLValue": false, "isPure": false, @@ -20040,7 +20040,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8852:42:1", + "src": "8852:42:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -20055,26 +20055,26 @@ "typeString": "bytes32" } ], - "id": 3094, + "id": 3563, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8844:7:1", + "src": "8844:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3093, + "id": 3562, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8844:7:1", + "src": "8844:7:7", "typeDescriptions": {} } }, - "id": 3109, + "id": 3578, "isConstant": false, "isLValue": false, "isPure": false, @@ -20082,7 +20082,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8844:51:1", + "src": "8844:51:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -20090,36 +20090,36 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8826:69:1" + "src": "8826:69:7" }, { "expression": { - "id": 3119, + "id": 3588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 3111, + "id": 3580, "name": "newTrackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3029, - "src": "8909:16:1", + "referencedDeclaration": 3498, + "src": "8909:16:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } }, - "id": 3113, + "id": 3582, "indexExpression": { - "id": 3112, + "id": 3581, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8926:1:1", + "referencedDeclaration": 3507, + "src": "8926:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -20130,9 +20130,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8909:19:1", + "src": "8909:19:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, @@ -20141,36 +20141,36 @@ "rightHandSide": { "arguments": [ { - "id": 3115, + "id": 3584, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "8944:9:1", + "referencedDeclaration": 3518, + "src": "8944:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 3116, + "id": 3585, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8955:15:1", + "referencedDeclaration": 3538, + "src": "8955:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3117, + "id": 3586, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3092, - "src": "8972:7:1", + "referencedDeclaration": 3561, + "src": "8972:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20180,7 +20180,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -20192,18 +20192,18 @@ "typeString": "uint256" } ], - "id": 3114, + "id": 3583, "name": "TrackedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2231, - "src": "8931:12:1", + "referencedDeclaration": 2700, + "src": "8931:12:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_TrackedToken_$2231_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_TrackedToken_$2700_storage_ptr_$", "typeString": "type(struct TokenTracker.TrackedToken storage pointer)" } }, - "id": 3118, + "id": 3587, "isConstant": false, "isLValue": false, "isPure": false, @@ -20211,22 +20211,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8931:49:1", + "src": "8931:49:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, - "src": "8909:71:1", + "src": "8909:71:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, - "id": 3120, + "id": 3589, "nodeType": "ExpressionStatement", - "src": "8909:71:1" + "src": "8909:71:7" } ] }, @@ -20235,18 +20235,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3043, + "id": 3512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3041, + "id": 3510, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8599:1:1", + "referencedDeclaration": 3507, + "src": "8599:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -20255,38 +20255,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 3042, + "id": 3511, "name": "numTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3006, - "src": "8603:9:1", + "referencedDeclaration": 3475, + "src": "8603:9:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "8599:13:1", + "src": "8599:13:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3122, + "id": 3591, "initializationExpression": { "assignments": [ - 3038 + 3507 ], "declarations": [ { "constant": false, - "id": 3038, + "id": 3507, "mutability": "mutable", "name": "i", - "nameLocation": "8592:1:1", + "nameLocation": "8592:1:7", "nodeType": "VariableDeclaration", - "scope": 3122, - "src": "8585:8:1", + "scope": 3591, + "src": "8585:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20294,10 +20294,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3037, + "id": 3506, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "8585:6:1", + "src": "8585:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -20306,17 +20306,17 @@ "visibility": "internal" } ], - "id": 3040, + "id": 3509, "initialValue": { "hexValue": "30", - "id": 3039, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8596:1:1", + "src": "8596:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -20324,11 +20324,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "8585:12:1" + "src": "8585:12:7" }, "loopExpression": { "expression": { - "id": 3045, + "id": 3514, "isConstant": false, "isLValue": false, "isPure": false, @@ -20336,14 +20336,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "8614:3:1", + "src": "8614:3:7", "subExpression": { - "id": 3044, + "id": 3513, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8614:1:1", + "referencedDeclaration": 3507, + "src": "8614:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -20354,25 +20354,25 @@ "typeString": "uint32" } }, - "id": 3046, + "id": 3515, "nodeType": "ExpressionStatement", - "src": "8614:3:1" + "src": "8614:3:7" }, "nodeType": "ForStatement", - "src": "8580:411:1" + "src": "8580:411:7" }, { "expression": { "arguments": [ { - "id": 3124, + "id": 3593, "name": "newTrackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3029, - "src": "9015:16:1", + "referencedDeclaration": 3498, + "src": "9015:16:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } } @@ -20380,22 +20380,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } ], - "id": 3123, + "id": 3592, "name": "_overrideTrack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3000, - "src": "9000:14:1", + "referencedDeclaration": 3469, + "src": "9000:14:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr_$returns$__$", "typeString": "function (struct TokenTracker.TrackedToken memory[] memory)" } }, - "id": 3125, + "id": 3594, "isConstant": false, "isLValue": false, "isPure": false, @@ -20403,39 +20403,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9000:32:1", + "src": "9000:32:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3126, + "id": 3595, "nodeType": "ExpressionStatement", - "src": "9000:32:1" + "src": "9000:32:7" } ] }, - "id": 3128, + "id": 3597, "implemented": true, "kind": "function", "modifiers": [], "name": "_overrideTrackWithBytes", - "nameLocation": "8295:23:1", + "nameLocation": "8295:23:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 3003, + "id": 3472, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3002, + "id": 3471, "mutability": "mutable", "name": "data", - "nameLocation": "8334:4:1", + "nameLocation": "8334:4:7", "nodeType": "VariableDeclaration", - "scope": 3128, - "src": "8319:19:1", + "scope": 3597, + "src": "8319:19:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -20443,10 +20443,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3001, + "id": 3470, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8319:5:1", + "src": "8319:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -20455,40 +20455,40 @@ "visibility": "internal" } ], - "src": "8318:21:1" + "src": "8318:21:7" }, "returnParameters": { - "id": 3004, + "id": 3473, "nodeType": "ParameterList", "parameters": [], - "src": "8349:0:1" + "src": "8349:0:7" }, - "scope": 3391, - "src": "8286:753:1", + "scope": 3860, + "src": "8286:753:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3235, + "id": 3704, "nodeType": "Block", - "src": "9096:545:1", + "src": "9096:545:7", "statements": [ { "assignments": [ - 3134 + 3603 ], "declarations": [ { "constant": false, - "id": 3134, + "id": 3603, "mutability": "mutable", "name": "numTokens", - "nameLocation": "9113:9:1", + "nameLocation": "9113:9:7", "nodeType": "VariableDeclaration", - "scope": 3235, - "src": "9106:16:1", + "scope": 3704, + "src": "9106:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -20496,10 +20496,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3133, + "id": 3602, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9106:6:1", + "src": "9106:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -20508,7 +20508,7 @@ "visibility": "internal" } ], - "id": 3142, + "id": 3611, "initialValue": { "arguments": [ { @@ -20516,32 +20516,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3140, + "id": 3609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 3137, + "id": 3606, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3130, - "src": "9132:4:1", + "referencedDeclaration": 3599, + "src": "9132:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 3138, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "9132:11:1", + "src": "9132:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20551,21 +20551,21 @@ "operator": "/", "rightExpression": { "hexValue": "3936", - "id": 3139, + "id": 3608, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9146:2:1", + "src": "9146:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9132:16:1", + "src": "9132:16:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -20579,26 +20579,26 @@ "typeString": "uint256" } ], - "id": 3136, + "id": 3605, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9125:6:1", + "src": "9125:6:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 3135, + "id": 3604, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9125:6:1", + "src": "9125:6:7", "typeDescriptions": {} } }, - "id": 3141, + "id": 3610, "isConstant": false, "isLValue": false, "isPure": false, @@ -20606,7 +20606,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9125:24:1", + "src": "9125:24:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -20614,7 +20614,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9106:43:1" + "src": "9106:43:7" }, { "expression": { @@ -20624,7 +20624,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3149, + "id": 3618, "isConstant": false, "isLValue": false, "isPure": false, @@ -20634,18 +20634,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3146, + "id": 3615, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3144, + "id": 3613, "name": "numTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3134, - "src": "9167:9:1", + "referencedDeclaration": 3603, + "src": "9167:9:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -20655,21 +20655,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3145, + "id": 3614, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9179:2:1", + "src": "9179:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9167:14:1", + "src": "9167:14:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -20679,31 +20679,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 3147, + "id": 3616, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3130, - "src": "9185:4:1", + "referencedDeclaration": 3599, + "src": "9185:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 3148, + "id": 3617, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "9185:11:1", + "src": "9185:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9167:29:1", + "src": "9167:29:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -20711,14 +20711,14 @@ }, { "hexValue": "64617461206d7573742068617665206c656e677468206d756c7469706c6520746f203936", - "id": 3150, + "id": 3619, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9198:38:1", + "src": "9198:38:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7fb6a81bbdba15000418055bc5e058938e4fd0b50065d70de11ee03ca8f293e3", "typeString": "literal_string \"data must have length multiple to 96\"" @@ -20737,7 +20737,7 @@ "typeString": "literal_string \"data must have length multiple to 96\"" } ], - "id": 3143, + "id": 3612, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -20745,13 +20745,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "9159:7:1", + "src": "9159:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3151, + "id": 3620, "isConstant": false, "isLValue": false, "isPure": false, @@ -20759,64 +20759,64 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9159:78:1", + "src": "9159:78:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3152, + "id": 3621, "nodeType": "ExpressionStatement", - "src": "9159:78:1" + "src": "9159:78:7" }, { "body": { - "id": 3233, + "id": 3702, "nodeType": "Block", - "src": "9286:349:1", + "src": "9286:349:7", "statements": [ { "assignments": [ - 3165 + 3634 ], "declarations": [ { "constant": false, - "id": 3165, + "id": 3634, "mutability": "mutable", "name": "tokenType", - "nameLocation": "9310:9:1", + "nameLocation": "9310:9:7", "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "9300:19:1", + "scope": 3702, + "src": "9300:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 3164, + "id": 3633, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3163, + "id": 3632, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "9300:9:1" + "referencedDeclaration": 2607, + "src": "9300:9:7" }, - "referencedDeclaration": 2138, - "src": "9300:9:1", + "referencedDeclaration": 2607, + "src": "9300:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "visibility": "internal" } ], - "id": 3183, + "id": 3652, "initialValue": { "arguments": [ { @@ -20825,12 +20825,12 @@ "arguments": [ { "baseExpression": { - "id": 3170, + "id": 3639, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3130, - "src": "9350:4:1", + "referencedDeclaration": 3599, + "src": "9350:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -20841,7 +20841,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3178, + "id": 3647, "isConstant": false, "isLValue": false, "isPure": false, @@ -20851,18 +20851,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3176, + "id": 3645, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3174, + "id": 3643, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9364:1:1", + "referencedDeclaration": 3623, + "src": "9364:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -20872,21 +20872,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3175, + "id": 3644, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9368:2:1", + "src": "9368:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9364:6:1", + "src": "9364:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -20896,50 +20896,50 @@ "operator": "+", "rightExpression": { "hexValue": "3332", - "id": 3177, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9373:2:1", + "src": "9373:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "9364:11:1", + "src": "9364:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3179, + "id": 3648, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "9350:26:1", + "src": "9350:26:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3173, + "id": 3642, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3171, + "id": 3640, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9355:1:1", + "referencedDeclaration": 3623, + "src": "9355:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -20949,21 +20949,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3172, + "id": 3641, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9359:2:1", + "src": "9359:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9355:6:1", + "src": "9355:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -20982,18 +20982,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3169, + "id": 3638, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "9340:9:1", + "referencedDeclaration": 3859, + "src": "9340:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3180, + "id": 3649, "isConstant": false, "isLValue": false, "isPure": false, @@ -21001,7 +21001,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9340:37:1", + "src": "9340:37:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -21016,26 +21016,26 @@ "typeString": "bytes32" } ], - "id": 3168, + "id": 3637, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9332:7:1", + "src": "9332:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3167, + "id": 3636, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9332:7:1", + "src": "9332:7:7", "typeDescriptions": {} } }, - "id": 3181, + "id": 3650, "isConstant": false, "isLValue": false, "isPure": false, @@ -21043,7 +21043,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9332:46:1", + "src": "9332:46:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -21058,18 +21058,18 @@ "typeString": "uint256" } ], - "id": 3166, + "id": 3635, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "9322:9:1", + "referencedDeclaration": 2607, + "src": "9322:9:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2138_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 3182, + "id": 3651, "isConstant": false, "isLValue": false, "isPure": false, @@ -21077,30 +21077,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9322:57:1", + "src": "9322:57:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "nodeType": "VariableDeclarationStatement", - "src": "9300:79:1" + "src": "9300:79:7" }, { "assignments": [ - 3185 + 3654 ], "declarations": [ { "constant": false, - "id": 3185, + "id": 3654, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "9401:15:1", + "nameLocation": "9401:15:7", "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "9393:23:1", + "scope": 3702, + "src": "9393:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21108,10 +21108,10 @@ "typeString": "address" }, "typeName": { - "id": 3184, + "id": 3653, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9393:7:1", + "src": "9393:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -21121,7 +21121,7 @@ "visibility": "internal" } ], - "id": 3206, + "id": 3675, "initialValue": { "arguments": [ { @@ -21130,12 +21130,12 @@ "arguments": [ { "baseExpression": { - "id": 3191, + "id": 3660, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3130, - "src": "9445:4:1", + "referencedDeclaration": 3599, + "src": "9445:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -21146,7 +21146,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3201, + "id": 3670, "isConstant": false, "isLValue": false, "isPure": false, @@ -21156,18 +21156,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3199, + "id": 3668, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3197, + "id": 3666, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9464:1:1", + "referencedDeclaration": 3623, + "src": "9464:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -21177,21 +21177,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3198, + "id": 3667, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9468:2:1", + "src": "9468:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9464:6:1", + "src": "9464:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -21201,39 +21201,39 @@ "operator": "+", "rightExpression": { "hexValue": "3532", - "id": 3200, + "id": 3669, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9473:2:1", + "src": "9473:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_52_by_1", "typeString": "int_const 52" }, "value": "52" }, - "src": "9464:11:1", + "src": "9464:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3202, + "id": 3671, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "9445:31:1", + "src": "9445:31:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3196, + "id": 3665, "isConstant": false, "isLValue": false, "isPure": false, @@ -21243,18 +21243,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3194, + "id": 3663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3192, + "id": 3661, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9450:1:1", + "referencedDeclaration": 3623, + "src": "9450:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -21264,21 +21264,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3193, + "id": 3662, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9454:2:1", + "src": "9454:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9450:6:1", + "src": "9450:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -21288,21 +21288,21 @@ "operator": "+", "rightExpression": { "hexValue": "3332", - "id": 3195, + "id": 3664, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9459:2:1", + "src": "9459:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "9450:11:1", + "src": "9450:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -21321,18 +21321,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3190, + "id": 3659, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "9435:9:1", + "referencedDeclaration": 3859, + "src": "9435:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3203, + "id": 3672, "isConstant": false, "isLValue": false, "isPure": false, @@ -21340,7 +21340,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9435:42:1", + "src": "9435:42:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -21355,26 +21355,26 @@ "typeString": "bytes32" } ], - "id": 3189, + "id": 3658, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9427:7:1", + "src": "9427:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 3188, + "id": 3657, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "9427:7:1", + "src": "9427:7:7", "typeDescriptions": {} } }, - "id": 3204, + "id": 3673, "isConstant": false, "isLValue": false, "isPure": false, @@ -21382,7 +21382,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9427:51:1", + "src": "9427:51:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -21397,26 +21397,26 @@ "typeString": "bytes20" } ], - "id": 3187, + "id": 3656, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9419:7:1", + "src": "9419:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 3186, + "id": 3655, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9419:7:1", + "src": "9419:7:7", "typeDescriptions": {} } }, - "id": 3205, + "id": 3674, "isConstant": false, "isLValue": false, "isPure": false, @@ -21424,7 +21424,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9419:60:1", + "src": "9419:60:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -21432,22 +21432,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9393:86:1" + "src": "9393:86:7" }, { "assignments": [ - 3208 + 3677 ], "declarations": [ { "constant": false, - "id": 3208, + "id": 3677, "mutability": "mutable", "name": "tokenId", - "nameLocation": "9501:7:1", + "nameLocation": "9501:7:7", "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "9493:15:1", + "scope": 3702, + "src": "9493:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21455,10 +21455,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3207, + "id": 3676, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9493:7:1", + "src": "9493:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21467,19 +21467,19 @@ "visibility": "internal" } ], - "id": 3226, + "id": 3695, "initialValue": { "arguments": [ { "arguments": [ { "baseExpression": { - "id": 3212, + "id": 3681, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3130, - "src": "9529:4:1", + "referencedDeclaration": 3599, + "src": "9529:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -21490,7 +21490,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3222, + "id": 3691, "isConstant": false, "isLValue": false, "isPure": false, @@ -21500,18 +21500,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3220, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3218, + "id": 3687, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9548:1:1", + "referencedDeclaration": 3623, + "src": "9548:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -21521,21 +21521,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3219, + "id": 3688, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9552:2:1", + "src": "9552:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9548:6:1", + "src": "9548:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -21545,39 +21545,39 @@ "operator": "+", "rightExpression": { "hexValue": "3936", - "id": 3221, + "id": 3690, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9557:2:1", + "src": "9557:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9548:11:1", + "src": "9548:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3223, + "id": 3692, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "9529:31:1", + "src": "9529:31:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3217, + "id": 3686, "isConstant": false, "isLValue": false, "isPure": false, @@ -21587,18 +21587,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3215, + "id": 3684, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3213, + "id": 3682, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9534:1:1", + "referencedDeclaration": 3623, + "src": "9534:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -21608,21 +21608,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3214, + "id": 3683, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9538:2:1", + "src": "9538:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9534:6:1", + "src": "9534:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -21632,21 +21632,21 @@ "operator": "+", "rightExpression": { "hexValue": "3634", - "id": 3216, + "id": 3685, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9543:2:1", + "src": "9543:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "9534:11:1", + "src": "9534:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -21665,18 +21665,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3211, + "id": 3680, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "9519:9:1", + "referencedDeclaration": 3859, + "src": "9519:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3224, + "id": 3693, "isConstant": false, "isLValue": false, "isPure": false, @@ -21684,7 +21684,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9519:42:1", + "src": "9519:42:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -21699,26 +21699,26 @@ "typeString": "bytes32" } ], - "id": 3210, + "id": 3679, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9511:7:1", + "src": "9511:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3209, + "id": 3678, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9511:7:1", + "src": "9511:7:7", "typeDescriptions": {} } }, - "id": 3225, + "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, @@ -21726,7 +21726,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9511:51:1", + "src": "9511:51:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -21734,42 +21734,42 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9493:69:1" + "src": "9493:69:7" }, { "expression": { "arguments": [ { - "id": 3228, + "id": 3697, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3165, - "src": "9588:9:1", + "referencedDeclaration": 3634, + "src": "9588:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 3229, + "id": 3698, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "9599:15:1", + "referencedDeclaration": 3654, + "src": "9599:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3230, + "id": 3699, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3208, - "src": "9616:7:1", + "referencedDeclaration": 3677, + "src": "9616:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -21779,7 +21779,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -21791,18 +21791,18 @@ "typeString": "uint256" } ], - "id": 3227, + "id": 3696, "name": "_trackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "9576:11:1", + "referencedDeclaration": 3089, + "src": "9576:11:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2138_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 3231, + "id": 3700, "isConstant": false, "isLValue": false, "isPure": false, @@ -21810,16 +21810,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9576:48:1", + "src": "9576:48:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3232, + "id": 3701, "nodeType": "ExpressionStatement", - "src": "9576:48:1" + "src": "9576:48:7" } ] }, @@ -21828,18 +21828,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3159, + "id": 3628, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3157, + "id": 3626, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9266:1:1", + "referencedDeclaration": 3623, + "src": "9266:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -21848,38 +21848,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 3158, + "id": 3627, "name": "numTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3134, - "src": "9270:9:1", + "referencedDeclaration": 3603, + "src": "9270:9:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "9266:13:1", + "src": "9266:13:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3234, + "id": 3703, "initializationExpression": { "assignments": [ - 3154 + 3623 ], "declarations": [ { "constant": false, - "id": 3154, + "id": 3623, "mutability": "mutable", "name": "i", - "nameLocation": "9259:1:1", + "nameLocation": "9259:1:7", "nodeType": "VariableDeclaration", - "scope": 3234, - "src": "9252:8:1", + "scope": 3703, + "src": "9252:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -21887,10 +21887,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3153, + "id": 3622, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9252:6:1", + "src": "9252:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -21899,17 +21899,17 @@ "visibility": "internal" } ], - "id": 3156, + "id": 3625, "initialValue": { "hexValue": "30", - "id": 3155, + "id": 3624, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9263:1:1", + "src": "9263:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -21917,11 +21917,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9252:12:1" + "src": "9252:12:7" }, "loopExpression": { "expression": { - "id": 3161, + "id": 3630, "isConstant": false, "isLValue": false, "isPure": false, @@ -21929,14 +21929,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "9281:3:1", + "src": "9281:3:7", "subExpression": { - "id": 3160, + "id": 3629, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9281:1:1", + "referencedDeclaration": 3623, + "src": "9281:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -21947,35 +21947,35 @@ "typeString": "uint32" } }, - "id": 3162, + "id": 3631, "nodeType": "ExpressionStatement", - "src": "9281:3:1" + "src": "9281:3:7" }, "nodeType": "ForStatement", - "src": "9247:388:1" + "src": "9247:388:7" } ] }, - "id": 3236, + "id": 3705, "implemented": true, "kind": "function", "modifiers": [], "name": "_multiTrack", - "nameLocation": "9054:11:1", + "nameLocation": "9054:11:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 3131, + "id": 3600, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3130, + "id": 3599, "mutability": "mutable", "name": "data", - "nameLocation": "9081:4:1", + "nameLocation": "9081:4:7", "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "9066:19:1", + "scope": 3705, + "src": "9066:19:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -21983,10 +21983,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3129, + "id": 3598, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9066:5:1", + "src": "9066:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -21995,40 +21995,40 @@ "visibility": "internal" } ], - "src": "9065:21:1" + "src": "9065:21:7" }, "returnParameters": { - "id": 3132, + "id": 3601, "nodeType": "ParameterList", "parameters": [], - "src": "9096:0:1" + "src": "9096:0:7" }, - "scope": 3391, - "src": "9045:596:1", + "scope": 3860, + "src": "9045:596:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3343, + "id": 3812, "nodeType": "Block", - "src": "9700:547:1", + "src": "9700:547:7", "statements": [ { "assignments": [ - 3242 + 3711 ], "declarations": [ { "constant": false, - "id": 3242, + "id": 3711, "mutability": "mutable", "name": "numTokens", - "nameLocation": "9717:9:1", + "nameLocation": "9717:9:7", "nodeType": "VariableDeclaration", - "scope": 3343, - "src": "9710:16:1", + "scope": 3812, + "src": "9710:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22036,10 +22036,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3241, + "id": 3710, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9710:6:1", + "src": "9710:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -22048,7 +22048,7 @@ "visibility": "internal" } ], - "id": 3250, + "id": 3719, "initialValue": { "arguments": [ { @@ -22056,32 +22056,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3248, + "id": 3717, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 3245, + "id": 3714, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "9736:4:1", + "referencedDeclaration": 3707, + "src": "9736:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 3246, + "id": 3715, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "9736:11:1", + "src": "9736:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22091,21 +22091,21 @@ "operator": "/", "rightExpression": { "hexValue": "3936", - "id": 3247, + "id": 3716, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9750:2:1", + "src": "9750:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9736:16:1", + "src": "9736:16:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -22119,26 +22119,26 @@ "typeString": "uint256" } ], - "id": 3244, + "id": 3713, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9729:6:1", + "src": "9729:6:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 3243, + "id": 3712, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9729:6:1", + "src": "9729:6:7", "typeDescriptions": {} } }, - "id": 3249, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": false, @@ -22146,7 +22146,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9729:24:1", + "src": "9729:24:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -22154,7 +22154,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9710:43:1" + "src": "9710:43:7" }, { "expression": { @@ -22164,7 +22164,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3257, + "id": 3726, "isConstant": false, "isLValue": false, "isPure": false, @@ -22174,18 +22174,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3254, + "id": 3723, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3252, + "id": 3721, "name": "numTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3242, - "src": "9771:9:1", + "referencedDeclaration": 3711, + "src": "9771:9:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -22195,21 +22195,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3253, + "id": 3722, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9783:2:1", + "src": "9783:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9771:14:1", + "src": "9771:14:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -22219,31 +22219,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 3255, + "id": 3724, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "9789:4:1", + "referencedDeclaration": 3707, + "src": "9789:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 3256, + "id": 3725, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "9789:11:1", + "src": "9789:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9771:29:1", + "src": "9771:29:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -22251,14 +22251,14 @@ }, { "hexValue": "64617461206d7573742068617665206c656e677468206d756c7469706c6520746f203936", - "id": 3258, + "id": 3727, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9802:38:1", + "src": "9802:38:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7fb6a81bbdba15000418055bc5e058938e4fd0b50065d70de11ee03ca8f293e3", "typeString": "literal_string \"data must have length multiple to 96\"" @@ -22277,7 +22277,7 @@ "typeString": "literal_string \"data must have length multiple to 96\"" } ], - "id": 3251, + "id": 3720, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -22285,13 +22285,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "9763:7:1", + "src": "9763:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3259, + "id": 3728, "isConstant": false, "isLValue": false, "isPure": false, @@ -22299,64 +22299,64 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9763:78:1", + "src": "9763:78:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3260, + "id": 3729, "nodeType": "ExpressionStatement", - "src": "9763:78:1" + "src": "9763:78:7" }, { "body": { - "id": 3341, + "id": 3810, "nodeType": "Block", - "src": "9890:351:1", + "src": "9890:351:7", "statements": [ { "assignments": [ - 3273 + 3742 ], "declarations": [ { "constant": false, - "id": 3273, + "id": 3742, "mutability": "mutable", "name": "tokenType", - "nameLocation": "9914:9:1", + "nameLocation": "9914:9:7", "nodeType": "VariableDeclaration", - "scope": 3341, - "src": "9904:19:1", + "scope": 3810, + "src": "9904:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 3272, + "id": 3741, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3271, + "id": 3740, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "9904:9:1" + "referencedDeclaration": 2607, + "src": "9904:9:7" }, - "referencedDeclaration": 2138, - "src": "9904:9:1", + "referencedDeclaration": 2607, + "src": "9904:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "visibility": "internal" } ], - "id": 3291, + "id": 3760, "initialValue": { "arguments": [ { @@ -22365,12 +22365,12 @@ "arguments": [ { "baseExpression": { - "id": 3278, + "id": 3747, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "9954:4:1", + "referencedDeclaration": 3707, + "src": "9954:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -22381,7 +22381,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3286, + "id": 3755, "isConstant": false, "isLValue": false, "isPure": false, @@ -22391,18 +22391,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3284, + "id": 3753, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3282, + "id": 3751, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "9968:1:1", + "referencedDeclaration": 3731, + "src": "9968:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -22412,21 +22412,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3283, + "id": 3752, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9972:2:1", + "src": "9972:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9968:6:1", + "src": "9968:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -22436,50 +22436,50 @@ "operator": "+", "rightExpression": { "hexValue": "3332", - "id": 3285, + "id": 3754, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9977:2:1", + "src": "9977:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "9968:11:1", + "src": "9968:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3287, + "id": 3756, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "9954:26:1", + "src": "9954:26:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3281, + "id": 3750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3279, + "id": 3748, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "9959:1:1", + "referencedDeclaration": 3731, + "src": "9959:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -22489,21 +22489,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3280, + "id": 3749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9963:2:1", + "src": "9963:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9959:6:1", + "src": "9959:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -22522,18 +22522,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3277, + "id": 3746, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "9944:9:1", + "referencedDeclaration": 3859, + "src": "9944:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3288, + "id": 3757, "isConstant": false, "isLValue": false, "isPure": false, @@ -22541,7 +22541,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9944:37:1", + "src": "9944:37:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -22556,26 +22556,26 @@ "typeString": "bytes32" } ], - "id": 3276, + "id": 3745, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9936:7:1", + "src": "9936:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3275, + "id": 3744, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9936:7:1", + "src": "9936:7:7", "typeDescriptions": {} } }, - "id": 3289, + "id": 3758, "isConstant": false, "isLValue": false, "isPure": false, @@ -22583,7 +22583,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9936:46:1", + "src": "9936:46:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -22598,18 +22598,18 @@ "typeString": "uint256" } ], - "id": 3274, + "id": 3743, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "9926:9:1", + "referencedDeclaration": 2607, + "src": "9926:9:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2138_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 3290, + "id": 3759, "isConstant": false, "isLValue": false, "isPure": false, @@ -22617,30 +22617,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9926:57:1", + "src": "9926:57:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "nodeType": "VariableDeclarationStatement", - "src": "9904:79:1" + "src": "9904:79:7" }, { "assignments": [ - 3293 + 3762 ], "declarations": [ { "constant": false, - "id": 3293, + "id": 3762, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "10005:15:1", + "nameLocation": "10005:15:7", "nodeType": "VariableDeclaration", - "scope": 3341, - "src": "9997:23:1", + "scope": 3810, + "src": "9997:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22648,10 +22648,10 @@ "typeString": "address" }, "typeName": { - "id": 3292, + "id": 3761, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9997:7:1", + "src": "9997:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -22661,7 +22661,7 @@ "visibility": "internal" } ], - "id": 3314, + "id": 3783, "initialValue": { "arguments": [ { @@ -22670,12 +22670,12 @@ "arguments": [ { "baseExpression": { - "id": 3299, + "id": 3768, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "10049:4:1", + "referencedDeclaration": 3707, + "src": "10049:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -22686,7 +22686,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3309, + "id": 3778, "isConstant": false, "isLValue": false, "isPure": false, @@ -22696,18 +22696,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3307, + "id": 3776, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3305, + "id": 3774, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "10068:1:1", + "referencedDeclaration": 3731, + "src": "10068:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -22717,21 +22717,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3306, + "id": 3775, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10072:2:1", + "src": "10072:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "10068:6:1", + "src": "10068:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -22741,39 +22741,39 @@ "operator": "+", "rightExpression": { "hexValue": "3532", - "id": 3308, + "id": 3777, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10077:2:1", + "src": "10077:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_52_by_1", "typeString": "int_const 52" }, "value": "52" }, - "src": "10068:11:1", + "src": "10068:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3310, + "id": 3779, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "10049:31:1", + "src": "10049:31:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3304, + "id": 3773, "isConstant": false, "isLValue": false, "isPure": false, @@ -22783,18 +22783,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3302, + "id": 3771, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3300, + "id": 3769, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "10054:1:1", + "referencedDeclaration": 3731, + "src": "10054:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -22804,21 +22804,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3301, + "id": 3770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10058:2:1", + "src": "10058:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "10054:6:1", + "src": "10054:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -22828,21 +22828,21 @@ "operator": "+", "rightExpression": { "hexValue": "3332", - "id": 3303, + "id": 3772, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10063:2:1", + "src": "10063:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "10054:11:1", + "src": "10054:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -22861,18 +22861,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3298, + "id": 3767, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "10039:9:1", + "referencedDeclaration": 3859, + "src": "10039:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3311, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, @@ -22880,7 +22880,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10039:42:1", + "src": "10039:42:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -22895,26 +22895,26 @@ "typeString": "bytes32" } ], - "id": 3297, + "id": 3766, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10031:7:1", + "src": "10031:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 3296, + "id": 3765, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "10031:7:1", + "src": "10031:7:7", "typeDescriptions": {} } }, - "id": 3312, + "id": 3781, "isConstant": false, "isLValue": false, "isPure": false, @@ -22922,7 +22922,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10031:51:1", + "src": "10031:51:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -22937,26 +22937,26 @@ "typeString": "bytes20" } ], - "id": 3295, + "id": 3764, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10023:7:1", + "src": "10023:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 3294, + "id": 3763, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10023:7:1", + "src": "10023:7:7", "typeDescriptions": {} } }, - "id": 3313, + "id": 3782, "isConstant": false, "isLValue": false, "isPure": false, @@ -22964,7 +22964,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10023:60:1", + "src": "10023:60:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -22972,22 +22972,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9997:86:1" + "src": "9997:86:7" }, { "assignments": [ - 3316 + 3785 ], "declarations": [ { "constant": false, - "id": 3316, + "id": 3785, "mutability": "mutable", "name": "tokenId", - "nameLocation": "10105:7:1", + "nameLocation": "10105:7:7", "nodeType": "VariableDeclaration", - "scope": 3341, - "src": "10097:15:1", + "scope": 3810, + "src": "10097:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -22995,10 +22995,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3315, + "id": 3784, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10097:7:1", + "src": "10097:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23007,19 +23007,19 @@ "visibility": "internal" } ], - "id": 3334, + "id": 3803, "initialValue": { "arguments": [ { "arguments": [ { "baseExpression": { - "id": 3320, + "id": 3789, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "10133:4:1", + "referencedDeclaration": 3707, + "src": "10133:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -23030,7 +23030,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3330, + "id": 3799, "isConstant": false, "isLValue": false, "isPure": false, @@ -23040,18 +23040,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3328, + "id": 3797, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3326, + "id": 3795, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "10152:1:1", + "referencedDeclaration": 3731, + "src": "10152:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -23061,21 +23061,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3327, + "id": 3796, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10156:2:1", + "src": "10156:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "10152:6:1", + "src": "10152:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -23085,39 +23085,39 @@ "operator": "+", "rightExpression": { "hexValue": "3936", - "id": 3329, + "id": 3798, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10161:2:1", + "src": "10161:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "10152:11:1", + "src": "10152:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3331, + "id": 3800, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "10133:31:1", + "src": "10133:31:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3325, + "id": 3794, "isConstant": false, "isLValue": false, "isPure": false, @@ -23127,18 +23127,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3323, + "id": 3792, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3321, + "id": 3790, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "10138:1:1", + "referencedDeclaration": 3731, + "src": "10138:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -23148,21 +23148,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3322, + "id": 3791, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10142:2:1", + "src": "10142:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "10138:6:1", + "src": "10138:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -23172,21 +23172,21 @@ "operator": "+", "rightExpression": { "hexValue": "3634", - "id": 3324, + "id": 3793, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10147:2:1", + "src": "10147:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "10138:11:1", + "src": "10138:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -23205,18 +23205,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3319, + "id": 3788, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "10123:9:1", + "referencedDeclaration": 3859, + "src": "10123:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3332, + "id": 3801, "isConstant": false, "isLValue": false, "isPure": false, @@ -23224,7 +23224,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10123:42:1", + "src": "10123:42:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -23239,26 +23239,26 @@ "typeString": "bytes32" } ], - "id": 3318, + "id": 3787, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10115:7:1", + "src": "10115:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3317, + "id": 3786, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10115:7:1", + "src": "10115:7:7", "typeDescriptions": {} } }, - "id": 3333, + "id": 3802, "isConstant": false, "isLValue": false, "isPure": false, @@ -23266,7 +23266,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10115:51:1", + "src": "10115:51:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -23274,42 +23274,42 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "10097:69:1" + "src": "10097:69:7" }, { "expression": { "arguments": [ { - "id": 3336, + "id": 3805, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "10194:9:1", + "referencedDeclaration": 3742, + "src": "10194:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 3337, + "id": 3806, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3293, - "src": "10205:15:1", + "referencedDeclaration": 3762, + "src": "10205:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3338, + "id": 3807, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3316, - "src": "10222:7:1", + "referencedDeclaration": 3785, + "src": "10222:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23319,7 +23319,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -23331,18 +23331,18 @@ "typeString": "uint256" } ], - "id": 3335, + "id": 3804, "name": "_untrackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2838, - "src": "10180:13:1", + "referencedDeclaration": 3307, + "src": "10180:13:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2138_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 3339, + "id": 3808, "isConstant": false, "isLValue": false, "isPure": false, @@ -23350,16 +23350,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10180:50:1", + "src": "10180:50:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3340, + "id": 3809, "nodeType": "ExpressionStatement", - "src": "10180:50:1" + "src": "10180:50:7" } ] }, @@ -23368,18 +23368,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3267, + "id": 3736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3265, + "id": 3734, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "9870:1:1", + "referencedDeclaration": 3731, + "src": "9870:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -23388,38 +23388,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 3266, + "id": 3735, "name": "numTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3242, - "src": "9874:9:1", + "referencedDeclaration": 3711, + "src": "9874:9:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "9870:13:1", + "src": "9870:13:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3342, + "id": 3811, "initializationExpression": { "assignments": [ - 3262 + 3731 ], "declarations": [ { "constant": false, - "id": 3262, + "id": 3731, "mutability": "mutable", "name": "i", - "nameLocation": "9863:1:1", + "nameLocation": "9863:1:7", "nodeType": "VariableDeclaration", - "scope": 3342, - "src": "9856:8:1", + "scope": 3811, + "src": "9856:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23427,10 +23427,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3261, + "id": 3730, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9856:6:1", + "src": "9856:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -23439,17 +23439,17 @@ "visibility": "internal" } ], - "id": 3264, + "id": 3733, "initialValue": { "hexValue": "30", - "id": 3263, + "id": 3732, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9867:1:1", + "src": "9867:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -23457,11 +23457,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9856:12:1" + "src": "9856:12:7" }, "loopExpression": { "expression": { - "id": 3269, + "id": 3738, "isConstant": false, "isLValue": false, "isPure": false, @@ -23469,14 +23469,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "9885:3:1", + "src": "9885:3:7", "subExpression": { - "id": 3268, + "id": 3737, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "9885:1:1", + "referencedDeclaration": 3731, + "src": "9885:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -23487,35 +23487,35 @@ "typeString": "uint32" } }, - "id": 3270, + "id": 3739, "nodeType": "ExpressionStatement", - "src": "9885:3:1" + "src": "9885:3:7" }, "nodeType": "ForStatement", - "src": "9851:390:1" + "src": "9851:390:7" } ] }, - "id": 3344, + "id": 3813, "implemented": true, "kind": "function", "modifiers": [], "name": "_multiUntrack", - "nameLocation": "9656:13:1", + "nameLocation": "9656:13:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 3239, + "id": 3708, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3238, + "id": 3707, "mutability": "mutable", "name": "data", - "nameLocation": "9685:4:1", + "nameLocation": "9685:4:7", "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "9670:19:1", + "scope": 3813, + "src": "9670:19:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -23523,10 +23523,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3237, + "id": 3706, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9670:5:1", + "src": "9670:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -23535,25 +23535,25 @@ "visibility": "internal" } ], - "src": "9669:21:1" + "src": "9669:21:7" }, "returnParameters": { - "id": 3240, + "id": 3709, "nodeType": "ParameterList", "parameters": [], - "src": "9700:0:1" + "src": "9700:0:7" }, - "scope": 3391, - "src": "9647:600:1", + "scope": 3860, + "src": "9647:600:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3389, + "id": 3858, "nodeType": "Block", - "src": "10319:342:1", + "src": "10319:342:7", "statements": [ { "condition": { @@ -23561,32 +23561,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3354, + "id": 3823, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 3351, + "id": 3820, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "10333:1:1", + "referencedDeclaration": 3815, + "src": "10333:1:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3352, + "id": 3821, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "10333:8:1", + "src": "10333:8:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23596,47 +23596,47 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 3353, + "id": 3822, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10345:1:1", + "src": "10345:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "10333:13:1", + "src": "10333:13:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3361, + "id": 3830, "nodeType": "IfStatement", - "src": "10329:63:1", + "src": "10329:63:7", "trueBody": { - "id": 3360, + "id": 3829, "nodeType": "Block", - "src": "10348:44:1", + "src": "10348:44:7", "statements": [ { "expression": { "arguments": [ { "hexValue": "307830", - "id": 3357, + "id": 3826, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10377:3:1", + "src": "10377:3:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -23651,26 +23651,26 @@ "typeString": "int_const 0" } ], - "id": 3356, + "id": 3825, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10369:7:1", + "src": "10369:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 3355, + "id": 3824, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10369:7:1", + "src": "10369:7:7", "typeDescriptions": {} } }, - "id": 3358, + "id": 3827, "isConstant": false, "isLValue": false, "isPure": true, @@ -23678,17 +23678,17 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10369:12:1", + "src": "10369:12:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 3350, - "id": 3359, + "functionReturnParameters": 3819, + "id": 3828, "nodeType": "Return", - "src": "10362:19:1" + "src": "10362:19:7" } ] } @@ -23701,32 +23701,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3366, + "id": 3835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 3363, + "id": 3832, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "10409:1:1", + "referencedDeclaration": 3815, + "src": "10409:1:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3364, + "id": 3833, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "10409:8:1", + "src": "10409:8:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23736,21 +23736,21 @@ "operator": "<=", "rightExpression": { "hexValue": "3332", - "id": 3365, + "id": 3834, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10421:2:1", + "src": "10421:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "10409:14:1", + "src": "10409:14:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -23758,14 +23758,14 @@ }, { "hexValue": "696e70757420627974657320746f6f206c6f6e67", - "id": 3367, + "id": 3836, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10425:22:1", + "src": "10425:22:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_2c594e135171cc6dc0d96175148636924623810d2d534a029b78044ab417d7d0", "typeString": "literal_string \"input bytes too long\"" @@ -23784,7 +23784,7 @@ "typeString": "literal_string \"input bytes too long\"" } ], - "id": 3362, + "id": 3831, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -23792,13 +23792,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "10401:7:1", + "src": "10401:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3368, + "id": 3837, "isConstant": false, "isLValue": false, "isPure": false, @@ -23806,31 +23806,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10401:47:1", + "src": "10401:47:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3369, + "id": 3838, "nodeType": "ExpressionStatement", - "src": "10401:47:1" + "src": "10401:47:7" }, { "assignments": [ - 3371 + 3840 ], "declarations": [ { "constant": false, - "id": 3371, + "id": 3840, "mutability": "mutable", "name": "r", - "nameLocation": "10466:1:1", + "nameLocation": "10466:1:7", "nodeType": "VariableDeclaration", - "scope": 3389, - "src": "10458:9:1", + "scope": 3858, + "src": "10458:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23838,10 +23838,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3370, + "id": 3839, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10458:7:1", + "src": "10458:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -23850,24 +23850,24 @@ "visibility": "internal" } ], - "id": 3372, + "id": 3841, "nodeType": "VariableDeclarationStatement", - "src": "10458:9:1" + "src": "10458:9:7" }, { "assignments": [ - 3374 + 3843 ], "declarations": [ { "constant": false, - "id": 3374, + "id": 3843, "mutability": "mutable", "name": "len", - "nameLocation": "10483:3:1", + "nameLocation": "10483:3:7", "nodeType": "VariableDeclaration", - "scope": 3389, - "src": "10477:9:1", + "scope": 3858, + "src": "10477:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -23875,10 +23875,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3373, + "id": 3842, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "10477:5:1", + "src": "10477:5:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -23887,7 +23887,7 @@ "visibility": "internal" } ], - "id": 3385, + "id": 3854, "initialValue": { "arguments": [ { @@ -23895,7 +23895,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3383, + "id": 3852, "isConstant": false, "isLValue": false, "isPure": false, @@ -23907,21 +23907,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3380, + "id": 3849, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "3332", - "id": 3377, + "id": 3846, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10496:2:1", + "src": "10496:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" @@ -23932,45 +23932,45 @@ "operator": "-", "rightExpression": { "expression": { - "id": 3378, + "id": 3847, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "10501:1:1", + "referencedDeclaration": 3815, + "src": "10501:1:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3379, + "id": 3848, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "10501:8:1", + "src": "10501:8:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10496:13:1", + "src": "10496:13:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3381, + "id": 3850, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10495:15:1", + "src": "10495:15:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -23980,21 +23980,21 @@ "operator": "*", "rightExpression": { "hexValue": "38", - "id": 3382, + "id": 3851, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10513:1:1", + "src": "10513:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "10495:19:1", + "src": "10495:19:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24008,26 +24008,26 @@ "typeString": "uint256" } ], - "id": 3376, + "id": 3845, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10489:5:1", + "src": "10489:5:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 3375, + "id": 3844, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "10489:5:1", + "src": "10489:5:7", "typeDescriptions": {} } }, - "id": 3384, + "id": 3853, "isConstant": false, "isLValue": false, "isPure": false, @@ -24035,7 +24035,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10489:26:1", + "src": "10489:26:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -24043,16 +24043,16 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "10477:38:1" + "src": "10477:38:7" }, { "AST": { "nodeType": "YulBlock", - "src": "10533:104:1", + "src": "10533:104:7", "statements": [ { "nodeType": "YulAssignment", - "src": "10547:22:1", + "src": "10547:22:7", "value": { "arguments": [ { @@ -24060,12 +24060,12 @@ { "name": "b", "nodeType": "YulIdentifier", - "src": "10562:1:1" + "src": "10562:1:7" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10565:2:1", + "src": "10565:2:7", "type": "", "value": "32" } @@ -24073,89 +24073,89 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10558:3:1" + "src": "10558:3:7" }, "nodeType": "YulFunctionCall", - "src": "10558:10:1" + "src": "10558:10:7" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "10552:5:1" + "src": "10552:5:7" }, "nodeType": "YulFunctionCall", - "src": "10552:17:1" + "src": "10552:17:7" }, "variableNames": [ { "name": "r", "nodeType": "YulIdentifier", - "src": "10547:1:1" + "src": "10547:1:7" } ] }, { "nodeType": "YulAssignment", - "src": "10582:16:1", + "src": "10582:16:7", "value": { "arguments": [ { "name": "len", "nodeType": "YulIdentifier", - "src": "10591:3:1" + "src": "10591:3:7" }, { "name": "r", "nodeType": "YulIdentifier", - "src": "10596:1:1" + "src": "10596:1:7" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "10587:3:1" + "src": "10587:3:7" }, "nodeType": "YulFunctionCall", - "src": "10587:11:1" + "src": "10587:11:7" }, "variableNames": [ { "name": "r", "nodeType": "YulIdentifier", - "src": "10582:1:1" + "src": "10582:1:7" } ] }, { "nodeType": "YulAssignment", - "src": "10611:16:1", + "src": "10611:16:7", "value": { "arguments": [ { "name": "len", "nodeType": "YulIdentifier", - "src": "10620:3:1" + "src": "10620:3:7" }, { "name": "r", "nodeType": "YulIdentifier", - "src": "10625:1:1" + "src": "10625:1:7" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "10616:3:1" + "src": "10616:3:7" }, "nodeType": "YulFunctionCall", - "src": "10616:11:1" + "src": "10616:11:7" }, "variableNames": [ { "name": "r", "nodeType": "YulIdentifier", - "src": "10611:1:1" + "src": "10611:1:7" } ] } @@ -24164,106 +24164,106 @@ "evmVersion": "istanbul", "externalReferences": [ { - "declaration": 3346, + "declaration": 3815, "isOffset": false, "isSlot": false, - "src": "10562:1:1", + "src": "10562:1:7", "valueSize": 1 }, { - "declaration": 3374, + "declaration": 3843, "isOffset": false, "isSlot": false, - "src": "10591:3:1", + "src": "10591:3:7", "valueSize": 1 }, { - "declaration": 3374, + "declaration": 3843, "isOffset": false, "isSlot": false, - "src": "10620:3:1", + "src": "10620:3:7", "valueSize": 1 }, { - "declaration": 3371, + "declaration": 3840, "isOffset": false, "isSlot": false, - "src": "10547:1:1", + "src": "10547:1:7", "valueSize": 1 }, { - "declaration": 3371, + "declaration": 3840, "isOffset": false, "isSlot": false, - "src": "10582:1:1", + "src": "10582:1:7", "valueSize": 1 }, { - "declaration": 3371, + "declaration": 3840, "isOffset": false, "isSlot": false, - "src": "10596:1:1", + "src": "10596:1:7", "valueSize": 1 }, { - "declaration": 3371, + "declaration": 3840, "isOffset": false, "isSlot": false, - "src": "10611:1:1", + "src": "10611:1:7", "valueSize": 1 }, { - "declaration": 3371, + "declaration": 3840, "isOffset": false, "isSlot": false, - "src": "10625:1:1", + "src": "10625:1:7", "valueSize": 1 } ], - "id": 3386, + "id": 3855, "nodeType": "InlineAssembly", - "src": "10525:112:1" + "src": "10525:112:7" }, { "expression": { - "id": 3387, + "id": 3856, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "10653:1:1", + "referencedDeclaration": 3840, + "src": "10653:1:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 3350, - "id": 3388, + "functionReturnParameters": 3819, + "id": 3857, "nodeType": "Return", - "src": "10646:8:1" + "src": "10646:8:7" } ] }, - "id": 3390, + "id": 3859, "implemented": true, "kind": "function", "modifiers": [], "name": "_asByte32", - "nameLocation": "10262:9:1", + "nameLocation": "10262:9:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 3347, + "id": 3816, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3346, + "id": 3815, "mutability": "mutable", "name": "b", - "nameLocation": "10285:1:1", + "nameLocation": "10285:1:7", "nodeType": "VariableDeclaration", - "scope": 3390, - "src": "10272:14:1", + "scope": 3859, + "src": "10272:14:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -24271,10 +24271,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3345, + "id": 3814, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10272:5:1", + "src": "10272:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -24283,21 +24283,21 @@ "visibility": "internal" } ], - "src": "10271:16:1" + "src": "10271:16:7" }, "returnParameters": { - "id": 3350, + "id": 3819, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3349, + "id": 3818, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3390, - "src": "10311:7:1", + "scope": 3859, + "src": "10311:7:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24305,10 +24305,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3348, + "id": 3817, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10311:7:1", + "src": "10311:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -24317,50 +24317,50 @@ "visibility": "internal" } ], - "src": "10310:9:1" + "src": "10310:9:7" }, - "scope": 3391, - "src": "10253:408:1", + "scope": 3860, + "src": "10253:408:7", "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], - "scope": 3392, - "src": "322:10341:1", + "scope": 3861, + "src": "322:10341:7", "usedErrors": [] } ], - "src": "39:10625:1" + "src": "39:10625:7" }, "legacyAST": { - "absolutePath": "/Users/polymorpher/git/one-wallet/code/contracts/TokenTracker.sol", + "absolutePath": "project:/contracts/TokenTracker.sol", "exportedSymbols": { "IERC1155": [ - 3513 + 121 ], "IERC1155Receiver": [ - 3554 + 162 ], "IERC165": [ - 3778 + 386 ], "IERC721": [ - 3748 + 356 ], "IERC721Receiver": [ - 3766 + 374 ], "TokenTracker": [ - 3391 + 3860 ] }, - "id": 3392, + "id": 3861, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ { - "id": 2125, + "id": 2594, "literals": [ "solidity", "^", @@ -24368,53 +24368,53 @@ ".4" ], "nodeType": "PragmaDirective", - "src": "39:23:1" + "src": "39:23:7" }, { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", "file": "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", - "id": 2126, + "id": 2595, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3392, - "sourceUnit": 3767, - "src": "64:66:1", + "scope": 3861, + "sourceUnit": 375, + "src": "64:66:7", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/token/ERC721/IERC721.sol", "file": "@openzeppelin/contracts/token/ERC721/IERC721.sol", - "id": 2127, + "id": 2596, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3392, - "sourceUnit": 3749, - "src": "131:58:1", + "scope": 3861, + "sourceUnit": 357, + "src": "131:58:7", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol", "file": "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol", - "id": 2128, + "id": 2597, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3392, - "sourceUnit": 3555, - "src": "190:68:1", + "scope": 3861, + "sourceUnit": 163, + "src": "190:68:7", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155.sol", "file": "@openzeppelin/contracts/token/ERC1155/IERC1155.sol", - "id": 2129, + "id": 2598, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 3392, - "sourceUnit": 3514, - "src": "259:60:1", + "scope": 3861, + "sourceUnit": 122, + "src": "259:60:7", "symbolAliases": [], "unitAlias": "" }, @@ -24423,121 +24423,121 @@ "baseContracts": [ { "baseName": { - "id": 2130, + "id": 2599, "name": "IERC721Receiver", "nodeType": "IdentifierPath", - "referencedDeclaration": 3766, - "src": "347:15:1" + "referencedDeclaration": 374, + "src": "347:15:7" }, - "id": 2131, + "id": 2600, "nodeType": "InheritanceSpecifier", - "src": "347:15:1" + "src": "347:15:7" }, { "baseName": { - "id": 2132, + "id": 2601, "name": "IERC1155Receiver", "nodeType": "IdentifierPath", - "referencedDeclaration": 3554, - "src": "364:16:1" + "referencedDeclaration": 162, + "src": "364:16:7" }, - "id": 2133, + "id": 2602, "nodeType": "InheritanceSpecifier", - "src": "364:16:1" + "src": "364:16:7" } ], "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 3391, + "id": 3860, "linearizedBaseContracts": [ - 3391, - 3554, - 3778, - 3766 + 3860, + 162, + 386, + 374 ], "name": "TokenTracker", - "nameLocation": "331:12:1", + "nameLocation": "331:12:7", "nodeType": "ContractDefinition", "nodes": [ { "canonicalName": "TokenTracker.TokenType", - "id": 2138, + "id": 2607, "members": [ { - "id": 2134, + "id": 2603, "name": "ERC20", - "nameLocation": "435:5:1", + "nameLocation": "435:5:7", "nodeType": "EnumValue", - "src": "435:5:1" + "src": "435:5:7" }, { - "id": 2135, + "id": 2604, "name": "ERC721", - "nameLocation": "442:6:1", + "nameLocation": "442:6:7", "nodeType": "EnumValue", - "src": "442:6:1" + "src": "442:6:7" }, { - "id": 2136, + "id": 2605, "name": "ERC1155", - "nameLocation": "450:7:1", + "nameLocation": "450:7:7", "nodeType": "EnumValue", - "src": "450:7:1" + "src": "450:7:7" }, { - "id": 2137, + "id": 2606, "name": "NONE", - "nameLocation": "459:4:1", + "nameLocation": "459:4:7", "nodeType": "EnumValue", - "src": "459:4:1" + "src": "459:4:7" } ], "name": "TokenType", - "nameLocation": "416:9:1", + "nameLocation": "416:9:7", "nodeType": "EnumDefinition", - "src": "411:58:1" + "src": "411:58:7" }, { "anonymous": false, - "id": 2155, + "id": 2624, "name": "ReceivedToken", - "nameLocation": "480:13:1", + "nameLocation": "480:13:7", "nodeType": "EventDefinition", "parameters": { - "id": 2154, + "id": 2623, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2141, + "id": 2610, "indexed": false, "mutability": "mutable", "name": "tokenType", - "nameLocation": "504:9:1", + "nameLocation": "504:9:7", "nodeType": "VariableDeclaration", - "scope": 2155, - "src": "494:19:1", + "scope": 2624, + "src": "494:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2140, + "id": 2609, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2139, + "id": 2608, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "494:9:1" + "referencedDeclaration": 2607, + "src": "494:9:7" }, - "referencedDeclaration": 2138, - "src": "494:9:1", + "referencedDeclaration": 2607, + "src": "494:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -24545,14 +24545,14 @@ }, { "constant": false, - "id": 2143, + "id": 2612, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "523:6:1", + "nameLocation": "523:6:7", "nodeType": "VariableDeclaration", - "scope": 2155, - "src": "515:14:1", + "scope": 2624, + "src": "515:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24560,10 +24560,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2142, + "id": 2611, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "515:7:1", + "src": "515:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24573,14 +24573,14 @@ }, { "constant": false, - "id": 2145, + "id": 2614, "indexed": false, "mutability": "mutable", "name": "from", - "nameLocation": "539:4:1", + "nameLocation": "539:4:7", "nodeType": "VariableDeclaration", - "scope": 2155, - "src": "531:12:1", + "scope": 2624, + "src": "531:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24588,10 +24588,10 @@ "typeString": "address" }, "typeName": { - "id": 2144, + "id": 2613, "name": "address", "nodeType": "ElementaryTypeName", - "src": "531:7:1", + "src": "531:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24602,14 +24602,14 @@ }, { "constant": false, - "id": 2147, + "id": 2616, "indexed": false, "mutability": "mutable", "name": "tokenContract", - "nameLocation": "553:13:1", + "nameLocation": "553:13:7", "nodeType": "VariableDeclaration", - "scope": 2155, - "src": "545:21:1", + "scope": 2624, + "src": "545:21:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24617,10 +24617,10 @@ "typeString": "address" }, "typeName": { - "id": 2146, + "id": 2615, "name": "address", "nodeType": "ElementaryTypeName", - "src": "545:7:1", + "src": "545:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24631,14 +24631,14 @@ }, { "constant": false, - "id": 2149, + "id": 2618, "indexed": false, "mutability": "mutable", "name": "operator", - "nameLocation": "576:8:1", + "nameLocation": "576:8:7", "nodeType": "VariableDeclaration", - "scope": 2155, - "src": "568:16:1", + "scope": 2624, + "src": "568:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24646,10 +24646,10 @@ "typeString": "address" }, "typeName": { - "id": 2148, + "id": 2617, "name": "address", "nodeType": "ElementaryTypeName", - "src": "568:7:1", + "src": "568:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24660,14 +24660,14 @@ }, { "constant": false, - "id": 2151, + "id": 2620, "indexed": false, "mutability": "mutable", "name": "tokenId", - "nameLocation": "594:7:1", + "nameLocation": "594:7:7", "nodeType": "VariableDeclaration", - "scope": 2155, - "src": "586:15:1", + "scope": 2624, + "src": "586:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24675,10 +24675,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2150, + "id": 2619, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "586:7:1", + "src": "586:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24688,14 +24688,14 @@ }, { "constant": false, - "id": 2153, + "id": 2622, "indexed": false, "mutability": "mutable", "name": "data", - "nameLocation": "609:4:1", + "nameLocation": "609:4:7", "nodeType": "VariableDeclaration", - "scope": 2155, - "src": "603:10:1", + "scope": 2624, + "src": "603:10:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24703,10 +24703,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2152, + "id": 2621, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "603:5:1", + "src": "603:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -24715,50 +24715,50 @@ "visibility": "internal" } ], - "src": "493:121:1" + "src": "493:121:7" }, - "src": "474:141:1" + "src": "474:141:7" }, { "anonymous": false, - "id": 2164, + "id": 2633, "name": "TokenTracked", - "nameLocation": "626:12:1", + "nameLocation": "626:12:7", "nodeType": "EventDefinition", "parameters": { - "id": 2163, + "id": 2632, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2158, + "id": 2627, "indexed": false, "mutability": "mutable", "name": "tokenType", - "nameLocation": "649:9:1", + "nameLocation": "649:9:7", "nodeType": "VariableDeclaration", - "scope": 2164, - "src": "639:19:1", + "scope": 2633, + "src": "639:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2157, + "id": 2626, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2156, + "id": 2625, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "639:9:1" + "referencedDeclaration": 2607, + "src": "639:9:7" }, - "referencedDeclaration": 2138, - "src": "639:9:1", + "referencedDeclaration": 2607, + "src": "639:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -24766,14 +24766,14 @@ }, { "constant": false, - "id": 2160, + "id": 2629, "indexed": false, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "668:15:1", + "nameLocation": "668:15:7", "nodeType": "VariableDeclaration", - "scope": 2164, - "src": "660:23:1", + "scope": 2633, + "src": "660:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24781,10 +24781,10 @@ "typeString": "address" }, "typeName": { - "id": 2159, + "id": 2628, "name": "address", "nodeType": "ElementaryTypeName", - "src": "660:7:1", + "src": "660:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24795,14 +24795,14 @@ }, { "constant": false, - "id": 2162, + "id": 2631, "indexed": false, "mutability": "mutable", "name": "tokenId", - "nameLocation": "693:7:1", + "nameLocation": "693:7:7", "nodeType": "VariableDeclaration", - "scope": 2164, - "src": "685:15:1", + "scope": 2633, + "src": "685:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24810,10 +24810,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2161, + "id": 2630, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "685:7:1", + "src": "685:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24822,50 +24822,50 @@ "visibility": "internal" } ], - "src": "638:63:1" + "src": "638:63:7" }, - "src": "620:82:1" + "src": "620:82:7" }, { "anonymous": false, - "id": 2173, + "id": 2642, "name": "TokenUntracked", - "nameLocation": "713:14:1", + "nameLocation": "713:14:7", "nodeType": "EventDefinition", "parameters": { - "id": 2172, + "id": 2641, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2167, + "id": 2636, "indexed": false, "mutability": "mutable", "name": "tokenType", - "nameLocation": "738:9:1", + "nameLocation": "738:9:7", "nodeType": "VariableDeclaration", - "scope": 2173, - "src": "728:19:1", + "scope": 2642, + "src": "728:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2166, + "id": 2635, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2165, + "id": 2634, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "728:9:1" + "referencedDeclaration": 2607, + "src": "728:9:7" }, - "referencedDeclaration": 2138, - "src": "728:9:1", + "referencedDeclaration": 2607, + "src": "728:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -24873,14 +24873,14 @@ }, { "constant": false, - "id": 2169, + "id": 2638, "indexed": false, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "757:15:1", + "nameLocation": "757:15:7", "nodeType": "VariableDeclaration", - "scope": 2173, - "src": "749:23:1", + "scope": 2642, + "src": "749:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24888,10 +24888,10 @@ "typeString": "address" }, "typeName": { - "id": 2168, + "id": 2637, "name": "address", "nodeType": "ElementaryTypeName", - "src": "749:7:1", + "src": "749:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -24902,14 +24902,14 @@ }, { "constant": false, - "id": 2171, + "id": 2640, "indexed": false, "mutability": "mutable", "name": "tokenId", - "nameLocation": "782:7:1", + "nameLocation": "782:7:7", "nodeType": "VariableDeclaration", - "scope": 2173, - "src": "774:15:1", + "scope": 2642, + "src": "774:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24917,10 +24917,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2170, + "id": 2639, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "774:7:1", + "src": "774:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -24929,50 +24929,50 @@ "visibility": "internal" } ], - "src": "727:63:1" + "src": "727:63:7" }, - "src": "707:84:1" + "src": "707:84:7" }, { "anonymous": false, - "id": 2182, + "id": 2651, "name": "TokenNotFound", - "nameLocation": "802:13:1", + "nameLocation": "802:13:7", "nodeType": "EventDefinition", "parameters": { - "id": 2181, + "id": 2650, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2176, + "id": 2645, "indexed": false, "mutability": "mutable", "name": "tokenType", - "nameLocation": "826:9:1", + "nameLocation": "826:9:7", "nodeType": "VariableDeclaration", - "scope": 2182, - "src": "816:19:1", + "scope": 2651, + "src": "816:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2175, + "id": 2644, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2174, + "id": 2643, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "816:9:1" + "referencedDeclaration": 2607, + "src": "816:9:7" }, - "referencedDeclaration": 2138, - "src": "816:9:1", + "referencedDeclaration": 2607, + "src": "816:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -24980,14 +24980,14 @@ }, { "constant": false, - "id": 2178, + "id": 2647, "indexed": false, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "845:15:1", + "nameLocation": "845:15:7", "nodeType": "VariableDeclaration", - "scope": 2182, - "src": "837:23:1", + "scope": 2651, + "src": "837:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -24995,10 +24995,10 @@ "typeString": "address" }, "typeName": { - "id": 2177, + "id": 2646, "name": "address", "nodeType": "ElementaryTypeName", - "src": "837:7:1", + "src": "837:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25009,14 +25009,14 @@ }, { "constant": false, - "id": 2180, + "id": 2649, "indexed": false, "mutability": "mutable", "name": "tokenId", - "nameLocation": "870:7:1", + "nameLocation": "870:7:7", "nodeType": "VariableDeclaration", - "scope": 2182, - "src": "862:15:1", + "scope": 2651, + "src": "862:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25024,10 +25024,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2179, + "id": 2648, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "862:7:1", + "src": "862:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25036,50 +25036,50 @@ "visibility": "internal" } ], - "src": "815:63:1" + "src": "815:63:7" }, - "src": "796:83:1" + "src": "796:83:7" }, { "anonymous": false, - "id": 2195, + "id": 2664, "name": "TokenTransferFailed", - "nameLocation": "890:19:1", + "nameLocation": "890:19:7", "nodeType": "EventDefinition", "parameters": { - "id": 2194, + "id": 2663, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2185, + "id": 2654, "indexed": false, "mutability": "mutable", "name": "tokenType", - "nameLocation": "920:9:1", + "nameLocation": "920:9:7", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "910:19:1", + "scope": 2664, + "src": "910:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2184, + "id": 2653, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2183, + "id": 2652, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "910:9:1" + "referencedDeclaration": 2607, + "src": "910:9:7" }, - "referencedDeclaration": 2138, - "src": "910:9:1", + "referencedDeclaration": 2607, + "src": "910:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -25087,14 +25087,14 @@ }, { "constant": false, - "id": 2187, + "id": 2656, "indexed": false, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "939:15:1", + "nameLocation": "939:15:7", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "931:23:1", + "scope": 2664, + "src": "931:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25102,10 +25102,10 @@ "typeString": "address" }, "typeName": { - "id": 2186, + "id": 2655, "name": "address", "nodeType": "ElementaryTypeName", - "src": "931:7:1", + "src": "931:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25116,14 +25116,14 @@ }, { "constant": false, - "id": 2189, + "id": 2658, "indexed": false, "mutability": "mutable", "name": "tokenId", - "nameLocation": "964:7:1", + "nameLocation": "964:7:7", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "956:15:1", + "scope": 2664, + "src": "956:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25131,10 +25131,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2188, + "id": 2657, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "956:7:1", + "src": "956:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25144,14 +25144,14 @@ }, { "constant": false, - "id": 2191, + "id": 2660, "indexed": false, "mutability": "mutable", "name": "dest", - "nameLocation": "981:4:1", + "nameLocation": "981:4:7", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "973:12:1", + "scope": 2664, + "src": "973:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25159,10 +25159,10 @@ "typeString": "address" }, "typeName": { - "id": 2190, + "id": 2659, "name": "address", "nodeType": "ElementaryTypeName", - "src": "973:7:1", + "src": "973:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25173,14 +25173,14 @@ }, { "constant": false, - "id": 2193, + "id": 2662, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "995:6:1", + "nameLocation": "995:6:7", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "987:14:1", + "scope": 2664, + "src": "987:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25188,10 +25188,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2192, + "id": 2661, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "987:7:1", + "src": "987:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25200,50 +25200,50 @@ "visibility": "internal" } ], - "src": "909:93:1" + "src": "909:93:7" }, - "src": "884:119:1" + "src": "884:119:7" }, { "anonymous": false, - "id": 2210, + "id": 2679, "name": "TokenTransferError", - "nameLocation": "1014:18:1", + "nameLocation": "1014:18:7", "nodeType": "EventDefinition", "parameters": { - "id": 2209, + "id": 2678, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2198, + "id": 2667, "indexed": false, "mutability": "mutable", "name": "tokenType", - "nameLocation": "1043:9:1", + "nameLocation": "1043:9:7", "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "1033:19:1", + "scope": 2679, + "src": "1033:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2197, + "id": 2666, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2196, + "id": 2665, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "1033:9:1" + "referencedDeclaration": 2607, + "src": "1033:9:7" }, - "referencedDeclaration": 2138, - "src": "1033:9:1", + "referencedDeclaration": 2607, + "src": "1033:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -25251,14 +25251,14 @@ }, { "constant": false, - "id": 2200, + "id": 2669, "indexed": false, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "1062:15:1", + "nameLocation": "1062:15:7", "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "1054:23:1", + "scope": 2679, + "src": "1054:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25266,10 +25266,10 @@ "typeString": "address" }, "typeName": { - "id": 2199, + "id": 2668, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1054:7:1", + "src": "1054:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25280,14 +25280,14 @@ }, { "constant": false, - "id": 2202, + "id": 2671, "indexed": false, "mutability": "mutable", "name": "tokenId", - "nameLocation": "1087:7:1", + "nameLocation": "1087:7:7", "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "1079:15:1", + "scope": 2679, + "src": "1079:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25295,10 +25295,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2201, + "id": 2670, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1079:7:1", + "src": "1079:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25308,14 +25308,14 @@ }, { "constant": false, - "id": 2204, + "id": 2673, "indexed": false, "mutability": "mutable", "name": "dest", - "nameLocation": "1104:4:1", + "nameLocation": "1104:4:7", "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "1096:12:1", + "scope": 2679, + "src": "1096:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25323,10 +25323,10 @@ "typeString": "address" }, "typeName": { - "id": 2203, + "id": 2672, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1096:7:1", + "src": "1096:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25337,14 +25337,14 @@ }, { "constant": false, - "id": 2206, + "id": 2675, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "1118:6:1", + "nameLocation": "1118:6:7", "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "1110:14:1", + "scope": 2679, + "src": "1110:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25352,10 +25352,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2205, + "id": 2674, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1110:7:1", + "src": "1110:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25365,14 +25365,14 @@ }, { "constant": false, - "id": 2208, + "id": 2677, "indexed": false, "mutability": "mutable", "name": "reason", - "nameLocation": "1133:6:1", + "nameLocation": "1133:6:7", "nodeType": "VariableDeclaration", - "scope": 2210, - "src": "1126:13:1", + "scope": 2679, + "src": "1126:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25380,10 +25380,10 @@ "typeString": "string" }, "typeName": { - "id": 2207, + "id": 2676, "name": "string", "nodeType": "ElementaryTypeName", - "src": "1126:6:1", + "src": "1126:6:7", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" @@ -25392,50 +25392,50 @@ "visibility": "internal" } ], - "src": "1032:108:1" + "src": "1032:108:7" }, - "src": "1008:133:1" + "src": "1008:133:7" }, { "anonymous": false, - "id": 2223, + "id": 2692, "name": "TokenTransferSucceeded", - "nameLocation": "1152:22:1", + "nameLocation": "1152:22:7", "nodeType": "EventDefinition", "parameters": { - "id": 2222, + "id": 2691, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2213, + "id": 2682, "indexed": false, "mutability": "mutable", "name": "tokenType", - "nameLocation": "1185:9:1", + "nameLocation": "1185:9:7", "nodeType": "VariableDeclaration", - "scope": 2223, - "src": "1175:19:1", + "scope": 2692, + "src": "1175:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2212, + "id": 2681, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2211, + "id": 2680, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "1175:9:1" + "referencedDeclaration": 2607, + "src": "1175:9:7" }, - "referencedDeclaration": 2138, - "src": "1175:9:1", + "referencedDeclaration": 2607, + "src": "1175:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -25443,14 +25443,14 @@ }, { "constant": false, - "id": 2215, + "id": 2684, "indexed": false, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "1204:15:1", + "nameLocation": "1204:15:7", "nodeType": "VariableDeclaration", - "scope": 2223, - "src": "1196:23:1", + "scope": 2692, + "src": "1196:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25458,10 +25458,10 @@ "typeString": "address" }, "typeName": { - "id": 2214, + "id": 2683, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1196:7:1", + "src": "1196:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25472,14 +25472,14 @@ }, { "constant": false, - "id": 2217, + "id": 2686, "indexed": false, "mutability": "mutable", "name": "tokenId", - "nameLocation": "1229:7:1", + "nameLocation": "1229:7:7", "nodeType": "VariableDeclaration", - "scope": 2223, - "src": "1221:15:1", + "scope": 2692, + "src": "1221:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25487,10 +25487,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2216, + "id": 2685, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1221:7:1", + "src": "1221:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25500,14 +25500,14 @@ }, { "constant": false, - "id": 2219, + "id": 2688, "indexed": false, "mutability": "mutable", "name": "dest", - "nameLocation": "1246:4:1", + "nameLocation": "1246:4:7", "nodeType": "VariableDeclaration", - "scope": 2223, - "src": "1238:12:1", + "scope": 2692, + "src": "1238:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25515,10 +25515,10 @@ "typeString": "address" }, "typeName": { - "id": 2218, + "id": 2687, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1238:7:1", + "src": "1238:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25529,14 +25529,14 @@ }, { "constant": false, - "id": 2221, + "id": 2690, "indexed": false, "mutability": "mutable", "name": "amount", - "nameLocation": "1260:6:1", + "nameLocation": "1260:6:7", "nodeType": "VariableDeclaration", - "scope": 2223, - "src": "1252:14:1", + "scope": 2692, + "src": "1252:14:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25544,10 +25544,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2220, + "id": 2689, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1252:7:1", + "src": "1252:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25556,43 +25556,43 @@ "visibility": "internal" } ], - "src": "1174:93:1" + "src": "1174:93:7" }, - "src": "1146:122:1" + "src": "1146:122:7" }, { "canonicalName": "TokenTracker.TrackedToken", - "id": 2231, + "id": 2700, "members": [ { "constant": false, - "id": 2226, + "id": 2695, "mutability": "mutable", "name": "tokenType", - "nameLocation": "1902:9:1", + "nameLocation": "1902:9:7", "nodeType": "VariableDeclaration", - "scope": 2231, - "src": "1892:19:1", + "scope": 2700, + "src": "1892:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2225, + "id": 2694, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2224, + "id": 2693, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "1892:9:1" + "referencedDeclaration": 2607, + "src": "1892:9:7" }, - "referencedDeclaration": 2138, - "src": "1892:9:1", + "referencedDeclaration": 2607, + "src": "1892:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -25600,13 +25600,13 @@ }, { "constant": false, - "id": 2228, + "id": 2697, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "1929:15:1", + "nameLocation": "1929:15:7", "nodeType": "VariableDeclaration", - "scope": 2231, - "src": "1921:23:1", + "scope": 2700, + "src": "1921:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25614,10 +25614,10 @@ "typeString": "address" }, "typeName": { - "id": 2227, + "id": 2696, "name": "address", "nodeType": "ElementaryTypeName", - "src": "1921:7:1", + "src": "1921:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -25628,13 +25628,13 @@ }, { "constant": false, - "id": 2230, + "id": 2699, "mutability": "mutable", "name": "tokenId", - "nameLocation": "1962:7:1", + "nameLocation": "1962:7:7", "nodeType": "VariableDeclaration", - "scope": 2231, - "src": "1954:15:1", + "scope": 2700, + "src": "1954:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -25642,10 +25642,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2229, + "id": 2698, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "1954:7:1", + "src": "1954:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -25655,21 +25655,21 @@ } ], "name": "TrackedToken", - "nameLocation": "1869:12:1", + "nameLocation": "1869:12:7", "nodeType": "StructDefinition", - "scope": 3391, - "src": "1862:151:1", + "scope": 3860, + "src": "1862:151:7", "visibility": "public" }, { "constant": false, - "id": 2236, + "id": 2705, "mutability": "mutable", "name": "trackedTokenPositions", - "nameLocation": "2049:21:1", + "nameLocation": "2049:21:7", "nodeType": "VariableDeclaration", - "scope": 3391, - "src": "2019:51:1", + "scope": 3860, + "src": "2019:51:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { @@ -25677,37 +25677,37 @@ "typeString": "mapping(bytes32 => uint256[])" }, "typeName": { - "id": 2235, + "id": 2704, "keyType": { - "id": 2232, + "id": 2701, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "2027:7:1", + "src": "2027:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "Mapping", - "src": "2019:29:1", + "src": "2019:29:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[])" }, "valueType": { "baseType": { - "id": 2233, + "id": 2702, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2038:7:1", + "src": "2038:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2234, + "id": 2703, "nodeType": "ArrayTypeName", - "src": "2038:9:1", + "src": "2038:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -25718,42 +25718,42 @@ }, { "constant": false, - "id": 2240, + "id": 2709, "mutability": "mutable", "name": "trackedTokens", - "nameLocation": "2291:13:1", + "nameLocation": "2291:13:7", "nodeType": "VariableDeclaration", - "scope": 3391, - "src": "2276:28:1", + "scope": 3860, + "src": "2276:28:7", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken[]" }, "typeName": { "baseType": { - "id": 2238, + "id": 2707, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2237, + "id": 2706, "name": "TrackedToken", "nodeType": "IdentifierPath", - "referencedDeclaration": 2231, - "src": "2276:12:1" + "referencedDeclaration": 2700, + "src": "2276:12:7" }, - "referencedDeclaration": 2231, - "src": "2276:12:1", + "referencedDeclaration": 2700, + "src": "2276:12:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage_ptr", "typeString": "struct TokenTracker.TrackedToken" } }, - "id": 2239, + "id": 2708, "nodeType": "ArrayTypeName", - "src": "2276:14:1", + "src": "2276:14:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr", "typeString": "struct TokenTracker.TrackedToken[]" } }, @@ -25761,12 +25761,12 @@ }, { "body": { - "id": 2243, + "id": 2712, "nodeType": "Block", - "src": "2324:2:1", + "src": "2324:2:7", "statements": [] }, - "id": 2244, + "id": 2713, "implemented": true, "kind": "constructor", "modifiers": [], @@ -25774,81 +25774,81 @@ "nameLocation": "-1:-1:-1", "nodeType": "FunctionDefinition", "parameters": { - "id": 2241, + "id": 2710, "nodeType": "ParameterList", "parameters": [], - "src": "2322:2:1" + "src": "2322:2:7" }, "returnParameters": { - "id": 2242, + "id": 2711, "nodeType": "ParameterList", "parameters": [], - "src": "2324:0:1" + "src": "2324:0:7" }, - "scope": 3391, - "src": "2311:15:1", + "scope": 3860, + "src": "2311:15:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "baseFunctions": [ - 3535 + 143 ], "body": { - "id": 2284, + "id": 2753, "nodeType": "Block", - "src": "2519:203:1", + "src": "2519:203:7", "statements": [ { "eventCall": { "arguments": [ { "expression": { - "id": 2261, + "id": 2730, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "2548:9:1", + "referencedDeclaration": 2607, + "src": "2548:9:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2138_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 2262, + "id": 2731, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ERC1155", "nodeType": "MemberAccess", - "referencedDeclaration": 2136, - "src": "2548:17:1", + "referencedDeclaration": 2605, + "src": "2548:17:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 2263, + "id": 2732, "name": "value", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2252, - "src": "2567:5:1", + "referencedDeclaration": 2721, + "src": "2567:5:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2264, + "id": 2733, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "2574:4:1", + "referencedDeclaration": 2717, + "src": "2574:4:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -25856,61 +25856,61 @@ }, { "expression": { - "id": 2265, + "id": 2734, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "2580:3:1", + "src": "2580:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2266, + "id": 2735, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "2580:10:1", + "src": "2580:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2267, + "id": 2736, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2246, - "src": "2592:8:1", + "referencedDeclaration": 2715, + "src": "2592:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2268, + "id": 2737, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2250, - "src": "2602:2:1", + "referencedDeclaration": 2719, + "src": "2602:2:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2269, + "id": 2738, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2254, - "src": "2606:4:1", + "referencedDeclaration": 2723, + "src": "2606:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -25920,7 +25920,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -25948,18 +25948,18 @@ "typeString": "bytes calldata" } ], - "id": 2260, + "id": 2729, "name": "ReceivedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2155, - "src": "2534:13:1", + "referencedDeclaration": 2624, + "src": "2534:13:7", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2138_$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,uint256,address,address,address,uint256,bytes memory)" } }, - "id": 2270, + "id": 2739, "isConstant": false, "isLValue": false, "isPure": false, @@ -25967,80 +25967,80 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2534:77:1", + "src": "2534:77:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2271, + "id": 2740, "nodeType": "EmitStatement", - "src": "2529:82:1" + "src": "2529:82:7" }, { "expression": { "arguments": [ { "expression": { - "id": 2273, + "id": 2742, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "2633:9:1", + "referencedDeclaration": 2607, + "src": "2633:9:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2138_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 2274, + "id": 2743, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ERC1155", "nodeType": "MemberAccess", - "referencedDeclaration": 2136, - "src": "2633:17:1", + "referencedDeclaration": 2605, + "src": "2633:17:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { "expression": { - "id": 2275, + "id": 2744, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "2652:3:1", + "src": "2652:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2276, + "id": 2745, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "2652:10:1", + "src": "2652:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2277, + "id": 2746, "name": "id", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2250, - "src": "2664:2:1", + "referencedDeclaration": 2719, + "src": "2664:2:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26050,7 +26050,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -26062,18 +26062,18 @@ "typeString": "uint256" } ], - "id": 2272, + "id": 2741, "name": "_trackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "2621:11:1", + "referencedDeclaration": 3089, + "src": "2621:11:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2138_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 2278, + "id": 2747, "isConstant": false, "isLValue": false, "isPure": false, @@ -26081,93 +26081,93 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2621:46:1", + "src": "2621:46:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2279, + "id": 2748, "nodeType": "ExpressionStatement", - "src": "2621:46:1" + "src": "2621:46:7" }, { "expression": { "expression": { "expression": { - "id": 2280, + "id": 2749, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "2684:4:1", + "src": "2684:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenTracker_$3391", + "typeIdentifier": "t_contract$_TokenTracker_$3860", "typeString": "contract TokenTracker" } }, - "id": 2281, + "id": 2750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC1155Received", "nodeType": "MemberAccess", - "referencedDeclaration": 2285, - "src": "2684:22:1", + "referencedDeclaration": 2754, + "src": "2684:22:7", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)" } }, - "id": 2282, + "id": 2751, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "2684:31:1", + "src": "2684:31:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "functionReturnParameters": 2259, - "id": 2283, + "functionReturnParameters": 2728, + "id": 2752, "nodeType": "Return", - "src": "2677:38:1" + "src": "2677:38:7" } ] }, "functionSelector": "f23a6e61", - "id": 2285, + "id": 2754, "implemented": true, "kind": "function", "modifiers": [], "name": "onERC1155Received", - "nameLocation": "2341:17:1", + "nameLocation": "2341:17:7", "nodeType": "FunctionDefinition", "overrides": { - "id": 2256, + "id": 2725, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "2494:8:1" + "src": "2494:8:7" }, "parameters": { - "id": 2255, + "id": 2724, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2246, + "id": 2715, "mutability": "mutable", "name": "operator", - "nameLocation": "2376:8:1", + "nameLocation": "2376:8:7", "nodeType": "VariableDeclaration", - "scope": 2285, - "src": "2368:16:1", + "scope": 2754, + "src": "2368:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26175,10 +26175,10 @@ "typeString": "address" }, "typeName": { - "id": 2245, + "id": 2714, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2368:7:1", + "src": "2368:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -26189,13 +26189,13 @@ }, { "constant": false, - "id": 2248, + "id": 2717, "mutability": "mutable", "name": "from", - "nameLocation": "2402:4:1", + "nameLocation": "2402:4:7", "nodeType": "VariableDeclaration", - "scope": 2285, - "src": "2394:12:1", + "scope": 2754, + "src": "2394:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26203,10 +26203,10 @@ "typeString": "address" }, "typeName": { - "id": 2247, + "id": 2716, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2394:7:1", + "src": "2394:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -26217,13 +26217,13 @@ }, { "constant": false, - "id": 2250, + "id": 2719, "mutability": "mutable", "name": "id", - "nameLocation": "2424:2:1", + "nameLocation": "2424:2:7", "nodeType": "VariableDeclaration", - "scope": 2285, - "src": "2416:10:1", + "scope": 2754, + "src": "2416:10:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26231,10 +26231,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2249, + "id": 2718, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2416:7:1", + "src": "2416:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26244,13 +26244,13 @@ }, { "constant": false, - "id": 2252, + "id": 2721, "mutability": "mutable", "name": "value", - "nameLocation": "2444:5:1", + "nameLocation": "2444:5:7", "nodeType": "VariableDeclaration", - "scope": 2285, - "src": "2436:13:1", + "scope": 2754, + "src": "2436:13:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26258,10 +26258,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2251, + "id": 2720, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2436:7:1", + "src": "2436:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26271,13 +26271,13 @@ }, { "constant": false, - "id": 2254, + "id": 2723, "mutability": "mutable", "name": "data", - "nameLocation": "2474:4:1", + "nameLocation": "2474:4:7", "nodeType": "VariableDeclaration", - "scope": 2285, - "src": "2459:19:1", + "scope": 2754, + "src": "2459:19:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -26285,10 +26285,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2253, + "id": 2722, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2459:5:1", + "src": "2459:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -26297,21 +26297,21 @@ "visibility": "internal" } ], - "src": "2358:126:1" + "src": "2358:126:7" }, "returnParameters": { - "id": 2259, + "id": 2728, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2258, + "id": 2727, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2285, - "src": "2512:6:1", + "scope": 2754, + "src": "2512:6:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26319,10 +26319,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 2257, + "id": 2726, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "2512:6:1", + "src": "2512:6:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -26331,51 +26331,51 @@ "visibility": "internal" } ], - "src": "2511:8:1" + "src": "2511:8:7" }, - "scope": 3391, - "src": "2332:390:1", + "scope": 3860, + "src": "2332:390:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 3553 + 161 ], "body": { - "id": 2334, + "id": 2803, "nodeType": "Block", - "src": "2898:197:1", + "src": "2898:197:7", "statements": [ { "body": { - "id": 2328, + "id": 2797, "nodeType": "Block", - "src": "2948:88:1", + "src": "2948:88:7", "statements": [ { "expression": { "arguments": [ { - "id": 2317, + "id": 2786, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2287, - "src": "2985:8:1", + "referencedDeclaration": 2756, + "src": "2985:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2318, + "id": 2787, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2289, - "src": "2995:4:1", + "referencedDeclaration": 2758, + "src": "2995:4:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -26383,25 +26383,25 @@ }, { "baseExpression": { - "id": 2319, + "id": 2788, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2292, - "src": "3001:3:1", + "referencedDeclaration": 2761, + "src": "3001:3:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 2321, + "id": 2790, "indexExpression": { - "id": 2320, + "id": 2789, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2304, - "src": "3005:1:1", + "referencedDeclaration": 2773, + "src": "3005:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -26412,7 +26412,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3001:6:1", + "src": "3001:6:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -26420,25 +26420,25 @@ }, { "baseExpression": { - "id": 2322, + "id": 2791, "name": "values", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2295, - "src": "3009:6:1", + "referencedDeclaration": 2764, + "src": "3009:6:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 2324, + "id": 2793, "indexExpression": { - "id": 2323, + "id": 2792, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2304, - "src": "3016:1:1", + "referencedDeclaration": 2773, + "src": "3016:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -26449,19 +26449,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "3009:9:1", + "src": "3009:9:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2325, + "id": 2794, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2297, - "src": "3020:4:1", + "referencedDeclaration": 2766, + "src": "3020:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -26492,32 +26492,32 @@ } ], "expression": { - "id": 2314, + "id": 2783, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "2962:4:1", + "src": "2962:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenTracker_$3391", + "typeIdentifier": "t_contract$_TokenTracker_$3860", "typeString": "contract TokenTracker" } }, - "id": 2316, + "id": 2785, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC1155Received", "nodeType": "MemberAccess", - "referencedDeclaration": 2285, - "src": "2962:22:1", + "referencedDeclaration": 2754, + "src": "2962:22:7", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)" } }, - "id": 2326, + "id": 2795, "isConstant": false, "isLValue": false, "isPure": false, @@ -26525,16 +26525,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "2962:63:1", + "src": "2962:63:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "id": 2327, + "id": 2796, "nodeType": "ExpressionStatement", - "src": "2962:63:1" + "src": "2962:63:7" } ] }, @@ -26543,18 +26543,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2310, + "id": 2779, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2307, + "id": 2776, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2304, - "src": "2927:1:1", + "referencedDeclaration": 2773, + "src": "2927:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -26564,51 +26564,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2308, + "id": 2777, "name": "ids", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2292, - "src": "2931:3:1", + "referencedDeclaration": 2761, + "src": "2931:3:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr", "typeString": "uint256[] calldata" } }, - "id": 2309, + "id": 2778, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "2931:10:1", + "src": "2931:10:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "2927:14:1", + "src": "2927:14:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2329, + "id": 2798, "initializationExpression": { "assignments": [ - 2304 + 2773 ], "declarations": [ { "constant": false, - "id": 2304, + "id": 2773, "mutability": "mutable", "name": "i", - "nameLocation": "2920:1:1", + "nameLocation": "2920:1:7", "nodeType": "VariableDeclaration", - "scope": 2329, - "src": "2913:8:1", + "scope": 2798, + "src": "2913:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26616,10 +26616,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2303, + "id": 2772, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "2913:6:1", + "src": "2913:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -26628,17 +26628,17 @@ "visibility": "internal" } ], - "id": 2306, + "id": 2775, "initialValue": { "hexValue": "30", - "id": 2305, + "id": 2774, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "2924:1:1", + "src": "2924:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -26646,11 +26646,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "2913:12:1" + "src": "2913:12:7" }, "loopExpression": { "expression": { - "id": 2312, + "id": 2781, "isConstant": false, "isLValue": false, "isPure": false, @@ -26658,14 +26658,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "2943:3:1", + "src": "2943:3:7", "subExpression": { - "id": 2311, + "id": 2780, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2304, - "src": "2943:1:1", + "referencedDeclaration": 2773, + "src": "2943:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -26676,89 +26676,89 @@ "typeString": "uint32" } }, - "id": 2313, + "id": 2782, "nodeType": "ExpressionStatement", - "src": "2943:3:1" + "src": "2943:3:7" }, "nodeType": "ForStatement", - "src": "2908:128:1" + "src": "2908:128:7" }, { "expression": { "expression": { "expression": { - "id": 2330, + "id": 2799, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "3052:4:1", + "src": "3052:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenTracker_$3391", + "typeIdentifier": "t_contract$_TokenTracker_$3860", "typeString": "contract TokenTracker" } }, - "id": 2331, + "id": 2800, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC1155BatchReceived", "nodeType": "MemberAccess", - "referencedDeclaration": 2335, - "src": "3052:27:1", + "referencedDeclaration": 2804, + "src": "3052:27:7", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)" } }, - "id": 2332, + "id": 2801, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "3052:36:1", + "src": "3052:36:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "functionReturnParameters": 2302, - "id": 2333, + "functionReturnParameters": 2771, + "id": 2802, "nodeType": "Return", - "src": "3045:43:1" + "src": "3045:43:7" } ] }, "functionSelector": "bc197c81", - "id": 2335, + "id": 2804, "implemented": true, "kind": "function", "modifiers": [], "name": "onERC1155BatchReceived", - "nameLocation": "2737:22:1", + "nameLocation": "2737:22:7", "nodeType": "FunctionDefinition", "overrides": { - "id": 2299, + "id": 2768, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "2873:8:1" + "src": "2873:8:7" }, "parameters": { - "id": 2298, + "id": 2767, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2287, + "id": 2756, "mutability": "mutable", "name": "operator", - "nameLocation": "2768:8:1", + "nameLocation": "2768:8:7", "nodeType": "VariableDeclaration", - "scope": 2335, - "src": "2760:16:1", + "scope": 2804, + "src": "2760:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26766,10 +26766,10 @@ "typeString": "address" }, "typeName": { - "id": 2286, + "id": 2755, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2760:7:1", + "src": "2760:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -26780,13 +26780,13 @@ }, { "constant": false, - "id": 2289, + "id": 2758, "mutability": "mutable", "name": "from", - "nameLocation": "2786:4:1", + "nameLocation": "2786:4:7", "nodeType": "VariableDeclaration", - "scope": 2335, - "src": "2778:12:1", + "scope": 2804, + "src": "2778:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26794,10 +26794,10 @@ "typeString": "address" }, "typeName": { - "id": 2288, + "id": 2757, "name": "address", "nodeType": "ElementaryTypeName", - "src": "2778:7:1", + "src": "2778:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -26808,13 +26808,13 @@ }, { "constant": false, - "id": 2292, + "id": 2761, "mutability": "mutable", "name": "ids", - "nameLocation": "2811:3:1", + "nameLocation": "2811:3:7", "nodeType": "VariableDeclaration", - "scope": 2335, - "src": "2792:22:1", + "scope": 2804, + "src": "2792:22:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -26823,18 +26823,18 @@ }, "typeName": { "baseType": { - "id": 2290, + "id": 2759, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2792:7:1", + "src": "2792:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2291, + "id": 2760, "nodeType": "ArrayTypeName", - "src": "2792:9:1", + "src": "2792:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -26844,13 +26844,13 @@ }, { "constant": false, - "id": 2295, + "id": 2764, "mutability": "mutable", "name": "values", - "nameLocation": "2835:6:1", + "nameLocation": "2835:6:7", "nodeType": "VariableDeclaration", - "scope": 2335, - "src": "2816:25:1", + "scope": 2804, + "src": "2816:25:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -26859,18 +26859,18 @@ }, "typeName": { "baseType": { - "id": 2293, + "id": 2762, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "2816:7:1", + "src": "2816:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2294, + "id": 2763, "nodeType": "ArrayTypeName", - "src": "2816:9:1", + "src": "2816:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -26880,13 +26880,13 @@ }, { "constant": false, - "id": 2297, + "id": 2766, "mutability": "mutable", "name": "data", - "nameLocation": "2858:4:1", + "nameLocation": "2858:4:7", "nodeType": "VariableDeclaration", - "scope": 2335, - "src": "2843:19:1", + "scope": 2804, + "src": "2843:19:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -26894,10 +26894,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2296, + "id": 2765, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "2843:5:1", + "src": "2843:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -26906,21 +26906,21 @@ "visibility": "internal" } ], - "src": "2759:104:1" + "src": "2759:104:7" }, "returnParameters": { - "id": 2302, + "id": 2771, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2301, + "id": 2770, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2335, - "src": "2891:6:1", + "scope": 2804, + "src": "2891:6:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -26928,10 +26928,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 2300, + "id": 2769, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "2891:6:1", + "src": "2891:6:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -26940,22 +26940,22 @@ "visibility": "internal" } ], - "src": "2890:8:1" + "src": "2890:8:7" }, - "scope": 3391, - "src": "2728:367:1", + "scope": 3860, + "src": "2728:367:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 3777 + 385 ], "body": { - "id": 2361, + "id": 2830, "nodeType": "Block", - "src": "3186:185:1", + "src": "3186:185:7", "statements": [ { "expression": { @@ -26963,7 +26963,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2359, + "id": 2828, "isConstant": false, "isLValue": false, "isPure": false, @@ -26973,7 +26973,7 @@ "typeIdentifier": "t_bool", "typeString": "bool" }, - "id": 2353, + "id": 2822, "isConstant": false, "isLValue": false, "isPure": false, @@ -26983,18 +26983,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 2347, + "id": 2816, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2343, + "id": 2812, "name": "interfaceID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2337, - "src": "3203:11:1", + "referencedDeclaration": 2806, + "src": "3203:11:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -27005,45 +27005,45 @@ "rightExpression": { "expression": { "expression": { - "id": 2344, + "id": 2813, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "3218:4:1", + "src": "3218:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenTracker_$3391", + "typeIdentifier": "t_contract$_TokenTracker_$3860", "typeString": "contract TokenTracker" } }, - "id": 2345, + "id": 2814, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "supportsInterface", "nodeType": "MemberAccess", - "referencedDeclaration": 2362, - "src": "3218:22:1", + "referencedDeclaration": 2831, + "src": "3218:22:7", "typeDescriptions": { "typeIdentifier": "t_function_external_pure$_t_bytes4_$returns$_t_bool_$", "typeString": "function (bytes4) pure external returns (bool)" } }, - "id": 2346, + "id": 2815, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "3218:31:1", + "src": "3218:31:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "3203:46:1", + "src": "3203:46:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27056,18 +27056,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 2352, + "id": 2821, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2348, + "id": 2817, "name": "interfaceID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2337, - "src": "3261:11:1", + "referencedDeclaration": 2806, + "src": "3261:11:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -27078,51 +27078,51 @@ "rightExpression": { "expression": { "expression": { - "id": 2349, + "id": 2818, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "3276:4:1", + "src": "3276:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenTracker_$3391", + "typeIdentifier": "t_contract$_TokenTracker_$3860", "typeString": "contract TokenTracker" } }, - "id": 2350, + "id": 2819, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC1155Received", "nodeType": "MemberAccess", - "referencedDeclaration": 2285, - "src": "3276:22:1", + "referencedDeclaration": 2754, + "src": "3276:22:7", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)" } }, - "id": 2351, + "id": 2820, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "3276:31:1", + "src": "3276:31:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "3261:46:1", + "src": "3261:46:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3203:104:1", + "src": "3203:104:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27135,18 +27135,18 @@ "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, - "id": 2358, + "id": 2827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2354, + "id": 2823, "name": "interfaceID", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2337, - "src": "3319:11:1", + "referencedDeclaration": 2806, + "src": "3319:11:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -27157,90 +27157,90 @@ "rightExpression": { "expression": { "expression": { - "id": 2355, + "id": 2824, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "3334:4:1", + "src": "3334:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenTracker_$3391", + "typeIdentifier": "t_contract$_TokenTracker_$3860", "typeString": "contract TokenTracker" } }, - "id": 2356, + "id": 2825, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC721Received", "nodeType": "MemberAccess", - "referencedDeclaration": 2401, - "src": "3334:21:1", + "referencedDeclaration": 2870, + "src": "3334:21:7", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" } }, - "id": 2357, + "id": 2826, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "3334:30:1", + "src": "3334:30:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "src": "3319:45:1", + "src": "3319:45:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "src": "3203:161:1", + "src": "3203:161:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2342, - "id": 2360, + "functionReturnParameters": 2811, + "id": 2829, "nodeType": "Return", - "src": "3196:168:1" + "src": "3196:168:7" } ] }, "functionSelector": "01ffc9a7", - "id": 2362, + "id": 2831, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", - "nameLocation": "3110:17:1", + "nameLocation": "3110:17:7", "nodeType": "FunctionDefinition", "overrides": { - "id": 2339, + "id": 2808, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "3157:8:1" + "src": "3157:8:7" }, "parameters": { - "id": 2338, + "id": 2807, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2337, + "id": 2806, "mutability": "mutable", "name": "interfaceID", - "nameLocation": "3135:11:1", + "nameLocation": "3135:11:7", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3128:18:1", + "scope": 2831, + "src": "3128:18:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27248,10 +27248,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 2336, + "id": 2805, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "3128:6:1", + "src": "3128:6:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -27260,21 +27260,21 @@ "visibility": "internal" } ], - "src": "3127:20:1" + "src": "3127:20:7" }, "returnParameters": { - "id": 2342, + "id": 2811, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2341, + "id": 2810, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2362, - "src": "3180:4:1", + "scope": 2831, + "src": "3180:4:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27282,10 +27282,10 @@ "typeString": "bool" }, "typeName": { - "id": 2340, + "id": 2809, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "3180:4:1", + "src": "3180:4:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -27294,63 +27294,63 @@ "visibility": "internal" } ], - "src": "3179:6:1" + "src": "3179:6:7" }, - "scope": 3391, - "src": "3101:270:1", + "scope": 3860, + "src": "3101:270:7", "stateMutability": "pure", "virtual": false, "visibility": "external" }, { "baseFunctions": [ - 3765 + 373 ], "body": { - "id": 2400, + "id": 2869, "nodeType": "Block", - "src": "3628:206:1", + "src": "3628:206:7", "statements": [ { "eventCall": { "arguments": [ { "expression": { - "id": 2377, + "id": 2846, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "3657:9:1", + "referencedDeclaration": 2607, + "src": "3657:9:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2138_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 2378, + "id": 2847, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ERC721", "nodeType": "MemberAccess", - "referencedDeclaration": 2135, - "src": "3657:16:1", + "referencedDeclaration": 2604, + "src": "3657:16:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { "hexValue": "31", - "id": 2379, + "id": 2848, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "3675:1:1", + "src": "3675:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" @@ -27358,12 +27358,12 @@ "value": "1" }, { - "id": 2380, + "id": 2849, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2366, - "src": "3678:4:1", + "referencedDeclaration": 2835, + "src": "3678:4:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -27371,61 +27371,61 @@ }, { "expression": { - "id": 2381, + "id": 2850, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "3684:3:1", + "src": "3684:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2382, + "id": 2851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "3684:10:1", + "src": "3684:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2383, + "id": 2852, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2364, - "src": "3696:8:1", + "referencedDeclaration": 2833, + "src": "3696:8:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2384, + "id": 2853, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2368, - "src": "3706:7:1", + "referencedDeclaration": 2837, + "src": "3706:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 2385, + "id": 2854, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2370, - "src": "3715:4:1", + "referencedDeclaration": 2839, + "src": "3715:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -27435,7 +27435,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -27463,18 +27463,18 @@ "typeString": "bytes calldata" } ], - "id": 2376, + "id": 2845, "name": "ReceivedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2155, - "src": "3643:13:1", + "referencedDeclaration": 2624, + "src": "3643:13:7", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2138_$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,uint256,address,address,address,uint256,bytes memory)" } }, - "id": 2386, + "id": 2855, "isConstant": false, "isLValue": false, "isPure": false, @@ -27482,80 +27482,80 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3643:77:1", + "src": "3643:77:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2387, + "id": 2856, "nodeType": "EmitStatement", - "src": "3638:82:1" + "src": "3638:82:7" }, { "expression": { "arguments": [ { "expression": { - "id": 2389, + "id": 2858, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "3742:9:1", + "referencedDeclaration": 2607, + "src": "3742:9:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2138_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 2390, + "id": 2859, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "ERC721", "nodeType": "MemberAccess", - "referencedDeclaration": 2135, - "src": "3742:16:1", + "referencedDeclaration": 2604, + "src": "3742:16:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { "expression": { - "id": 2391, + "id": 2860, "name": "msg", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967281, - "src": "3760:3:1", + "src": "3760:3:7", "typeDescriptions": { "typeIdentifier": "t_magic_message", "typeString": "msg" } }, - "id": 2392, + "id": 2861, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "sender", "nodeType": "MemberAccess", - "src": "3760:10:1", + "src": "3760:10:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2393, + "id": 2862, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2368, - "src": "3772:7:1", + "referencedDeclaration": 2837, + "src": "3772:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27565,7 +27565,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -27577,18 +27577,18 @@ "typeString": "uint256" } ], - "id": 2388, + "id": 2857, "name": "_trackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "3730:11:1", + "referencedDeclaration": 3089, + "src": "3730:11:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2138_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 2394, + "id": 2863, "isConstant": false, "isLValue": false, "isPure": false, @@ -27596,93 +27596,93 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3730:50:1", + "src": "3730:50:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2395, + "id": 2864, "nodeType": "ExpressionStatement", - "src": "3730:50:1" + "src": "3730:50:7" }, { "expression": { "expression": { "expression": { - "id": 2396, + "id": 2865, "name": "this", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967268, - "src": "3797:4:1", + "src": "3797:4:7", "typeDescriptions": { - "typeIdentifier": "t_contract$_TokenTracker_$3391", + "typeIdentifier": "t_contract$_TokenTracker_$3860", "typeString": "contract TokenTracker" } }, - "id": 2397, + "id": 2866, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC721Received", "nodeType": "MemberAccess", - "referencedDeclaration": 2401, - "src": "3797:21:1", + "referencedDeclaration": 2870, + "src": "3797:21:7", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" } }, - "id": 2398, + "id": 2867, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", - "src": "3797:30:1", + "src": "3797:30:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, - "functionReturnParameters": 2375, - "id": 2399, + "functionReturnParameters": 2844, + "id": 2868, "nodeType": "Return", - "src": "3790:37:1" + "src": "3790:37:7" } ] }, "functionSelector": "150b7a02", - "id": 2401, + "id": 2870, "implemented": true, "kind": "function", "modifiers": [], "name": "onERC721Received", - "nameLocation": "3469:16:1", + "nameLocation": "3469:16:7", "nodeType": "FunctionDefinition", "overrides": { - "id": 2372, + "id": 2841, "nodeType": "OverrideSpecifier", "overrides": [], - "src": "3603:8:1" + "src": "3603:8:7" }, "parameters": { - "id": 2371, + "id": 2840, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2364, + "id": 2833, "mutability": "mutable", "name": "operator", - "nameLocation": "3503:8:1", + "nameLocation": "3503:8:7", "nodeType": "VariableDeclaration", - "scope": 2401, - "src": "3495:16:1", + "scope": 2870, + "src": "3495:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27690,10 +27690,10 @@ "typeString": "address" }, "typeName": { - "id": 2363, + "id": 2832, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3495:7:1", + "src": "3495:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -27704,13 +27704,13 @@ }, { "constant": false, - "id": 2366, + "id": 2835, "mutability": "mutable", "name": "from", - "nameLocation": "3529:4:1", + "nameLocation": "3529:4:7", "nodeType": "VariableDeclaration", - "scope": 2401, - "src": "3521:12:1", + "scope": 2870, + "src": "3521:12:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27718,10 +27718,10 @@ "typeString": "address" }, "typeName": { - "id": 2365, + "id": 2834, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3521:7:1", + "src": "3521:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -27732,13 +27732,13 @@ }, { "constant": false, - "id": 2368, + "id": 2837, "mutability": "mutable", "name": "tokenId", - "nameLocation": "3551:7:1", + "nameLocation": "3551:7:7", "nodeType": "VariableDeclaration", - "scope": 2401, - "src": "3543:15:1", + "scope": 2870, + "src": "3543:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27746,10 +27746,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2367, + "id": 2836, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3543:7:1", + "src": "3543:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27759,13 +27759,13 @@ }, { "constant": false, - "id": 2370, + "id": 2839, "mutability": "mutable", "name": "data", - "nameLocation": "3583:4:1", + "nameLocation": "3583:4:7", "nodeType": "VariableDeclaration", - "scope": 2401, - "src": "3568:19:1", + "scope": 2870, + "src": "3568:19:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -27773,10 +27773,10 @@ "typeString": "bytes" }, "typeName": { - "id": 2369, + "id": 2838, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "3568:5:1", + "src": "3568:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -27785,21 +27785,21 @@ "visibility": "internal" } ], - "src": "3485:108:1" + "src": "3485:108:7" }, "returnParameters": { - "id": 2375, + "id": 2844, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2374, + "id": 2843, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2401, - "src": "3621:6:1", + "scope": 2870, + "src": "3621:6:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -27807,10 +27807,10 @@ "typeString": "bytes4" }, "typeName": { - "id": 2373, + "id": 2842, "name": "bytes4", "nodeType": "ElementaryTypeName", - "src": "3621:6:1", + "src": "3621:6:7", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" @@ -27819,93 +27819,93 @@ "visibility": "internal" } ], - "src": "3620:8:1" + "src": "3620:8:7" }, - "scope": 3391, - "src": "3460:374:1", + "scope": 3860, + "src": "3460:374:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 2496, + "id": 2965, "nodeType": "Block", - "src": "3946:546:1", + "src": "3946:546:7", "statements": [ { "assignments": [ - 2418 + 2887 ], "declarations": [ { "constant": false, - "id": 2418, + "id": 2887, "mutability": "mutable", "name": "tokenTypes", - "nameLocation": "3975:10:1", + "nameLocation": "3975:10:7", "nodeType": "VariableDeclaration", - "scope": 2496, - "src": "3956:29:1", + "scope": 2965, + "src": "3956:29:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr", "typeString": "enum TokenTracker.TokenType[]" }, "typeName": { "baseType": { - "id": 2416, + "id": 2885, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2415, + "id": 2884, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "3956:9:1" + "referencedDeclaration": 2607, + "src": "3956:9:7" }, - "referencedDeclaration": 2138, - "src": "3956:9:1", + "referencedDeclaration": 2607, + "src": "3956:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "id": 2417, + "id": 2886, "nodeType": "ArrayTypeName", - "src": "3956:11:1", + "src": "3956:11:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_storage_ptr", "typeString": "enum TokenTracker.TokenType[]" } }, "visibility": "internal" } ], - "id": 2426, + "id": 2895, "initialValue": { "arguments": [ { "expression": { - "id": 2423, + "id": 2892, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4004:13:1", + "referencedDeclaration": 2709, + "src": "4004:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2424, + "id": 2893, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "4004:20:1", + "src": "4004:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -27919,45 +27919,45 @@ "typeString": "uint256" } ], - "id": 2422, + "id": 2891, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "3988:15:1", + "src": "3988:15:7", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (enum TokenTracker.TokenType[] memory)" }, "typeName": { "baseType": { - "id": 2420, + "id": 2889, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2419, + "id": 2888, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "3992:9:1" + "referencedDeclaration": 2607, + "src": "3992:9:7" }, - "referencedDeclaration": 2138, - "src": "3992:9:1", + "referencedDeclaration": 2607, + "src": "3992:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "id": 2421, + "id": 2890, "nodeType": "ArrayTypeName", - "src": "3992:11:1", + "src": "3992:11:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_storage_ptr", "typeString": "enum TokenTracker.TokenType[]" } } }, - "id": 2425, + "id": 2894, "isConstant": false, "isLValue": false, "isPure": false, @@ -27965,30 +27965,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "3988:37:1", + "src": "3988:37:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr", "typeString": "enum TokenTracker.TokenType[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "3956:69:1" + "src": "3956:69:7" }, { "assignments": [ - 2431 + 2900 ], "declarations": [ { "constant": false, - "id": 2431, + "id": 2900, "mutability": "mutable", "name": "contractAddresses", - "nameLocation": "4052:17:1", + "nameLocation": "4052:17:7", "nodeType": "VariableDeclaration", - "scope": 2496, - "src": "4035:34:1", + "scope": 2965, + "src": "4035:34:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -27997,18 +27997,18 @@ }, "typeName": { "baseType": { - "id": 2429, + "id": 2898, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4035:7:1", + "src": "4035:7:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2430, + "id": 2899, "nodeType": "ArrayTypeName", - "src": "4035:9:1", + "src": "4035:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -28017,30 +28017,30 @@ "visibility": "internal" } ], - "id": 2438, + "id": 2907, "initialValue": { "arguments": [ { "expression": { - "id": 2435, + "id": 2904, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4086:13:1", + "referencedDeclaration": 2709, + "src": "4086:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2436, + "id": 2905, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "4086:20:1", + "src": "4086:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28054,39 +28054,39 @@ "typeString": "uint256" } ], - "id": 2434, + "id": 2903, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4072:13:1", + "src": "4072:13:7", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (address[] memory)" }, "typeName": { "baseType": { - "id": 2432, + "id": 2901, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4076:7:1", + "src": "4076:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2433, + "id": 2902, "nodeType": "ArrayTypeName", - "src": "4076:9:1", + "src": "4076:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" } } }, - "id": 2437, + "id": 2906, "isConstant": false, "isLValue": false, "isPure": false, @@ -28094,7 +28094,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4072:35:1", + "src": "4072:35:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", @@ -28102,22 +28102,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4035:72:1" + "src": "4035:72:7" }, { "assignments": [ - 2443 + 2912 ], "declarations": [ { "constant": false, - "id": 2443, + "id": 2912, "mutability": "mutable", "name": "tokenIds", - "nameLocation": "4134:8:1", + "nameLocation": "4134:8:7", "nodeType": "VariableDeclaration", - "scope": 2496, - "src": "4117:25:1", + "scope": 2965, + "src": "4117:25:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -28126,18 +28126,18 @@ }, "typeName": { "baseType": { - "id": 2441, + "id": 2910, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4117:7:1", + "src": "4117:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2442, + "id": 2911, "nodeType": "ArrayTypeName", - "src": "4117:9:1", + "src": "4117:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -28146,30 +28146,30 @@ "visibility": "internal" } ], - "id": 2450, + "id": 2919, "initialValue": { "arguments": [ { "expression": { - "id": 2447, + "id": 2916, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4159:13:1", + "referencedDeclaration": 2709, + "src": "4159:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2448, + "id": 2917, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "4159:20:1", + "src": "4159:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28183,38 +28183,38 @@ "typeString": "uint256" } ], - "id": 2446, + "id": 2915, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "4145:13:1", + "src": "4145:13:7", "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": 2444, + "id": 2913, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4149:7:1", + "src": "4149:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2445, + "id": 2914, "nodeType": "ArrayTypeName", - "src": "4149:9:1", + "src": "4149:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" } } }, - "id": 2449, + "id": 2918, "isConstant": false, "isLValue": false, "isPure": false, @@ -28222,7 +28222,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4145:35:1", + "src": "4145:35:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", @@ -28230,42 +28230,42 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4117:63:1" + "src": "4117:63:7" }, { "body": { - "id": 2489, + "id": 2958, "nodeType": "Block", - "src": "4240:188:1", + "src": "4240:188:7", "statements": [ { "expression": { - "id": 2469, + "id": 2938, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2462, + "id": 2931, "name": "tokenTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4254:10:1", + "referencedDeclaration": 2887, + "src": "4254:10:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr", "typeString": "enum TokenTracker.TokenType[] memory" } }, - "id": 2464, + "id": 2933, "indexExpression": { - "id": 2463, + "id": 2932, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4265:1:1", + "referencedDeclaration": 2921, + "src": "4265:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28276,9 +28276,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4254:13:1", + "src": "4254:13:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -28287,25 +28287,25 @@ "rightHandSide": { "expression": { "baseExpression": { - "id": 2465, + "id": 2934, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4270:13:1", + "referencedDeclaration": 2709, + "src": "4270:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2467, + "id": 2936, "indexExpression": { - "id": 2466, + "id": 2935, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4284:1:1", + "referencedDeclaration": 2921, + "src": "4284:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28316,64 +28316,64 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4270:16:1", + "src": "4270:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2468, + "id": 2937, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenType", "nodeType": "MemberAccess", - "referencedDeclaration": 2226, - "src": "4270:26:1", + "referencedDeclaration": 2695, + "src": "4270:26:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "src": "4254:42:1", + "src": "4254:42:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "id": 2470, + "id": 2939, "nodeType": "ExpressionStatement", - "src": "4254:42:1" + "src": "4254:42:7" }, { "expression": { - "id": 2478, + "id": 2947, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2471, + "id": 2940, "name": "contractAddresses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2431, - "src": "4310:17:1", + "referencedDeclaration": 2900, + "src": "4310:17:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, - "id": 2473, + "id": 2942, "indexExpression": { - "id": 2472, + "id": 2941, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4328:1:1", + "referencedDeclaration": 2921, + "src": "4328:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28384,7 +28384,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4310:20:1", + "src": "4310:20:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -28395,25 +28395,25 @@ "rightHandSide": { "expression": { "baseExpression": { - "id": 2474, + "id": 2943, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4333:13:1", + "referencedDeclaration": 2709, + "src": "4333:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2476, + "id": 2945, "indexExpression": { - "id": 2475, + "id": 2944, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4347:1:1", + "referencedDeclaration": 2921, + "src": "4347:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28424,64 +28424,64 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4333:16:1", + "src": "4333:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2477, + "id": 2946, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contractAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 2228, - "src": "4333:32:1", + "referencedDeclaration": 2697, + "src": "4333:32:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "4310:55:1", + "src": "4310:55:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2479, + "id": 2948, "nodeType": "ExpressionStatement", - "src": "4310:55:1" + "src": "4310:55:7" }, { "expression": { - "id": 2487, + "id": 2956, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2480, + "id": 2949, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2443, - "src": "4379:8:1", + "referencedDeclaration": 2912, + "src": "4379:8:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } }, - "id": 2482, + "id": 2951, "indexExpression": { - "id": 2481, + "id": 2950, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4388:1:1", + "referencedDeclaration": 2921, + "src": "4388:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28492,7 +28492,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "4379:11:1", + "src": "4379:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -28503,25 +28503,25 @@ "rightHandSide": { "expression": { "baseExpression": { - "id": 2483, + "id": 2952, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4393:13:1", + "referencedDeclaration": 2709, + "src": "4393:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2485, + "id": 2954, "indexExpression": { - "id": 2484, + "id": 2953, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4407:1:1", + "referencedDeclaration": 2921, + "src": "4407:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28532,35 +28532,35 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4393:16:1", + "src": "4393:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2486, + "id": 2955, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenId", "nodeType": "MemberAccess", - "referencedDeclaration": 2230, - "src": "4393:24:1", + "referencedDeclaration": 2699, + "src": "4393:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4379:38:1", + "src": "4379:38:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2488, + "id": 2957, "nodeType": "ExpressionStatement", - "src": "4379:38:1" + "src": "4379:38:7" } ] }, @@ -28569,18 +28569,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2458, + "id": 2927, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2455, + "id": 2924, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4209:1:1", + "referencedDeclaration": 2921, + "src": "4209:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28590,51 +28590,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2456, + "id": 2925, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4213:13:1", + "referencedDeclaration": 2709, + "src": "4213:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2457, + "id": 2926, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "4213:20:1", + "src": "4213:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4209:24:1", + "src": "4209:24:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2490, + "id": 2959, "initializationExpression": { "assignments": [ - 2452 + 2921 ], "declarations": [ { "constant": false, - "id": 2452, + "id": 2921, "mutability": "mutable", "name": "i", - "nameLocation": "4202:1:1", + "nameLocation": "4202:1:7", "nodeType": "VariableDeclaration", - "scope": 2490, - "src": "4195:8:1", + "scope": 2959, + "src": "4195:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28642,10 +28642,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2451, + "id": 2920, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4195:6:1", + "src": "4195:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28654,17 +28654,17 @@ "visibility": "internal" } ], - "id": 2454, + "id": 2923, "initialValue": { "hexValue": "30", - "id": 2453, + "id": 2922, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4206:1:1", + "src": "4206:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -28672,11 +28672,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4195:12:1" + "src": "4195:12:7" }, "loopExpression": { "expression": { - "id": 2460, + "id": 2929, "isConstant": false, "isLValue": false, "isPure": false, @@ -28684,14 +28684,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4235:3:1", + "src": "4235:3:7", "subExpression": { - "id": 2459, + "id": 2928, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2452, - "src": "4235:1:1", + "referencedDeclaration": 2921, + "src": "4235:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -28702,129 +28702,129 @@ "typeString": "uint32" } }, - "id": 2461, + "id": 2930, "nodeType": "ExpressionStatement", - "src": "4235:3:1" + "src": "4235:3:7" }, "nodeType": "ForStatement", - "src": "4190:238:1" + "src": "4190:238:7" }, { "expression": { "components": [ { - "id": 2491, + "id": 2960, "name": "tokenTypes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2418, - "src": "4445:10:1", + "referencedDeclaration": 2887, + "src": "4445:10:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr", "typeString": "enum TokenTracker.TokenType[] memory" } }, { - "id": 2492, + "id": 2961, "name": "contractAddresses", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2431, - "src": "4457:17:1", + "referencedDeclaration": 2900, + "src": "4457:17:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_memory_ptr", "typeString": "address[] memory" } }, { - "id": 2493, + "id": 2962, "name": "tokenIds", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2443, - "src": "4476:8:1", + "referencedDeclaration": 2912, + "src": "4476:8:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr", "typeString": "uint256[] memory" } } ], - "id": 2494, + "id": 2963, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "4444:41:1", + "src": "4444:41:7", "typeDescriptions": { - "typeIdentifier": "t_tuple$_t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", + "typeIdentifier": "t_tuple$_t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$", "typeString": "tuple(enum TokenTracker.TokenType[] memory,address[] memory,uint256[] memory)" } }, - "functionReturnParameters": 2413, - "id": 2495, + "functionReturnParameters": 2882, + "id": 2964, "nodeType": "Return", - "src": "4437:48:1" + "src": "4437:48:7" } ] }, "functionSelector": "695def4c", - "id": 2497, + "id": 2966, "implemented": true, "kind": "function", "modifiers": [], "name": "getTrackedTokens", - "nameLocation": "3849:16:1", + "nameLocation": "3849:16:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 2402, + "id": 2871, "nodeType": "ParameterList", "parameters": [], - "src": "3865:2:1" + "src": "3865:2:7" }, "returnParameters": { - "id": 2413, + "id": 2882, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2406, + "id": 2875, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2497, - "src": "3891:18:1", + "scope": 2966, + "src": "3891:18:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr", "typeString": "enum TokenTracker.TokenType[]" }, "typeName": { "baseType": { - "id": 2404, + "id": 2873, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2403, + "id": 2872, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "3891:9:1" + "referencedDeclaration": 2607, + "src": "3891:9:7" }, - "referencedDeclaration": 2138, - "src": "3891:9:1", + "referencedDeclaration": 2607, + "src": "3891:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "id": 2405, + "id": 2874, "nodeType": "ArrayTypeName", - "src": "3891:11:1", + "src": "3891:11:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_enum$_TokenType_$2138_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_enum$_TokenType_$2607_$dyn_storage_ptr", "typeString": "enum TokenTracker.TokenType[]" } }, @@ -28832,13 +28832,13 @@ }, { "constant": false, - "id": 2409, + "id": 2878, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2497, - "src": "3911:16:1", + "scope": 2966, + "src": "3911:16:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -28847,19 +28847,19 @@ }, "typeName": { "baseType": { - "id": 2407, + "id": 2876, "name": "address", "nodeType": "ElementaryTypeName", - "src": "3911:7:1", + "src": "3911:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "id": 2408, + "id": 2877, "nodeType": "ArrayTypeName", - "src": "3911:9:1", + "src": "3911:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr", "typeString": "address[]" @@ -28869,13 +28869,13 @@ }, { "constant": false, - "id": 2412, + "id": 2881, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2497, - "src": "3929:16:1", + "scope": 2966, + "src": "3929:16:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -28884,18 +28884,18 @@ }, "typeName": { "baseType": { - "id": 2410, + "id": 2879, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "3929:7:1", + "src": "3929:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2411, + "id": 2880, "nodeType": "ArrayTypeName", - "src": "3929:9:1", + "src": "3929:9:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr", "typeString": "uint256[]" @@ -28904,34 +28904,34 @@ "visibility": "internal" } ], - "src": "3890:56:1" + "src": "3890:56:7" }, - "scope": 3391, - "src": "3840:652:1", + "scope": 3860, + "src": "3840:652:7", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "body": { - "id": 2619, + "id": 3088, "nodeType": "Block", - "src": "4593:937:1", + "src": "4593:937:7", "statements": [ { "assignments": [ - 2508 + 2977 ], "declarations": [ { "constant": false, - "id": 2508, + "id": 2977, "mutability": "mutable", "name": "key", - "nameLocation": "4611:3:1", + "nameLocation": "4611:3:7", "nodeType": "VariableDeclaration", - "scope": 2619, - "src": "4603:11:1", + "scope": 3088, + "src": "4603:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -28939,10 +28939,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2507, + "id": 2976, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4603:7:1", + "src": "4603:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -28951,7 +28951,7 @@ "visibility": "internal" } ], - "id": 2533, + "id": 3002, "initialValue": { "arguments": [ { @@ -28961,14 +28961,14 @@ { "arguments": [ { - "id": 2517, + "id": 2986, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2500, - "src": "4656:9:1", + "referencedDeclaration": 2969, + "src": "4656:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } } @@ -28976,30 +28976,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } ], - "id": 2516, + "id": 2985, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4648:7:1", + "src": "4648:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 2515, + "id": 2984, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4648:7:1", + "src": "4648:7:7", "typeDescriptions": {} } }, - "id": 2518, + "id": 2987, "isConstant": false, "isLValue": false, "isPure": false, @@ -29007,7 +29007,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4648:18:1", + "src": "4648:18:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -29022,26 +29022,26 @@ "typeString": "uint256" } ], - "id": 2514, + "id": 2983, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4640:7:1", + "src": "4640:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2513, + "id": 2982, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4640:7:1", + "src": "4640:7:7", "typeDescriptions": {} } }, - "id": 2519, + "id": 2988, "isConstant": false, "isLValue": false, "isPure": false, @@ -29049,7 +29049,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4640:27:1", + "src": "4640:27:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -29061,12 +29061,12 @@ { "arguments": [ { - "id": 2524, + "id": 2993, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2502, - "src": "4685:15:1", + "referencedDeclaration": 2971, + "src": "4685:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -29080,26 +29080,26 @@ "typeString": "address" } ], - "id": 2523, + "id": 2992, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4677:7:1", + "src": "4677:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 2522, + "id": 2991, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "4677:7:1", + "src": "4677:7:7", "typeDescriptions": {} } }, - "id": 2525, + "id": 2994, "isConstant": false, "isLValue": false, "isPure": false, @@ -29107,7 +29107,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4677:24:1", + "src": "4677:24:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -29122,26 +29122,26 @@ "typeString": "bytes20" } ], - "id": 2521, + "id": 2990, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4669:7:1", + "src": "4669:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2520, + "id": 2989, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4669:7:1", + "src": "4669:7:7", "typeDescriptions": {} } }, - "id": 2526, + "id": 2995, "isConstant": false, "isLValue": false, "isPure": false, @@ -29149,7 +29149,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4669:33:1", + "src": "4669:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -29159,12 +29159,12 @@ { "arguments": [ { - "id": 2529, + "id": 2998, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "4712:7:1", + "referencedDeclaration": 2973, + "src": "4712:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29178,26 +29178,26 @@ "typeString": "uint256" } ], - "id": 2528, + "id": 2997, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4704:7:1", + "src": "4704:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2527, + "id": 2996, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "4704:7:1", + "src": "4704:7:7", "typeDescriptions": {} } }, - "id": 2530, + "id": 2999, "isConstant": false, "isLValue": false, "isPure": false, @@ -29205,7 +29205,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4704:16:1", + "src": "4704:16:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -29229,39 +29229,39 @@ } ], "expression": { - "id": 2511, + "id": 2980, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "4627:5:1", + "src": "4627:5:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2510, + "id": 2979, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "4627:5:1", + "src": "4627:5:7", "typeDescriptions": {} } }, - "id": 2512, + "id": 2981, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "4627:12:1", + "src": "4627:12:7", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2531, + "id": 3000, "isConstant": false, "isLValue": false, "isPure": false, @@ -29269,7 +29269,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4627:94:1", + "src": "4627:94:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -29284,18 +29284,18 @@ "typeString": "bytes memory" } ], - "id": 2509, + "id": 2978, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "4617:9:1", + "src": "4617:9:7", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2532, + "id": 3001, "isConstant": false, "isLValue": false, "isPure": false, @@ -29303,7 +29303,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "4617:105:1", + "src": "4617:105:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -29311,7 +29311,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "4603:119:1" + "src": "4603:119:7" }, { "condition": { @@ -29319,7 +29319,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2539, + "id": 3008, "isConstant": false, "isLValue": false, "isPure": false, @@ -29327,25 +29327,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2534, + "id": 3003, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "4736:21:1", + "referencedDeclaration": 2705, + "src": "4736:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2536, + "id": 3005, "indexExpression": { - "id": 2535, + "id": 3004, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2508, - "src": "4758:3:1", + "referencedDeclaration": 2977, + "src": "4758:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29356,20 +29356,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4736:26:1", + "src": "4736:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2537, + "id": 3006, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "4736:33:1", + "src": "4736:33:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29379,54 +29379,54 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2538, + "id": 3007, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4772:1:1", + "src": "4772:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "4736:37:1", + "src": "4736:37:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2589, + "id": 3058, "nodeType": "IfStatement", - "src": "4732:549:1", + "src": "4732:549:7", "trueBody": { - "id": 2588, + "id": 3057, "nodeType": "Block", - "src": "4775:506:1", + "src": "4775:506:7", "statements": [ { "body": { - "id": 2586, + "id": 3055, "nodeType": "Block", - "src": "4852:419:1", + "src": "4852:419:7", "statements": [ { "assignments": [ - 2554 + 3023 ], "declarations": [ { "constant": false, - "id": 2554, + "id": 3023, "mutability": "mutable", "name": "j", - "nameLocation": "4878:1:1", + "nameLocation": "4878:1:7", "nodeType": "VariableDeclaration", - "scope": 2586, - "src": "4870:9:1", + "scope": 3055, + "src": "4870:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29434,10 +29434,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2553, + "id": 3022, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4870:7:1", + "src": "4870:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29446,29 +29446,29 @@ "visibility": "internal" } ], - "id": 2560, + "id": 3029, "initialValue": { "baseExpression": { "baseExpression": { - "id": 2555, + "id": 3024, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "4882:21:1", + "referencedDeclaration": 2705, + "src": "4882:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2557, + "id": 3026, "indexExpression": { - "id": 2556, + "id": 3025, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2508, - "src": "4904:3:1", + "referencedDeclaration": 2977, + "src": "4904:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29479,20 +29479,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4882:26:1", + "src": "4882:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2559, + "id": 3028, "indexExpression": { - "id": 2558, + "id": 3027, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2541, - "src": "4909:1:1", + "referencedDeclaration": 3010, + "src": "4909:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -29503,22 +29503,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4882:29:1", + "src": "4882:29:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "4870:41:1" + "src": "4870:41:7" }, { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, - "id": 2566, + "id": 3035, "isConstant": false, "isLValue": false, "isPure": false, @@ -29526,25 +29526,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2561, + "id": 3030, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "4933:13:1", + "referencedDeclaration": 2709, + "src": "4933:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2563, + "id": 3032, "indexExpression": { - "id": 2562, + "id": 3031, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, - "src": "4947:1:1", + "referencedDeclaration": 3023, + "src": "4947:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29555,53 +29555,53 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4933:16:1", + "src": "4933:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2564, + "id": 3033, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenType", "nodeType": "MemberAccess", - "referencedDeclaration": 2226, - "src": "4933:26:1", + "referencedDeclaration": 2695, + "src": "4933:26:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 2565, + "id": 3034, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2500, - "src": "4963:9:1", + "referencedDeclaration": 2969, + "src": "4963:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "src": "4933:39:1", + "src": "4933:39:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2568, + "id": 3037, "nodeType": "IfStatement", - "src": "4929:53:1", + "src": "4929:53:7", "trueBody": { - "id": 2567, + "id": 3036, "nodeType": "Continue", - "src": "4974:8:1" + "src": "4974:8:7" } }, { @@ -29610,7 +29610,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2574, + "id": 3043, "isConstant": false, "isLValue": false, "isPure": false, @@ -29618,25 +29618,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2569, + "id": 3038, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "5004:13:1", + "referencedDeclaration": 2709, + "src": "5004:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2571, + "id": 3040, "indexExpression": { - "id": 2570, + "id": 3039, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, - "src": "5018:1:1", + "referencedDeclaration": 3023, + "src": "5018:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29647,21 +29647,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5004:16:1", + "src": "5004:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2572, + "id": 3041, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenId", "nodeType": "MemberAccess", - "referencedDeclaration": 2230, - "src": "5004:24:1", + "referencedDeclaration": 2699, + "src": "5004:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29670,30 +29670,30 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 2573, + "id": 3042, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "5032:7:1", + "referencedDeclaration": 2973, + "src": "5032:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5004:35:1", + "src": "5004:35:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2576, + "id": 3045, "nodeType": "IfStatement", - "src": "5000:49:1", + "src": "5000:49:7", "trueBody": { - "id": 2575, + "id": 3044, "nodeType": "Continue", - "src": "5041:8:1" + "src": "5041:8:7" } }, { @@ -29702,7 +29702,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2582, + "id": 3051, "isConstant": false, "isLValue": false, "isPure": false, @@ -29710,25 +29710,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2577, + "id": 3046, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "5071:13:1", + "referencedDeclaration": 2709, + "src": "5071:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2579, + "id": 3048, "indexExpression": { - "id": 2578, + "id": 3047, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2554, - "src": "5085:1:1", + "referencedDeclaration": 3023, + "src": "5085:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -29739,21 +29739,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5071:16:1", + "src": "5071:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2580, + "id": 3049, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contractAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 2228, - "src": "5071:32:1", + "referencedDeclaration": 2697, + "src": "5071:32:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -29762,37 +29762,37 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 2581, + "id": 3050, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2502, - "src": "5107:15:1", + "referencedDeclaration": 2971, + "src": "5107:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "5071:51:1", + "src": "5071:51:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2584, + "id": 3053, "nodeType": "IfStatement", - "src": "5067:65:1", + "src": "5067:65:7", "trueBody": { - "id": 2583, + "id": 3052, "nodeType": "Continue", - "src": "5124:8:1" + "src": "5124:8:7" } }, { - "functionReturnParameters": 2506, - "id": 2585, + "functionReturnParameters": 2975, + "id": 3054, "nodeType": "Return", - "src": "5250:7:1" + "src": "5250:7:7" } ] }, @@ -29801,18 +29801,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2549, + "id": 3018, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2544, + "id": 3013, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2541, - "src": "4808:1:1", + "referencedDeclaration": 3010, + "src": "4808:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -29823,25 +29823,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 2545, + "id": 3014, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "4812:21:1", + "referencedDeclaration": 2705, + "src": "4812:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2547, + "id": 3016, "indexExpression": { - "id": 2546, + "id": 3015, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2508, - "src": "4834:3:1", + "referencedDeclaration": 2977, + "src": "4834:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -29852,46 +29852,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "4812:26:1", + "src": "4812:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2548, + "id": 3017, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "4812:33:1", + "src": "4812:33:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "4808:37:1", + "src": "4808:37:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2587, + "id": 3056, "initializationExpression": { "assignments": [ - 2541 + 3010 ], "declarations": [ { "constant": false, - "id": 2541, + "id": 3010, "mutability": "mutable", "name": "i", - "nameLocation": "4801:1:1", + "nameLocation": "4801:1:7", "nodeType": "VariableDeclaration", - "scope": 2587, - "src": "4794:8:1", + "scope": 3056, + "src": "4794:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -29899,10 +29899,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2540, + "id": 3009, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "4794:6:1", + "src": "4794:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -29911,17 +29911,17 @@ "visibility": "internal" } ], - "id": 2543, + "id": 3012, "initialValue": { "hexValue": "30", - "id": 2542, + "id": 3011, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "4805:1:1", + "src": "4805:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -29929,11 +29929,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "4794:12:1" + "src": "4794:12:7" }, "loopExpression": { "expression": { - "id": 2551, + "id": 3020, "isConstant": false, "isLValue": false, "isPure": false, @@ -29941,14 +29941,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "4847:3:1", + "src": "4847:3:7", "subExpression": { - "id": 2550, + "id": 3019, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2541, - "src": "4847:1:1", + "referencedDeclaration": 3010, + "src": "4847:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -29959,90 +29959,90 @@ "typeString": "uint32" } }, - "id": 2552, + "id": 3021, "nodeType": "ExpressionStatement", - "src": "4847:3:1" + "src": "4847:3:7" }, "nodeType": "ForStatement", - "src": "4789:482:1" + "src": "4789:482:7" } ] } }, { "assignments": [ - 2592 + 3061 ], "declarations": [ { "constant": false, - "id": 2592, + "id": 3061, "mutability": "mutable", "name": "tt", - "nameLocation": "5310:2:1", + "nameLocation": "5310:2:7", "nodeType": "VariableDeclaration", - "scope": 2619, - "src": "5290:22:1", + "scope": 3088, + "src": "5290:22:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken" }, "typeName": { - "id": 2591, + "id": 3060, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2590, + "id": 3059, "name": "TrackedToken", "nodeType": "IdentifierPath", - "referencedDeclaration": 2231, - "src": "5290:12:1" + "referencedDeclaration": 2700, + "src": "5290:12:7" }, - "referencedDeclaration": 2231, - "src": "5290:12:1", + "referencedDeclaration": 2700, + "src": "5290:12:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage_ptr", "typeString": "struct TokenTracker.TrackedToken" } }, "visibility": "internal" } ], - "id": 2598, + "id": 3067, "initialValue": { "arguments": [ { - "id": 2594, + "id": 3063, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2500, - "src": "5328:9:1", + "referencedDeclaration": 2969, + "src": "5328:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 2595, + "id": 3064, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2502, - "src": "5339:15:1", + "referencedDeclaration": 2971, + "src": "5339:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2596, + "id": 3065, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "5356:7:1", + "referencedDeclaration": 2973, + "src": "5356:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30052,7 +30052,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -30064,18 +30064,18 @@ "typeString": "uint256" } ], - "id": 2593, + "id": 3062, "name": "TrackedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2231, - "src": "5315:12:1", + "referencedDeclaration": 2700, + "src": "5315:12:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_TrackedToken_$2231_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_TrackedToken_$2700_storage_ptr_$", "typeString": "type(struct TokenTracker.TrackedToken storage pointer)" } }, - "id": 2597, + "id": 3066, "isConstant": false, "isLValue": false, "isPure": false, @@ -30083,40 +30083,40 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5315:49:1", + "src": "5315:49:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "5290:74:1" + "src": "5290:74:7" }, { "expression": { "arguments": [ { "expression": { - "id": 2603, + "id": 3072, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "5406:13:1", + "referencedDeclaration": 2709, + "src": "5406:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2604, + "id": 3073, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "5406:20:1", + "src": "5406:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30132,25 +30132,25 @@ ], "expression": { "baseExpression": { - "id": 2599, + "id": 3068, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "5374:21:1", + "referencedDeclaration": 2705, + "src": "5374:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2601, + "id": 3070, "indexExpression": { - "id": 2600, + "id": 3069, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2508, - "src": "5396:3:1", + "referencedDeclaration": 2977, + "src": "5396:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30161,26 +30161,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5374:26:1", + "src": "5374:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2602, + "id": 3071, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "5374:31:1", + "src": "5374:31:7", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$", "typeString": "function (uint256[] storage pointer,uint256)" } }, - "id": 2605, + "id": 3074, "isConstant": false, "isLValue": false, "isPure": false, @@ -30188,29 +30188,29 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5374:53:1", + "src": "5374:53:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2606, + "id": 3075, "nodeType": "ExpressionStatement", - "src": "5374:53:1" + "src": "5374:53:7" }, { "expression": { "arguments": [ { - "id": 2610, + "id": 3079, "name": "tt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2592, - "src": "5456:2:1", + "referencedDeclaration": 3061, + "src": "5456:2:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } } @@ -30218,36 +30218,36 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } ], "expression": { - "id": 2607, + "id": 3076, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "5437:13:1", + "referencedDeclaration": 2709, + "src": "5437:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2609, + "id": 3078, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "5437:18:1", + "src": "5437:18:7", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr_$_t_struct$_TrackedToken_$2231_storage_$returns$__$bound_to$_t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr_$", + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr_$_t_struct$_TrackedToken_$2700_storage_$returns$__$bound_to$_t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr_$", "typeString": "function (struct TokenTracker.TrackedToken storage ref[] storage pointer,struct TokenTracker.TrackedToken storage ref)" } }, - "id": 2611, + "id": 3080, "isConstant": false, "isLValue": false, "isPure": false, @@ -30255,51 +30255,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5437:22:1", + "src": "5437:22:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2612, + "id": 3081, "nodeType": "ExpressionStatement", - "src": "5437:22:1" + "src": "5437:22:7" }, { "eventCall": { "arguments": [ { - "id": 2614, + "id": 3083, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2500, - "src": "5487:9:1", + "referencedDeclaration": 2969, + "src": "5487:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 2615, + "id": 3084, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2502, - "src": "5498:15:1", + "referencedDeclaration": 2971, + "src": "5498:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2616, + "id": 3085, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2504, - "src": "5515:7:1", + "referencedDeclaration": 2973, + "src": "5515:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30309,7 +30309,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -30321,18 +30321,18 @@ "typeString": "uint256" } ], - "id": 2613, + "id": 3082, "name": "TokenTracked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2164, - "src": "5474:12:1", + "referencedDeclaration": 2633, + "src": "5474:12:7", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2138_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 2617, + "id": 3086, "isConstant": false, "isLValue": false, "isPure": false, @@ -30340,59 +30340,59 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5474:49:1", + "src": "5474:49:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2618, + "id": 3087, "nodeType": "EmitStatement", - "src": "5469:54:1" + "src": "5469:54:7" } ] }, - "id": 2620, + "id": 3089, "implemented": true, "kind": "function", "modifiers": [], "name": "_trackToken", - "nameLocation": "4509:11:1", + "nameLocation": "4509:11:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 2505, + "id": 2974, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2500, + "id": 2969, "mutability": "mutable", "name": "tokenType", - "nameLocation": "4531:9:1", + "nameLocation": "4531:9:7", "nodeType": "VariableDeclaration", - "scope": 2620, - "src": "4521:19:1", + "scope": 3089, + "src": "4521:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2499, + "id": 2968, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2498, + "id": 2967, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "4521:9:1" + "referencedDeclaration": 2607, + "src": "4521:9:7" }, - "referencedDeclaration": 2138, - "src": "4521:9:1", + "referencedDeclaration": 2607, + "src": "4521:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -30400,13 +30400,13 @@ }, { "constant": false, - "id": 2502, + "id": 2971, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "4550:15:1", + "nameLocation": "4550:15:7", "nodeType": "VariableDeclaration", - "scope": 2620, - "src": "4542:23:1", + "scope": 3089, + "src": "4542:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30414,10 +30414,10 @@ "typeString": "address" }, "typeName": { - "id": 2501, + "id": 2970, "name": "address", "nodeType": "ElementaryTypeName", - "src": "4542:7:1", + "src": "4542:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -30428,13 +30428,13 @@ }, { "constant": false, - "id": 2504, + "id": 2973, "mutability": "mutable", "name": "tokenId", - "nameLocation": "4575:7:1", + "nameLocation": "4575:7:7", "nodeType": "VariableDeclaration", - "scope": 2620, - "src": "4567:15:1", + "scope": 3089, + "src": "4567:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30442,10 +30442,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2503, + "id": 2972, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "4567:7:1", + "src": "4567:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30454,40 +30454,40 @@ "visibility": "internal" } ], - "src": "4520:63:1" + "src": "4520:63:7" }, "returnParameters": { - "id": 2506, + "id": 2975, "nodeType": "ParameterList", "parameters": [], - "src": "4593:0:1" + "src": "4593:0:7" }, - "scope": 3391, - "src": "4500:1030:1", + "scope": 3860, + "src": "4500:1030:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2837, + "id": 3306, "nodeType": "Block", - "src": "5631:1518:1", + "src": "5631:1518:7", "statements": [ { "assignments": [ - 2631 + 3100 ], "declarations": [ { "constant": false, - "id": 2631, + "id": 3100, "mutability": "mutable", "name": "key", - "nameLocation": "5649:3:1", + "nameLocation": "5649:3:7", "nodeType": "VariableDeclaration", - "scope": 2837, - "src": "5641:11:1", + "scope": 3306, + "src": "5641:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30495,10 +30495,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2630, + "id": 3099, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5641:7:1", + "src": "5641:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30507,7 +30507,7 @@ "visibility": "internal" } ], - "id": 2656, + "id": 3125, "initialValue": { "arguments": [ { @@ -30517,14 +30517,14 @@ { "arguments": [ { - "id": 2640, + "id": 3109, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "5694:9:1", + "referencedDeclaration": 3092, + "src": "5694:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } } @@ -30532,30 +30532,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } ], - "id": 2639, + "id": 3108, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5686:7:1", + "src": "5686:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 2638, + "id": 3107, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5686:7:1", + "src": "5686:7:7", "typeDescriptions": {} } }, - "id": 2641, + "id": 3110, "isConstant": false, "isLValue": false, "isPure": false, @@ -30563,7 +30563,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5686:18:1", + "src": "5686:18:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -30578,26 +30578,26 @@ "typeString": "uint256" } ], - "id": 2637, + "id": 3106, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5678:7:1", + "src": "5678:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2636, + "id": 3105, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5678:7:1", + "src": "5678:7:7", "typeDescriptions": {} } }, - "id": 2642, + "id": 3111, "isConstant": false, "isLValue": false, "isPure": false, @@ -30605,7 +30605,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5678:27:1", + "src": "5678:27:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -30617,12 +30617,12 @@ { "arguments": [ { - "id": 2647, + "id": 3116, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2625, - "src": "5723:15:1", + "referencedDeclaration": 3094, + "src": "5723:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -30636,26 +30636,26 @@ "typeString": "address" } ], - "id": 2646, + "id": 3115, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5715:7:1", + "src": "5715:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 2645, + "id": 3114, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "5715:7:1", + "src": "5715:7:7", "typeDescriptions": {} } }, - "id": 2648, + "id": 3117, "isConstant": false, "isLValue": false, "isPure": false, @@ -30663,7 +30663,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5715:24:1", + "src": "5715:24:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -30678,26 +30678,26 @@ "typeString": "bytes20" } ], - "id": 2644, + "id": 3113, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5707:7:1", + "src": "5707:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2643, + "id": 3112, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5707:7:1", + "src": "5707:7:7", "typeDescriptions": {} } }, - "id": 2649, + "id": 3118, "isConstant": false, "isLValue": false, "isPure": false, @@ -30705,7 +30705,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5707:33:1", + "src": "5707:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -30715,12 +30715,12 @@ { "arguments": [ { - "id": 2652, + "id": 3121, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2627, - "src": "5750:7:1", + "referencedDeclaration": 3096, + "src": "5750:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30734,26 +30734,26 @@ "typeString": "uint256" } ], - "id": 2651, + "id": 3120, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5742:7:1", + "src": "5742:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2650, + "id": 3119, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "5742:7:1", + "src": "5742:7:7", "typeDescriptions": {} } }, - "id": 2653, + "id": 3122, "isConstant": false, "isLValue": false, "isPure": false, @@ -30761,7 +30761,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5742:16:1", + "src": "5742:16:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -30785,39 +30785,39 @@ } ], "expression": { - "id": 2634, + "id": 3103, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "5665:5:1", + "src": "5665:5:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2633, + "id": 3102, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "5665:5:1", + "src": "5665:5:7", "typeDescriptions": {} } }, - "id": 2635, + "id": 3104, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "5665:12:1", + "src": "5665:12:7", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2654, + "id": 3123, "isConstant": false, "isLValue": false, "isPure": false, @@ -30825,7 +30825,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5665:94:1", + "src": "5665:94:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -30840,18 +30840,18 @@ "typeString": "bytes memory" } ], - "id": 2632, + "id": 3101, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "5655:9:1", + "src": "5655:9:7", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2655, + "id": 3124, "isConstant": false, "isLValue": false, "isPure": false, @@ -30859,7 +30859,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "5655:105:1", + "src": "5655:105:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -30867,7 +30867,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "5641:119:1" + "src": "5641:119:7" }, { "condition": { @@ -30875,7 +30875,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2662, + "id": 3131, "isConstant": false, "isLValue": false, "isPure": false, @@ -30883,25 +30883,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2657, + "id": 3126, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "5774:21:1", + "referencedDeclaration": 2705, + "src": "5774:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2659, + "id": 3128, "indexExpression": { - "id": 2658, + "id": 3127, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "5796:3:1", + "referencedDeclaration": 3100, + "src": "5796:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -30912,20 +30912,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5774:26:1", + "src": "5774:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2660, + "id": 3129, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "5774:33:1", + "src": "5774:33:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -30935,63 +30935,63 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 2661, + "id": 3130, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5811:1:1", + "src": "5811:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "5774:38:1", + "src": "5774:38:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2665, + "id": 3134, "nodeType": "IfStatement", - "src": "5770:75:1", + "src": "5770:75:7", "trueBody": { - "id": 2664, + "id": 3133, "nodeType": "Block", - "src": "5814:31:1", + "src": "5814:31:7", "statements": [ { - "functionReturnParameters": 2629, - "id": 2663, + "functionReturnParameters": 3098, + "id": 3132, "nodeType": "Return", - "src": "5828:7:1" + "src": "5828:7:7" } ] } }, { "body": { - "id": 2829, + "id": 3298, "nodeType": "Block", - "src": "5917:1161:1", + "src": "5917:1161:7", "statements": [ { "assignments": [ - 2680 + 3149 ], "declarations": [ { "constant": false, - "id": 2680, + "id": 3149, "mutability": "mutable", "name": "j", - "nameLocation": "5939:1:1", + "nameLocation": "5939:1:7", "nodeType": "VariableDeclaration", - "scope": 2829, - "src": "5931:9:1", + "scope": 3298, + "src": "5931:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -30999,10 +30999,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2679, + "id": 3148, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5931:7:1", + "src": "5931:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31011,29 +31011,29 @@ "visibility": "internal" } ], - "id": 2686, + "id": 3155, "initialValue": { "baseExpression": { "baseExpression": { - "id": 2681, + "id": 3150, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "5943:21:1", + "referencedDeclaration": 2705, + "src": "5943:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2683, + "id": 3152, "indexExpression": { - "id": 2682, + "id": 3151, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "5965:3:1", + "referencedDeclaration": 3100, + "src": "5965:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -31044,20 +31044,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5943:26:1", + "src": "5943:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2685, + "id": 3154, "indexExpression": { - "id": 2684, + "id": 3153, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "5970:1:1", + "referencedDeclaration": 3136, + "src": "5970:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -31068,22 +31068,22 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5943:29:1", + "src": "5943:29:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "5931:41:1" + "src": "5931:41:7" }, { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, - "id": 2692, + "id": 3161, "isConstant": false, "isLValue": false, "isPure": false, @@ -31091,25 +31091,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2687, + "id": 3156, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "5990:13:1", + "referencedDeclaration": 2709, + "src": "5990:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2689, + "id": 3158, "indexExpression": { - "id": 2688, + "id": 3157, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6004:1:1", + "referencedDeclaration": 3149, + "src": "6004:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31120,53 +31120,53 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5990:16:1", + "src": "5990:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2690, + "id": 3159, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenType", "nodeType": "MemberAccess", - "referencedDeclaration": 2226, - "src": "5990:26:1", + "referencedDeclaration": 2695, + "src": "5990:26:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 2691, + "id": 3160, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "6020:9:1", + "referencedDeclaration": 3092, + "src": "6020:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, - "src": "5990:39:1", + "src": "5990:39:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2694, + "id": 3163, "nodeType": "IfStatement", - "src": "5986:53:1", + "src": "5986:53:7", "trueBody": { - "id": 2693, + "id": 3162, "nodeType": "Continue", - "src": "6031:8:1" + "src": "6031:8:7" } }, { @@ -31175,7 +31175,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2700, + "id": 3169, "isConstant": false, "isLValue": false, "isPure": false, @@ -31183,25 +31183,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2695, + "id": 3164, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6057:13:1", + "referencedDeclaration": 2709, + "src": "6057:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2697, + "id": 3166, "indexExpression": { - "id": 2696, + "id": 3165, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6071:1:1", + "referencedDeclaration": 3149, + "src": "6071:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31212,21 +31212,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6057:16:1", + "src": "6057:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2698, + "id": 3167, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenId", "nodeType": "MemberAccess", - "referencedDeclaration": 2230, - "src": "6057:24:1", + "referencedDeclaration": 2699, + "src": "6057:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31235,30 +31235,30 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 2699, + "id": 3168, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2627, - "src": "6085:7:1", + "referencedDeclaration": 3096, + "src": "6085:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6057:35:1", + "src": "6057:35:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2702, + "id": 3171, "nodeType": "IfStatement", - "src": "6053:49:1", + "src": "6053:49:7", "trueBody": { - "id": 2701, + "id": 3170, "nodeType": "Continue", - "src": "6094:8:1" + "src": "6094:8:7" } }, { @@ -31267,7 +31267,7 @@ "typeIdentifier": "t_address", "typeString": "address" }, - "id": 2708, + "id": 3177, "isConstant": false, "isLValue": false, "isPure": false, @@ -31275,25 +31275,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2703, + "id": 3172, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6120:13:1", + "referencedDeclaration": 2709, + "src": "6120:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2705, + "id": 3174, "indexExpression": { - "id": 2704, + "id": 3173, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6134:1:1", + "referencedDeclaration": 3149, + "src": "6134:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31304,21 +31304,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6120:16:1", + "src": "6120:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2706, + "id": 3175, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contractAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 2228, - "src": "6120:32:1", + "referencedDeclaration": 2697, + "src": "6120:32:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -31327,46 +31327,46 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 2707, + "id": 3176, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2625, - "src": "6156:15:1", + "referencedDeclaration": 3094, + "src": "6156:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, - "src": "6120:51:1", + "src": "6120:51:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2710, + "id": 3179, "nodeType": "IfStatement", - "src": "6116:65:1", + "src": "6116:65:7", "trueBody": { - "id": 2709, + "id": 3178, "nodeType": "Continue", - "src": "6173:8:1" + "src": "6173:8:7" } }, { "assignments": [ - 2712 + 3181 ], "declarations": [ { "constant": false, - "id": 2712, + "id": 3181, "mutability": "mutable", "name": "swappedPosition", - "nameLocation": "6234:15:1", + "nameLocation": "6234:15:7", "nodeType": "VariableDeclaration", - "scope": 2829, - "src": "6226:23:1", + "scope": 3298, + "src": "6226:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31374,10 +31374,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2711, + "id": 3180, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6226:7:1", + "src": "6226:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31386,38 +31386,38 @@ "visibility": "internal" } ], - "id": 2717, + "id": 3186, "initialValue": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2716, + "id": 3185, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2713, + "id": 3182, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6252:13:1", + "referencedDeclaration": 2709, + "src": "6252:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2714, + "id": 3183, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6252:20:1", + "src": "6252:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31427,57 +31427,57 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 2715, + "id": 3184, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6275:1:1", + "src": "6275:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "6252:24:1", + "src": "6252:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "6226:50:1" + "src": "6226:50:7" }, { "expression": { - "id": 2724, + "id": 3193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2718, + "id": 3187, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6290:13:1", + "referencedDeclaration": 2709, + "src": "6290:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2720, + "id": 3189, "indexExpression": { - "id": 2719, + "id": 3188, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6304:1:1", + "referencedDeclaration": 3149, + "src": "6304:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31488,9 +31488,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6290:16:1", + "src": "6290:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, @@ -31498,25 +31498,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 2721, + "id": 3190, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6309:13:1", + "referencedDeclaration": 2709, + "src": "6309:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2723, + "id": 3192, "indexExpression": { - "id": 2722, + "id": 3191, "name": "swappedPosition", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2712, - "src": "6323:15:1", + "referencedDeclaration": 3181, + "src": "6323:15:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31527,36 +31527,36 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6309:30:1", + "src": "6309:30:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "src": "6290:49:1", + "src": "6290:49:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2725, + "id": 3194, "nodeType": "ExpressionStatement", - "src": "6290:49:1" + "src": "6290:49:7" }, { "assignments": [ - 2727 + 3196 ], "declarations": [ { "constant": false, - "id": 2727, + "id": 3196, "mutability": "mutable", "name": "swappedKey", - "nameLocation": "6361:10:1", + "nameLocation": "6361:10:7", "nodeType": "VariableDeclaration", - "scope": 2829, - "src": "6353:18:1", + "scope": 3298, + "src": "6353:18:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -31564,10 +31564,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2726, + "id": 3195, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6353:7:1", + "src": "6353:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -31576,7 +31576,7 @@ "visibility": "internal" } ], - "id": 2761, + "id": 3230, "initialValue": { "arguments": [ { @@ -31588,25 +31588,25 @@ { "expression": { "baseExpression": { - "id": 2736, + "id": 3205, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6413:13:1", + "referencedDeclaration": 2709, + "src": "6413:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2738, + "id": 3207, "indexExpression": { - "id": 2737, + "id": 3206, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6427:1:1", + "referencedDeclaration": 3149, + "src": "6427:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31617,23 +31617,23 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6413:16:1", + "src": "6413:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2739, + "id": 3208, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenType", "nodeType": "MemberAccess", - "referencedDeclaration": 2226, - "src": "6413:26:1", + "referencedDeclaration": 2695, + "src": "6413:26:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } } @@ -31641,30 +31641,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } ], - "id": 2735, + "id": 3204, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6405:7:1", + "src": "6405:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 2734, + "id": 3203, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "6405:7:1", + "src": "6405:7:7", "typeDescriptions": {} } }, - "id": 2740, + "id": 3209, "isConstant": false, "isLValue": false, "isPure": false, @@ -31672,7 +31672,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6405:35:1", + "src": "6405:35:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -31687,26 +31687,26 @@ "typeString": "uint256" } ], - "id": 2733, + "id": 3202, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6397:7:1", + "src": "6397:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2732, + "id": 3201, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6397:7:1", + "src": "6397:7:7", "typeDescriptions": {} } }, - "id": 2741, + "id": 3210, "isConstant": false, "isLValue": false, "isPure": false, @@ -31714,7 +31714,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6397:44:1", + "src": "6397:44:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -31728,25 +31728,25 @@ { "expression": { "baseExpression": { - "id": 2746, + "id": 3215, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6459:13:1", + "referencedDeclaration": 2709, + "src": "6459:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2748, + "id": 3217, "indexExpression": { - "id": 2747, + "id": 3216, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6473:1:1", + "referencedDeclaration": 3149, + "src": "6473:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31757,21 +31757,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6459:16:1", + "src": "6459:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2749, + "id": 3218, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contractAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 2228, - "src": "6459:32:1", + "referencedDeclaration": 2697, + "src": "6459:32:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -31785,26 +31785,26 @@ "typeString": "address" } ], - "id": 2745, + "id": 3214, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6451:7:1", + "src": "6451:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 2744, + "id": 3213, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "6451:7:1", + "src": "6451:7:7", "typeDescriptions": {} } }, - "id": 2750, + "id": 3219, "isConstant": false, "isLValue": false, "isPure": false, @@ -31812,7 +31812,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6451:41:1", + "src": "6451:41:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -31827,26 +31827,26 @@ "typeString": "bytes20" } ], - "id": 2743, + "id": 3212, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6443:7:1", + "src": "6443:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2742, + "id": 3211, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6443:7:1", + "src": "6443:7:7", "typeDescriptions": {} } }, - "id": 2751, + "id": 3220, "isConstant": false, "isLValue": false, "isPure": false, @@ -31854,7 +31854,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6443:50:1", + "src": "6443:50:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -31866,25 +31866,25 @@ { "expression": { "baseExpression": { - "id": 2754, + "id": 3223, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6503:13:1", + "referencedDeclaration": 2709, + "src": "6503:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2756, + "id": 3225, "indexExpression": { - "id": 2755, + "id": 3224, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6517:1:1", + "referencedDeclaration": 3149, + "src": "6517:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31895,21 +31895,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6503:16:1", + "src": "6503:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2757, + "id": 3226, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenId", "nodeType": "MemberAccess", - "referencedDeclaration": 2230, - "src": "6503:24:1", + "referencedDeclaration": 2699, + "src": "6503:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -31923,26 +31923,26 @@ "typeString": "uint256" } ], - "id": 2753, + "id": 3222, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6495:7:1", + "src": "6495:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2752, + "id": 3221, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "6495:7:1", + "src": "6495:7:7", "typeDescriptions": {} } }, - "id": 2758, + "id": 3227, "isConstant": false, "isLValue": false, "isPure": false, @@ -31950,7 +31950,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6495:33:1", + "src": "6495:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -31974,39 +31974,39 @@ } ], "expression": { - "id": 2730, + "id": 3199, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "6384:5:1", + "src": "6384:5:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2729, + "id": 3198, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "6384:5:1", + "src": "6384:5:7", "typeDescriptions": {} } }, - "id": 2731, + "id": 3200, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "6384:12:1", + "src": "6384:12:7", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2759, + "id": 3228, "isConstant": false, "isLValue": false, "isPure": false, @@ -32014,7 +32014,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6384:145:1", + "src": "6384:145:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -32029,18 +32029,18 @@ "typeString": "bytes memory" } ], - "id": 2728, + "id": 3197, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "6374:9:1", + "src": "6374:9:7", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2760, + "id": 3229, "isConstant": false, "isLValue": false, "isPure": false, @@ -32048,7 +32048,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6374:156:1", + "src": "6374:156:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -32056,7 +32056,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "6353:177:1" + "src": "6353:177:7" }, { "expression": { @@ -32064,31 +32064,31 @@ "expression": { "argumentTypes": [], "expression": { - "id": 2762, + "id": 3231, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "6544:13:1", + "referencedDeclaration": 2709, + "src": "6544:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2764, + "id": 3233, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pop", "nodeType": "MemberAccess", - "src": "6544:17:1", + "src": "6544:17:7", "typeDescriptions": { - "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr_$", + "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr_$", "typeString": "function (struct TokenTracker.TrackedToken storage ref[] storage pointer)" } }, - "id": 2765, + "id": 3234, "isConstant": false, "isLValue": false, "isPure": false, @@ -32096,22 +32096,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6544:19:1", + "src": "6544:19:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2766, + "id": 3235, "nodeType": "ExpressionStatement", - "src": "6544:19:1" + "src": "6544:19:7" }, { "body": { - "id": 2797, + "id": 3266, "nodeType": "Block", - "src": "6647:174:1", + "src": "6647:174:7", "statements": [ { "condition": { @@ -32119,7 +32119,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2786, + "id": 3255, "isConstant": false, "isLValue": false, "isPure": false, @@ -32127,25 +32127,25 @@ "leftExpression": { "baseExpression": { "baseExpression": { - "id": 2780, + "id": 3249, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "6669:21:1", + "referencedDeclaration": 2705, + "src": "6669:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2782, + "id": 3251, "indexExpression": { - "id": 2781, + "id": 3250, "name": "swappedKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "6691:10:1", + "referencedDeclaration": 3196, + "src": "6691:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32156,20 +32156,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6669:33:1", + "src": "6669:33:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2784, + "id": 3253, "indexExpression": { - "id": 2783, + "id": 3252, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2768, - "src": "6703:1:1", + "referencedDeclaration": 3237, + "src": "6703:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32180,7 +32180,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6669:36:1", + "src": "6669:36:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32189,34 +32189,34 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 2785, + "id": 3254, "name": "swappedPosition", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2712, - "src": "6709:15:1", + "referencedDeclaration": 3181, + "src": "6709:15:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6669:55:1", + "src": "6669:55:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2796, + "id": 3265, "nodeType": "IfStatement", - "src": "6665:142:1", + "src": "6665:142:7", "trueBody": { - "id": 2795, + "id": 3264, "nodeType": "Block", - "src": "6726:81:1", + "src": "6726:81:7", "statements": [ { "expression": { - "id": 2793, + "id": 3262, "isConstant": false, "isLValue": false, "isPure": false, @@ -32224,25 +32224,25 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 2787, + "id": 3256, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "6748:21:1", + "referencedDeclaration": 2705, + "src": "6748:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2790, + "id": 3259, "indexExpression": { - "id": 2788, + "id": 3257, "name": "swappedKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "6770:10:1", + "referencedDeclaration": 3196, + "src": "6770:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32253,20 +32253,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6748:33:1", + "src": "6748:33:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2791, + "id": 3260, "indexExpression": { - "id": 2789, + "id": 3258, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2768, - "src": "6782:1:1", + "referencedDeclaration": 3237, + "src": "6782:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32277,7 +32277,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6748:36:1", + "src": "6748:36:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32286,26 +32286,26 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2792, + "id": 3261, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6787:1:1", + "referencedDeclaration": 3149, + "src": "6787:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6748:40:1", + "src": "6748:40:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2794, + "id": 3263, "nodeType": "ExpressionStatement", - "src": "6748:40:1" + "src": "6748:40:7" } ] } @@ -32317,18 +32317,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2776, + "id": 3245, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2771, + "id": 3240, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2768, - "src": "6596:1:1", + "referencedDeclaration": 3237, + "src": "6596:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32339,25 +32339,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 2772, + "id": 3241, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "6600:21:1", + "referencedDeclaration": 2705, + "src": "6600:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2774, + "id": 3243, "indexExpression": { - "id": 2773, + "id": 3242, "name": "swappedKey", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2727, - "src": "6622:10:1", + "referencedDeclaration": 3196, + "src": "6622:10:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32368,46 +32368,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6600:33:1", + "src": "6600:33:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2775, + "id": 3244, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6600:40:1", + "src": "6600:40:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6596:44:1", + "src": "6596:44:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2798, + "id": 3267, "initializationExpression": { "assignments": [ - 2768 + 3237 ], "declarations": [ { "constant": false, - "id": 2768, + "id": 3237, "mutability": "mutable", "name": "k", - "nameLocation": "6589:1:1", + "nameLocation": "6589:1:7", "nodeType": "VariableDeclaration", - "scope": 2798, - "src": "6582:8:1", + "scope": 3267, + "src": "6582:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32415,10 +32415,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2767, + "id": 3236, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "6582:6:1", + "src": "6582:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32427,17 +32427,17 @@ "visibility": "internal" } ], - "id": 2770, + "id": 3239, "initialValue": { "hexValue": "30", - "id": 2769, + "id": 3238, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6593:1:1", + "src": "6593:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -32445,11 +32445,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "6582:12:1" + "src": "6582:12:7" }, "loopExpression": { "expression": { - "id": 2778, + "id": 3247, "isConstant": false, "isLValue": false, "isPure": false, @@ -32457,14 +32457,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "6642:3:1", + "src": "6642:3:7", "subExpression": { - "id": 2777, + "id": 3246, "name": "k", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2768, - "src": "6642:1:1", + "referencedDeclaration": 3237, + "src": "6642:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32475,16 +32475,16 @@ "typeString": "uint32" } }, - "id": 2779, + "id": 3248, "nodeType": "ExpressionStatement", - "src": "6642:3:1" + "src": "6642:3:7" }, "nodeType": "ForStatement", - "src": "6577:244:1" + "src": "6577:244:7" }, { "expression": { - "id": 2814, + "id": 3283, "isConstant": false, "isLValue": false, "isPure": false, @@ -32492,25 +32492,25 @@ "leftHandSide": { "baseExpression": { "baseExpression": { - "id": 2799, + "id": 3268, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "6834:21:1", + "referencedDeclaration": 2705, + "src": "6834:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2802, + "id": 3271, "indexExpression": { - "id": 2800, + "id": 3269, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "6856:3:1", + "referencedDeclaration": 3100, + "src": "6856:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32521,20 +32521,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6834:26:1", + "src": "6834:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2803, + "id": 3272, "indexExpression": { - "id": 2801, + "id": 3270, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2680, - "src": "6861:1:1", + "referencedDeclaration": 3149, + "src": "6861:1:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32545,7 +32545,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "6834:29:1", + "src": "6834:29:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32556,25 +32556,25 @@ "rightHandSide": { "baseExpression": { "baseExpression": { - "id": 2804, + "id": 3273, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "6866:21:1", + "referencedDeclaration": 2705, + "src": "6866:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2806, + "id": 3275, "indexExpression": { - "id": 2805, + "id": 3274, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "6888:3:1", + "referencedDeclaration": 3100, + "src": "6888:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32585,19 +32585,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6866:26:1", + "src": "6866:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2813, + "id": 3282, "indexExpression": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2812, + "id": 3281, "isConstant": false, "isLValue": false, "isPure": false, @@ -32605,25 +32605,25 @@ "leftExpression": { "expression": { "baseExpression": { - "id": 2807, + "id": 3276, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "6893:21:1", + "referencedDeclaration": 2705, + "src": "6893:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2809, + "id": 3278, "indexExpression": { - "id": 2808, + "id": 3277, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "6915:3:1", + "referencedDeclaration": 3100, + "src": "6915:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32634,20 +32634,20 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6893:26:1", + "src": "6893:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2810, + "id": 3279, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "6893:33:1", + "src": "6893:33:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32657,21 +32657,21 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 2811, + "id": 3280, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "6929:1:1", + "src": "6929:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "6893:37:1", + "src": "6893:37:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32682,21 +32682,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6866:65:1", + "src": "6866:65:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "6834:97:1", + "src": "6834:97:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "id": 2815, + "id": 3284, "nodeType": "ExpressionStatement", - "src": "6834:97:1" + "src": "6834:97:7" }, { "expression": { @@ -32705,25 +32705,25 @@ "argumentTypes": [], "expression": { "baseExpression": { - "id": 2816, + "id": 3285, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "6945:21:1", + "referencedDeclaration": 2705, + "src": "6945:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2818, + "id": 3287, "indexExpression": { - "id": 2817, + "id": 3286, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "6967:3:1", + "referencedDeclaration": 3100, + "src": "6967:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32734,26 +32734,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "6945:26:1", + "src": "6945:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2819, + "id": 3288, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pop", "nodeType": "MemberAccess", - "src": "6945:30:1", + "src": "6945:30:7", "typeDescriptions": { "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$", "typeString": "function (uint256[] storage pointer)" } }, - "id": 2820, + "id": 3289, "isConstant": false, "isLValue": false, "isPure": false, @@ -32761,51 +32761,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6945:32:1", + "src": "6945:32:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2821, + "id": 3290, "nodeType": "ExpressionStatement", - "src": "6945:32:1" + "src": "6945:32:7" }, { "eventCall": { "arguments": [ { - "id": 2823, + "id": 3292, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "7011:9:1", + "referencedDeclaration": 3092, + "src": "7011:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 2824, + "id": 3293, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2625, - "src": "7022:15:1", + "referencedDeclaration": 3094, + "src": "7022:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2825, + "id": 3294, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2627, - "src": "7039:7:1", + "referencedDeclaration": 3096, + "src": "7039:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -32815,7 +32815,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -32827,18 +32827,18 @@ "typeString": "uint256" } ], - "id": 2822, + "id": 3291, "name": "TokenUntracked", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2173, - "src": "6996:14:1", + "referencedDeclaration": 2642, + "src": "6996:14:7", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2138_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 2826, + "id": 3295, "isConstant": false, "isLValue": false, "isPure": false, @@ -32846,22 +32846,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "6996:51:1", + "src": "6996:51:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2827, + "id": 3296, "nodeType": "EmitStatement", - "src": "6991:56:1" + "src": "6991:56:7" }, { - "functionReturnParameters": 2629, - "id": 2828, + "functionReturnParameters": 3098, + "id": 3297, "nodeType": "Return", - "src": "7061:7:1" + "src": "7061:7:7" } ] }, @@ -32870,18 +32870,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2675, + "id": 3144, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2670, + "id": 3139, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "5873:1:1", + "referencedDeclaration": 3136, + "src": "5873:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32892,25 +32892,25 @@ "rightExpression": { "expression": { "baseExpression": { - "id": 2671, + "id": 3140, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "5877:21:1", + "referencedDeclaration": 2705, + "src": "5877:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2673, + "id": 3142, "indexExpression": { - "id": 2672, + "id": 3141, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2631, - "src": "5899:3:1", + "referencedDeclaration": 3100, + "src": "5899:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -32921,46 +32921,46 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "5877:26:1", + "src": "5877:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2674, + "id": 3143, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "5877:33:1", + "src": "5877:33:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "5873:37:1", + "src": "5873:37:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2830, + "id": 3299, "initializationExpression": { "assignments": [ - 2667 + 3136 ], "declarations": [ { "constant": false, - "id": 2667, + "id": 3136, "mutability": "mutable", "name": "i", - "nameLocation": "5866:1:1", + "nameLocation": "5866:1:7", "nodeType": "VariableDeclaration", - "scope": 2830, - "src": "5859:8:1", + "scope": 3299, + "src": "5859:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -32968,10 +32968,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2666, + "id": 3135, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "5859:6:1", + "src": "5859:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -32980,17 +32980,17 @@ "visibility": "internal" } ], - "id": 2669, + "id": 3138, "initialValue": { "hexValue": "30", - "id": 2668, + "id": 3137, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "5870:1:1", + "src": "5870:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -32998,11 +32998,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "5859:12:1" + "src": "5859:12:7" }, "loopExpression": { "expression": { - "id": 2677, + "id": 3146, "isConstant": false, "isLValue": false, "isPure": false, @@ -33010,14 +33010,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "5912:3:1", + "src": "5912:3:7", "subExpression": { - "id": 2676, + "id": 3145, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2667, - "src": "5912:1:1", + "referencedDeclaration": 3136, + "src": "5912:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -33028,47 +33028,47 @@ "typeString": "uint32" } }, - "id": 2678, + "id": 3147, "nodeType": "ExpressionStatement", - "src": "5912:3:1" + "src": "5912:3:7" }, "nodeType": "ForStatement", - "src": "5854:1224:1" + "src": "5854:1224:7" }, { "eventCall": { "arguments": [ { - "id": 2832, + "id": 3301, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2623, - "src": "7106:9:1", + "referencedDeclaration": 3092, + "src": "7106:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 2833, + "id": 3302, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2625, - "src": "7117:15:1", + "referencedDeclaration": 3094, + "src": "7117:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2834, + "id": 3303, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2627, - "src": "7134:7:1", + "referencedDeclaration": 3096, + "src": "7134:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33078,7 +33078,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -33090,18 +33090,18 @@ "typeString": "uint256" } ], - "id": 2831, + "id": 3300, "name": "TokenNotFound", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2182, - "src": "7092:13:1", + "referencedDeclaration": 2651, + "src": "7092:13:7", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2138_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 2835, + "id": 3304, "isConstant": false, "isLValue": false, "isPure": false, @@ -33109,59 +33109,59 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7092:50:1", + "src": "7092:50:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2836, + "id": 3305, "nodeType": "EmitStatement", - "src": "7087:55:1" + "src": "7087:55:7" } ] }, - "id": 2838, + "id": 3307, "implemented": true, "kind": "function", "modifiers": [], "name": "_untrackToken", - "nameLocation": "5545:13:1", + "nameLocation": "5545:13:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 2628, + "id": 3097, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2623, + "id": 3092, "mutability": "mutable", "name": "tokenType", - "nameLocation": "5569:9:1", + "nameLocation": "5569:9:7", "nodeType": "VariableDeclaration", - "scope": 2838, - "src": "5559:19:1", + "scope": 3307, + "src": "5559:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2622, + "id": 3091, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2621, + "id": 3090, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "5559:9:1" + "referencedDeclaration": 2607, + "src": "5559:9:7" }, - "referencedDeclaration": 2138, - "src": "5559:9:1", + "referencedDeclaration": 2607, + "src": "5559:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, @@ -33169,13 +33169,13 @@ }, { "constant": false, - "id": 2625, + "id": 3094, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "5588:15:1", + "nameLocation": "5588:15:7", "nodeType": "VariableDeclaration", - "scope": 2838, - "src": "5580:23:1", + "scope": 3307, + "src": "5580:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33183,10 +33183,10 @@ "typeString": "address" }, "typeName": { - "id": 2624, + "id": 3093, "name": "address", "nodeType": "ElementaryTypeName", - "src": "5580:7:1", + "src": "5580:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -33197,13 +33197,13 @@ }, { "constant": false, - "id": 2627, + "id": 3096, "mutability": "mutable", "name": "tokenId", - "nameLocation": "5613:7:1", + "nameLocation": "5613:7:7", "nodeType": "VariableDeclaration", - "scope": 2838, - "src": "5605:15:1", + "scope": 3307, + "src": "5605:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33211,10 +33211,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2626, + "id": 3095, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "5605:7:1", + "src": "5605:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33223,95 +33223,95 @@ "visibility": "internal" } ], - "src": "5558:63:1" + "src": "5558:63:7" }, "returnParameters": { - "id": 2629, + "id": 3098, "nodeType": "ParameterList", "parameters": [], - "src": "5631:0:1" + "src": "5631:0:7" }, - "scope": 3391, - "src": "5536:1613:1", + "scope": 3860, + "src": "5536:1613:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2999, + "id": 3468, "nodeType": "Block", - "src": "7228:1052:1", + "src": "7228:1052:7", "statements": [ { "body": { - "id": 2910, + "id": 3379, "nodeType": "Block", - "src": "7288:381:1", + "src": "7288:381:7", "statements": [ { "assignments": [ - 2858 + 3327 ], "declarations": [ { "constant": false, - "id": 2858, + "id": 3327, "mutability": "mutable", "name": "tokenType", - "nameLocation": "7312:9:1", + "nameLocation": "7312:9:7", "nodeType": "VariableDeclaration", - "scope": 2910, - "src": "7302:19:1", + "scope": 3379, + "src": "7302:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2857, + "id": 3326, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2856, + "id": 3325, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "7302:9:1" + "referencedDeclaration": 2607, + "src": "7302:9:7" }, - "referencedDeclaration": 2138, - "src": "7302:9:1", + "referencedDeclaration": 2607, + "src": "7302:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "visibility": "internal" } ], - "id": 2863, + "id": 3332, "initialValue": { "expression": { "baseExpression": { - "id": 2859, + "id": 3328, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "7324:13:1", + "referencedDeclaration": 2709, + "src": "7324:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2861, + "id": 3330, "indexExpression": { - "id": 2860, + "id": 3329, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "7338:1:1", + "referencedDeclaration": 3315, + "src": "7338:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -33322,43 +33322,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7324:16:1", + "src": "7324:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2862, + "id": 3331, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenType", "nodeType": "MemberAccess", - "referencedDeclaration": 2226, - "src": "7324:26:1", + "referencedDeclaration": 2695, + "src": "7324:26:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "nodeType": "VariableDeclarationStatement", - "src": "7302:48:1" + "src": "7302:48:7" }, { "assignments": [ - 2865 + 3334 ], "declarations": [ { "constant": false, - "id": 2865, + "id": 3334, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "7372:15:1", + "nameLocation": "7372:15:7", "nodeType": "VariableDeclaration", - "scope": 2910, - "src": "7364:23:1", + "scope": 3379, + "src": "7364:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33366,10 +33366,10 @@ "typeString": "address" }, "typeName": { - "id": 2864, + "id": 3333, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7364:7:1", + "src": "7364:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -33379,29 +33379,29 @@ "visibility": "internal" } ], - "id": 2870, + "id": 3339, "initialValue": { "expression": { "baseExpression": { - "id": 2866, + "id": 3335, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "7390:13:1", + "referencedDeclaration": 2709, + "src": "7390:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2868, + "id": 3337, "indexExpression": { - "id": 2867, + "id": 3336, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "7404:1:1", + "referencedDeclaration": 3315, + "src": "7404:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -33412,43 +33412,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7390:16:1", + "src": "7390:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2869, + "id": 3338, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contractAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 2228, - "src": "7390:32:1", + "referencedDeclaration": 2697, + "src": "7390:32:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "7364:58:1" + "src": "7364:58:7" }, { "assignments": [ - 2872 + 3341 ], "declarations": [ { "constant": false, - "id": 2872, + "id": 3341, "mutability": "mutable", "name": "tokenId", - "nameLocation": "7444:7:1", + "nameLocation": "7444:7:7", "nodeType": "VariableDeclaration", - "scope": 2910, - "src": "7436:15:1", + "scope": 3379, + "src": "7436:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33456,10 +33456,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2871, + "id": 3340, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7436:7:1", + "src": "7436:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33468,29 +33468,29 @@ "visibility": "internal" } ], - "id": 2877, + "id": 3346, "initialValue": { "expression": { "baseExpression": { - "id": 2873, + "id": 3342, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "7454:13:1", + "referencedDeclaration": 2709, + "src": "7454:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2875, + "id": 3344, "indexExpression": { - "id": 2874, + "id": 3343, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "7468:1:1", + "referencedDeclaration": 3315, + "src": "7468:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -33501,43 +33501,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7454:16:1", + "src": "7454:16:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage", "typeString": "struct TokenTracker.TrackedToken storage ref" } }, - "id": 2876, + "id": 3345, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenId", "nodeType": "MemberAccess", - "referencedDeclaration": 2230, - "src": "7454:24:1", + "referencedDeclaration": 2699, + "src": "7454:24:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "7436:42:1" + "src": "7436:42:7" }, { "assignments": [ - 2879 + 3348 ], "declarations": [ { "constant": false, - "id": 2879, + "id": 3348, "mutability": "mutable", "name": "key", - "nameLocation": "7500:3:1", + "nameLocation": "7500:3:7", "nodeType": "VariableDeclaration", - "scope": 2910, - "src": "7492:11:1", + "scope": 3379, + "src": "7492:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -33545,10 +33545,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2878, + "id": 3347, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7492:7:1", + "src": "7492:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33557,7 +33557,7 @@ "visibility": "internal" } ], - "id": 2904, + "id": 3373, "initialValue": { "arguments": [ { @@ -33567,14 +33567,14 @@ { "arguments": [ { - "id": 2888, + "id": 3357, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2858, - "src": "7545:9:1", + "referencedDeclaration": 3327, + "src": "7545:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } } @@ -33582,30 +33582,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } ], - "id": 2887, + "id": 3356, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7537:7:1", + "src": "7537:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 2886, + "id": 3355, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7537:7:1", + "src": "7537:7:7", "typeDescriptions": {} } }, - "id": 2889, + "id": 3358, "isConstant": false, "isLValue": false, "isPure": false, @@ -33613,7 +33613,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7537:18:1", + "src": "7537:18:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -33628,26 +33628,26 @@ "typeString": "uint256" } ], - "id": 2885, + "id": 3354, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7529:7:1", + "src": "7529:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2884, + "id": 3353, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7529:7:1", + "src": "7529:7:7", "typeDescriptions": {} } }, - "id": 2890, + "id": 3359, "isConstant": false, "isLValue": false, "isPure": false, @@ -33655,7 +33655,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7529:27:1", + "src": "7529:27:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -33667,12 +33667,12 @@ { "arguments": [ { - "id": 2895, + "id": 3364, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2865, - "src": "7574:15:1", + "referencedDeclaration": 3334, + "src": "7574:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -33686,26 +33686,26 @@ "typeString": "address" } ], - "id": 2894, + "id": 3363, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7566:7:1", + "src": "7566:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 2893, + "id": 3362, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "7566:7:1", + "src": "7566:7:7", "typeDescriptions": {} } }, - "id": 2896, + "id": 3365, "isConstant": false, "isLValue": false, "isPure": false, @@ -33713,7 +33713,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7566:24:1", + "src": "7566:24:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -33728,26 +33728,26 @@ "typeString": "bytes20" } ], - "id": 2892, + "id": 3361, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7558:7:1", + "src": "7558:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2891, + "id": 3360, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7558:7:1", + "src": "7558:7:7", "typeDescriptions": {} } }, - "id": 2897, + "id": 3366, "isConstant": false, "isLValue": false, "isPure": false, @@ -33755,7 +33755,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7558:33:1", + "src": "7558:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -33765,12 +33765,12 @@ { "arguments": [ { - "id": 2900, + "id": 3369, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2872, - "src": "7601:7:1", + "referencedDeclaration": 3341, + "src": "7601:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -33784,26 +33784,26 @@ "typeString": "uint256" } ], - "id": 2899, + "id": 3368, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7593:7:1", + "src": "7593:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2898, + "id": 3367, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7593:7:1", + "src": "7593:7:7", "typeDescriptions": {} } }, - "id": 2901, + "id": 3370, "isConstant": false, "isLValue": false, "isPure": false, @@ -33811,7 +33811,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7593:16:1", + "src": "7593:16:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -33835,39 +33835,39 @@ } ], "expression": { - "id": 2882, + "id": 3351, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7516:5:1", + "src": "7516:5:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2881, + "id": 3350, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7516:5:1", + "src": "7516:5:7", "typeDescriptions": {} } }, - "id": 2883, + "id": 3352, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "7516:12:1", + "src": "7516:12:7", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2902, + "id": 3371, "isConstant": false, "isLValue": false, "isPure": false, @@ -33875,7 +33875,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7516:94:1", + "src": "7516:94:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -33890,18 +33890,18 @@ "typeString": "bytes memory" } ], - "id": 2880, + "id": 3349, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "7506:9:1", + "src": "7506:9:7", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2903, + "id": 3372, "isConstant": false, "isLValue": false, "isPure": false, @@ -33909,7 +33909,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7506:105:1", + "src": "7506:105:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -33917,11 +33917,11 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7492:119:1" + "src": "7492:119:7" }, { "expression": { - "id": 2908, + "id": 3377, "isConstant": false, "isLValue": false, "isPure": false, @@ -33929,28 +33929,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "7625:33:1", + "src": "7625:33:7", "subExpression": { "baseExpression": { - "id": 2905, + "id": 3374, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "7632:21:1", + "referencedDeclaration": 2705, + "src": "7632:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2907, + "id": 3376, "indexExpression": { - "id": 2906, + "id": 3375, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2879, - "src": "7654:3:1", + "referencedDeclaration": 3348, + "src": "7654:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -33961,7 +33961,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "7632:26:1", + "src": "7632:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" @@ -33972,9 +33972,9 @@ "typeString": "tuple()" } }, - "id": 2909, + "id": 3378, "nodeType": "ExpressionStatement", - "src": "7625:33:1" + "src": "7625:33:7" } ] }, @@ -33983,18 +33983,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2852, + "id": 3321, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2849, + "id": 3318, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "7257:1:1", + "referencedDeclaration": 3315, + "src": "7257:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34004,51 +34004,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2850, + "id": 3319, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "7261:13:1", + "referencedDeclaration": 2709, + "src": "7261:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2851, + "id": 3320, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7261:20:1", + "src": "7261:20:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7257:24:1", + "src": "7257:24:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2911, + "id": 3380, "initializationExpression": { "assignments": [ - 2846 + 3315 ], "declarations": [ { "constant": false, - "id": 2846, + "id": 3315, "mutability": "mutable", "name": "i", - "nameLocation": "7250:1:1", + "nameLocation": "7250:1:7", "nodeType": "VariableDeclaration", - "scope": 2911, - "src": "7243:8:1", + "scope": 3380, + "src": "7243:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34056,10 +34056,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2845, + "id": 3314, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7243:6:1", + "src": "7243:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34068,17 +34068,17 @@ "visibility": "internal" } ], - "id": 2848, + "id": 3317, "initialValue": { "hexValue": "30", - "id": 2847, + "id": 3316, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7254:1:1", + "src": "7254:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -34086,11 +34086,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "7243:12:1" + "src": "7243:12:7" }, "loopExpression": { "expression": { - "id": 2854, + "id": 3323, "isConstant": false, "isLValue": false, "isPure": false, @@ -34098,14 +34098,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "7283:3:1", + "src": "7283:3:7", "subExpression": { - "id": 2853, + "id": 3322, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2846, - "src": "7283:1:1", + "referencedDeclaration": 3315, + "src": "7283:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34116,16 +34116,16 @@ "typeString": "uint32" } }, - "id": 2855, + "id": 3324, "nodeType": "ExpressionStatement", - "src": "7283:3:1" + "src": "7283:3:7" }, "nodeType": "ForStatement", - "src": "7238:431:1" + "src": "7238:431:7" }, { "expression": { - "id": 2913, + "id": 3382, "isConstant": false, "isLValue": false, "isPure": false, @@ -34133,16 +34133,16 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "7678:20:1", + "src": "7678:20:7", "subExpression": { - "id": 2912, + "id": 3381, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "7685:13:1", + "referencedDeclaration": 2709, + "src": "7685:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, @@ -34151,79 +34151,79 @@ "typeString": "tuple()" } }, - "id": 2914, + "id": 3383, "nodeType": "ExpressionStatement", - "src": "7678:20:1" + "src": "7678:20:7" }, { "body": { - "id": 2997, + "id": 3466, "nodeType": "Block", - "src": "7761:513:1", + "src": "7761:513:7", "statements": [ { "assignments": [ - 2928 + 3397 ], "declarations": [ { "constant": false, - "id": 2928, + "id": 3397, "mutability": "mutable", "name": "tokenType", - "nameLocation": "7785:9:1", + "nameLocation": "7785:9:7", "nodeType": "VariableDeclaration", - "scope": 2997, - "src": "7775:19:1", + "scope": 3466, + "src": "7775:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 2927, + "id": 3396, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2926, + "id": 3395, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "7775:9:1" + "referencedDeclaration": 2607, + "src": "7775:9:7" }, - "referencedDeclaration": 2138, - "src": "7775:9:1", + "referencedDeclaration": 2607, + "src": "7775:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "visibility": "internal" } ], - "id": 2933, + "id": 3402, "initialValue": { "expression": { "baseExpression": { - "id": 2929, + "id": 3398, "name": "newTrackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2842, - "src": "7797:16:1", + "referencedDeclaration": 3311, + "src": "7797:16:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } }, - "id": 2931, + "id": 3400, "indexExpression": { - "id": 2930, + "id": 3399, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "7814:1:1", + "referencedDeclaration": 3385, + "src": "7814:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34234,43 +34234,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7797:19:1", + "src": "7797:19:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, - "id": 2932, + "id": 3401, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenType", "nodeType": "MemberAccess", - "referencedDeclaration": 2226, - "src": "7797:29:1", + "referencedDeclaration": 2695, + "src": "7797:29:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "nodeType": "VariableDeclarationStatement", - "src": "7775:51:1" + "src": "7775:51:7" }, { "assignments": [ - 2935 + 3404 ], "declarations": [ { "constant": false, - "id": 2935, + "id": 3404, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "7848:15:1", + "nameLocation": "7848:15:7", "nodeType": "VariableDeclaration", - "scope": 2997, - "src": "7840:23:1", + "scope": 3466, + "src": "7840:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34278,10 +34278,10 @@ "typeString": "address" }, "typeName": { - "id": 2934, + "id": 3403, "name": "address", "nodeType": "ElementaryTypeName", - "src": "7840:7:1", + "src": "7840:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -34291,29 +34291,29 @@ "visibility": "internal" } ], - "id": 2940, + "id": 3409, "initialValue": { "expression": { "baseExpression": { - "id": 2936, + "id": 3405, "name": "newTrackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2842, - "src": "7866:16:1", + "referencedDeclaration": 3311, + "src": "7866:16:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } }, - "id": 2938, + "id": 3407, "indexExpression": { - "id": 2937, + "id": 3406, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "7883:1:1", + "referencedDeclaration": 3385, + "src": "7883:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34324,43 +34324,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7866:19:1", + "src": "7866:19:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, - "id": 2939, + "id": 3408, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "contractAddress", "nodeType": "MemberAccess", - "referencedDeclaration": 2228, - "src": "7866:35:1", + "referencedDeclaration": 2697, + "src": "7866:35:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", - "src": "7840:61:1" + "src": "7840:61:7" }, { "assignments": [ - 2942 + 3411 ], "declarations": [ { "constant": false, - "id": 2942, + "id": 3411, "mutability": "mutable", "name": "tokenId", - "nameLocation": "7923:7:1", + "nameLocation": "7923:7:7", "nodeType": "VariableDeclaration", - "scope": 2997, - "src": "7915:15:1", + "scope": 3466, + "src": "7915:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34368,10 +34368,10 @@ "typeString": "uint256" }, "typeName": { - "id": 2941, + "id": 3410, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "7915:7:1", + "src": "7915:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34380,29 +34380,29 @@ "visibility": "internal" } ], - "id": 2947, + "id": 3416, "initialValue": { "expression": { "baseExpression": { - "id": 2943, + "id": 3412, "name": "newTrackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2842, - "src": "7933:16:1", + "referencedDeclaration": 3311, + "src": "7933:16:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } }, - "id": 2945, + "id": 3414, "indexExpression": { - "id": 2944, + "id": 3413, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "7950:1:1", + "referencedDeclaration": 3385, + "src": "7950:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -34413,43 +34413,43 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "7933:19:1", + "src": "7933:19:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, - "id": 2946, + "id": 3415, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "memberName": "tokenId", "nodeType": "MemberAccess", - "referencedDeclaration": 2230, - "src": "7933:27:1", + "referencedDeclaration": 2699, + "src": "7933:27:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "VariableDeclarationStatement", - "src": "7915:45:1" + "src": "7915:45:7" }, { "assignments": [ - 2949 + 3418 ], "declarations": [ { "constant": false, - "id": 2949, + "id": 3418, "mutability": "mutable", "name": "key", - "nameLocation": "7982:3:1", + "nameLocation": "7982:3:7", "nodeType": "VariableDeclaration", - "scope": 2997, - "src": "7974:11:1", + "scope": 3466, + "src": "7974:11:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -34457,10 +34457,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2948, + "id": 3417, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "7974:7:1", + "src": "7974:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -34469,7 +34469,7 @@ "visibility": "internal" } ], - "id": 2974, + "id": 3443, "initialValue": { "arguments": [ { @@ -34479,14 +34479,14 @@ { "arguments": [ { - "id": 2958, + "id": 3427, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2928, - "src": "8027:9:1", + "referencedDeclaration": 3397, + "src": "8027:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } } @@ -34494,30 +34494,30 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } ], - "id": 2957, + "id": 3426, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8019:7:1", + "src": "8019:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 2956, + "id": 3425, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8019:7:1", + "src": "8019:7:7", "typeDescriptions": {} } }, - "id": 2959, + "id": 3428, "isConstant": false, "isLValue": false, "isPure": false, @@ -34525,7 +34525,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8019:18:1", + "src": "8019:18:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -34540,26 +34540,26 @@ "typeString": "uint256" } ], - "id": 2955, + "id": 3424, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8011:7:1", + "src": "8011:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2954, + "id": 3423, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8011:7:1", + "src": "8011:7:7", "typeDescriptions": {} } }, - "id": 2960, + "id": 3429, "isConstant": false, "isLValue": false, "isPure": false, @@ -34567,7 +34567,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8011:27:1", + "src": "8011:27:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -34579,12 +34579,12 @@ { "arguments": [ { - "id": 2965, + "id": 3434, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2935, - "src": "8056:15:1", + "referencedDeclaration": 3404, + "src": "8056:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" @@ -34598,26 +34598,26 @@ "typeString": "address" } ], - "id": 2964, + "id": 3433, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8048:7:1", + "src": "8048:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 2963, + "id": 3432, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "8048:7:1", + "src": "8048:7:7", "typeDescriptions": {} } }, - "id": 2966, + "id": 3435, "isConstant": false, "isLValue": false, "isPure": false, @@ -34625,7 +34625,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8048:24:1", + "src": "8048:24:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -34640,26 +34640,26 @@ "typeString": "bytes20" } ], - "id": 2962, + "id": 3431, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8040:7:1", + "src": "8040:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2961, + "id": 3430, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8040:7:1", + "src": "8040:7:7", "typeDescriptions": {} } }, - "id": 2967, + "id": 3436, "isConstant": false, "isLValue": false, "isPure": false, @@ -34667,7 +34667,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8040:33:1", + "src": "8040:33:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -34677,12 +34677,12 @@ { "arguments": [ { - "id": 2970, + "id": 3439, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "8083:7:1", + "referencedDeclaration": 3411, + "src": "8083:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34696,26 +34696,26 @@ "typeString": "uint256" } ], - "id": 2969, + "id": 3438, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8075:7:1", + "src": "8075:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 2968, + "id": 3437, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "8075:7:1", + "src": "8075:7:7", "typeDescriptions": {} } }, - "id": 2971, + "id": 3440, "isConstant": false, "isLValue": false, "isPure": false, @@ -34723,7 +34723,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8075:16:1", + "src": "8075:16:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -34747,39 +34747,39 @@ } ], "expression": { - "id": 2952, + "id": 3421, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "7998:5:1", + "src": "7998:5:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2951, + "id": 3420, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "7998:5:1", + "src": "7998:5:7", "typeDescriptions": {} } }, - "id": 2953, + "id": 3422, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "7998:12:1", + "src": "7998:12:7", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2972, + "id": 3441, "isConstant": false, "isLValue": false, "isPure": false, @@ -34787,7 +34787,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7998:94:1", + "src": "7998:94:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -34802,18 +34802,18 @@ "typeString": "bytes memory" } ], - "id": 2950, + "id": 3419, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "7988:9:1", + "src": "7988:9:7", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2973, + "id": 3442, "isConstant": false, "isLValue": false, "isPure": false, @@ -34821,7 +34821,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "7988:105:1", + "src": "7988:105:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -34829,82 +34829,82 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "7974:119:1" + "src": "7974:119:7" }, { "assignments": [ - 2977 + 3446 ], "declarations": [ { "constant": false, - "id": 2977, + "id": 3446, "mutability": "mutable", "name": "t", - "nameLocation": "8127:1:1", + "nameLocation": "8127:1:7", "nodeType": "VariableDeclaration", - "scope": 2997, - "src": "8107:21:1", + "scope": 3466, + "src": "8107:21:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken" }, "typeName": { - "id": 2976, + "id": 3445, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2975, + "id": 3444, "name": "TrackedToken", "nodeType": "IdentifierPath", - "referencedDeclaration": 2231, - "src": "8107:12:1" + "referencedDeclaration": 2700, + "src": "8107:12:7" }, - "referencedDeclaration": 2231, - "src": "8107:12:1", + "referencedDeclaration": 2700, + "src": "8107:12:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage_ptr", "typeString": "struct TokenTracker.TrackedToken" } }, "visibility": "internal" } ], - "id": 2983, + "id": 3452, "initialValue": { "arguments": [ { - "id": 2979, + "id": 3448, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2928, - "src": "8144:9:1", + "referencedDeclaration": 3397, + "src": "8144:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 2980, + "id": 3449, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2935, - "src": "8155:15:1", + "referencedDeclaration": 3404, + "src": "8155:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 2981, + "id": 3450, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2942, - "src": "8172:7:1", + "referencedDeclaration": 3411, + "src": "8172:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -34914,7 +34914,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -34926,18 +34926,18 @@ "typeString": "uint256" } ], - "id": 2978, + "id": 3447, "name": "TrackedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2231, - "src": "8131:12:1", + "referencedDeclaration": 2700, + "src": "8131:12:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_TrackedToken_$2231_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_TrackedToken_$2700_storage_ptr_$", "typeString": "type(struct TokenTracker.TrackedToken storage pointer)" } }, - "id": 2982, + "id": 3451, "isConstant": false, "isLValue": false, "isPure": false, @@ -34945,28 +34945,28 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8131:49:1", + "src": "8131:49:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "8107:73:1" + "src": "8107:73:7" }, { "expression": { "arguments": [ { - "id": 2987, + "id": 3456, "name": "t", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2977, - "src": "8213:1:1", + "referencedDeclaration": 3446, + "src": "8213:1:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } } @@ -34974,36 +34974,36 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } ], "expression": { - "id": 2984, + "id": 3453, "name": "trackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2240, - "src": "8194:13:1", + "referencedDeclaration": 2709, + "src": "8194:13:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage", "typeString": "struct TokenTracker.TrackedToken storage ref[] storage ref" } }, - "id": 2986, + "id": 3455, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "8194:18:1", + "src": "8194:18:7", "typeDescriptions": { - "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr_$_t_struct$_TrackedToken_$2231_storage_$returns$__$bound_to$_t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr_$", + "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr_$_t_struct$_TrackedToken_$2700_storage_$returns$__$bound_to$_t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr_$", "typeString": "function (struct TokenTracker.TrackedToken storage ref[] storage pointer,struct TokenTracker.TrackedToken storage ref)" } }, - "id": 2988, + "id": 3457, "isConstant": false, "isLValue": false, "isPure": false, @@ -35011,27 +35011,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8194:21:1", + "src": "8194:21:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2989, + "id": 3458, "nodeType": "ExpressionStatement", - "src": "8194:21:1" + "src": "8194:21:7" }, { "expression": { "arguments": [ { - "id": 2994, + "id": 3463, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "8261:1:1", + "referencedDeclaration": 3385, + "src": "8261:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -35047,25 +35047,25 @@ ], "expression": { "baseExpression": { - "id": 2990, + "id": 3459, "name": "trackedTokenPositions", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "8229:21:1", + "referencedDeclaration": 2705, + "src": "8229:21:7", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_uint256_$dyn_storage_$", "typeString": "mapping(bytes32 => uint256[] storage ref)" } }, - "id": 2992, + "id": 3461, "indexExpression": { - "id": 2991, + "id": 3460, "name": "key", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2949, - "src": "8251:3:1", + "referencedDeclaration": 3418, + "src": "8251:3:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -35076,26 +35076,26 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "8229:26:1", + "src": "8229:26:7", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint256_$dyn_storage", "typeString": "uint256[] storage ref" } }, - "id": 2993, + "id": 3462, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "8229:31:1", + "src": "8229:31:7", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$", "typeString": "function (uint256[] storage pointer,uint256)" } }, - "id": 2995, + "id": 3464, "isConstant": false, "isLValue": false, "isPure": false, @@ -35103,16 +35103,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8229:34:1", + "src": "8229:34:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2996, + "id": 3465, "nodeType": "ExpressionStatement", - "src": "8229:34:1" + "src": "8229:34:7" } ] }, @@ -35121,18 +35121,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2922, + "id": 3391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2919, + "id": 3388, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "7727:1:1", + "referencedDeclaration": 3385, + "src": "7727:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -35142,51 +35142,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2920, + "id": 3389, "name": "newTrackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2842, - "src": "7731:16:1", + "referencedDeclaration": 3311, + "src": "7731:16:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } }, - "id": 2921, + "id": 3390, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "7731:23:1", + "src": "7731:23:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "7727:27:1", + "src": "7727:27:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2998, + "id": 3467, "initializationExpression": { "assignments": [ - 2916 + 3385 ], "declarations": [ { "constant": false, - "id": 2916, + "id": 3385, "mutability": "mutable", "name": "i", - "nameLocation": "7720:1:1", + "nameLocation": "7720:1:7", "nodeType": "VariableDeclaration", - "scope": 2998, - "src": "7713:8:1", + "scope": 3467, + "src": "7713:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35194,10 +35194,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2915, + "id": 3384, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "7713:6:1", + "src": "7713:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -35206,17 +35206,17 @@ "visibility": "internal" } ], - "id": 2918, + "id": 3387, "initialValue": { "hexValue": "30", - "id": 2917, + "id": 3386, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "7724:1:1", + "src": "7724:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -35224,11 +35224,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "7713:12:1" + "src": "7713:12:7" }, "loopExpression": { "expression": { - "id": 2924, + "id": 3393, "isConstant": false, "isLValue": false, "isPure": false, @@ -35236,14 +35236,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "7756:3:1", + "src": "7756:3:7", "subExpression": { - "id": 2923, + "id": 3392, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2916, - "src": "7756:1:1", + "referencedDeclaration": 3385, + "src": "7756:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -35254,104 +35254,104 @@ "typeString": "uint32" } }, - "id": 2925, + "id": 3394, "nodeType": "ExpressionStatement", - "src": "7756:3:1" + "src": "7756:3:7" }, "nodeType": "ForStatement", - "src": "7708:566:1" + "src": "7708:566:7" } ] }, - "id": 3000, + "id": 3469, "implemented": true, "kind": "function", "modifiers": [], "name": "_overrideTrack", - "nameLocation": "7164:14:1", + "nameLocation": "7164:14:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 2843, + "id": 3312, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2842, + "id": 3311, "mutability": "mutable", "name": "newTrackedTokens", - "nameLocation": "7201:16:1", + "nameLocation": "7201:16:7", "nodeType": "VariableDeclaration", - "scope": 3000, - "src": "7179:38:1", + "scope": 3469, + "src": "7179:38:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken[]" }, "typeName": { "baseType": { - "id": 2840, + "id": 3309, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2839, + "id": 3308, "name": "TrackedToken", "nodeType": "IdentifierPath", - "referencedDeclaration": 2231, - "src": "7179:12:1" + "referencedDeclaration": 2700, + "src": "7179:12:7" }, - "referencedDeclaration": 2231, - "src": "7179:12:1", + "referencedDeclaration": 2700, + "src": "7179:12:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage_ptr", "typeString": "struct TokenTracker.TrackedToken" } }, - "id": 2841, + "id": 3310, "nodeType": "ArrayTypeName", - "src": "7179:14:1", + "src": "7179:14:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr", "typeString": "struct TokenTracker.TrackedToken[]" } }, "visibility": "internal" } ], - "src": "7178:40:1" + "src": "7178:40:7" }, "returnParameters": { - "id": 2844, + "id": 3313, "nodeType": "ParameterList", "parameters": [], - "src": "7228:0:1" + "src": "7228:0:7" }, - "scope": 3391, - "src": "7155:1125:1", + "scope": 3860, + "src": "7155:1125:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3127, + "id": 3596, "nodeType": "Block", - "src": "8349:690:1", + "src": "8349:690:7", "statements": [ { "assignments": [ - 3006 + 3475 ], "declarations": [ { "constant": false, - "id": 3006, + "id": 3475, "mutability": "mutable", "name": "numTokens", - "nameLocation": "8366:9:1", + "nameLocation": "8366:9:7", "nodeType": "VariableDeclaration", - "scope": 3127, - "src": "8359:16:1", + "scope": 3596, + "src": "8359:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -35359,10 +35359,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3005, + "id": 3474, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "8359:6:1", + "src": "8359:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -35371,7 +35371,7 @@ "visibility": "internal" } ], - "id": 3014, + "id": 3483, "initialValue": { "arguments": [ { @@ -35379,32 +35379,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3012, + "id": 3481, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 3009, + "id": 3478, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "8385:4:1", + "referencedDeclaration": 3471, + "src": "8385:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 3010, + "id": 3479, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "8385:11:1", + "src": "8385:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35414,21 +35414,21 @@ "operator": "/", "rightExpression": { "hexValue": "3936", - "id": 3011, + "id": 3480, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8399:2:1", + "src": "8399:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8385:16:1", + "src": "8385:16:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -35442,26 +35442,26 @@ "typeString": "uint256" } ], - "id": 3008, + "id": 3477, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8378:6:1", + "src": "8378:6:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 3007, + "id": 3476, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "8378:6:1", + "src": "8378:6:7", "typeDescriptions": {} } }, - "id": 3013, + "id": 3482, "isConstant": false, "isLValue": false, "isPure": false, @@ -35469,7 +35469,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8378:24:1", + "src": "8378:24:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -35477,7 +35477,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8359:43:1" + "src": "8359:43:7" }, { "expression": { @@ -35487,7 +35487,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3021, + "id": 3490, "isConstant": false, "isLValue": false, "isPure": false, @@ -35497,18 +35497,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3018, + "id": 3487, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3016, + "id": 3485, "name": "numTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3006, - "src": "8420:9:1", + "referencedDeclaration": 3475, + "src": "8420:9:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -35518,21 +35518,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3017, + "id": 3486, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8432:2:1", + "src": "8432:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8420:14:1", + "src": "8420:14:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -35542,31 +35542,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 3019, + "id": 3488, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "8438:4:1", + "referencedDeclaration": 3471, + "src": "8438:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 3020, + "id": 3489, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "8438:11:1", + "src": "8438:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "8420:29:1", + "src": "8420:29:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -35574,14 +35574,14 @@ }, { "hexValue": "64617461206d7573742068617665206c656e677468206d756c7469706c6520746f203936", - "id": 3022, + "id": 3491, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "8451:38:1", + "src": "8451:38:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7fb6a81bbdba15000418055bc5e058938e4fd0b50065d70de11ee03ca8f293e3", "typeString": "literal_string \"data must have length multiple to 96\"" @@ -35600,7 +35600,7 @@ "typeString": "literal_string \"data must have length multiple to 96\"" } ], - "id": 3015, + "id": 3484, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -35608,13 +35608,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "8412:7:1", + "src": "8412:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3023, + "id": 3492, "isConstant": false, "isLValue": false, "isPure": false, @@ -35622,76 +35622,76 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8412:78:1", + "src": "8412:78:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3024, + "id": 3493, "nodeType": "ExpressionStatement", - "src": "8412:78:1" + "src": "8412:78:7" }, { "assignments": [ - 3029 + 3498 ], "declarations": [ { "constant": false, - "id": 3029, + "id": 3498, "mutability": "mutable", "name": "newTrackedTokens", - "nameLocation": "8522:16:1", + "nameLocation": "8522:16:7", "nodeType": "VariableDeclaration", - "scope": 3127, - "src": "8500:38:1", + "scope": 3596, + "src": "8500:38:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken[]" }, "typeName": { "baseType": { - "id": 3027, + "id": 3496, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3026, + "id": 3495, "name": "TrackedToken", "nodeType": "IdentifierPath", - "referencedDeclaration": 2231, - "src": "8500:12:1" + "referencedDeclaration": 2700, + "src": "8500:12:7" }, - "referencedDeclaration": 2231, - "src": "8500:12:1", + "referencedDeclaration": 2700, + "src": "8500:12:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage_ptr", "typeString": "struct TokenTracker.TrackedToken" } }, - "id": 3028, + "id": 3497, "nodeType": "ArrayTypeName", - "src": "8500:14:1", + "src": "8500:14:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr", "typeString": "struct TokenTracker.TrackedToken[]" } }, "visibility": "internal" } ], - "id": 3036, + "id": 3505, "initialValue": { "arguments": [ { - "id": 3034, + "id": 3503, "name": "numTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3006, - "src": "8560:9:1", + "referencedDeclaration": 3475, + "src": "8560:9:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -35705,45 +35705,45 @@ "typeString": "uint32" } ], - "id": 3033, + "id": 3502, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "8541:18:1", + "src": "8541:18:7", "typeDescriptions": { - "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr_$", + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (struct TokenTracker.TrackedToken memory[] memory)" }, "typeName": { "baseType": { - "id": 3031, + "id": 3500, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3030, + "id": 3499, "name": "TrackedToken", "nodeType": "IdentifierPath", - "referencedDeclaration": 2231, - "src": "8545:12:1" + "referencedDeclaration": 2700, + "src": "8545:12:7" }, - "referencedDeclaration": 2231, - "src": "8545:12:1", + "referencedDeclaration": 2700, + "src": "8545:12:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_storage_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_storage_ptr", "typeString": "struct TokenTracker.TrackedToken" } }, - "id": 3032, + "id": 3501, "nodeType": "ArrayTypeName", - "src": "8545:14:1", + "src": "8545:14:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_storage_$dyn_storage_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_storage_$dyn_storage_ptr", "typeString": "struct TokenTracker.TrackedToken[]" } } }, - "id": 3035, + "id": 3504, "isConstant": false, "isLValue": false, "isPure": false, @@ -35751,63 +35751,63 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8541:29:1", + "src": "8541:29:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } }, "nodeType": "VariableDeclarationStatement", - "src": "8500:70:1" + "src": "8500:70:7" }, { "body": { - "id": 3121, + "id": 3590, "nodeType": "Block", - "src": "8619:372:1", + "src": "8619:372:7", "statements": [ { "assignments": [ - 3049 + 3518 ], "declarations": [ { "constant": false, - "id": 3049, + "id": 3518, "mutability": "mutable", "name": "tokenType", - "nameLocation": "8643:9:1", + "nameLocation": "8643:9:7", "nodeType": "VariableDeclaration", - "scope": 3121, - "src": "8633:19:1", + "scope": 3590, + "src": "8633:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 3048, + "id": 3517, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3047, + "id": 3516, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "8633:9:1" + "referencedDeclaration": 2607, + "src": "8633:9:7" }, - "referencedDeclaration": 2138, - "src": "8633:9:1", + "referencedDeclaration": 2607, + "src": "8633:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "visibility": "internal" } ], - "id": 3067, + "id": 3536, "initialValue": { "arguments": [ { @@ -35816,12 +35816,12 @@ "arguments": [ { "baseExpression": { - "id": 3054, + "id": 3523, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "8683:4:1", + "referencedDeclaration": 3471, + "src": "8683:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -35832,7 +35832,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3062, + "id": 3531, "isConstant": false, "isLValue": false, "isPure": false, @@ -35842,18 +35842,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3060, + "id": 3529, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3058, + "id": 3527, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8697:1:1", + "referencedDeclaration": 3507, + "src": "8697:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -35863,21 +35863,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3059, + "id": 3528, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8701:2:1", + "src": "8701:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8697:6:1", + "src": "8697:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -35887,50 +35887,50 @@ "operator": "+", "rightExpression": { "hexValue": "3332", - "id": 3061, + "id": 3530, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8706:2:1", + "src": "8706:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "8697:11:1", + "src": "8697:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3063, + "id": 3532, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "8683:26:1", + "src": "8683:26:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3057, + "id": 3526, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3055, + "id": 3524, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8688:1:1", + "referencedDeclaration": 3507, + "src": "8688:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -35940,21 +35940,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3056, + "id": 3525, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8692:2:1", + "src": "8692:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8688:6:1", + "src": "8688:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -35973,18 +35973,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3053, + "id": 3522, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "8673:9:1", + "referencedDeclaration": 3859, + "src": "8673:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3064, + "id": 3533, "isConstant": false, "isLValue": false, "isPure": false, @@ -35992,7 +35992,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8673:37:1", + "src": "8673:37:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -36007,26 +36007,26 @@ "typeString": "bytes32" } ], - "id": 3052, + "id": 3521, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8665:7:1", + "src": "8665:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3051, + "id": 3520, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8665:7:1", + "src": "8665:7:7", "typeDescriptions": {} } }, - "id": 3065, + "id": 3534, "isConstant": false, "isLValue": false, "isPure": false, @@ -36034,7 +36034,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8665:46:1", + "src": "8665:46:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -36049,18 +36049,18 @@ "typeString": "uint256" } ], - "id": 3050, + "id": 3519, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "8655:9:1", + "referencedDeclaration": 2607, + "src": "8655:9:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2138_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 3066, + "id": 3535, "isConstant": false, "isLValue": false, "isPure": false, @@ -36068,30 +36068,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8655:57:1", + "src": "8655:57:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "nodeType": "VariableDeclarationStatement", - "src": "8633:79:1" + "src": "8633:79:7" }, { "assignments": [ - 3069 + 3538 ], "declarations": [ { "constant": false, - "id": 3069, + "id": 3538, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "8734:15:1", + "nameLocation": "8734:15:7", "nodeType": "VariableDeclaration", - "scope": 3121, - "src": "8726:23:1", + "scope": 3590, + "src": "8726:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36099,10 +36099,10 @@ "typeString": "address" }, "typeName": { - "id": 3068, + "id": 3537, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8726:7:1", + "src": "8726:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -36112,7 +36112,7 @@ "visibility": "internal" } ], - "id": 3090, + "id": 3559, "initialValue": { "arguments": [ { @@ -36121,12 +36121,12 @@ "arguments": [ { "baseExpression": { - "id": 3075, + "id": 3544, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "8778:4:1", + "referencedDeclaration": 3471, + "src": "8778:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -36137,7 +36137,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3085, + "id": 3554, "isConstant": false, "isLValue": false, "isPure": false, @@ -36147,18 +36147,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3083, + "id": 3552, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3081, + "id": 3550, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8797:1:1", + "referencedDeclaration": 3507, + "src": "8797:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36168,21 +36168,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3082, + "id": 3551, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8801:2:1", + "src": "8801:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8797:6:1", + "src": "8797:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36192,39 +36192,39 @@ "operator": "+", "rightExpression": { "hexValue": "3532", - "id": 3084, + "id": 3553, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8806:2:1", + "src": "8806:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_52_by_1", "typeString": "int_const 52" }, "value": "52" }, - "src": "8797:11:1", + "src": "8797:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3086, + "id": 3555, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "8778:31:1", + "src": "8778:31:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3080, + "id": 3549, "isConstant": false, "isLValue": false, "isPure": false, @@ -36234,18 +36234,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3078, + "id": 3547, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3076, + "id": 3545, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8783:1:1", + "referencedDeclaration": 3507, + "src": "8783:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36255,21 +36255,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3077, + "id": 3546, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8787:2:1", + "src": "8787:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8783:6:1", + "src": "8783:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36279,21 +36279,21 @@ "operator": "+", "rightExpression": { "hexValue": "3332", - "id": 3079, + "id": 3548, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8792:2:1", + "src": "8792:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "8783:11:1", + "src": "8783:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36312,18 +36312,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3074, + "id": 3543, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "8768:9:1", + "referencedDeclaration": 3859, + "src": "8768:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3087, + "id": 3556, "isConstant": false, "isLValue": false, "isPure": false, @@ -36331,7 +36331,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8768:42:1", + "src": "8768:42:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -36346,26 +36346,26 @@ "typeString": "bytes32" } ], - "id": 3073, + "id": 3542, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8760:7:1", + "src": "8760:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 3072, + "id": 3541, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "8760:7:1", + "src": "8760:7:7", "typeDescriptions": {} } }, - "id": 3088, + "id": 3557, "isConstant": false, "isLValue": false, "isPure": false, @@ -36373,7 +36373,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8760:51:1", + "src": "8760:51:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -36388,26 +36388,26 @@ "typeString": "bytes20" } ], - "id": 3071, + "id": 3540, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8752:7:1", + "src": "8752:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 3070, + "id": 3539, "name": "address", "nodeType": "ElementaryTypeName", - "src": "8752:7:1", + "src": "8752:7:7", "typeDescriptions": {} } }, - "id": 3089, + "id": 3558, "isConstant": false, "isLValue": false, "isPure": false, @@ -36415,7 +36415,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8752:60:1", + "src": "8752:60:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -36423,22 +36423,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8726:86:1" + "src": "8726:86:7" }, { "assignments": [ - 3092 + 3561 ], "declarations": [ { "constant": false, - "id": 3092, + "id": 3561, "mutability": "mutable", "name": "tokenId", - "nameLocation": "8834:7:1", + "nameLocation": "8834:7:7", "nodeType": "VariableDeclaration", - "scope": 3121, - "src": "8826:15:1", + "scope": 3590, + "src": "8826:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36446,10 +36446,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3091, + "id": 3560, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8826:7:1", + "src": "8826:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36458,19 +36458,19 @@ "visibility": "internal" } ], - "id": 3110, + "id": 3579, "initialValue": { "arguments": [ { "arguments": [ { "baseExpression": { - "id": 3096, + "id": 3565, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3002, - "src": "8862:4:1", + "referencedDeclaration": 3471, + "src": "8862:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -36481,7 +36481,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3106, + "id": 3575, "isConstant": false, "isLValue": false, "isPure": false, @@ -36491,18 +36491,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3104, + "id": 3573, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3102, + "id": 3571, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8881:1:1", + "referencedDeclaration": 3507, + "src": "8881:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36512,21 +36512,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3103, + "id": 3572, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8885:2:1", + "src": "8885:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8881:6:1", + "src": "8881:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36536,39 +36536,39 @@ "operator": "+", "rightExpression": { "hexValue": "3936", - "id": 3105, + "id": 3574, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8890:2:1", + "src": "8890:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8881:11:1", + "src": "8881:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3107, + "id": 3576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "8862:31:1", + "src": "8862:31:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3101, + "id": 3570, "isConstant": false, "isLValue": false, "isPure": false, @@ -36578,18 +36578,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3099, + "id": 3568, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3097, + "id": 3566, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8867:1:1", + "referencedDeclaration": 3507, + "src": "8867:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36599,21 +36599,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3098, + "id": 3567, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8871:2:1", + "src": "8871:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "8867:6:1", + "src": "8867:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36623,21 +36623,21 @@ "operator": "+", "rightExpression": { "hexValue": "3634", - "id": 3100, + "id": 3569, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8876:2:1", + "src": "8876:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "8867:11:1", + "src": "8867:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36656,18 +36656,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3095, + "id": 3564, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "8852:9:1", + "referencedDeclaration": 3859, + "src": "8852:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3108, + "id": 3577, "isConstant": false, "isLValue": false, "isPure": false, @@ -36675,7 +36675,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8852:42:1", + "src": "8852:42:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -36690,26 +36690,26 @@ "typeString": "bytes32" } ], - "id": 3094, + "id": 3563, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "8844:7:1", + "src": "8844:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3093, + "id": 3562, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "8844:7:1", + "src": "8844:7:7", "typeDescriptions": {} } }, - "id": 3109, + "id": 3578, "isConstant": false, "isLValue": false, "isPure": false, @@ -36717,7 +36717,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8844:51:1", + "src": "8844:51:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -36725,36 +36725,36 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "8826:69:1" + "src": "8826:69:7" }, { "expression": { - "id": 3119, + "id": 3588, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 3111, + "id": 3580, "name": "newTrackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3029, - "src": "8909:16:1", + "referencedDeclaration": 3498, + "src": "8909:16:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } }, - "id": 3113, + "id": 3582, "indexExpression": { - "id": 3112, + "id": 3581, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8926:1:1", + "referencedDeclaration": 3507, + "src": "8926:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36765,9 +36765,9 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "8909:19:1", + "src": "8909:19:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, @@ -36776,36 +36776,36 @@ "rightHandSide": { "arguments": [ { - "id": 3115, + "id": 3584, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3049, - "src": "8944:9:1", + "referencedDeclaration": 3518, + "src": "8944:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 3116, + "id": 3585, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3069, - "src": "8955:15:1", + "referencedDeclaration": 3538, + "src": "8955:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3117, + "id": 3586, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3092, - "src": "8972:7:1", + "referencedDeclaration": 3561, + "src": "8972:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -36815,7 +36815,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -36827,18 +36827,18 @@ "typeString": "uint256" } ], - "id": 3114, + "id": 3583, "name": "TrackedToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2231, - "src": "8931:12:1", + "referencedDeclaration": 2700, + "src": "8931:12:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_struct$_TrackedToken_$2231_storage_ptr_$", + "typeIdentifier": "t_type$_t_struct$_TrackedToken_$2700_storage_ptr_$", "typeString": "type(struct TokenTracker.TrackedToken storage pointer)" } }, - "id": 3118, + "id": 3587, "isConstant": false, "isLValue": false, "isPure": false, @@ -36846,22 +36846,22 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "8931:49:1", + "src": "8931:49:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, - "src": "8909:71:1", + "src": "8909:71:7", "typeDescriptions": { - "typeIdentifier": "t_struct$_TrackedToken_$2231_memory_ptr", + "typeIdentifier": "t_struct$_TrackedToken_$2700_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory" } }, - "id": 3120, + "id": 3589, "nodeType": "ExpressionStatement", - "src": "8909:71:1" + "src": "8909:71:7" } ] }, @@ -36870,18 +36870,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3043, + "id": 3512, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3041, + "id": 3510, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8599:1:1", + "referencedDeclaration": 3507, + "src": "8599:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36890,38 +36890,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 3042, + "id": 3511, "name": "numTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3006, - "src": "8603:9:1", + "referencedDeclaration": 3475, + "src": "8603:9:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "8599:13:1", + "src": "8599:13:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3122, + "id": 3591, "initializationExpression": { "assignments": [ - 3038 + 3507 ], "declarations": [ { "constant": false, - "id": 3038, + "id": 3507, "mutability": "mutable", "name": "i", - "nameLocation": "8592:1:1", + "nameLocation": "8592:1:7", "nodeType": "VariableDeclaration", - "scope": 3122, - "src": "8585:8:1", + "scope": 3591, + "src": "8585:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -36929,10 +36929,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3037, + "id": 3506, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "8585:6:1", + "src": "8585:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36941,17 +36941,17 @@ "visibility": "internal" } ], - "id": 3040, + "id": 3509, "initialValue": { "hexValue": "30", - "id": 3039, + "id": 3508, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "8596:1:1", + "src": "8596:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -36959,11 +36959,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "8585:12:1" + "src": "8585:12:7" }, "loopExpression": { "expression": { - "id": 3045, + "id": 3514, "isConstant": false, "isLValue": false, "isPure": false, @@ -36971,14 +36971,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "8614:3:1", + "src": "8614:3:7", "subExpression": { - "id": 3044, + "id": 3513, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3038, - "src": "8614:1:1", + "referencedDeclaration": 3507, + "src": "8614:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -36989,25 +36989,25 @@ "typeString": "uint32" } }, - "id": 3046, + "id": 3515, "nodeType": "ExpressionStatement", - "src": "8614:3:1" + "src": "8614:3:7" }, "nodeType": "ForStatement", - "src": "8580:411:1" + "src": "8580:411:7" }, { "expression": { "arguments": [ { - "id": 3124, + "id": 3593, "name": "newTrackedTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3029, - "src": "9015:16:1", + "referencedDeclaration": 3498, + "src": "9015:16:7", "typeDescriptions": { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } } @@ -37015,22 +37015,22 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr", + "typeIdentifier": "t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr", "typeString": "struct TokenTracker.TrackedToken memory[] memory" } ], - "id": 3123, + "id": 3592, "name": "_overrideTrack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3000, - "src": "9000:14:1", + "referencedDeclaration": 3469, + "src": "9000:14:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_TrackedToken_$2231_memory_ptr_$dyn_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_struct$_TrackedToken_$2700_memory_ptr_$dyn_memory_ptr_$returns$__$", "typeString": "function (struct TokenTracker.TrackedToken memory[] memory)" } }, - "id": 3125, + "id": 3594, "isConstant": false, "isLValue": false, "isPure": false, @@ -37038,39 +37038,39 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9000:32:1", + "src": "9000:32:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3126, + "id": 3595, "nodeType": "ExpressionStatement", - "src": "9000:32:1" + "src": "9000:32:7" } ] }, - "id": 3128, + "id": 3597, "implemented": true, "kind": "function", "modifiers": [], "name": "_overrideTrackWithBytes", - "nameLocation": "8295:23:1", + "nameLocation": "8295:23:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 3003, + "id": 3472, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3002, + "id": 3471, "mutability": "mutable", "name": "data", - "nameLocation": "8334:4:1", + "nameLocation": "8334:4:7", "nodeType": "VariableDeclaration", - "scope": 3128, - "src": "8319:19:1", + "scope": 3597, + "src": "8319:19:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -37078,10 +37078,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3001, + "id": 3470, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "8319:5:1", + "src": "8319:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -37090,40 +37090,40 @@ "visibility": "internal" } ], - "src": "8318:21:1" + "src": "8318:21:7" }, "returnParameters": { - "id": 3004, + "id": 3473, "nodeType": "ParameterList", "parameters": [], - "src": "8349:0:1" + "src": "8349:0:7" }, - "scope": 3391, - "src": "8286:753:1", + "scope": 3860, + "src": "8286:753:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3235, + "id": 3704, "nodeType": "Block", - "src": "9096:545:1", + "src": "9096:545:7", "statements": [ { "assignments": [ - 3134 + 3603 ], "declarations": [ { "constant": false, - "id": 3134, + "id": 3603, "mutability": "mutable", "name": "numTokens", - "nameLocation": "9113:9:1", + "nameLocation": "9113:9:7", "nodeType": "VariableDeclaration", - "scope": 3235, - "src": "9106:16:1", + "scope": 3704, + "src": "9106:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -37131,10 +37131,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3133, + "id": 3602, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9106:6:1", + "src": "9106:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -37143,7 +37143,7 @@ "visibility": "internal" } ], - "id": 3142, + "id": 3611, "initialValue": { "arguments": [ { @@ -37151,32 +37151,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3140, + "id": 3609, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 3137, + "id": 3606, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3130, - "src": "9132:4:1", + "referencedDeclaration": 3599, + "src": "9132:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 3138, + "id": 3607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "9132:11:1", + "src": "9132:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37186,21 +37186,21 @@ "operator": "/", "rightExpression": { "hexValue": "3936", - "id": 3139, + "id": 3608, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9146:2:1", + "src": "9146:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9132:16:1", + "src": "9132:16:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -37214,26 +37214,26 @@ "typeString": "uint256" } ], - "id": 3136, + "id": 3605, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9125:6:1", + "src": "9125:6:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 3135, + "id": 3604, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9125:6:1", + "src": "9125:6:7", "typeDescriptions": {} } }, - "id": 3141, + "id": 3610, "isConstant": false, "isLValue": false, "isPure": false, @@ -37241,7 +37241,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9125:24:1", + "src": "9125:24:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -37249,7 +37249,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9106:43:1" + "src": "9106:43:7" }, { "expression": { @@ -37259,7 +37259,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3149, + "id": 3618, "isConstant": false, "isLValue": false, "isPure": false, @@ -37269,18 +37269,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3146, + "id": 3615, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3144, + "id": 3613, "name": "numTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3134, - "src": "9167:9:1", + "referencedDeclaration": 3603, + "src": "9167:9:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -37290,21 +37290,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3145, + "id": 3614, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9179:2:1", + "src": "9179:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9167:14:1", + "src": "9167:14:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -37314,31 +37314,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 3147, + "id": 3616, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3130, - "src": "9185:4:1", + "referencedDeclaration": 3599, + "src": "9185:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 3148, + "id": 3617, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "9185:11:1", + "src": "9185:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9167:29:1", + "src": "9167:29:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -37346,14 +37346,14 @@ }, { "hexValue": "64617461206d7573742068617665206c656e677468206d756c7469706c6520746f203936", - "id": 3150, + "id": 3619, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9198:38:1", + "src": "9198:38:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7fb6a81bbdba15000418055bc5e058938e4fd0b50065d70de11ee03ca8f293e3", "typeString": "literal_string \"data must have length multiple to 96\"" @@ -37372,7 +37372,7 @@ "typeString": "literal_string \"data must have length multiple to 96\"" } ], - "id": 3143, + "id": 3612, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -37380,13 +37380,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "9159:7:1", + "src": "9159:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3151, + "id": 3620, "isConstant": false, "isLValue": false, "isPure": false, @@ -37394,64 +37394,64 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9159:78:1", + "src": "9159:78:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3152, + "id": 3621, "nodeType": "ExpressionStatement", - "src": "9159:78:1" + "src": "9159:78:7" }, { "body": { - "id": 3233, + "id": 3702, "nodeType": "Block", - "src": "9286:349:1", + "src": "9286:349:7", "statements": [ { "assignments": [ - 3165 + 3634 ], "declarations": [ { "constant": false, - "id": 3165, + "id": 3634, "mutability": "mutable", "name": "tokenType", - "nameLocation": "9310:9:1", + "nameLocation": "9310:9:7", "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "9300:19:1", + "scope": 3702, + "src": "9300:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 3164, + "id": 3633, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3163, + "id": 3632, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "9300:9:1" + "referencedDeclaration": 2607, + "src": "9300:9:7" }, - "referencedDeclaration": 2138, - "src": "9300:9:1", + "referencedDeclaration": 2607, + "src": "9300:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "visibility": "internal" } ], - "id": 3183, + "id": 3652, "initialValue": { "arguments": [ { @@ -37460,12 +37460,12 @@ "arguments": [ { "baseExpression": { - "id": 3170, + "id": 3639, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3130, - "src": "9350:4:1", + "referencedDeclaration": 3599, + "src": "9350:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -37476,7 +37476,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3178, + "id": 3647, "isConstant": false, "isLValue": false, "isPure": false, @@ -37486,18 +37486,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3176, + "id": 3645, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3174, + "id": 3643, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9364:1:1", + "referencedDeclaration": 3623, + "src": "9364:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -37507,21 +37507,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3175, + "id": 3644, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9368:2:1", + "src": "9368:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9364:6:1", + "src": "9364:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -37531,50 +37531,50 @@ "operator": "+", "rightExpression": { "hexValue": "3332", - "id": 3177, + "id": 3646, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9373:2:1", + "src": "9373:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "9364:11:1", + "src": "9364:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3179, + "id": 3648, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "9350:26:1", + "src": "9350:26:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3173, + "id": 3642, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3171, + "id": 3640, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9355:1:1", + "referencedDeclaration": 3623, + "src": "9355:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -37584,21 +37584,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3172, + "id": 3641, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9359:2:1", + "src": "9359:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9355:6:1", + "src": "9355:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -37617,18 +37617,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3169, + "id": 3638, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "9340:9:1", + "referencedDeclaration": 3859, + "src": "9340:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3180, + "id": 3649, "isConstant": false, "isLValue": false, "isPure": false, @@ -37636,7 +37636,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9340:37:1", + "src": "9340:37:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -37651,26 +37651,26 @@ "typeString": "bytes32" } ], - "id": 3168, + "id": 3637, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9332:7:1", + "src": "9332:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3167, + "id": 3636, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9332:7:1", + "src": "9332:7:7", "typeDescriptions": {} } }, - "id": 3181, + "id": 3650, "isConstant": false, "isLValue": false, "isPure": false, @@ -37678,7 +37678,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9332:46:1", + "src": "9332:46:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -37693,18 +37693,18 @@ "typeString": "uint256" } ], - "id": 3166, + "id": 3635, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "9322:9:1", + "referencedDeclaration": 2607, + "src": "9322:9:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2138_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 3182, + "id": 3651, "isConstant": false, "isLValue": false, "isPure": false, @@ -37712,30 +37712,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9322:57:1", + "src": "9322:57:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "nodeType": "VariableDeclarationStatement", - "src": "9300:79:1" + "src": "9300:79:7" }, { "assignments": [ - 3185 + 3654 ], "declarations": [ { "constant": false, - "id": 3185, + "id": 3654, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "9401:15:1", + "nameLocation": "9401:15:7", "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "9393:23:1", + "scope": 3702, + "src": "9393:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -37743,10 +37743,10 @@ "typeString": "address" }, "typeName": { - "id": 3184, + "id": 3653, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9393:7:1", + "src": "9393:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -37756,7 +37756,7 @@ "visibility": "internal" } ], - "id": 3206, + "id": 3675, "initialValue": { "arguments": [ { @@ -37765,12 +37765,12 @@ "arguments": [ { "baseExpression": { - "id": 3191, + "id": 3660, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3130, - "src": "9445:4:1", + "referencedDeclaration": 3599, + "src": "9445:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -37781,7 +37781,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3201, + "id": 3670, "isConstant": false, "isLValue": false, "isPure": false, @@ -37791,18 +37791,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3199, + "id": 3668, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3197, + "id": 3666, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9464:1:1", + "referencedDeclaration": 3623, + "src": "9464:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -37812,21 +37812,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3198, + "id": 3667, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9468:2:1", + "src": "9468:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9464:6:1", + "src": "9464:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -37836,39 +37836,39 @@ "operator": "+", "rightExpression": { "hexValue": "3532", - "id": 3200, + "id": 3669, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9473:2:1", + "src": "9473:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_52_by_1", "typeString": "int_const 52" }, "value": "52" }, - "src": "9464:11:1", + "src": "9464:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3202, + "id": 3671, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "9445:31:1", + "src": "9445:31:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3196, + "id": 3665, "isConstant": false, "isLValue": false, "isPure": false, @@ -37878,18 +37878,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3194, + "id": 3663, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3192, + "id": 3661, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9450:1:1", + "referencedDeclaration": 3623, + "src": "9450:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -37899,21 +37899,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3193, + "id": 3662, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9454:2:1", + "src": "9454:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9450:6:1", + "src": "9450:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -37923,21 +37923,21 @@ "operator": "+", "rightExpression": { "hexValue": "3332", - "id": 3195, + "id": 3664, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9459:2:1", + "src": "9459:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "9450:11:1", + "src": "9450:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -37956,18 +37956,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3190, + "id": 3659, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "9435:9:1", + "referencedDeclaration": 3859, + "src": "9435:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3203, + "id": 3672, "isConstant": false, "isLValue": false, "isPure": false, @@ -37975,7 +37975,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9435:42:1", + "src": "9435:42:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -37990,26 +37990,26 @@ "typeString": "bytes32" } ], - "id": 3189, + "id": 3658, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9427:7:1", + "src": "9427:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 3188, + "id": 3657, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "9427:7:1", + "src": "9427:7:7", "typeDescriptions": {} } }, - "id": 3204, + "id": 3673, "isConstant": false, "isLValue": false, "isPure": false, @@ -38017,7 +38017,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9427:51:1", + "src": "9427:51:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -38032,26 +38032,26 @@ "typeString": "bytes20" } ], - "id": 3187, + "id": 3656, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9419:7:1", + "src": "9419:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 3186, + "id": 3655, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9419:7:1", + "src": "9419:7:7", "typeDescriptions": {} } }, - "id": 3205, + "id": 3674, "isConstant": false, "isLValue": false, "isPure": false, @@ -38059,7 +38059,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9419:60:1", + "src": "9419:60:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -38067,22 +38067,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9393:86:1" + "src": "9393:86:7" }, { "assignments": [ - 3208 + 3677 ], "declarations": [ { "constant": false, - "id": 3208, + "id": 3677, "mutability": "mutable", "name": "tokenId", - "nameLocation": "9501:7:1", + "nameLocation": "9501:7:7", "nodeType": "VariableDeclaration", - "scope": 3233, - "src": "9493:15:1", + "scope": 3702, + "src": "9493:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38090,10 +38090,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3207, + "id": 3676, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9493:7:1", + "src": "9493:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38102,19 +38102,19 @@ "visibility": "internal" } ], - "id": 3226, + "id": 3695, "initialValue": { "arguments": [ { "arguments": [ { "baseExpression": { - "id": 3212, + "id": 3681, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3130, - "src": "9529:4:1", + "referencedDeclaration": 3599, + "src": "9529:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -38125,7 +38125,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3222, + "id": 3691, "isConstant": false, "isLValue": false, "isPure": false, @@ -38135,18 +38135,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3220, + "id": 3689, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3218, + "id": 3687, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9548:1:1", + "referencedDeclaration": 3623, + "src": "9548:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -38156,21 +38156,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3219, + "id": 3688, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9552:2:1", + "src": "9552:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9548:6:1", + "src": "9548:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -38180,39 +38180,39 @@ "operator": "+", "rightExpression": { "hexValue": "3936", - "id": 3221, + "id": 3690, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9557:2:1", + "src": "9557:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9548:11:1", + "src": "9548:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3223, + "id": 3692, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "9529:31:1", + "src": "9529:31:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3217, + "id": 3686, "isConstant": false, "isLValue": false, "isPure": false, @@ -38222,18 +38222,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3215, + "id": 3684, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3213, + "id": 3682, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9534:1:1", + "referencedDeclaration": 3623, + "src": "9534:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -38243,21 +38243,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3214, + "id": 3683, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9538:2:1", + "src": "9538:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9534:6:1", + "src": "9534:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -38267,21 +38267,21 @@ "operator": "+", "rightExpression": { "hexValue": "3634", - "id": 3216, + "id": 3685, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9543:2:1", + "src": "9543:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "9534:11:1", + "src": "9534:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -38300,18 +38300,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3211, + "id": 3680, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "9519:9:1", + "referencedDeclaration": 3859, + "src": "9519:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3224, + "id": 3693, "isConstant": false, "isLValue": false, "isPure": false, @@ -38319,7 +38319,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9519:42:1", + "src": "9519:42:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -38334,26 +38334,26 @@ "typeString": "bytes32" } ], - "id": 3210, + "id": 3679, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9511:7:1", + "src": "9511:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3209, + "id": 3678, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9511:7:1", + "src": "9511:7:7", "typeDescriptions": {} } }, - "id": 3225, + "id": 3694, "isConstant": false, "isLValue": false, "isPure": false, @@ -38361,7 +38361,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9511:51:1", + "src": "9511:51:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -38369,42 +38369,42 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9493:69:1" + "src": "9493:69:7" }, { "expression": { "arguments": [ { - "id": 3228, + "id": 3697, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3165, - "src": "9588:9:1", + "referencedDeclaration": 3634, + "src": "9588:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 3229, + "id": 3698, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3185, - "src": "9599:15:1", + "referencedDeclaration": 3654, + "src": "9599:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3230, + "id": 3699, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3208, - "src": "9616:7:1", + "referencedDeclaration": 3677, + "src": "9616:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38414,7 +38414,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -38426,18 +38426,18 @@ "typeString": "uint256" } ], - "id": 3227, + "id": 3696, "name": "_trackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2620, - "src": "9576:11:1", + "referencedDeclaration": 3089, + "src": "9576:11:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2138_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 3231, + "id": 3700, "isConstant": false, "isLValue": false, "isPure": false, @@ -38445,16 +38445,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9576:48:1", + "src": "9576:48:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3232, + "id": 3701, "nodeType": "ExpressionStatement", - "src": "9576:48:1" + "src": "9576:48:7" } ] }, @@ -38463,18 +38463,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3159, + "id": 3628, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3157, + "id": 3626, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9266:1:1", + "referencedDeclaration": 3623, + "src": "9266:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -38483,38 +38483,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 3158, + "id": 3627, "name": "numTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3134, - "src": "9270:9:1", + "referencedDeclaration": 3603, + "src": "9270:9:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "9266:13:1", + "src": "9266:13:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3234, + "id": 3703, "initializationExpression": { "assignments": [ - 3154 + 3623 ], "declarations": [ { "constant": false, - "id": 3154, + "id": 3623, "mutability": "mutable", "name": "i", - "nameLocation": "9259:1:1", + "nameLocation": "9259:1:7", "nodeType": "VariableDeclaration", - "scope": 3234, - "src": "9252:8:1", + "scope": 3703, + "src": "9252:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38522,10 +38522,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3153, + "id": 3622, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9252:6:1", + "src": "9252:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -38534,17 +38534,17 @@ "visibility": "internal" } ], - "id": 3156, + "id": 3625, "initialValue": { "hexValue": "30", - "id": 3155, + "id": 3624, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9263:1:1", + "src": "9263:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -38552,11 +38552,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9252:12:1" + "src": "9252:12:7" }, "loopExpression": { "expression": { - "id": 3161, + "id": 3630, "isConstant": false, "isLValue": false, "isPure": false, @@ -38564,14 +38564,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "9281:3:1", + "src": "9281:3:7", "subExpression": { - "id": 3160, + "id": 3629, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3154, - "src": "9281:1:1", + "referencedDeclaration": 3623, + "src": "9281:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -38582,35 +38582,35 @@ "typeString": "uint32" } }, - "id": 3162, + "id": 3631, "nodeType": "ExpressionStatement", - "src": "9281:3:1" + "src": "9281:3:7" }, "nodeType": "ForStatement", - "src": "9247:388:1" + "src": "9247:388:7" } ] }, - "id": 3236, + "id": 3705, "implemented": true, "kind": "function", "modifiers": [], "name": "_multiTrack", - "nameLocation": "9054:11:1", + "nameLocation": "9054:11:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 3131, + "id": 3600, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3130, + "id": 3599, "mutability": "mutable", "name": "data", - "nameLocation": "9081:4:1", + "nameLocation": "9081:4:7", "nodeType": "VariableDeclaration", - "scope": 3236, - "src": "9066:19:1", + "scope": 3705, + "src": "9066:19:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -38618,10 +38618,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3129, + "id": 3598, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9066:5:1", + "src": "9066:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -38630,40 +38630,40 @@ "visibility": "internal" } ], - "src": "9065:21:1" + "src": "9065:21:7" }, "returnParameters": { - "id": 3132, + "id": 3601, "nodeType": "ParameterList", "parameters": [], - "src": "9096:0:1" + "src": "9096:0:7" }, - "scope": 3391, - "src": "9045:596:1", + "scope": 3860, + "src": "9045:596:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3343, + "id": 3812, "nodeType": "Block", - "src": "9700:547:1", + "src": "9700:547:7", "statements": [ { "assignments": [ - 3242 + 3711 ], "declarations": [ { "constant": false, - "id": 3242, + "id": 3711, "mutability": "mutable", "name": "numTokens", - "nameLocation": "9717:9:1", + "nameLocation": "9717:9:7", "nodeType": "VariableDeclaration", - "scope": 3343, - "src": "9710:16:1", + "scope": 3812, + "src": "9710:16:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -38671,10 +38671,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3241, + "id": 3710, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9710:6:1", + "src": "9710:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -38683,7 +38683,7 @@ "visibility": "internal" } ], - "id": 3250, + "id": 3719, "initialValue": { "arguments": [ { @@ -38691,32 +38691,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3248, + "id": 3717, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 3245, + "id": 3714, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "9736:4:1", + "referencedDeclaration": 3707, + "src": "9736:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 3246, + "id": 3715, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "9736:11:1", + "src": "9736:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38726,21 +38726,21 @@ "operator": "/", "rightExpression": { "hexValue": "3936", - "id": 3247, + "id": 3716, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9750:2:1", + "src": "9750:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9736:16:1", + "src": "9736:16:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -38754,26 +38754,26 @@ "typeString": "uint256" } ], - "id": 3244, + "id": 3713, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9729:6:1", + "src": "9729:6:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 3243, + "id": 3712, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9729:6:1", + "src": "9729:6:7", "typeDescriptions": {} } }, - "id": 3249, + "id": 3718, "isConstant": false, "isLValue": false, "isPure": false, @@ -38781,7 +38781,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9729:24:1", + "src": "9729:24:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -38789,7 +38789,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9710:43:1" + "src": "9710:43:7" }, { "expression": { @@ -38799,7 +38799,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3257, + "id": 3726, "isConstant": false, "isLValue": false, "isPure": false, @@ -38809,18 +38809,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3254, + "id": 3723, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3252, + "id": 3721, "name": "numTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3242, - "src": "9771:9:1", + "referencedDeclaration": 3711, + "src": "9771:9:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -38830,21 +38830,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3253, + "id": 3722, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9783:2:1", + "src": "9783:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9771:14:1", + "src": "9771:14:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -38854,31 +38854,31 @@ "operator": "==", "rightExpression": { "expression": { - "id": 3255, + "id": 3724, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "9789:4:1", + "referencedDeclaration": 3707, + "src": "9789:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 3256, + "id": 3725, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "9789:11:1", + "src": "9789:11:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "9771:29:1", + "src": "9771:29:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -38886,14 +38886,14 @@ }, { "hexValue": "64617461206d7573742068617665206c656e677468206d756c7469706c6520746f203936", - "id": 3258, + "id": 3727, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "9802:38:1", + "src": "9802:38:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_7fb6a81bbdba15000418055bc5e058938e4fd0b50065d70de11ee03ca8f293e3", "typeString": "literal_string \"data must have length multiple to 96\"" @@ -38912,7 +38912,7 @@ "typeString": "literal_string \"data must have length multiple to 96\"" } ], - "id": 3251, + "id": 3720, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -38920,13 +38920,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "9763:7:1", + "src": "9763:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3259, + "id": 3728, "isConstant": false, "isLValue": false, "isPure": false, @@ -38934,64 +38934,64 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9763:78:1", + "src": "9763:78:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3260, + "id": 3729, "nodeType": "ExpressionStatement", - "src": "9763:78:1" + "src": "9763:78:7" }, { "body": { - "id": 3341, + "id": 3810, "nodeType": "Block", - "src": "9890:351:1", + "src": "9890:351:7", "statements": [ { "assignments": [ - 3273 + 3742 ], "declarations": [ { "constant": false, - "id": 3273, + "id": 3742, "mutability": "mutable", "name": "tokenType", - "nameLocation": "9914:9:1", + "nameLocation": "9914:9:7", "nodeType": "VariableDeclaration", - "scope": 3341, - "src": "9904:19:1", + "scope": 3810, + "src": "9904:19:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, "typeName": { - "id": 3272, + "id": 3741, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 3271, + "id": 3740, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2138, - "src": "9904:9:1" + "referencedDeclaration": 2607, + "src": "9904:9:7" }, - "referencedDeclaration": 2138, - "src": "9904:9:1", + "referencedDeclaration": 2607, + "src": "9904:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "visibility": "internal" } ], - "id": 3291, + "id": 3760, "initialValue": { "arguments": [ { @@ -39000,12 +39000,12 @@ "arguments": [ { "baseExpression": { - "id": 3278, + "id": 3747, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "9954:4:1", + "referencedDeclaration": 3707, + "src": "9954:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -39016,7 +39016,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3286, + "id": 3755, "isConstant": false, "isLValue": false, "isPure": false, @@ -39026,18 +39026,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3284, + "id": 3753, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3282, + "id": 3751, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "9968:1:1", + "referencedDeclaration": 3731, + "src": "9968:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -39047,21 +39047,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3283, + "id": 3752, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9972:2:1", + "src": "9972:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9968:6:1", + "src": "9968:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -39071,50 +39071,50 @@ "operator": "+", "rightExpression": { "hexValue": "3332", - "id": 3285, + "id": 3754, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9977:2:1", + "src": "9977:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "9968:11:1", + "src": "9968:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3287, + "id": 3756, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "9954:26:1", + "src": "9954:26:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3281, + "id": 3750, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3279, + "id": 3748, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "9959:1:1", + "referencedDeclaration": 3731, + "src": "9959:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -39124,21 +39124,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3280, + "id": 3749, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9963:2:1", + "src": "9963:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "9959:6:1", + "src": "9959:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -39157,18 +39157,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3277, + "id": 3746, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "9944:9:1", + "referencedDeclaration": 3859, + "src": "9944:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3288, + "id": 3757, "isConstant": false, "isLValue": false, "isPure": false, @@ -39176,7 +39176,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9944:37:1", + "src": "9944:37:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -39191,26 +39191,26 @@ "typeString": "bytes32" } ], - "id": 3276, + "id": 3745, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "9936:7:1", + "src": "9936:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3275, + "id": 3744, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "9936:7:1", + "src": "9936:7:7", "typeDescriptions": {} } }, - "id": 3289, + "id": 3758, "isConstant": false, "isLValue": false, "isPure": false, @@ -39218,7 +39218,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9936:46:1", + "src": "9936:46:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -39233,18 +39233,18 @@ "typeString": "uint256" } ], - "id": 3274, + "id": 3743, "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2138, - "src": "9926:9:1", + "referencedDeclaration": 2607, + "src": "9926:9:7", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2138_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", "typeString": "type(enum TokenTracker.TokenType)" } }, - "id": 3290, + "id": 3759, "isConstant": false, "isLValue": false, "isPure": false, @@ -39252,30 +39252,30 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "9926:57:1", + "src": "9926:57:7", "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, "nodeType": "VariableDeclarationStatement", - "src": "9904:79:1" + "src": "9904:79:7" }, { "assignments": [ - 3293 + 3762 ], "declarations": [ { "constant": false, - "id": 3293, + "id": 3762, "mutability": "mutable", "name": "contractAddress", - "nameLocation": "10005:15:1", + "nameLocation": "10005:15:7", "nodeType": "VariableDeclaration", - "scope": 3341, - "src": "9997:23:1", + "scope": 3810, + "src": "9997:23:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -39283,10 +39283,10 @@ "typeString": "address" }, "typeName": { - "id": 3292, + "id": 3761, "name": "address", "nodeType": "ElementaryTypeName", - "src": "9997:7:1", + "src": "9997:7:7", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", @@ -39296,7 +39296,7 @@ "visibility": "internal" } ], - "id": 3314, + "id": 3783, "initialValue": { "arguments": [ { @@ -39305,12 +39305,12 @@ "arguments": [ { "baseExpression": { - "id": 3299, + "id": 3768, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "10049:4:1", + "referencedDeclaration": 3707, + "src": "10049:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -39321,7 +39321,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3309, + "id": 3778, "isConstant": false, "isLValue": false, "isPure": false, @@ -39331,18 +39331,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3307, + "id": 3776, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3305, + "id": 3774, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "10068:1:1", + "referencedDeclaration": 3731, + "src": "10068:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -39352,21 +39352,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3306, + "id": 3775, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10072:2:1", + "src": "10072:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "10068:6:1", + "src": "10068:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -39376,39 +39376,39 @@ "operator": "+", "rightExpression": { "hexValue": "3532", - "id": 3308, + "id": 3777, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10077:2:1", + "src": "10077:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_52_by_1", "typeString": "int_const 52" }, "value": "52" }, - "src": "10068:11:1", + "src": "10068:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3310, + "id": 3779, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "10049:31:1", + "src": "10049:31:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3304, + "id": 3773, "isConstant": false, "isLValue": false, "isPure": false, @@ -39418,18 +39418,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3302, + "id": 3771, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3300, + "id": 3769, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "10054:1:1", + "referencedDeclaration": 3731, + "src": "10054:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -39439,21 +39439,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3301, + "id": 3770, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10058:2:1", + "src": "10058:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "10054:6:1", + "src": "10054:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -39463,21 +39463,21 @@ "operator": "+", "rightExpression": { "hexValue": "3332", - "id": 3303, + "id": 3772, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10063:2:1", + "src": "10063:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "10054:11:1", + "src": "10054:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -39496,18 +39496,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3298, + "id": 3767, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "10039:9:1", + "referencedDeclaration": 3859, + "src": "10039:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3311, + "id": 3780, "isConstant": false, "isLValue": false, "isPure": false, @@ -39515,7 +39515,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10039:42:1", + "src": "10039:42:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -39530,26 +39530,26 @@ "typeString": "bytes32" } ], - "id": 3297, + "id": 3766, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10031:7:1", + "src": "10031:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes20_$", "typeString": "type(bytes20)" }, "typeName": { - "id": 3296, + "id": 3765, "name": "bytes20", "nodeType": "ElementaryTypeName", - "src": "10031:7:1", + "src": "10031:7:7", "typeDescriptions": {} } }, - "id": 3312, + "id": 3781, "isConstant": false, "isLValue": false, "isPure": false, @@ -39557,7 +39557,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10031:51:1", + "src": "10031:51:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes20", @@ -39572,26 +39572,26 @@ "typeString": "bytes20" } ], - "id": 3295, + "id": 3764, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10023:7:1", + "src": "10023:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { - "id": 3294, + "id": 3763, "name": "address", "nodeType": "ElementaryTypeName", - "src": "10023:7:1", + "src": "10023:7:7", "typeDescriptions": {} } }, - "id": 3313, + "id": 3782, "isConstant": false, "isLValue": false, "isPure": false, @@ -39599,7 +39599,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10023:60:1", + "src": "10023:60:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", @@ -39607,22 +39607,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "9997:86:1" + "src": "9997:86:7" }, { "assignments": [ - 3316 + 3785 ], "declarations": [ { "constant": false, - "id": 3316, + "id": 3785, "mutability": "mutable", "name": "tokenId", - "nameLocation": "10105:7:1", + "nameLocation": "10105:7:7", "nodeType": "VariableDeclaration", - "scope": 3341, - "src": "10097:15:1", + "scope": 3810, + "src": "10097:15:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -39630,10 +39630,10 @@ "typeString": "uint256" }, "typeName": { - "id": 3315, + "id": 3784, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10097:7:1", + "src": "10097:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39642,19 +39642,19 @@ "visibility": "internal" } ], - "id": 3334, + "id": 3803, "initialValue": { "arguments": [ { "arguments": [ { "baseExpression": { - "id": 3320, + "id": 3789, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3238, - "src": "10133:4:1", + "referencedDeclaration": 3707, + "src": "10133:4:7", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -39665,7 +39665,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3330, + "id": 3799, "isConstant": false, "isLValue": false, "isPure": false, @@ -39675,18 +39675,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3328, + "id": 3797, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3326, + "id": 3795, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "10152:1:1", + "referencedDeclaration": 3731, + "src": "10152:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -39696,21 +39696,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3327, + "id": 3796, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10156:2:1", + "src": "10156:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "10152:6:1", + "src": "10152:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -39720,39 +39720,39 @@ "operator": "+", "rightExpression": { "hexValue": "3936", - "id": 3329, + "id": 3798, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10161:2:1", + "src": "10161:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "10152:11:1", + "src": "10152:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 3331, + "id": 3800, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "IndexRangeAccess", - "src": "10133:31:1", + "src": "10133:31:7", "startExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3325, + "id": 3794, "isConstant": false, "isLValue": false, "isPure": false, @@ -39762,18 +39762,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3323, + "id": 3792, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3321, + "id": 3790, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "10138:1:1", + "referencedDeclaration": 3731, + "src": "10138:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -39783,21 +39783,21 @@ "operator": "*", "rightExpression": { "hexValue": "3936", - "id": 3322, + "id": 3791, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10142:2:1", + "src": "10142:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_96_by_1", "typeString": "int_const 96" }, "value": "96" }, - "src": "10138:6:1", + "src": "10138:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -39807,21 +39807,21 @@ "operator": "+", "rightExpression": { "hexValue": "3634", - "id": 3324, + "id": 3793, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10147:2:1", + "src": "10147:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_64_by_1", "typeString": "int_const 64" }, "value": "64" }, - "src": "10138:11:1", + "src": "10138:11:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -39840,18 +39840,18 @@ "typeString": "bytes calldata slice" } ], - "id": 3319, + "id": 3788, "name": "_asByte32", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3390, - "src": "10123:9:1", + "referencedDeclaration": 3859, + "src": "10123:9:7", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 3332, + "id": 3801, "isConstant": false, "isLValue": false, "isPure": false, @@ -39859,7 +39859,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10123:42:1", + "src": "10123:42:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -39874,26 +39874,26 @@ "typeString": "bytes32" } ], - "id": 3318, + "id": 3787, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10115:7:1", + "src": "10115:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint256_$", "typeString": "type(uint256)" }, "typeName": { - "id": 3317, + "id": 3786, "name": "uint256", "nodeType": "ElementaryTypeName", - "src": "10115:7:1", + "src": "10115:7:7", "typeDescriptions": {} } }, - "id": 3333, + "id": 3802, "isConstant": false, "isLValue": false, "isPure": false, @@ -39901,7 +39901,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10115:51:1", + "src": "10115:51:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint256", @@ -39909,42 +39909,42 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "10097:69:1" + "src": "10097:69:7" }, { "expression": { "arguments": [ { - "id": 3336, + "id": 3805, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3273, - "src": "10194:9:1", + "referencedDeclaration": 3742, + "src": "10194:9:7", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 3337, + "id": 3806, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3293, - "src": "10205:15:1", + "referencedDeclaration": 3762, + "src": "10205:15:7", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 3338, + "id": 3807, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3316, - "src": "10222:7:1", + "referencedDeclaration": 3785, + "src": "10222:7:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -39954,7 +39954,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2138", + "typeIdentifier": "t_enum$_TokenType_$2607", "typeString": "enum TokenTracker.TokenType" }, { @@ -39966,18 +39966,18 @@ "typeString": "uint256" } ], - "id": 3335, + "id": 3804, "name": "_untrackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2838, - "src": "10180:13:1", + "referencedDeclaration": 3307, + "src": "10180:13:7", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2138_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 3339, + "id": 3808, "isConstant": false, "isLValue": false, "isPure": false, @@ -39985,16 +39985,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10180:50:1", + "src": "10180:50:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3340, + "id": 3809, "nodeType": "ExpressionStatement", - "src": "10180:50:1" + "src": "10180:50:7" } ] }, @@ -40003,18 +40003,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 3267, + "id": 3736, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 3265, + "id": 3734, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "9870:1:1", + "referencedDeclaration": 3731, + "src": "9870:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -40023,38 +40023,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 3266, + "id": 3735, "name": "numTokens", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3242, - "src": "9874:9:1", + "referencedDeclaration": 3711, + "src": "9874:9:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "9870:13:1", + "src": "9870:13:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3342, + "id": 3811, "initializationExpression": { "assignments": [ - 3262 + 3731 ], "declarations": [ { "constant": false, - "id": 3262, + "id": 3731, "mutability": "mutable", "name": "i", - "nameLocation": "9863:1:1", + "nameLocation": "9863:1:7", "nodeType": "VariableDeclaration", - "scope": 3342, - "src": "9856:8:1", + "scope": 3811, + "src": "9856:8:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40062,10 +40062,10 @@ "typeString": "uint32" }, "typeName": { - "id": 3261, + "id": 3730, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "9856:6:1", + "src": "9856:6:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -40074,17 +40074,17 @@ "visibility": "internal" } ], - "id": 3264, + "id": 3733, "initialValue": { "hexValue": "30", - "id": 3263, + "id": 3732, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "9867:1:1", + "src": "9867:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -40092,11 +40092,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "9856:12:1" + "src": "9856:12:7" }, "loopExpression": { "expression": { - "id": 3269, + "id": 3738, "isConstant": false, "isLValue": false, "isPure": false, @@ -40104,14 +40104,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "9885:3:1", + "src": "9885:3:7", "subExpression": { - "id": 3268, + "id": 3737, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3262, - "src": "9885:1:1", + "referencedDeclaration": 3731, + "src": "9885:1:7", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -40122,35 +40122,35 @@ "typeString": "uint32" } }, - "id": 3270, + "id": 3739, "nodeType": "ExpressionStatement", - "src": "9885:3:1" + "src": "9885:3:7" }, "nodeType": "ForStatement", - "src": "9851:390:1" + "src": "9851:390:7" } ] }, - "id": 3344, + "id": 3813, "implemented": true, "kind": "function", "modifiers": [], "name": "_multiUntrack", - "nameLocation": "9656:13:1", + "nameLocation": "9656:13:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 3239, + "id": 3708, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3238, + "id": 3707, "mutability": "mutable", "name": "data", - "nameLocation": "9685:4:1", + "nameLocation": "9685:4:7", "nodeType": "VariableDeclaration", - "scope": 3344, - "src": "9670:19:1", + "scope": 3813, + "src": "9670:19:7", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -40158,10 +40158,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3237, + "id": 3706, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "9670:5:1", + "src": "9670:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -40170,25 +40170,25 @@ "visibility": "internal" } ], - "src": "9669:21:1" + "src": "9669:21:7" }, "returnParameters": { - "id": 3240, + "id": 3709, "nodeType": "ParameterList", "parameters": [], - "src": "9700:0:1" + "src": "9700:0:7" }, - "scope": 3391, - "src": "9647:600:1", + "scope": 3860, + "src": "9647:600:7", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 3389, + "id": 3858, "nodeType": "Block", - "src": "10319:342:1", + "src": "10319:342:7", "statements": [ { "condition": { @@ -40196,32 +40196,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3354, + "id": 3823, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 3351, + "id": 3820, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "10333:1:1", + "referencedDeclaration": 3815, + "src": "10333:1:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3352, + "id": 3821, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "10333:8:1", + "src": "10333:8:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40231,47 +40231,47 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 3353, + "id": 3822, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10345:1:1", + "src": "10345:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "10333:13:1", + "src": "10333:13:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 3361, + "id": 3830, "nodeType": "IfStatement", - "src": "10329:63:1", + "src": "10329:63:7", "trueBody": { - "id": 3360, + "id": 3829, "nodeType": "Block", - "src": "10348:44:1", + "src": "10348:44:7", "statements": [ { "expression": { "arguments": [ { "hexValue": "307830", - "id": 3357, + "id": 3826, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10377:3:1", + "src": "10377:3:7", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -40286,26 +40286,26 @@ "typeString": "int_const 0" } ], - "id": 3356, + "id": 3825, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10369:7:1", + "src": "10369:7:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes32_$", "typeString": "type(bytes32)" }, "typeName": { - "id": 3355, + "id": 3824, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10369:7:1", + "src": "10369:7:7", "typeDescriptions": {} } }, - "id": 3358, + "id": 3827, "isConstant": false, "isLValue": false, "isPure": true, @@ -40313,17 +40313,17 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10369:12:1", + "src": "10369:12:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 3350, - "id": 3359, + "functionReturnParameters": 3819, + "id": 3828, "nodeType": "Return", - "src": "10362:19:1" + "src": "10362:19:7" } ] } @@ -40336,32 +40336,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3366, + "id": 3835, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 3363, + "id": 3832, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "10409:1:1", + "referencedDeclaration": 3815, + "src": "10409:1:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3364, + "id": 3833, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "10409:8:1", + "src": "10409:8:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40371,21 +40371,21 @@ "operator": "<=", "rightExpression": { "hexValue": "3332", - "id": 3365, + "id": 3834, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10421:2:1", + "src": "10421:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" }, "value": "32" }, - "src": "10409:14:1", + "src": "10409:14:7", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -40393,14 +40393,14 @@ }, { "hexValue": "696e70757420627974657320746f6f206c6f6e67", - "id": 3367, + "id": 3836, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "10425:22:1", + "src": "10425:22:7", "typeDescriptions": { "typeIdentifier": "t_stringliteral_2c594e135171cc6dc0d96175148636924623810d2d534a029b78044ab417d7d0", "typeString": "literal_string \"input bytes too long\"" @@ -40419,7 +40419,7 @@ "typeString": "literal_string \"input bytes too long\"" } ], - "id": 3362, + "id": 3831, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -40427,13 +40427,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "10401:7:1", + "src": "10401:7:7", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 3368, + "id": 3837, "isConstant": false, "isLValue": false, "isPure": false, @@ -40441,31 +40441,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10401:47:1", + "src": "10401:47:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 3369, + "id": 3838, "nodeType": "ExpressionStatement", - "src": "10401:47:1" + "src": "10401:47:7" }, { "assignments": [ - 3371 + 3840 ], "declarations": [ { "constant": false, - "id": 3371, + "id": 3840, "mutability": "mutable", "name": "r", - "nameLocation": "10466:1:1", + "nameLocation": "10466:1:7", "nodeType": "VariableDeclaration", - "scope": 3389, - "src": "10458:9:1", + "scope": 3858, + "src": "10458:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40473,10 +40473,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3370, + "id": 3839, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10458:7:1", + "src": "10458:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -40485,24 +40485,24 @@ "visibility": "internal" } ], - "id": 3372, + "id": 3841, "nodeType": "VariableDeclarationStatement", - "src": "10458:9:1" + "src": "10458:9:7" }, { "assignments": [ - 3374 + 3843 ], "declarations": [ { "constant": false, - "id": 3374, + "id": 3843, "mutability": "mutable", "name": "len", - "nameLocation": "10483:3:1", + "nameLocation": "10483:3:7", "nodeType": "VariableDeclaration", - "scope": 3389, - "src": "10477:9:1", + "scope": 3858, + "src": "10477:9:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40510,10 +40510,10 @@ "typeString": "uint8" }, "typeName": { - "id": 3373, + "id": 3842, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "10477:5:1", + "src": "10477:5:7", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -40522,7 +40522,7 @@ "visibility": "internal" } ], - "id": 3385, + "id": 3854, "initialValue": { "arguments": [ { @@ -40530,7 +40530,7 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3383, + "id": 3852, "isConstant": false, "isLValue": false, "isPure": false, @@ -40542,21 +40542,21 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 3380, + "id": 3849, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "hexValue": "3332", - "id": 3377, + "id": 3846, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10496:2:1", + "src": "10496:2:7", "typeDescriptions": { "typeIdentifier": "t_rational_32_by_1", "typeString": "int_const 32" @@ -40567,45 +40567,45 @@ "operator": "-", "rightExpression": { "expression": { - "id": 3378, + "id": 3847, "name": "b", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3346, - "src": "10501:1:1", + "referencedDeclaration": 3815, + "src": "10501:1:7", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, - "id": 3379, + "id": 3848, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "10501:8:1", + "src": "10501:8:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "10496:13:1", + "src": "10496:13:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], - "id": 3381, + "id": 3850, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "10495:15:1", + "src": "10495:15:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40615,21 +40615,21 @@ "operator": "*", "rightExpression": { "hexValue": "38", - "id": 3382, + "id": 3851, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "10513:1:1", + "src": "10513:1:7", "typeDescriptions": { "typeIdentifier": "t_rational_8_by_1", "typeString": "int_const 8" }, "value": "8" }, - "src": "10495:19:1", + "src": "10495:19:7", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -40643,26 +40643,26 @@ "typeString": "uint256" } ], - "id": 3376, + "id": 3845, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "10489:5:1", + "src": "10489:5:7", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 3375, + "id": 3844, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "10489:5:1", + "src": "10489:5:7", "typeDescriptions": {} } }, - "id": 3384, + "id": 3853, "isConstant": false, "isLValue": false, "isPure": false, @@ -40670,7 +40670,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "10489:26:1", + "src": "10489:26:7", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -40678,16 +40678,16 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "10477:38:1" + "src": "10477:38:7" }, { "AST": { "nodeType": "YulBlock", - "src": "10533:104:1", + "src": "10533:104:7", "statements": [ { "nodeType": "YulAssignment", - "src": "10547:22:1", + "src": "10547:22:7", "value": { "arguments": [ { @@ -40695,12 +40695,12 @@ { "name": "b", "nodeType": "YulIdentifier", - "src": "10562:1:1" + "src": "10562:1:7" }, { "kind": "number", "nodeType": "YulLiteral", - "src": "10565:2:1", + "src": "10565:2:7", "type": "", "value": "32" } @@ -40708,89 +40708,89 @@ "functionName": { "name": "add", "nodeType": "YulIdentifier", - "src": "10558:3:1" + "src": "10558:3:7" }, "nodeType": "YulFunctionCall", - "src": "10558:10:1" + "src": "10558:10:7" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", - "src": "10552:5:1" + "src": "10552:5:7" }, "nodeType": "YulFunctionCall", - "src": "10552:17:1" + "src": "10552:17:7" }, "variableNames": [ { "name": "r", "nodeType": "YulIdentifier", - "src": "10547:1:1" + "src": "10547:1:7" } ] }, { "nodeType": "YulAssignment", - "src": "10582:16:1", + "src": "10582:16:7", "value": { "arguments": [ { "name": "len", "nodeType": "YulIdentifier", - "src": "10591:3:1" + "src": "10591:3:7" }, { "name": "r", "nodeType": "YulIdentifier", - "src": "10596:1:1" + "src": "10596:1:7" } ], "functionName": { "name": "shr", "nodeType": "YulIdentifier", - "src": "10587:3:1" + "src": "10587:3:7" }, "nodeType": "YulFunctionCall", - "src": "10587:11:1" + "src": "10587:11:7" }, "variableNames": [ { "name": "r", "nodeType": "YulIdentifier", - "src": "10582:1:1" + "src": "10582:1:7" } ] }, { "nodeType": "YulAssignment", - "src": "10611:16:1", + "src": "10611:16:7", "value": { "arguments": [ { "name": "len", "nodeType": "YulIdentifier", - "src": "10620:3:1" + "src": "10620:3:7" }, { "name": "r", "nodeType": "YulIdentifier", - "src": "10625:1:1" + "src": "10625:1:7" } ], "functionName": { "name": "shl", "nodeType": "YulIdentifier", - "src": "10616:3:1" + "src": "10616:3:7" }, "nodeType": "YulFunctionCall", - "src": "10616:11:1" + "src": "10616:11:7" }, "variableNames": [ { "name": "r", "nodeType": "YulIdentifier", - "src": "10611:1:1" + "src": "10611:1:7" } ] } @@ -40799,106 +40799,106 @@ "evmVersion": "istanbul", "externalReferences": [ { - "declaration": 3346, + "declaration": 3815, "isOffset": false, "isSlot": false, - "src": "10562:1:1", + "src": "10562:1:7", "valueSize": 1 }, { - "declaration": 3374, + "declaration": 3843, "isOffset": false, "isSlot": false, - "src": "10591:3:1", + "src": "10591:3:7", "valueSize": 1 }, { - "declaration": 3374, + "declaration": 3843, "isOffset": false, "isSlot": false, - "src": "10620:3:1", + "src": "10620:3:7", "valueSize": 1 }, { - "declaration": 3371, + "declaration": 3840, "isOffset": false, "isSlot": false, - "src": "10547:1:1", + "src": "10547:1:7", "valueSize": 1 }, { - "declaration": 3371, + "declaration": 3840, "isOffset": false, "isSlot": false, - "src": "10582:1:1", + "src": "10582:1:7", "valueSize": 1 }, { - "declaration": 3371, + "declaration": 3840, "isOffset": false, "isSlot": false, - "src": "10596:1:1", + "src": "10596:1:7", "valueSize": 1 }, { - "declaration": 3371, + "declaration": 3840, "isOffset": false, "isSlot": false, - "src": "10611:1:1", + "src": "10611:1:7", "valueSize": 1 }, { - "declaration": 3371, + "declaration": 3840, "isOffset": false, "isSlot": false, - "src": "10625:1:1", + "src": "10625:1:7", "valueSize": 1 } ], - "id": 3386, + "id": 3855, "nodeType": "InlineAssembly", - "src": "10525:112:1" + "src": "10525:112:7" }, { "expression": { - "id": 3387, + "id": 3856, "name": "r", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3371, - "src": "10653:1:1", + "referencedDeclaration": 3840, + "src": "10653:1:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "functionReturnParameters": 3350, - "id": 3388, + "functionReturnParameters": 3819, + "id": 3857, "nodeType": "Return", - "src": "10646:8:1" + "src": "10646:8:7" } ] }, - "id": 3390, + "id": 3859, "implemented": true, "kind": "function", "modifiers": [], "name": "_asByte32", - "nameLocation": "10262:9:1", + "nameLocation": "10262:9:7", "nodeType": "FunctionDefinition", "parameters": { - "id": 3347, + "id": 3816, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3346, + "id": 3815, "mutability": "mutable", "name": "b", - "nameLocation": "10285:1:1", + "nameLocation": "10285:1:7", "nodeType": "VariableDeclaration", - "scope": 3390, - "src": "10272:14:1", + "scope": 3859, + "src": "10272:14:7", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -40906,10 +40906,10 @@ "typeString": "bytes" }, "typeName": { - "id": 3345, + "id": 3814, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "10272:5:1", + "src": "10272:5:7", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" @@ -40918,21 +40918,21 @@ "visibility": "internal" } ], - "src": "10271:16:1" + "src": "10271:16:7" }, "returnParameters": { - "id": 3350, + "id": 3819, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 3349, + "id": 3818, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 3390, - "src": "10311:7:1", + "scope": 3859, + "src": "10311:7:7", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -40940,10 +40940,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 3348, + "id": 3817, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "10311:7:1", + "src": "10311:7:7", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -40952,29 +40952,29 @@ "visibility": "internal" } ], - "src": "10310:9:1" + "src": "10310:9:7" }, - "scope": 3391, - "src": "10253:408:1", + "scope": 3860, + "src": "10253:408:7", "stateMutability": "pure", "virtual": false, "visibility": "internal" } ], - "scope": 3392, - "src": "322:10341:1", + "scope": 3861, + "src": "322:10341:7", "usedErrors": [] } ], - "src": "39:10625:1" + "src": "39:10625:7" }, "compiler": { "name": "solc", "version": "0.8.4+commit.c7e474f2.Emscripten.clang" }, "networks": {}, - "schemaVersion": "3.4.1", - "updatedAt": "2021-07-27T08:38:10.072Z", + "schemaVersion": "3.4.2", + "updatedAt": "2021-08-05T09:45:29.891Z", "devdoc": { "kind": "dev", "methods": { From c2eaa4cb4448a17e7efda070de89ee8010bb3ae8 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 03:14:49 -0700 Subject: [PATCH 33/59] new computeRecoveryHash; deprecate bruteforceEOTP --- code/lib/onewallet.js | 15 ++++++++++----- code/lib/util.js | 8 +++++++- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/code/lib/onewallet.js b/code/lib/onewallet.js index e70a20a7..7409a836 100644 --- a/code/lib/onewallet.js +++ b/code/lib/onewallet.js @@ -1,4 +1,4 @@ -const { sha256: fastSHA256, sha256b, processOtpSeed } = require('./util') +const { sha256: fastSHA256, sha256b, processOtpSeed, DEPRECATED } = require('./util') // eslint-disable-next-line no-unused-vars const { hexView, genOTP, hexStringToBytes, keccak, bytesEqual } = require('./util') const BN = require('bn.js') @@ -182,19 +182,24 @@ const computeEOTP = async ({ otp, otp2, rand = null, hseed, nonce = 0, hasher = return hasher(buffer) } -const computeRecoveryHash = () => { - const input = new Uint8Array(32) - return { hash: input, bytes: input } +const computeRecoveryHash = (rseed, input) => { + rseed = rseed || new Uint8Array(new BigUint64Array([0, Date.now()]).buffer) + input = input || new Uint8Array(32) + // eslint-disable-next-line new-cap + const aes = new AES.ModeOfOperation.ctr(rseed) + const bytes = aes.encrypt(input) + return { hash: keccak(bytes), bytes } } /** - * WARNING: This shall be removed after Client Security is implemented. https://github.com/polymorpher/one-wallet/wiki/Client-Security + * DEPRECATED: This is DEPRECATED as Client Security is already implemented. https://github.com/polymorpher/one-wallet/wiki/Client-Security * @param hseed * @param nonce * @param leaf * @returns {{eotp: Uint8Array, otp: number}|{}} */ const bruteforceEOTP = ({ hseed, nonce = 0, leaf }) => { + DEPRECATED() const nonceBuffer = new Uint16Array([nonce]) const buffer = new Uint8Array(32) const otpBuffer = new DataView(new ArrayBuffer(4)) diff --git a/code/lib/util.js b/code/lib/util.js index dc2a0de3..0fa16e59 100644 --- a/code/lib/util.js +++ b/code/lib/util.js @@ -6,7 +6,7 @@ const BN = require('bn.js') const argon2 = require('argon2-browser') const base32 = require('hi-base32') const STANDARD_DECIMAL = 18 - +const PERMIT_DEPRECATED_METHOD = process.env.PERMIT_DEPRECATED_METHOD const utils = { hexView: (bytes) => { return bytes && Array.from(bytes).map(x => x.toString(16).padStart(2, '0')).join('') @@ -161,6 +161,12 @@ const utils = { return utils.argon2 } return utils.sha256b + }, + + DEPRECATED: () => { + if (!PERMIT_DEPRECATED_METHOD) { + throw new Error('Deprecated') + } } } From a7e5845101371cb436c7a381cafbc5fe4b3cb73d Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 03:37:10 -0700 Subject: [PATCH 34/59] special treatment for recover operation in _verifyReveal and _completeReveal --- code/contracts/ONEWallet.sol | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/code/contracts/ONEWallet.sol b/code/contracts/ONEWallet.sol index c1318c28..81d64606 100644 --- a/code/contracts/ONEWallet.sol +++ b/code/contracts/ONEWallet.sol @@ -304,8 +304,8 @@ contract ONEWallet is TokenTracker { } (bytes32 commitHash, bytes32 paramsHash) = _getRevealHash(neighbors[0], indexWithNonce, eotp, operationType, tokenType, contractAddress, tokenId, dest, amount, data); - uint32 commitIndex = _verifyReveal(commitHash, indexWithNonce, paramsHash, eotp); - _completeReveal(commitHash, commitIndex); + uint32 commitIndex = _verifyReveal(commitHash, indexWithNonce, paramsHash, eotp, operationType); + _completeReveal(commitHash, commitIndex, operationType); // No revert should occur below this point if (operationType == OperationType.TRACK) { if (data.length > 0) { @@ -406,7 +406,7 @@ contract ONEWallet is TokenTracker { } /// This function verifies that the first valid entry with respect to the given `eotp` in `commitLocker[hash]` matches the provided `paramsHash` and `verificationHash`. An entry is valid with respect to `eotp` iff `h3(entry.paramsHash . eotp)` equals `entry.verificationHash` - function _verifyReveal(bytes32 hash, uint32 indexWithNonce, bytes32 paramsHash, bytes32 eotp) view internal returns (uint32) + function _verifyReveal(bytes32 hash, uint32 indexWithNonce, bytes32 paramsHash, bytes32 eotp, OperationType operationType) view internal returns (uint32) { uint32 index = indexWithNonce / maxOperationsPerInterval; uint8 nonce = uint8(indexWithNonce % maxOperationsPerInterval); @@ -420,10 +420,12 @@ contract ONEWallet is TokenTracker { continue; } require(c.paramsHash == paramsHash, "Parameter hash mismatch"); - uint32 counter = c.timestamp / interval - t0; - require(counter == index, "Index - timestamp mismatch"); - uint8 expectedNonce = nonces[counter]; - require(nonce >= expectedNonce, "Nonce too low"); + if (operationType != OperationType.RECOVER) { + uint32 counter = c.timestamp / interval - t0; + require(counter == index, "Index - timestamp mismatch"); + uint8 expectedNonce = nonces[counter]; + require(nonce >= expectedNonce, "Nonce too low"); + } require(!c.completed, "Commit already completed"); // This normally should not happen, but when the network is congested (regardless of whether due to an attacker's malicious acts or not), the legitimate reveal may become untimely. This may happen before the old commit is cleaned up by another fresh commit. We enforce this restriction so that the attacker would not have a lot of time to reverse-engineer a single EOTP or leaf using an old commit. require(_isRevealTimely(c.timestamp), "Reveal too late"); @@ -432,16 +434,17 @@ contract ONEWallet is TokenTracker { revert("No valid commit"); } - function _completeReveal(bytes32 commitHash, uint32 commitIndex) internal { + function _completeReveal(bytes32 commitHash, uint32 commitIndex, OperationType operationType) internal { Commit[] storage cc = commitLocker[commitHash]; require(cc.length > 0, "Invalid commit hash"); require(cc.length > commitIndex, "Invalid commitIndex"); Commit storage c = cc[commitIndex]; require(c.timestamp > 0, "Invalid commit timestamp"); - // should not happen - uint32 index = uint32(c.timestamp) / interval - t0; - _incrementNonce(index); - _cleanupNonces(); + if (operationType != OperationType.RECOVER) { + uint32 index = uint32(c.timestamp) / interval - t0; + _incrementNonce(index); + _cleanupNonces(); + } c.completed = true; } From 7b57e9fbe1577c69ea7af4959aa760c6637a77a8 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 03:37:17 -0700 Subject: [PATCH 35/59] compiled contracts --- code/build/contracts/ONEWallet.json | 10536 ++++++++++++++------------ 1 file changed, 5506 insertions(+), 5030 deletions(-) diff --git a/code/build/contracts/ONEWallet.json b/code/build/contracts/ONEWallet.json index 53493895..b883c284 100644 --- a/code/build/contracts/ONEWallet.json +++ b/code/build/contracts/ONEWallet.json @@ -904,9 +904,9 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root_\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"height_\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"interval_\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"t0_\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"lifespan_\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"maxOperationsPerInterval_\",\"type\":\"uint8\"},{\"internalType\":\"address payable\",\"name\":\"lastResortAddress_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"dailyLimit_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"AutoRecoveryTriggered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"current\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"ExceedDailyLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"InsufficientFund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"LastResortAddressNotSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"PaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"PaymentSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ReceivedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"RecoveryFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenNotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenTracked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"TokenTransferError\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenUntracked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"UnknownTransferError\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"verificationHash\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"findCommit\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllCommits\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCommits\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentSpending\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInfo\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrackedTokens\",\"outputs\":[{\"internalType\":\"enum TokenTracker.TokenType[]\",\"name\":\"\",\"type\":\"uint8[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVersion\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"lookupCommit\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"retire\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"neighbors\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32\",\"name\":\"indexWithNonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"eotp\",\"type\":\"bytes32\"},{\"internalType\":\"enum ONEWallet.OperationType\",\"name\":\"operationType\",\"type\":\"uint8\"},{\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"dest\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"reveal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/ONEWallet.sol\":\"ONEWallet\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xfce1eb6398eae0e2b50251140866a70a3106193f101972c878bba1dbf44929ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f0709c3f462b28b400f57db181254ad970967c3b49a8948ef5e05929b106ffe\",\"dweb:/ipfs/QmNe3sRmPKw1T7q7m733tk7tFKpi3jo9PCisDPMbjeg3kJ\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x7de6e64d4a8075e803a972cc77c4c91463e0c3777e4110eacfb5d4a71759b2fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b3b09ef36374c1c104ee896797dadf2e81466d2143b481d3f1ddc7d9f3873\",\"dweb:/ipfs/QmSWtqs28RHDezRWBbmEfqiPYwsGTKj44NRbuxvZ96cqMU\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\",\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf101e8720213560fab41104d53b3cc7ba0456ef3a98455aa7f022391783144a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e7820bcf567e6892d937c3cb10db263a4042e446799bca602535868d822384e\",\"dweb:/ipfs/QmPG2oeDjKncqsEeyYGjAN7CwAJmMgHterXGGnpzhha4z7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xd9517254724276e2e8de3769183c1f738f445f0095c26fd9b86d3c6687e887b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e604bcdcd5e5b2fb299ad09769cde6db19d5aa1929d1b5e939234a0f10d7eb8\",\"dweb:/ipfs/Qmd8hXE3GZfBHuWx3RNiYgFW2ci7KvHtib8DiwzJ2dgo9V\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xa28007762d9da9db878dd421960c8cb9a10471f47ab5c1b3309bfe48e9e79ff4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://796ab6e88af7bf0e78def0f059310c903af6a312b565344e0ff524a0f26e81c6\",\"dweb:/ipfs/QmcsVgLgzWdor3UnAztUkXKNGcysm1MPneWksF72AvnwBx\"]},\"project:/contracts/ONEWallet.sol\":{\"keccak256\":\"0x3c460e524aa8f0f382ba1b2664859e44fee3eb4e981cc4afce3bb88a4a6ed7c2\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5529453131bc55a1ccbdb48f9443b7c6b1ac3dfa3fc6fa3dc2866cc6839e9db3\",\"dweb:/ipfs/QmeZVpS7mAgCPJyq1iPSjWwj3XbieqssMjxTLieMT4Gy3X\"]},\"project:/contracts/TokenTracker.sol\":{\"keccak256\":\"0x153e8bd4263b7b071e5c4e9e44f5da2afb16c74207e8a6a071c837721de1747b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5550ad4a2929a9216432939182544a355ccfa1fdc04566497d4215d08171d115\",\"dweb:/ipfs/QmRkCR7qmJP6oLqFs7FbAZNgQUV9PNRLweP4Kkv3L81AW7\"]}},\"version\":1}", - "bytecode": "0x6101606040523480156200001257600080fd5b506040516200554938038062005549833981016040819052620000359162000117565b60808890527fff0000000000000000000000000000000000000000000000000000000000000060f888811b821660a05287811b821660c0526001600160e01b031960e088811b8216815287901b1661010052600280546001600160a01b0386166001600160a01b0319909116179055600383905584901b1661012052620000be600188620002d2565b620000cb90600262000204565b60e01b6001600160e01b03191661014052506200030e9650505050505050565b805163ffffffff811681146200010057600080fd5b919050565b805160ff811681146200010057600080fd5b600080600080600080600080610100898b03121562000134578384fd5b885197506200014660208a0162000105565b96506200015660408a0162000105565b95506200016660608a01620000eb565b94506200017660808a01620000eb565b93506200018660a08a0162000105565b60c08a01519093506001600160a01b0381168114620001a3578283fd5b8092505060e089015190509295985092959890939650565b600181815b80851115620001fc578160001904821115620001e057620001e0620002f8565b80851615620001ee57918102915b93841c9390800290620001c0565b509250929050565b60006200021560ff8416836200021c565b9392505050565b6000826200022d57506001620002cc565b816200023c57506000620002cc565b8160018114620002555760028114620002605762000280565b6001915050620002cc565b60ff841115620002745762000274620002f8565b50506001821b620002cc565b5060208310610133831016604e8410600b8410161715620002a5575081810a620002cc565b620002b18383620001bb565b8060001904821115620002c857620002c8620002f8565b0290505b92915050565b600060ff821660ff841680821015620002ef57620002ef620002f8565b90039392505050565b634e487b7160e01b600052601160045260246000fd5b60805160a05160f81c60c05160f81c60e05160e01c6101005160e01c6101205160f81c6101405160e01c615150620003f9600039600081816110eb0152611d850152600081816103b20152818161220001526122310152600081816103900152610e6101526000818161036e01528181610e83015281816113d00152818161239c0152818161270201528181613c870152613cbe01526000818161034c01528181610ea9015281816113f6015281816123c40152818161272a0152613c5b01526000818161032a01528181611c960152611dc90152600081816103080152611f7501526151506000f3fe6080604052600436106100f75760003560e01c8063a17027e11161008a578063d087d28811610059578063d087d288146104d5578063d87458a3146104fc578063e4e5b2581461051c578063f23a6e611461053c57600080fd5b8063a17027e11461045a578063a4874d7714610480578063bc197c8114610495578063c34a6dad146104b557600080fd5b80632293d3fb116100c65780632293d3fb1461029e5780632f1f7520146102cb5780635a9b0b89146102f0578063695def4c1461043657600080fd5b806301ffc9a7146101c05780630d8e6e2c146101f5578063150b7a02146102175780631cf4ea051461025057600080fd5b366101bb57604080513481523360208201527fa26ab80e902f2055a125714fc6f2eb15df2a09c7fe39c7fc71204ffba72109db910160405180910390a1670de0b6b3a7640000341461014557005b6002546001600160a01b0316331461015957005b6002546001600160a01b031661016b57005b3330141561017557005b6040513381527f0cbe1fea4becf04af2176bbef0c9c53d439d30a05a197aacc38bb4a2873222e39060200160405180910390a16101b061055c565b6101b957600080fd5b005b600080fd5b3480156101cc57600080fd5b506101e06101db3660046148b8565b6105bb565b60405190151581526020015b60405180910390f35b34801561020157600080fd5b50604080516007815260036020820152016101ec565b34801561022357600080fd5b50610237610232366004614668565b61060d565b6040516001600160e01b031990911681526020016101ec565b34801561025c57600080fd5b5061027061026b36600461485d565b610673565b6040516101ec9493929190938452602084019290925263ffffffff1660408301521515606082015260800190565b3480156102aa57600080fd5b506004546005546040805192835263ffffffff9091166020830152016101ec565b3480156102d757600080fd5b506102e06106b9565b6040516101ec9493929190614b9a565b3480156102fc57600080fd5b506103e06002546003547f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0390911691565b6040805198895260ff97881660208a01529587169588019590955263ffffffff9384166060880152919092166080860152921660a08401526001600160a01b0390911660c083015260e0820152610100016101ec565b34801561044257600080fd5b5061044b6106f6565b6040516101ec93929190614be7565b34801561046657600080fd5b5061046f6109e4565b6040516101ec959493929190614b39565b34801561048c57600080fd5b506101e0610e58565b3480156104a157600080fd5b506102376104b03660046145ae565b610fc6565b3480156104c157600080fd5b506101b96104d0366004614751565b6110d8565b3480156104e157600080fd5b506104ea6113cb565b60405160ff90911681526020016101ec565b34801561050857600080fd5b5061046f61051736600461485d565b611444565b34801561052857600080fd5b506101b961053736600461488d565b6117b6565b34801561054857600080fd5b506102376105573660046146d8565b6118d7565b60025460405160009182916001600160a01b039091169047908381818185875af1925050503d80600081146105ad576040519150601f19603f3d011682016040523d82523d6000602084013e6105b2565b606091505b50909392505050565b60006001600160e01b031982166301ffc9a760e01b14806105ec57506001600160e01b0319821663f23a6e6160e01b145b8061060757506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161064d989796959493929190614d6a565b60405180910390a16106616001338661193e565b50630a85bd0160e11b95945050505050565b60008060008060405162461bcd60e51b81526004016106b0906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b60405180910390fd5b60608060608060405162461bcd60e51b81526004016106b0906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b606080606060006001805490506001600160401b0381111561072857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610751578160200160208202803683370190505b506001549091506000906001600160401b0381111561078057634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156107a9578160200160208202803683370190505b506001549091506000906001600160401b038111156107d857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610801578160200160208202803683370190505b50905060005b60015463ffffffff821610156109d75760018163ffffffff168154811061083e57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061087d57634e487b7160e01b600052603260045260246000fd5b602002602001019060038111156108a457634e487b7160e01b600052602160045260246000fd5b908160038111156108c557634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106108f057634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff168151811061093b57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061098257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff16815181106109ba57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806109cf81614fbb565b915050610807565b5091959094509092509050565b60608060608060606000805b60085463ffffffff82161015610a6e5760006009600060088463ffffffff1681548110610a2d57634e487b7160e01b600052603260045260246000fd5b906000526020600020015481526020019081526020016000209050808054905083610a589190614e4c565b9250508080610a6690614fbb565b9150506109f0565b5060008163ffffffff166001600160401b03811115610a9d57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610ac6578160200160208202803683370190505b50905060008263ffffffff166001600160401b03811115610af757634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b20578160200160208202803683370190505b50905060008363ffffffff166001600160401b03811115610b5157634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b7a578160200160208202803683370190505b50905060008463ffffffff166001600160401b03811115610bab57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610bd4578160200160208202803683370190505b50905060008563ffffffff166001600160401b03811115610c0557634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c2e578160200160208202803683370190505b5090506000805b60085463ffffffff82161015610e455760006009600060088463ffffffff1681548110610c7257634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020905060005b815463ffffffff82161015610e30576000828263ffffffff1681548110610cc757634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201905080600001548a8663ffffffff1681518110610d0257634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154898663ffffffff1681518110610d3957634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154888663ffffffff1681518110610d7057634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154875163ffffffff918216918991908816908110610dad57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16868663ffffffff1681518110610dff57634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015284610e1981614fbb565b955050508080610e2890614fbb565b915050610c90565b50508080610e3d90614fbb565b915050610c35565b50949b939a509198509650945092505050565b600063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000610ecf60ff7f00000000000000000000000000000000000000000000000000000000000000001642614e74565b610ed99190614f0d565b63ffffffff1611610f225760405162461bcd60e51b8152602060048201526013602482015272546f6f206561726c7920746f2072657469726560681b60448201526064016106b0565b6002546001600160a01b0316610f7a5760405162461bcd60e51b815260206004820152601e60248201527f4c617374207265736f72742061646472657373206973206e6f7420736574000060448201526064016106b0565b610f8261055c565b610fc05760405162461bcd60e51b815260206004820152600f60248201526e149958dbdd995c9e4819985a5b1959608a1b60448201526064016106b0565b50600190565b6000805b63ffffffff81168711156110c2573063f23a6e618b8b8b8b63ffffffff871681811061100657634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061103357634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161105d96959493929190614aad565b602060405180830381600087803b15801561107757600080fd5b505af115801561108b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110af91906148d4565b50806110ba81614fbb565b915050610fca565b5063bc197c8160e01b9998505050505050505050565b6110e48c8c8c8c611c8f565b61110f60017f0000000000000000000000000000000000000000000000000000000000000000614f0d565b63ffffffff168a63ffffffff16141561119d57600688600781111561114457634e487b7160e01b600052602160045260246000fd5b1461119d5760405162461bcd60e51b815260206004820152602360248201527f4c617374206f7065726174696f6e20726573657276656420666f72207265636f6044820152623b32b960e91b60648201526084016106b0565b6000806111da8e8e60008181106111c457634e487b7160e01b600052603260045260246000fd5b905060200201358d8d8d8d8d8d8d8d8d8d611fde565b9150915060006111ec838e848f6121f6565b90506111f883826125c8565b60008b600781111561121a57634e487b7160e01b600052602160045260246000fd5b141561124057831561123557611230858561278f565b6113ba565b6112308a8a8a61193e565b60018b600781111561126257634e487b7160e01b600052602160045260246000fd5b1415611283578315611279576112308a8a8a61291f565b6112308585612f6d565b60028b60078111156112a557634e487b7160e01b600052602160045260246000fd5b14156112ef576112308a8a8a8a8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061304392505050565b60038b600781111561131157634e487b7160e01b600052602160045260246000fd5b14156113215761123085856133bf565b60048b600781111561134357634e487b7160e01b600052602160045260246000fd5b1415611359576113538787613587565b506113ba565b60068b600781111561137b57634e487b7160e01b600052602160045260246000fd5b1415611389576113536137a9565b60058b60078111156113ab57634e487b7160e01b600052602160045260246000fd5b14156113ba576113ba87613826565b505050505050505050505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000061141c60ff7f00000000000000000000000000000000000000000000000000000000000000001642614e88565b6114269190614f0d565b63ffffffff1660009081526006602052604090205460ff1692915050565b600081815260096020526040812080546060928392839283928392916001600160401b0381111561148557634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114ae578160200160208202803683370190505b5082549091506000906001600160401b038111156114dc57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611505578160200160208202803683370190505b5083549091506000906001600160401b0381111561153357634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561155c578160200160208202803683370190505b5084549091506000906001600160401b0381111561158a57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156115b3578160200160208202803683370190505b5085549091506000906001600160401b038111156115e157634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561160a578160200160208202803683370190505b50905060005b865463ffffffff821610156117a2576000878263ffffffff168154811061164757634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060000154878363ffffffff168151811061168257634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154868363ffffffff16815181106116b957634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154858363ffffffff16815181106116f057634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154845163ffffffff91821691869190851690811061172d57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16838363ffffffff168151811061177f57634e487b7160e01b600052603260045260246000fd5b91151560209283029190910190910152508061179a81614fbb565b915050611610565b50939b929a50909850965090945092505050565b6117be6138ac565b6040805160a0810182528481526020810184905290810182905263ffffffff42166060820152600060808201526008546078116118305760405162461bcd60e51b815260206004820152601060248201526f546f6f206d616e7920636f6d6d69747360801b60448201526064016106b0565b6008805460018181019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018590556000948552600960209081526040808720805480850182559088529682902084516004909802019687559083015191860191909155810151600285015560608101516003909401805460809092015115156401000000000264ffffffffff1990921663ffffffff90951694909417179092555050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a8989604051611917989796959493929190614d6a565b60405180910390a161192b6002338761193e565b5063f23a6e6160e01b9695505050505050565b600083600381111561196057634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915015611b455760005b60008281526020819052604090205463ffffffff82161015611b43576000828152602081905260408120805463ffffffff8416908110611a0957634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115611a3657634e487b7160e01b600052602160045260246000fd5b60018281548110611a5757634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115611a8a57634e487b7160e01b600052602160045260246000fd5b14611a955750611b31565b8360018281548110611ab757634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414611ad45750611b31565b846001600160a01b031660018281548110611aff57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614611b295750611b31565b505050505050565b80611b3b81614fbb565b9150506119b9565b505b60006040518060600160405280866003811115611b7257634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff191690836003811115611c1757634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a290611c8090879087908790614c78565b60405180910390a15050505050565b611cba60017f0000000000000000000000000000000000000000000000000000000000000000614f32565b60ff168314611d0b5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420656e6f756768206e65696768626f72732070726f766964656400000060448201526064016106b0565b6000600282604051602001611d2291815260200190565b60408051601f1981840301815290829052611d3c91614a54565b602060405180830381855afa158015611d59573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611d7c9190614875565b9050611da960017f0000000000000000000000000000000000000000000000000000000000000000614f0d565b63ffffffff168363ffffffff161415611dbf5750805b60005b611ded60017f0000000000000000000000000000000000000000000000000000000000000000614f32565b60ff168160ff161015611f715760018085161415611ead57600286868360ff16818110611e2a57634e487b7160e01b600052603260045260246000fd5b9050602002013583604051602001611e4c929190918252602082015260400190565b60408051601f1981840301815290829052611e6691614a54565b602060405180830381855afa158015611e83573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ea69190614875565b9150611f51565b60028287878460ff16818110611ed357634e487b7160e01b600052603260045260246000fd5b90506020020135604051602001611ef4929190918252602082015260400190565b60408051601f1981840301815290829052611f0e91614a54565b602060405180830381855afa158015611f2b573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611f4e9190614875565b91505b60018463ffffffff16901c93508080611f6990614fdf565b915050611dc2565b50807f000000000000000000000000000000000000000000000000000000000000000014611fd65760405162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81a5b98dbdc9c9958dd60721b60448201526064016106b0565b505b50505050565b60008060008d8d60e01b6001600160e01b0319168d604051602001612016939291909283526020830191909152604082015260600190565b60408051601f1981840301815291905280516020909101209050600060048c600781111561205457634e487b7160e01b600052602160045260246000fd5b1415612097576040805160608a811b6001600160601b0319166020830152918101899052015b6040516020818303038152906040528051906020012090506121e2565b60068c60078111156120b957634e487b7160e01b600052602160045260246000fd5b14156120de5785856040516120cf929190614a44565b604051809103902090506121e2565b60058c600781111561210057634e487b7160e01b600052602160045260246000fd5b141561212457604080516001600160601b031960608b901b1660208201520161207a565b60008c600781111561214657634e487b7160e01b600052602160045260246000fd5b8c600381111561216657634e487b7160e01b600052602160045260246000fd5b60001b8c60601b6001600160601b0319168c60001b8c60601b6001600160601b0319168c60001b8c8c6040516020016121a6989796959493929190614a07565b6040516020818303038152906040529050806040516020016121c89190614a54565b604051602081830303815290604052805190602001209150505b909e909d509b505050505050505050505050565b60008061222660ff7f00000000000000000000000000000000000000000000000000000000000000001686614e88565b9050600061225760ff7f00000000000000000000000000000000000000000000000000000000000000001687614fff565b60008881526009602052604090208054919250906122a95760405162461bcd60e51b815260206004820152600f60248201526e139bc818dbdb5b5a5d08199bdd5b99608a1b60448201526064016106b0565b60005b815463ffffffff82161015612585576000828263ffffffff16815481106122e357634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190506000816001015488604051602001612315929190918252602082015260400190565b6040516020818303038152906040528051906020012090508082600201541461233f575050612573565b888260010154146123925760405162461bcd60e51b815260206004820152601760248201527f506172616d657465722068617368206d69736d6174636800000000000000000060448201526064016106b0565b60038201546000907f0000000000000000000000000000000000000000000000000000000000000000906123f09060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614e88565b6123fa9190614f0d565b90508663ffffffff168163ffffffff16146124575760405162461bcd60e51b815260206004820152601a60248201527f496e646578202d2074696d657374616d70206d69736d6174636800000000000060448201526064016106b0565b63ffffffff811660009081526006602052604090205460ff9081169087168111156124b45760405162461bcd60e51b815260206004820152600d60248201526c4e6f6e636520746f6f206c6f7760981b60448201526064016106b0565b6003840154640100000000900460ff16156125115760405162461bcd60e51b815260206004820152601860248201527f436f6d6d697420616c726561647920636f6d706c65746564000000000000000060448201526064016106b0565b60038401546125259063ffffffff16613b87565b6125635760405162461bcd60e51b815260206004820152600f60248201526e52657665616c20746f6f206c61746560881b60448201526064016106b0565b84985050505050505050506125c0565b8061257d81614fbb565b9150506122ac565b5060405162461bcd60e51b815260206004820152600f60248201526e139bc81d985b1a590818dbdb5b5a5d608a1b60448201526064016106b0565b949350505050565b6000828152600960205260409020805461261a5760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e840d0c2e6d606b1b60448201526064016106b0565b805463ffffffff8316106126665760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e892dcc8caf606b1b60448201526064016106b0565b6000818363ffffffff168154811061268e57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600490910201600381015490915063ffffffff166126f85760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420636f6d6d69742074696d657374616d70000000000000000060448201526064016106b0565b60038101546000907f0000000000000000000000000000000000000000000000000000000000000000906127569060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614e88565b6127609190614f0d565b905061276b81613ba2565b612773613c43565b50600301805464ff000000001916640100000000179055505050565b600061279c606083614e74565b9050816127aa826060614eca565b63ffffffff16146127cd5760405162461bcd60e51b81526004016106b090614dc8565b60005b8163ffffffff168163ffffffff161015611fd857600061286085856127f6856060614eca565b63ffffffff1690612808866060614eca565b612813906020614e4c565b63ffffffff169261282693929190614e0c565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f1e92505050565b600381111561287f57634e487b7160e01b600052602160045260246000fd5b905060006128bb8686612893866060614eca565b61289e906020614e4c565b63ffffffff16906128b0876060614eca565b612813906034614e4c565b60601c905060006128fc87878660606128d49190614eca565b6128df906040614e4c565b63ffffffff16906128f1886060614eca565b612813906060614e4c565b905061290983838361193e565b505050808061291790614fbb565b9150506127d0565b600083600381111561294157634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915061299c5750505050565b60005b60008281526020819052604090205463ffffffff82161015612f2b576000828152602081905260408120805463ffffffff84169081106129ef57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115612a1c57634e487b7160e01b600052602160045260246000fd5b60018281548110612a3d57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612a7057634e487b7160e01b600052602160045260246000fd5b14612a7b5750612f19565b8360018281548110612a9d57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414612aba5750612f19565b846001600160a01b031660018281548110612ae557634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614612b0f5750612f19565b60018054600091612b1f91614ef6565b905060018181548110612b4257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160018381548110612b7157634e487b7160e01b600052603260045260246000fd5b6000918252602090912082546002909202018054909160ff1690829060ff19166001836003811115612bb357634e487b7160e01b600052602160045260246000fd5b021790555081548154610100600160a81b031916610100918290046001600160a01b03169091021781556001918201549082015580546000919084908110612c0b57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612c3e57634e487b7160e01b600052602160045260246000fd5b6001805485908110612c6057634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b031660601b6001600160601b03191660018581548110612cb357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015460001b604051602001612ceb939291909283526020830191909152604082015260600190565b6040516020818303038152906040528051906020012090506001805480612d2257634e487b7160e01b600052603160045260246000fd5b60008281526020812060026000199093019283020180546001600160a81b031916815560010181905591555b60008281526020819052604090205463ffffffff82161015612e0a57826000808481526020019081526020016000208263ffffffff1681548110612da257634e487b7160e01b600052603260045260246000fd5b90600052602060002001541415612df857836000808481526020019081526020016000208263ffffffff1681548110612deb57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b80612e0281614fbb565b915050612d4e565b5060008581526020819052604090208054612e2790600190614ef6565b81548110612e4557634e487b7160e01b600052603260045260246000fd5b90600052602060002001546000808781526020019081526020016000208481548110612e8157634e487b7160e01b600052603260045260246000fd5b9060005260206000200181905550600080868152602001908152602001600020805480612ebe57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590557f166bc904e3b7f8699e175923a2635944dd9ac0dc817927aac60d854d23a82b9b888888604051612f0793929190614c78565b60405180910390a15050505050505050565b80612f2381614fbb565b91505061299f565b507ffc773cf3883ef83133327fbc62fe0a7c3c96add34a1781cae66ba5de7efa3f5f848484604051612f5f93929190614c78565b60405180910390a150505050565b6000612f7a606083614e74565b905081612f88826060614eca565b63ffffffff1614612fab5760405162461bcd60e51b81526004016106b090614dc8565b60005b8163ffffffff168163ffffffff161015611fd8576000612fd485856127f6856060614eca565b6003811115612ff357634e487b7160e01b600052602160045260246000fd5b905060006130078686612893866060614eca565b60601c9050600061302087878660606128d49190614eca565b905061302d83838361291f565b505050808061303b90614fbb565b915050612fae565b600086600381111561306557634e487b7160e01b600052602160045260246000fd5b141561321d5760405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905286169063a9059cbb90604401602060405180830381600087803b1580156130b557600080fd5b505af19250505080156130e5575060408051601f3d908101601f191682019092526130e291810190614836565b60015b61319e576130f161504e565b806308c379a014156131585750613106615066565b80613111575061315a565b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba87878787878660405161314a96959493929190614cdb565b60405180910390a150611b29565b505b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba8686868686604051613191959493929190614d22565b60405180910390a1611b29565b80156131e6576131af87878761193e565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b31878787878760405161314a959493929190614ca0565b7f75a36803468aca74d964b22522480470a7a3f2121daa5994c2a937aec85d2329878787878760405161314a959493929190614ca0565b600186600381111561323f57634e487b7160e01b600052602160045260246000fd5b14156132e557604051635c46a7ef60e11b81526001600160a01b0386169063b88d4fde90613277903090879089908790600401614a70565b600060405180830381600087803b15801561329157600080fd5b505af19250505080156132a2575060015b6132ae576130f161504e565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b318686868686604051613191959493929190614ca0565b600286600381111561330757634e487b7160e01b600052602160045260246000fd5b1415611b2957604051637921219560e11b81526001600160a01b0386169063f242432a906133419030908790899088908890600401614af4565b600060405180830381600087803b15801561335b57600080fd5b505af192505050801561336c575060015b613378576130f161504e565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516133af959493929190614ca0565b60405180910390a1505050505050565b60006133cc606083614e74565b9050816133da826060614eca565b63ffffffff16146133fd5760405162461bcd60e51b81526004016106b090614dc8565b60008163ffffffff166001600160401b0381111561342b57634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561347657816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816134495790505b50905060005b8263ffffffff168163ffffffff16101561357d5760006134a286866127f6856060614eca565b60038111156134c157634e487b7160e01b600052602160045260246000fd5b905060006134d58787612893866060614eca565b60601c905060006134ee88888660606128d49190614eca565b60001c9050604051806060016040528084600381111561351e57634e487b7160e01b600052602160045260246000fd5b8152602001836001600160a01b0316815260200182815250858563ffffffff168151811061355c57634e487b7160e01b600052603260045260246000fd5b6020026020010181905250505050808061357590614fbb565b91505061347c565b50611fd881613faa565b6000806135976201518042614e74565b60055490915063ffffffff90811690821611156135c95760006004556005805463ffffffff191663ffffffff83161790555b600354836004546135da9190614e34565b111561363f576003546004546040805186815260208101939093528201526001600160a01b03851660608201527f705f289c5579ebb63d8c90ed39a42a76ded07641efe4f445a9a97d1e95c75c68906080015b60405180910390a16000915050610607565b8247101561368f57604080518481524760208201526001600160a01b038616918101919091527fd90084f259c3c1dbd378c6c23cff1383005852e0d9829773e15afdbaf15fb7d89060600161362d565b82600460008282546136a19190614e34565b90915550506040516000906001600160a01b0386169085908381818185875af1925050503d80600081146136f1576040519150601f19603f3d011682016040523d82523d6000602084013e6136f6565b606091505b505090508061375d5783600460008282546137119190614ef6565b90915550506040516001600160a01b03861681527f2c7068ca7f82b1436494678e109b299bc751ccbb88d560f7c011b48dfdb2117b9060200160405180910390a1600092505050610607565b604080518581526001600160a01b03871660208201527f8f4636f285a9a17fe3479ab47bb7a5deadaf9b2295a16c3965f55fa48e542d1f910160405180910390a1506001949350505050565b6002546000906001600160a01b03166137eb576040517fc27dbdcf29e2a161f0420d399444129801e578bafe157fef0370098459e082bf90600090a150600090565b6137f361055c565b610fc0576040517fa3a244603d968c02ebd2017f990d4e077cf0381929976be2a0cb07076147a56f90600090a150600090565b6002546001600160a01b03161561388a5760405162461bcd60e51b815260206004820152602260248201527f4c617374207265736f7274206164647265737320697320616c72656164792073604482015261195d60f21b60648201526084016106b0565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000425b60085463ffffffff8316101561398257600060088363ffffffff16815481106138e957634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015480835260099091526040909120805491925090613915575050613970565b60008160008154811061393857634e487b7160e01b600052603260045260246000fd5b6000918252602090912060036004909202019081015490915063ffffffff603b198601811691161061396c57505050613982565b5050505b8161397a81614fbb565b9250506138b0565b63ffffffff8216613991575050565b60005b8263ffffffff168163ffffffff161015613a9457600060088263ffffffff16815481106139d157634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260408220909250905b815463ffffffff82161015613a6757818163ffffffff1681548110613a2557634e487b7160e01b600052603260045260246000fd5b600091825260208220600490910201818155600181018290556002810191909155600301805464ffffffffff1916905580613a5f81614fbb565b9150506139f0565b506000828152600960205260408120613a7f91614365565b50508080613a8c90614fbb565b915050613994565b50600854825b8163ffffffff168163ffffffff161015613b275760088163ffffffff1681548110613ad557634e487b7160e01b600052603260045260246000fd5b9060005260206000200154600885830363ffffffff1681548110613b0957634e487b7160e01b600052603260045260246000fd5b60009182526020909120015580613b1f81614fbb565b915050613a9a565b5060005b8363ffffffff168163ffffffff161015611fd8576008805480613b5e57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558080613b7f90614fbb565b915050613b2b565b6000603c613b958342614f0d565b63ffffffff161092915050565b63ffffffff811660009081526006602052604090205460ff1680613c16576007805460018101825560008290527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68860088204018054919092166004026101000a63ffffffff81810219909216918516021790555b63ffffffff919091166000908152600660205260409020805460ff1916600190920160ff16919091179055565b6000613c50603c42614f0d565b90506000613c8160ff7f00000000000000000000000000000000000000000000000000000000000000001683614e88565b905060007f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff161115613ce657613ce37f000000000000000000000000000000000000000000000000000000000000000083614f0d565b90505b6007546000906001600160401b03811115613d1157634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613d3a578160200160208202803683370190505b5090506000805b60075460ff82161015613e1d57600060078260ff1681548110613d7457634e487b7160e01b600052603260045260246000fd5b6000918252602090912060088204015460079091166004026101000a900463ffffffff90811691508516811015613dc75763ffffffff81166000908152600660205260409020805460ff19169055613e0a565b80848463ffffffff1681518110613dee57634e487b7160e01b600052603260045260246000fd5b63ffffffff909216602092830291909101909101526001909201915b5080613e1581614fdf565b915050613d41565b5060008163ffffffff166001600160401b03811115613e4c57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613e75578160200160208202803683370190505b50905060005b8263ffffffff168160ff161015613f0157838160ff1681518110613eaf57634e487b7160e01b600052603260045260246000fd5b6020026020010151828260ff1681518110613eda57634e487b7160e01b600052603260045260246000fd5b63ffffffff9092166020928302919091019091015280613ef981614fdf565b915050613e7b565b508051613f15906007906020840190614389565b50505050505050565b6000815160001415613f3257506000919050565b602082511115613f7b5760405162461bcd60e51b8152602060048201526014602482015273696e70757420627974657320746f6f206c6f6e6760601b60448201526064016106b0565b60008083516020613f8c9190614ef6565b613f97906008614eab565b60209490940151841c90931b9392505050565b60005b60015463ffffffff8216101561411d57600060018263ffffffff1681548110613fe657634e487b7160e01b600052603260045260246000fd5b600091825260208220600290910201546001805460ff90921693509063ffffffff851690811061402657634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b03169050600060018463ffffffff168154811061407657634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154905060008360038111156140ac57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905290822090925061410691614438565b50505050808061411590614fbb565b915050613fad565b5061412a60016000614456565b60005b81518163ffffffff161015614361576000828263ffffffff168151811061416457634e487b7160e01b600052603260045260246000fd5b60200260200101516000015190506000838363ffffffff168151811061419a57634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000848463ffffffff16815181106141d057634e487b7160e01b600052603260045260246000fd5b6020026020010151604001519050600083600381111561420057634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b0319169183019190915281018390526080016040516020818303038152906040528051906020012090506000604051806060016040528086600381111561426f57634e487b7160e01b600052602160045260246000fd5b81526001600160a01b03861660208201526040018490526001805480820182556000829052825160029091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805493945084939092839160ff1916908360038111156142ed57634e487b7160e01b600052602160045260246000fd5b021790555060208281015182546001600160a01b0390911661010002610100600160a81b03199091161782556040928301516001928301556000948552848152918420805491820181558452922063ffffffff8716920191909155508392506143599150829050614fbb565b91505061412d565b5050565b50805460008255600402906000526020600020908101906143869190614477565b50565b828054828255906000526020600020906007016008900481019282156144285791602002820160005b838211156143f657835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026143b2565b80156144265782816101000a81549063ffffffff02191690556004016020816003010492830192600103026143f6565b505b506144349291506144a9565b5090565b508054600082559060005260206000209081019061438691906144a9565b508054600082556002029060005260206000209081019061438691906144be565b5b8082111561443457600080825560018201819055600282015560038101805464ffffffffff19169055600401614478565b5b8082111561443457600081556001016144aa565b5b808211156144345780546001600160a81b0319168155600060018201556002016144bf565b80356144ef816150ef565b919050565b60008083601f840112614505578182fd5b5081356001600160401b0381111561451b578182fd5b6020830191508360208260051b850101111561453657600080fd5b9250929050565b60008083601f84011261454e578182fd5b5081356001600160401b03811115614564578182fd5b60208301915083602082850101111561453657600080fd5b8035600881106144ef57600080fd5b8035600481106144ef57600080fd5b803563ffffffff811681146144ef57600080fd5b60008060008060008060008060a0898b0312156145c9578384fd5b88356145d4816150ef565b975060208901356145e4816150ef565b965060408901356001600160401b03808211156145ff578586fd5b61460b8c838d016144f4565b909850965060608b0135915080821115614623578586fd5b61462f8c838d016144f4565b909650945060808b0135915080821115614647578384fd5b506146548b828c0161453d565b999c989b5096995094979396929594505050565b60008060008060006080868803121561467f578081fd5b853561468a816150ef565b9450602086013561469a816150ef565b93506040860135925060608601356001600160401b038111156146bb578182fd5b6146c78882890161453d565b969995985093965092949392505050565b60008060008060008060a087890312156146f0578182fd5b86356146fb816150ef565b9550602087013561470b816150ef565b9450604087013593506060870135925060808701356001600160401b03811115614733578283fd5b61473f89828a0161453d565b979a9699509497509295939492505050565b6000806000806000806000806000806000806101408d8f031215614773578384fd5b6001600160401b038d351115614787578384fd5b6147948e8e358f016144f4565b909c509a506147a560208e0161459a565b995060408d013598506147ba60608e0161457c565b97506147c860808e0161458b565b96506147d660a08e016144e4565b955060c08d013594506147eb60e08e016144e4565b93506101008d013592506001600160401b036101208e0135111561480d578081fd5b61481e8e6101208f01358f0161453d565b81935080925050509295989b509295989b509295989b565b600060208284031215614847578081fd5b81518015158114614856578182fd5b9392505050565b60006020828403121561486e578081fd5b5035919050565b600060208284031215614886578081fd5b5051919050565b6000806000606084860312156148a1578081fd5b505081359360208301359350604090920135919050565b6000602082840312156148c9578081fd5b813561485681615104565b6000602082840312156148e5578081fd5b815161485681615104565b6000815180845260208085019450808401835b83811015614921578151151587529582019590820190600101614903565b509495945050505050565b6000815180845260208085019450808401835b838110156149215781518752958201959082019060010161493f565b6000815180845260208085019450808401835b8381101561492157815163ffffffff168752958201959082019060010161496e565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600081518084526149d1816020860160208601614f55565b601f01601f19169290920160200192915050565b60048110614a0357634e487b7160e01b600052602160045260246000fd5b9052565b8881528760208201528660408201528560608201528460808201528360a0820152818360c08301376000910160c001908152979650505050505050565b8183823760009101908152919050565b60008251614a66818460208701614f55565b9190910192915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614aa3908301846149b9565b9695505050505050565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090614ae89083018486614990565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614b2e908301846149b9565b979650505050505050565b60a081526000614b4c60a083018861492c565b8281036020840152614b5e818861492c565b90508281036040840152614b72818761492c565b90508281036060840152614b86818661495b565b90508281036080840152614ae881856148f0565b608081526000614bad608083018761492c565b8281036020840152614bbf818761492c565b90508281036040840152614bd3818661495b565b90508281036060840152614b2e81856148f0565b606080825284519082018190526000906020906080840190828801845b82811015614c2757614c178483516149e5565b9284019290840190600101614c04565b50505083810382850152855180825286830191830190845b81811015614c645783516001600160a01b031683529284019291840191600101614c3f565b50508481036040860152614ae8818761492c565b60608101614c8682866149e5565b6001600160a01b0393909316602082015260400152919050565b60a08101614cae82886149e5565b6001600160a01b039586166020830152604082019490945291909316606082015260800191909152919050565b614ce581886149e5565b6001600160a01b03868116602083015260408201869052841660608201526080810183905260c060a08201819052600090614ae8908301846149b9565b614d2c81876149e5565b6001600160a01b039485166020820152604081019390935292166060820152608081019190915260c060a0820181905260009082015260e001919050565b614d74818a6149e5565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090614dba9083018486614990565b9a9950505050505050505050565b60208082526024908201527f64617461206d7573742068617665206c656e677468206d756c7469706c65207460408201526337901c9b60e11b606082015260800190565b60008085851115614e1b578182fd5b83861115614e27578182fd5b5050820193919092039150565b60008219821115614e4757614e47615022565b500190565b600063ffffffff808316818516808303821115614e6b57614e6b615022565b01949350505050565b600082614e8357614e83615038565b500490565b600063ffffffff80841680614e9f57614e9f615038565b92169190910492915050565b6000816000190483118215151615614ec557614ec5615022565b500290565b600063ffffffff80831681851681830481118215151615614eed57614eed615022565b02949350505050565b600082821015614f0857614f08615022565b500390565b600063ffffffff83811690831681811015614f2a57614f2a615022565b039392505050565b600060ff821660ff841680821015614f4c57614f4c615022565b90039392505050565b60005b83811015614f70578181015183820152602001614f58565b83811115611fd85750506000910152565b601f8201601f191681016001600160401b0381118282101715614fb457634e487b7160e01b600052604160045260246000fd5b6040525050565b600063ffffffff80831681811415614fd557614fd5615022565b6001019392505050565b600060ff821660ff811415614ff657614ff6615022565b60010192915050565b600063ffffffff8084168061501657615016615038565b92169190910692915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600060033d111561506357600481823e5160e01c5b90565b600060443d10156150745790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156150a357505050505090565b82850191508151818111156150bb5750505050505090565b843d87010160208285010111156150d55750505050505090565b6150e460208286010187614f81565b509095945050505050565b6001600160a01b038116811461438657600080fd5b6001600160e01b03198116811461438657600080fdfea26469706673582212200f9e228c040d7b73400f5654f10fd2cf9b55cdff84a942e901fadc26f5e3d4c064736f6c63430008040033", - "deployedBytecode": "0x6080604052600436106100f75760003560e01c8063a17027e11161008a578063d087d28811610059578063d087d288146104d5578063d87458a3146104fc578063e4e5b2581461051c578063f23a6e611461053c57600080fd5b8063a17027e11461045a578063a4874d7714610480578063bc197c8114610495578063c34a6dad146104b557600080fd5b80632293d3fb116100c65780632293d3fb1461029e5780632f1f7520146102cb5780635a9b0b89146102f0578063695def4c1461043657600080fd5b806301ffc9a7146101c05780630d8e6e2c146101f5578063150b7a02146102175780631cf4ea051461025057600080fd5b366101bb57604080513481523360208201527fa26ab80e902f2055a125714fc6f2eb15df2a09c7fe39c7fc71204ffba72109db910160405180910390a1670de0b6b3a7640000341461014557005b6002546001600160a01b0316331461015957005b6002546001600160a01b031661016b57005b3330141561017557005b6040513381527f0cbe1fea4becf04af2176bbef0c9c53d439d30a05a197aacc38bb4a2873222e39060200160405180910390a16101b061055c565b6101b957600080fd5b005b600080fd5b3480156101cc57600080fd5b506101e06101db3660046148b8565b6105bb565b60405190151581526020015b60405180910390f35b34801561020157600080fd5b50604080516007815260036020820152016101ec565b34801561022357600080fd5b50610237610232366004614668565b61060d565b6040516001600160e01b031990911681526020016101ec565b34801561025c57600080fd5b5061027061026b36600461485d565b610673565b6040516101ec9493929190938452602084019290925263ffffffff1660408301521515606082015260800190565b3480156102aa57600080fd5b506004546005546040805192835263ffffffff9091166020830152016101ec565b3480156102d757600080fd5b506102e06106b9565b6040516101ec9493929190614b9a565b3480156102fc57600080fd5b506103e06002546003547f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0390911691565b6040805198895260ff97881660208a01529587169588019590955263ffffffff9384166060880152919092166080860152921660a08401526001600160a01b0390911660c083015260e0820152610100016101ec565b34801561044257600080fd5b5061044b6106f6565b6040516101ec93929190614be7565b34801561046657600080fd5b5061046f6109e4565b6040516101ec959493929190614b39565b34801561048c57600080fd5b506101e0610e58565b3480156104a157600080fd5b506102376104b03660046145ae565b610fc6565b3480156104c157600080fd5b506101b96104d0366004614751565b6110d8565b3480156104e157600080fd5b506104ea6113cb565b60405160ff90911681526020016101ec565b34801561050857600080fd5b5061046f61051736600461485d565b611444565b34801561052857600080fd5b506101b961053736600461488d565b6117b6565b34801561054857600080fd5b506102376105573660046146d8565b6118d7565b60025460405160009182916001600160a01b039091169047908381818185875af1925050503d80600081146105ad576040519150601f19603f3d011682016040523d82523d6000602084013e6105b2565b606091505b50909392505050565b60006001600160e01b031982166301ffc9a760e01b14806105ec57506001600160e01b0319821663f23a6e6160e01b145b8061060757506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161064d989796959493929190614d6a565b60405180910390a16106616001338661193e565b50630a85bd0160e11b95945050505050565b60008060008060405162461bcd60e51b81526004016106b0906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b60405180910390fd5b60608060608060405162461bcd60e51b81526004016106b0906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b606080606060006001805490506001600160401b0381111561072857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610751578160200160208202803683370190505b506001549091506000906001600160401b0381111561078057634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156107a9578160200160208202803683370190505b506001549091506000906001600160401b038111156107d857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610801578160200160208202803683370190505b50905060005b60015463ffffffff821610156109d75760018163ffffffff168154811061083e57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061087d57634e487b7160e01b600052603260045260246000fd5b602002602001019060038111156108a457634e487b7160e01b600052602160045260246000fd5b908160038111156108c557634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106108f057634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff168151811061093b57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061098257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff16815181106109ba57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806109cf81614fbb565b915050610807565b5091959094509092509050565b60608060608060606000805b60085463ffffffff82161015610a6e5760006009600060088463ffffffff1681548110610a2d57634e487b7160e01b600052603260045260246000fd5b906000526020600020015481526020019081526020016000209050808054905083610a589190614e4c565b9250508080610a6690614fbb565b9150506109f0565b5060008163ffffffff166001600160401b03811115610a9d57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610ac6578160200160208202803683370190505b50905060008263ffffffff166001600160401b03811115610af757634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b20578160200160208202803683370190505b50905060008363ffffffff166001600160401b03811115610b5157634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b7a578160200160208202803683370190505b50905060008463ffffffff166001600160401b03811115610bab57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610bd4578160200160208202803683370190505b50905060008563ffffffff166001600160401b03811115610c0557634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c2e578160200160208202803683370190505b5090506000805b60085463ffffffff82161015610e455760006009600060088463ffffffff1681548110610c7257634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020905060005b815463ffffffff82161015610e30576000828263ffffffff1681548110610cc757634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201905080600001548a8663ffffffff1681518110610d0257634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154898663ffffffff1681518110610d3957634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154888663ffffffff1681518110610d7057634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154875163ffffffff918216918991908816908110610dad57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16868663ffffffff1681518110610dff57634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015284610e1981614fbb565b955050508080610e2890614fbb565b915050610c90565b50508080610e3d90614fbb565b915050610c35565b50949b939a509198509650945092505050565b600063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000610ecf60ff7f00000000000000000000000000000000000000000000000000000000000000001642614e74565b610ed99190614f0d565b63ffffffff1611610f225760405162461bcd60e51b8152602060048201526013602482015272546f6f206561726c7920746f2072657469726560681b60448201526064016106b0565b6002546001600160a01b0316610f7a5760405162461bcd60e51b815260206004820152601e60248201527f4c617374207265736f72742061646472657373206973206e6f7420736574000060448201526064016106b0565b610f8261055c565b610fc05760405162461bcd60e51b815260206004820152600f60248201526e149958dbdd995c9e4819985a5b1959608a1b60448201526064016106b0565b50600190565b6000805b63ffffffff81168711156110c2573063f23a6e618b8b8b8b63ffffffff871681811061100657634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061103357634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161105d96959493929190614aad565b602060405180830381600087803b15801561107757600080fd5b505af115801561108b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110af91906148d4565b50806110ba81614fbb565b915050610fca565b5063bc197c8160e01b9998505050505050505050565b6110e48c8c8c8c611c8f565b61110f60017f0000000000000000000000000000000000000000000000000000000000000000614f0d565b63ffffffff168a63ffffffff16141561119d57600688600781111561114457634e487b7160e01b600052602160045260246000fd5b1461119d5760405162461bcd60e51b815260206004820152602360248201527f4c617374206f7065726174696f6e20726573657276656420666f72207265636f6044820152623b32b960e91b60648201526084016106b0565b6000806111da8e8e60008181106111c457634e487b7160e01b600052603260045260246000fd5b905060200201358d8d8d8d8d8d8d8d8d8d611fde565b9150915060006111ec838e848f6121f6565b90506111f883826125c8565b60008b600781111561121a57634e487b7160e01b600052602160045260246000fd5b141561124057831561123557611230858561278f565b6113ba565b6112308a8a8a61193e565b60018b600781111561126257634e487b7160e01b600052602160045260246000fd5b1415611283578315611279576112308a8a8a61291f565b6112308585612f6d565b60028b60078111156112a557634e487b7160e01b600052602160045260246000fd5b14156112ef576112308a8a8a8a8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061304392505050565b60038b600781111561131157634e487b7160e01b600052602160045260246000fd5b14156113215761123085856133bf565b60048b600781111561134357634e487b7160e01b600052602160045260246000fd5b1415611359576113538787613587565b506113ba565b60068b600781111561137b57634e487b7160e01b600052602160045260246000fd5b1415611389576113536137a9565b60058b60078111156113ab57634e487b7160e01b600052602160045260246000fd5b14156113ba576113ba87613826565b505050505050505050505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000061141c60ff7f00000000000000000000000000000000000000000000000000000000000000001642614e88565b6114269190614f0d565b63ffffffff1660009081526006602052604090205460ff1692915050565b600081815260096020526040812080546060928392839283928392916001600160401b0381111561148557634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114ae578160200160208202803683370190505b5082549091506000906001600160401b038111156114dc57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611505578160200160208202803683370190505b5083549091506000906001600160401b0381111561153357634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561155c578160200160208202803683370190505b5084549091506000906001600160401b0381111561158a57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156115b3578160200160208202803683370190505b5085549091506000906001600160401b038111156115e157634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561160a578160200160208202803683370190505b50905060005b865463ffffffff821610156117a2576000878263ffffffff168154811061164757634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060000154878363ffffffff168151811061168257634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154868363ffffffff16815181106116b957634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154858363ffffffff16815181106116f057634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154845163ffffffff91821691869190851690811061172d57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16838363ffffffff168151811061177f57634e487b7160e01b600052603260045260246000fd5b91151560209283029190910190910152508061179a81614fbb565b915050611610565b50939b929a50909850965090945092505050565b6117be6138ac565b6040805160a0810182528481526020810184905290810182905263ffffffff42166060820152600060808201526008546078116118305760405162461bcd60e51b815260206004820152601060248201526f546f6f206d616e7920636f6d6d69747360801b60448201526064016106b0565b6008805460018181019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018590556000948552600960209081526040808720805480850182559088529682902084516004909802019687559083015191860191909155810151600285015560608101516003909401805460809092015115156401000000000264ffffffffff1990921663ffffffff90951694909417179092555050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a8989604051611917989796959493929190614d6a565b60405180910390a161192b6002338761193e565b5063f23a6e6160e01b9695505050505050565b600083600381111561196057634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915015611b455760005b60008281526020819052604090205463ffffffff82161015611b43576000828152602081905260408120805463ffffffff8416908110611a0957634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115611a3657634e487b7160e01b600052602160045260246000fd5b60018281548110611a5757634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115611a8a57634e487b7160e01b600052602160045260246000fd5b14611a955750611b31565b8360018281548110611ab757634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414611ad45750611b31565b846001600160a01b031660018281548110611aff57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614611b295750611b31565b505050505050565b80611b3b81614fbb565b9150506119b9565b505b60006040518060600160405280866003811115611b7257634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff191690836003811115611c1757634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a290611c8090879087908790614c78565b60405180910390a15050505050565b611cba60017f0000000000000000000000000000000000000000000000000000000000000000614f32565b60ff168314611d0b5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420656e6f756768206e65696768626f72732070726f766964656400000060448201526064016106b0565b6000600282604051602001611d2291815260200190565b60408051601f1981840301815290829052611d3c91614a54565b602060405180830381855afa158015611d59573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611d7c9190614875565b9050611da960017f0000000000000000000000000000000000000000000000000000000000000000614f0d565b63ffffffff168363ffffffff161415611dbf5750805b60005b611ded60017f0000000000000000000000000000000000000000000000000000000000000000614f32565b60ff168160ff161015611f715760018085161415611ead57600286868360ff16818110611e2a57634e487b7160e01b600052603260045260246000fd5b9050602002013583604051602001611e4c929190918252602082015260400190565b60408051601f1981840301815290829052611e6691614a54565b602060405180830381855afa158015611e83573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ea69190614875565b9150611f51565b60028287878460ff16818110611ed357634e487b7160e01b600052603260045260246000fd5b90506020020135604051602001611ef4929190918252602082015260400190565b60408051601f1981840301815290829052611f0e91614a54565b602060405180830381855afa158015611f2b573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611f4e9190614875565b91505b60018463ffffffff16901c93508080611f6990614fdf565b915050611dc2565b50807f000000000000000000000000000000000000000000000000000000000000000014611fd65760405162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81a5b98dbdc9c9958dd60721b60448201526064016106b0565b505b50505050565b60008060008d8d60e01b6001600160e01b0319168d604051602001612016939291909283526020830191909152604082015260600190565b60408051601f1981840301815291905280516020909101209050600060048c600781111561205457634e487b7160e01b600052602160045260246000fd5b1415612097576040805160608a811b6001600160601b0319166020830152918101899052015b6040516020818303038152906040528051906020012090506121e2565b60068c60078111156120b957634e487b7160e01b600052602160045260246000fd5b14156120de5785856040516120cf929190614a44565b604051809103902090506121e2565b60058c600781111561210057634e487b7160e01b600052602160045260246000fd5b141561212457604080516001600160601b031960608b901b1660208201520161207a565b60008c600781111561214657634e487b7160e01b600052602160045260246000fd5b8c600381111561216657634e487b7160e01b600052602160045260246000fd5b60001b8c60601b6001600160601b0319168c60001b8c60601b6001600160601b0319168c60001b8c8c6040516020016121a6989796959493929190614a07565b6040516020818303038152906040529050806040516020016121c89190614a54565b604051602081830303815290604052805190602001209150505b909e909d509b505050505050505050505050565b60008061222660ff7f00000000000000000000000000000000000000000000000000000000000000001686614e88565b9050600061225760ff7f00000000000000000000000000000000000000000000000000000000000000001687614fff565b60008881526009602052604090208054919250906122a95760405162461bcd60e51b815260206004820152600f60248201526e139bc818dbdb5b5a5d08199bdd5b99608a1b60448201526064016106b0565b60005b815463ffffffff82161015612585576000828263ffffffff16815481106122e357634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190506000816001015488604051602001612315929190918252602082015260400190565b6040516020818303038152906040528051906020012090508082600201541461233f575050612573565b888260010154146123925760405162461bcd60e51b815260206004820152601760248201527f506172616d657465722068617368206d69736d6174636800000000000000000060448201526064016106b0565b60038201546000907f0000000000000000000000000000000000000000000000000000000000000000906123f09060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614e88565b6123fa9190614f0d565b90508663ffffffff168163ffffffff16146124575760405162461bcd60e51b815260206004820152601a60248201527f496e646578202d2074696d657374616d70206d69736d6174636800000000000060448201526064016106b0565b63ffffffff811660009081526006602052604090205460ff9081169087168111156124b45760405162461bcd60e51b815260206004820152600d60248201526c4e6f6e636520746f6f206c6f7760981b60448201526064016106b0565b6003840154640100000000900460ff16156125115760405162461bcd60e51b815260206004820152601860248201527f436f6d6d697420616c726561647920636f6d706c65746564000000000000000060448201526064016106b0565b60038401546125259063ffffffff16613b87565b6125635760405162461bcd60e51b815260206004820152600f60248201526e52657665616c20746f6f206c61746560881b60448201526064016106b0565b84985050505050505050506125c0565b8061257d81614fbb565b9150506122ac565b5060405162461bcd60e51b815260206004820152600f60248201526e139bc81d985b1a590818dbdb5b5a5d608a1b60448201526064016106b0565b949350505050565b6000828152600960205260409020805461261a5760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e840d0c2e6d606b1b60448201526064016106b0565b805463ffffffff8316106126665760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e892dcc8caf606b1b60448201526064016106b0565b6000818363ffffffff168154811061268e57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600490910201600381015490915063ffffffff166126f85760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420636f6d6d69742074696d657374616d70000000000000000060448201526064016106b0565b60038101546000907f0000000000000000000000000000000000000000000000000000000000000000906127569060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614e88565b6127609190614f0d565b905061276b81613ba2565b612773613c43565b50600301805464ff000000001916640100000000179055505050565b600061279c606083614e74565b9050816127aa826060614eca565b63ffffffff16146127cd5760405162461bcd60e51b81526004016106b090614dc8565b60005b8163ffffffff168163ffffffff161015611fd857600061286085856127f6856060614eca565b63ffffffff1690612808866060614eca565b612813906020614e4c565b63ffffffff169261282693929190614e0c565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f1e92505050565b600381111561287f57634e487b7160e01b600052602160045260246000fd5b905060006128bb8686612893866060614eca565b61289e906020614e4c565b63ffffffff16906128b0876060614eca565b612813906034614e4c565b60601c905060006128fc87878660606128d49190614eca565b6128df906040614e4c565b63ffffffff16906128f1886060614eca565b612813906060614e4c565b905061290983838361193e565b505050808061291790614fbb565b9150506127d0565b600083600381111561294157634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915061299c5750505050565b60005b60008281526020819052604090205463ffffffff82161015612f2b576000828152602081905260408120805463ffffffff84169081106129ef57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115612a1c57634e487b7160e01b600052602160045260246000fd5b60018281548110612a3d57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612a7057634e487b7160e01b600052602160045260246000fd5b14612a7b5750612f19565b8360018281548110612a9d57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414612aba5750612f19565b846001600160a01b031660018281548110612ae557634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614612b0f5750612f19565b60018054600091612b1f91614ef6565b905060018181548110612b4257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160018381548110612b7157634e487b7160e01b600052603260045260246000fd5b6000918252602090912082546002909202018054909160ff1690829060ff19166001836003811115612bb357634e487b7160e01b600052602160045260246000fd5b021790555081548154610100600160a81b031916610100918290046001600160a01b03169091021781556001918201549082015580546000919084908110612c0b57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612c3e57634e487b7160e01b600052602160045260246000fd5b6001805485908110612c6057634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b031660601b6001600160601b03191660018581548110612cb357634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015460001b604051602001612ceb939291909283526020830191909152604082015260600190565b6040516020818303038152906040528051906020012090506001805480612d2257634e487b7160e01b600052603160045260246000fd5b60008281526020812060026000199093019283020180546001600160a81b031916815560010181905591555b60008281526020819052604090205463ffffffff82161015612e0a57826000808481526020019081526020016000208263ffffffff1681548110612da257634e487b7160e01b600052603260045260246000fd5b90600052602060002001541415612df857836000808481526020019081526020016000208263ffffffff1681548110612deb57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b80612e0281614fbb565b915050612d4e565b5060008581526020819052604090208054612e2790600190614ef6565b81548110612e4557634e487b7160e01b600052603260045260246000fd5b90600052602060002001546000808781526020019081526020016000208481548110612e8157634e487b7160e01b600052603260045260246000fd5b9060005260206000200181905550600080868152602001908152602001600020805480612ebe57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590557f166bc904e3b7f8699e175923a2635944dd9ac0dc817927aac60d854d23a82b9b888888604051612f0793929190614c78565b60405180910390a15050505050505050565b80612f2381614fbb565b91505061299f565b507ffc773cf3883ef83133327fbc62fe0a7c3c96add34a1781cae66ba5de7efa3f5f848484604051612f5f93929190614c78565b60405180910390a150505050565b6000612f7a606083614e74565b905081612f88826060614eca565b63ffffffff1614612fab5760405162461bcd60e51b81526004016106b090614dc8565b60005b8163ffffffff168163ffffffff161015611fd8576000612fd485856127f6856060614eca565b6003811115612ff357634e487b7160e01b600052602160045260246000fd5b905060006130078686612893866060614eca565b60601c9050600061302087878660606128d49190614eca565b905061302d83838361291f565b505050808061303b90614fbb565b915050612fae565b600086600381111561306557634e487b7160e01b600052602160045260246000fd5b141561321d5760405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905286169063a9059cbb90604401602060405180830381600087803b1580156130b557600080fd5b505af19250505080156130e5575060408051601f3d908101601f191682019092526130e291810190614836565b60015b61319e576130f161504e565b806308c379a014156131585750613106615066565b80613111575061315a565b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba87878787878660405161314a96959493929190614cdb565b60405180910390a150611b29565b505b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba8686868686604051613191959493929190614d22565b60405180910390a1611b29565b80156131e6576131af87878761193e565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b31878787878760405161314a959493929190614ca0565b7f75a36803468aca74d964b22522480470a7a3f2121daa5994c2a937aec85d2329878787878760405161314a959493929190614ca0565b600186600381111561323f57634e487b7160e01b600052602160045260246000fd5b14156132e557604051635c46a7ef60e11b81526001600160a01b0386169063b88d4fde90613277903090879089908790600401614a70565b600060405180830381600087803b15801561329157600080fd5b505af19250505080156132a2575060015b6132ae576130f161504e565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b318686868686604051613191959493929190614ca0565b600286600381111561330757634e487b7160e01b600052602160045260246000fd5b1415611b2957604051637921219560e11b81526001600160a01b0386169063f242432a906133419030908790899088908890600401614af4565b600060405180830381600087803b15801561335b57600080fd5b505af192505050801561336c575060015b613378576130f161504e565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516133af959493929190614ca0565b60405180910390a1505050505050565b60006133cc606083614e74565b9050816133da826060614eca565b63ffffffff16146133fd5760405162461bcd60e51b81526004016106b090614dc8565b60008163ffffffff166001600160401b0381111561342b57634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561347657816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816134495790505b50905060005b8263ffffffff168163ffffffff16101561357d5760006134a286866127f6856060614eca565b60038111156134c157634e487b7160e01b600052602160045260246000fd5b905060006134d58787612893866060614eca565b60601c905060006134ee88888660606128d49190614eca565b60001c9050604051806060016040528084600381111561351e57634e487b7160e01b600052602160045260246000fd5b8152602001836001600160a01b0316815260200182815250858563ffffffff168151811061355c57634e487b7160e01b600052603260045260246000fd5b6020026020010181905250505050808061357590614fbb565b91505061347c565b50611fd881613faa565b6000806135976201518042614e74565b60055490915063ffffffff90811690821611156135c95760006004556005805463ffffffff191663ffffffff83161790555b600354836004546135da9190614e34565b111561363f576003546004546040805186815260208101939093528201526001600160a01b03851660608201527f705f289c5579ebb63d8c90ed39a42a76ded07641efe4f445a9a97d1e95c75c68906080015b60405180910390a16000915050610607565b8247101561368f57604080518481524760208201526001600160a01b038616918101919091527fd90084f259c3c1dbd378c6c23cff1383005852e0d9829773e15afdbaf15fb7d89060600161362d565b82600460008282546136a19190614e34565b90915550506040516000906001600160a01b0386169085908381818185875af1925050503d80600081146136f1576040519150601f19603f3d011682016040523d82523d6000602084013e6136f6565b606091505b505090508061375d5783600460008282546137119190614ef6565b90915550506040516001600160a01b03861681527f2c7068ca7f82b1436494678e109b299bc751ccbb88d560f7c011b48dfdb2117b9060200160405180910390a1600092505050610607565b604080518581526001600160a01b03871660208201527f8f4636f285a9a17fe3479ab47bb7a5deadaf9b2295a16c3965f55fa48e542d1f910160405180910390a1506001949350505050565b6002546000906001600160a01b03166137eb576040517fc27dbdcf29e2a161f0420d399444129801e578bafe157fef0370098459e082bf90600090a150600090565b6137f361055c565b610fc0576040517fa3a244603d968c02ebd2017f990d4e077cf0381929976be2a0cb07076147a56f90600090a150600090565b6002546001600160a01b03161561388a5760405162461bcd60e51b815260206004820152602260248201527f4c617374207265736f7274206164647265737320697320616c72656164792073604482015261195d60f21b60648201526084016106b0565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000425b60085463ffffffff8316101561398257600060088363ffffffff16815481106138e957634e487b7160e01b600052603260045260246000fd5b600091825260208083209091015480835260099091526040909120805491925090613915575050613970565b60008160008154811061393857634e487b7160e01b600052603260045260246000fd5b6000918252602090912060036004909202019081015490915063ffffffff603b198601811691161061396c57505050613982565b5050505b8161397a81614fbb565b9250506138b0565b63ffffffff8216613991575050565b60005b8263ffffffff168163ffffffff161015613a9457600060088263ffffffff16815481106139d157634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260408220909250905b815463ffffffff82161015613a6757818163ffffffff1681548110613a2557634e487b7160e01b600052603260045260246000fd5b600091825260208220600490910201818155600181018290556002810191909155600301805464ffffffffff1916905580613a5f81614fbb565b9150506139f0565b506000828152600960205260408120613a7f91614365565b50508080613a8c90614fbb565b915050613994565b50600854825b8163ffffffff168163ffffffff161015613b275760088163ffffffff1681548110613ad557634e487b7160e01b600052603260045260246000fd5b9060005260206000200154600885830363ffffffff1681548110613b0957634e487b7160e01b600052603260045260246000fd5b60009182526020909120015580613b1f81614fbb565b915050613a9a565b5060005b8363ffffffff168163ffffffff161015611fd8576008805480613b5e57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558080613b7f90614fbb565b915050613b2b565b6000603c613b958342614f0d565b63ffffffff161092915050565b63ffffffff811660009081526006602052604090205460ff1680613c16576007805460018101825560008290527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68860088204018054919092166004026101000a63ffffffff81810219909216918516021790555b63ffffffff919091166000908152600660205260409020805460ff1916600190920160ff16919091179055565b6000613c50603c42614f0d565b90506000613c8160ff7f00000000000000000000000000000000000000000000000000000000000000001683614e88565b905060007f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff161115613ce657613ce37f000000000000000000000000000000000000000000000000000000000000000083614f0d565b90505b6007546000906001600160401b03811115613d1157634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613d3a578160200160208202803683370190505b5090506000805b60075460ff82161015613e1d57600060078260ff1681548110613d7457634e487b7160e01b600052603260045260246000fd5b6000918252602090912060088204015460079091166004026101000a900463ffffffff90811691508516811015613dc75763ffffffff81166000908152600660205260409020805460ff19169055613e0a565b80848463ffffffff1681518110613dee57634e487b7160e01b600052603260045260246000fd5b63ffffffff909216602092830291909101909101526001909201915b5080613e1581614fdf565b915050613d41565b5060008163ffffffff166001600160401b03811115613e4c57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613e75578160200160208202803683370190505b50905060005b8263ffffffff168160ff161015613f0157838160ff1681518110613eaf57634e487b7160e01b600052603260045260246000fd5b6020026020010151828260ff1681518110613eda57634e487b7160e01b600052603260045260246000fd5b63ffffffff9092166020928302919091019091015280613ef981614fdf565b915050613e7b565b508051613f15906007906020840190614389565b50505050505050565b6000815160001415613f3257506000919050565b602082511115613f7b5760405162461bcd60e51b8152602060048201526014602482015273696e70757420627974657320746f6f206c6f6e6760601b60448201526064016106b0565b60008083516020613f8c9190614ef6565b613f97906008614eab565b60209490940151841c90931b9392505050565b60005b60015463ffffffff8216101561411d57600060018263ffffffff1681548110613fe657634e487b7160e01b600052603260045260246000fd5b600091825260208220600290910201546001805460ff90921693509063ffffffff851690811061402657634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b03169050600060018463ffffffff168154811061407657634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154905060008360038111156140ac57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905290822090925061410691614438565b50505050808061411590614fbb565b915050613fad565b5061412a60016000614456565b60005b81518163ffffffff161015614361576000828263ffffffff168151811061416457634e487b7160e01b600052603260045260246000fd5b60200260200101516000015190506000838363ffffffff168151811061419a57634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000848463ffffffff16815181106141d057634e487b7160e01b600052603260045260246000fd5b6020026020010151604001519050600083600381111561420057634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b0319169183019190915281018390526080016040516020818303038152906040528051906020012090506000604051806060016040528086600381111561426f57634e487b7160e01b600052602160045260246000fd5b81526001600160a01b03861660208201526040018490526001805480820182556000829052825160029091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805493945084939092839160ff1916908360038111156142ed57634e487b7160e01b600052602160045260246000fd5b021790555060208281015182546001600160a01b0390911661010002610100600160a81b03199091161782556040928301516001928301556000948552848152918420805491820181558452922063ffffffff8716920191909155508392506143599150829050614fbb565b91505061412d565b5050565b50805460008255600402906000526020600020908101906143869190614477565b50565b828054828255906000526020600020906007016008900481019282156144285791602002820160005b838211156143f657835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026143b2565b80156144265782816101000a81549063ffffffff02191690556004016020816003010492830192600103026143f6565b505b506144349291506144a9565b5090565b508054600082559060005260206000209081019061438691906144a9565b508054600082556002029060005260206000209081019061438691906144be565b5b8082111561443457600080825560018201819055600282015560038101805464ffffffffff19169055600401614478565b5b8082111561443457600081556001016144aa565b5b808211156144345780546001600160a81b0319168155600060018201556002016144bf565b80356144ef816150ef565b919050565b60008083601f840112614505578182fd5b5081356001600160401b0381111561451b578182fd5b6020830191508360208260051b850101111561453657600080fd5b9250929050565b60008083601f84011261454e578182fd5b5081356001600160401b03811115614564578182fd5b60208301915083602082850101111561453657600080fd5b8035600881106144ef57600080fd5b8035600481106144ef57600080fd5b803563ffffffff811681146144ef57600080fd5b60008060008060008060008060a0898b0312156145c9578384fd5b88356145d4816150ef565b975060208901356145e4816150ef565b965060408901356001600160401b03808211156145ff578586fd5b61460b8c838d016144f4565b909850965060608b0135915080821115614623578586fd5b61462f8c838d016144f4565b909650945060808b0135915080821115614647578384fd5b506146548b828c0161453d565b999c989b5096995094979396929594505050565b60008060008060006080868803121561467f578081fd5b853561468a816150ef565b9450602086013561469a816150ef565b93506040860135925060608601356001600160401b038111156146bb578182fd5b6146c78882890161453d565b969995985093965092949392505050565b60008060008060008060a087890312156146f0578182fd5b86356146fb816150ef565b9550602087013561470b816150ef565b9450604087013593506060870135925060808701356001600160401b03811115614733578283fd5b61473f89828a0161453d565b979a9699509497509295939492505050565b6000806000806000806000806000806000806101408d8f031215614773578384fd5b6001600160401b038d351115614787578384fd5b6147948e8e358f016144f4565b909c509a506147a560208e0161459a565b995060408d013598506147ba60608e0161457c565b97506147c860808e0161458b565b96506147d660a08e016144e4565b955060c08d013594506147eb60e08e016144e4565b93506101008d013592506001600160401b036101208e0135111561480d578081fd5b61481e8e6101208f01358f0161453d565b81935080925050509295989b509295989b509295989b565b600060208284031215614847578081fd5b81518015158114614856578182fd5b9392505050565b60006020828403121561486e578081fd5b5035919050565b600060208284031215614886578081fd5b5051919050565b6000806000606084860312156148a1578081fd5b505081359360208301359350604090920135919050565b6000602082840312156148c9578081fd5b813561485681615104565b6000602082840312156148e5578081fd5b815161485681615104565b6000815180845260208085019450808401835b83811015614921578151151587529582019590820190600101614903565b509495945050505050565b6000815180845260208085019450808401835b838110156149215781518752958201959082019060010161493f565b6000815180845260208085019450808401835b8381101561492157815163ffffffff168752958201959082019060010161496e565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600081518084526149d1816020860160208601614f55565b601f01601f19169290920160200192915050565b60048110614a0357634e487b7160e01b600052602160045260246000fd5b9052565b8881528760208201528660408201528560608201528460808201528360a0820152818360c08301376000910160c001908152979650505050505050565b8183823760009101908152919050565b60008251614a66818460208701614f55565b9190910192915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614aa3908301846149b9565b9695505050505050565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090614ae89083018486614990565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614b2e908301846149b9565b979650505050505050565b60a081526000614b4c60a083018861492c565b8281036020840152614b5e818861492c565b90508281036040840152614b72818761492c565b90508281036060840152614b86818661495b565b90508281036080840152614ae881856148f0565b608081526000614bad608083018761492c565b8281036020840152614bbf818761492c565b90508281036040840152614bd3818661495b565b90508281036060840152614b2e81856148f0565b606080825284519082018190526000906020906080840190828801845b82811015614c2757614c178483516149e5565b9284019290840190600101614c04565b50505083810382850152855180825286830191830190845b81811015614c645783516001600160a01b031683529284019291840191600101614c3f565b50508481036040860152614ae8818761492c565b60608101614c8682866149e5565b6001600160a01b0393909316602082015260400152919050565b60a08101614cae82886149e5565b6001600160a01b039586166020830152604082019490945291909316606082015260800191909152919050565b614ce581886149e5565b6001600160a01b03868116602083015260408201869052841660608201526080810183905260c060a08201819052600090614ae8908301846149b9565b614d2c81876149e5565b6001600160a01b039485166020820152604081019390935292166060820152608081019190915260c060a0820181905260009082015260e001919050565b614d74818a6149e5565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090614dba9083018486614990565b9a9950505050505050505050565b60208082526024908201527f64617461206d7573742068617665206c656e677468206d756c7469706c65207460408201526337901c9b60e11b606082015260800190565b60008085851115614e1b578182fd5b83861115614e27578182fd5b5050820193919092039150565b60008219821115614e4757614e47615022565b500190565b600063ffffffff808316818516808303821115614e6b57614e6b615022565b01949350505050565b600082614e8357614e83615038565b500490565b600063ffffffff80841680614e9f57614e9f615038565b92169190910492915050565b6000816000190483118215151615614ec557614ec5615022565b500290565b600063ffffffff80831681851681830481118215151615614eed57614eed615022565b02949350505050565b600082821015614f0857614f08615022565b500390565b600063ffffffff83811690831681811015614f2a57614f2a615022565b039392505050565b600060ff821660ff841680821015614f4c57614f4c615022565b90039392505050565b60005b83811015614f70578181015183820152602001614f58565b83811115611fd85750506000910152565b601f8201601f191681016001600160401b0381118282101715614fb457634e487b7160e01b600052604160045260246000fd5b6040525050565b600063ffffffff80831681811415614fd557614fd5615022565b6001019392505050565b600060ff821660ff811415614ff657614ff6615022565b60010192915050565b600063ffffffff8084168061501657615016615038565b92169190910692915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600060033d111561506357600481823e5160e01c5b90565b600060443d10156150745790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156150a357505050505090565b82850191508151818111156150bb5750505050505090565b843d87010160208285010111156150d55750505050505090565b6150e460208286010187614f81565b509095945050505050565b6001600160a01b038116811461438657600080fd5b6001600160e01b03198116811461438657600080fdfea26469706673582212200f9e228c040d7b73400f5654f10fd2cf9b55cdff84a942e901fadc26f5e3d4c064736f6c63430008040033", + "metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root_\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"height_\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"interval_\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"t0_\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"lifespan_\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"maxOperationsPerInterval_\",\"type\":\"uint8\"},{\"internalType\":\"address payable\",\"name\":\"lastResortAddress_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"dailyLimit_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"AutoRecoveryTriggered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"current\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"ExceedDailyLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"InsufficientFund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"LastResortAddressNotSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"PaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"PaymentSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ReceivedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"RecoveryFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenNotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenTracked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"TokenTransferError\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenUntracked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"UnknownTransferError\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"verificationHash\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"findCommit\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllCommits\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCommits\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentSpending\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInfo\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrackedTokens\",\"outputs\":[{\"internalType\":\"enum TokenTracker.TokenType[]\",\"name\":\"\",\"type\":\"uint8[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVersion\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"lookupCommit\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"retire\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"neighbors\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32\",\"name\":\"indexWithNonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"eotp\",\"type\":\"bytes32\"},{\"internalType\":\"enum ONEWallet.OperationType\",\"name\":\"operationType\",\"type\":\"uint8\"},{\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"dest\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"reveal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/ONEWallet.sol\":\"ONEWallet\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xfce1eb6398eae0e2b50251140866a70a3106193f101972c878bba1dbf44929ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f0709c3f462b28b400f57db181254ad970967c3b49a8948ef5e05929b106ffe\",\"dweb:/ipfs/QmNe3sRmPKw1T7q7m733tk7tFKpi3jo9PCisDPMbjeg3kJ\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x7de6e64d4a8075e803a972cc77c4c91463e0c3777e4110eacfb5d4a71759b2fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b3b09ef36374c1c104ee896797dadf2e81466d2143b481d3f1ddc7d9f3873\",\"dweb:/ipfs/QmSWtqs28RHDezRWBbmEfqiPYwsGTKj44NRbuxvZ96cqMU\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\",\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf101e8720213560fab41104d53b3cc7ba0456ef3a98455aa7f022391783144a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e7820bcf567e6892d937c3cb10db263a4042e446799bca602535868d822384e\",\"dweb:/ipfs/QmPG2oeDjKncqsEeyYGjAN7CwAJmMgHterXGGnpzhha4z7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xd9517254724276e2e8de3769183c1f738f445f0095c26fd9b86d3c6687e887b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e604bcdcd5e5b2fb299ad09769cde6db19d5aa1929d1b5e939234a0f10d7eb8\",\"dweb:/ipfs/Qmd8hXE3GZfBHuWx3RNiYgFW2ci7KvHtib8DiwzJ2dgo9V\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xa28007762d9da9db878dd421960c8cb9a10471f47ab5c1b3309bfe48e9e79ff4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://796ab6e88af7bf0e78def0f059310c903af6a312b565344e0ff524a0f26e81c6\",\"dweb:/ipfs/QmcsVgLgzWdor3UnAztUkXKNGcysm1MPneWksF72AvnwBx\"]},\"project:/contracts/ONEWallet.sol\":{\"keccak256\":\"0x2053288cb89b882fb5fb435952055eac827f8cacb27ab76ae693cf92ceac6161\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4ed8af3d81cf96976394b0589764e14a814f2fa78092c0bd720aee2c71265ee2\",\"dweb:/ipfs/QmcpGvbaZZAoMpp5ziUUQmyQaXFA6RabL7zChbfQHR2am8\"]},\"project:/contracts/TokenTracker.sol\":{\"keccak256\":\"0x153e8bd4263b7b071e5c4e9e44f5da2afb16c74207e8a6a071c837721de1747b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5550ad4a2929a9216432939182544a355ccfa1fdc04566497d4215d08171d115\",\"dweb:/ipfs/QmRkCR7qmJP6oLqFs7FbAZNgQUV9PNRLweP4Kkv3L81AW7\"]}},\"version\":1}", + "bytecode": "0x6101606040523480156200001257600080fd5b506040516200559538038062005595833981016040819052620000359162000117565b60808890527fff0000000000000000000000000000000000000000000000000000000000000060f888811b821660a05287811b821660c0526001600160e01b031960e088811b8216815287901b1661010052600280546001600160a01b0386166001600160a01b0319909116179055600383905584901b1661012052620000be600188620002d2565b620000cb90600262000204565b60e01b6001600160e01b03191661014052506200030e9650505050505050565b805163ffffffff811681146200010057600080fd5b919050565b805160ff811681146200010057600080fd5b600080600080600080600080610100898b03121562000134578384fd5b885197506200014660208a0162000105565b96506200015660408a0162000105565b95506200016660608a01620000eb565b94506200017660808a01620000eb565b93506200018660a08a0162000105565b60c08a01519093506001600160a01b0381168114620001a3578283fd5b8092505060e089015190509295985092959890939650565b600181815b80851115620001fc578160001904821115620001e057620001e0620002f8565b80851615620001ee57918102915b93841c9390800290620001c0565b509250929050565b60006200021560ff8416836200021c565b9392505050565b6000826200022d57506001620002cc565b816200023c57506000620002cc565b8160018114620002555760028114620002605762000280565b6001915050620002cc565b60ff841115620002745762000274620002f8565b50506001821b620002cc565b5060208310610133831016604e8410600b8410161715620002a5575081810a620002cc565b620002b18383620001bb565b8060001904821115620002c857620002c8620002f8565b0290505b92915050565b600060ff821660ff841680821015620002ef57620002ef620002f8565b90039392505050565b634e487b7160e01b600052601160045260246000fd5b60805160a05160f81c60c05160f81c60e05160e01c6101005160e01c6101205160f81c6101405160e01c61519c620003f9600039600081816110ec0152611d880152600081816103b20152818161220301526122340152600081816103900152610e6201526000818161036e01528181610e84015281816113d3015281816123c60152818161274c01528181613cd30152613d0a01526000818161034c01528181610eaa015281816113f9015281816123ee015281816127740152613ca701526000818161032a01528181611c990152611dcc0152600081816103080152611f78015261519c6000f3fe6080604052600436106100f75760003560e01c8063a17027e11161008a578063d087d28811610059578063d087d288146104d5578063d87458a3146104fc578063e4e5b2581461051c578063f23a6e611461053c57600080fd5b8063a17027e11461045a578063a4874d7714610480578063bc197c8114610495578063c34a6dad146104b557600080fd5b80632293d3fb116100c65780632293d3fb1461029e5780632f1f7520146102cb5780635a9b0b89146102f0578063695def4c1461043657600080fd5b806301ffc9a7146101c05780630d8e6e2c146101f5578063150b7a02146102175780631cf4ea051461025057600080fd5b366101bb57604080513481523360208201527fa26ab80e902f2055a125714fc6f2eb15df2a09c7fe39c7fc71204ffba72109db910160405180910390a1670de0b6b3a7640000341461014557005b6002546001600160a01b0316331461015957005b6002546001600160a01b031661016b57005b3330141561017557005b6040513381527f0cbe1fea4becf04af2176bbef0c9c53d439d30a05a197aacc38bb4a2873222e39060200160405180910390a16101b061055c565b6101b957600080fd5b005b600080fd5b3480156101cc57600080fd5b506101e06101db366004614904565b6105bb565b60405190151581526020015b60405180910390f35b34801561020157600080fd5b50604080516007815260036020820152016101ec565b34801561022357600080fd5b506102376102323660046146b4565b61060d565b6040516001600160e01b031990911681526020016101ec565b34801561025c57600080fd5b5061027061026b3660046148a9565b610674565b6040516101ec9493929190938452602084019290925263ffffffff1660408301521515606082015260800190565b3480156102aa57600080fd5b506004546005546040805192835263ffffffff9091166020830152016101ec565b3480156102d757600080fd5b506102e06106ba565b6040516101ec9493929190614be6565b3480156102fc57600080fd5b506103e06002546003547f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0390911691565b6040805198895260ff97881660208a01529587169588019590955263ffffffff9384166060880152919092166080860152921660a08401526001600160a01b0390911660c083015260e0820152610100016101ec565b34801561044257600080fd5b5061044b6106f7565b6040516101ec93929190614c33565b34801561046657600080fd5b5061046f6109e5565b6040516101ec959493929190614b85565b34801561048c57600080fd5b506101e0610e59565b3480156104a157600080fd5b506102376104b03660046145fa565b610fc7565b3480156104c157600080fd5b506101b96104d036600461479d565b6110d9565b3480156104e157600080fd5b506104ea6113ce565b60405160ff90911681526020016101ec565b34801561050857600080fd5b5061046f6105173660046148a9565b611447565b34801561052857600080fd5b506101b96105373660046148d9565b6117b9565b34801561054857600080fd5b50610237610557366004614724565b6118da565b60025460405160009182916001600160a01b039091169047908381818185875af1925050503d80600081146105ad576040519150601f19603f3d011682016040523d82523d6000602084013e6105b2565b606091505b50909392505050565b60006001600160e01b031982166301ffc9a760e01b14806105ec57506001600160e01b0319821663f23a6e6160e01b145b8061060757506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161064d989796959493929190614db6565b60405180910390a161066160013386611941565b50630a85bd0160e11b5b95945050505050565b60008060008060405162461bcd60e51b81526004016106b1906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b60405180910390fd5b60608060608060405162461bcd60e51b81526004016106b1906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b606080606060006001805490506001600160401b0381111561072957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610752578160200160208202803683370190505b506001549091506000906001600160401b0381111561078157634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156107aa578160200160208202803683370190505b506001549091506000906001600160401b038111156107d957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610802578160200160208202803683370190505b50905060005b60015463ffffffff821610156109d85760018163ffffffff168154811061083f57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061087e57634e487b7160e01b600052603260045260246000fd5b602002602001019060038111156108a557634e487b7160e01b600052602160045260246000fd5b908160038111156108c657634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106108f157634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff168151811061093c57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061098357634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff16815181106109bb57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806109d081615007565b915050610808565b5091959094509092509050565b60608060608060606000805b60085463ffffffff82161015610a6f5760006009600060088463ffffffff1681548110610a2e57634e487b7160e01b600052603260045260246000fd5b906000526020600020015481526020019081526020016000209050808054905083610a599190614e98565b9250508080610a6790615007565b9150506109f1565b5060008163ffffffff166001600160401b03811115610a9e57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610ac7578160200160208202803683370190505b50905060008263ffffffff166001600160401b03811115610af857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b21578160200160208202803683370190505b50905060008363ffffffff166001600160401b03811115610b5257634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b7b578160200160208202803683370190505b50905060008463ffffffff166001600160401b03811115610bac57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610bd5578160200160208202803683370190505b50905060008563ffffffff166001600160401b03811115610c0657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c2f578160200160208202803683370190505b5090506000805b60085463ffffffff82161015610e465760006009600060088463ffffffff1681548110610c7357634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020905060005b815463ffffffff82161015610e31576000828263ffffffff1681548110610cc857634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201905080600001548a8663ffffffff1681518110610d0357634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154898663ffffffff1681518110610d3a57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154888663ffffffff1681518110610d7157634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154875163ffffffff918216918991908816908110610dae57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16868663ffffffff1681518110610e0057634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015284610e1a81615007565b955050508080610e2990615007565b915050610c91565b50508080610e3e90615007565b915050610c36565b50949b939a509198509650945092505050565b600063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000610ed060ff7f00000000000000000000000000000000000000000000000000000000000000001642614ec0565b610eda9190614f59565b63ffffffff1611610f235760405162461bcd60e51b8152602060048201526013602482015272546f6f206561726c7920746f2072657469726560681b60448201526064016106b1565b6002546001600160a01b0316610f7b5760405162461bcd60e51b815260206004820152601e60248201527f4c617374207265736f72742061646472657373206973206e6f7420736574000060448201526064016106b1565b610f8361055c565b610fc15760405162461bcd60e51b815260206004820152600f60248201526e149958dbdd995c9e4819985a5b1959608a1b60448201526064016106b1565b50600190565b6000805b63ffffffff81168711156110c3573063f23a6e618b8b8b8b63ffffffff871681811061100757634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061103457634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161105e96959493929190614af9565b602060405180830381600087803b15801561107857600080fd5b505af115801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b09190614920565b50806110bb81615007565b915050610fcb565b5063bc197c8160e01b9998505050505050505050565b6110e58c8c8c8c611c92565b61111060017f0000000000000000000000000000000000000000000000000000000000000000614f59565b63ffffffff168a63ffffffff16141561119e57600688600781111561114557634e487b7160e01b600052602160045260246000fd5b1461119e5760405162461bcd60e51b815260206004820152602360248201527f4c617374206f7065726174696f6e20726573657276656420666f72207265636f6044820152623b32b960e91b60648201526084016106b1565b6000806111db8e8e60008181106111c557634e487b7160e01b600052603260045260246000fd5b905060200201358d8d8d8d8d8d8d8d8d8d611fe1565b9150915060006111ee838e848f8f6121f9565b90506111fb83828d6125eb565b60008b600781111561121d57634e487b7160e01b600052602160045260246000fd5b14156112435783156112385761123385856127db565b6113bd565b6112338a8a8a611941565b60018b600781111561126557634e487b7160e01b600052602160045260246000fd5b141561128657831561127c576112338a8a8a61296b565b6112338585612fb9565b60028b60078111156112a857634e487b7160e01b600052602160045260246000fd5b14156112f2576112338a8a8a8a8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061308f92505050565b60038b600781111561131457634e487b7160e01b600052602160045260246000fd5b141561132457611233858561340b565b60048b600781111561134657634e487b7160e01b600052602160045260246000fd5b141561135c5761135687876135d3565b506113bd565b60068b600781111561137e57634e487b7160e01b600052602160045260246000fd5b141561138c576113566137f5565b60058b60078111156113ae57634e487b7160e01b600052602160045260246000fd5b14156113bd576113bd87613872565b505050505050505050505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000061141f60ff7f00000000000000000000000000000000000000000000000000000000000000001642614ed4565b6114299190614f59565b63ffffffff1660009081526006602052604090205460ff1692915050565b600081815260096020526040812080546060928392839283928392916001600160401b0381111561148857634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114b1578160200160208202803683370190505b5082549091506000906001600160401b038111156114df57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611508578160200160208202803683370190505b5083549091506000906001600160401b0381111561153657634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561155f578160200160208202803683370190505b5084549091506000906001600160401b0381111561158d57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156115b6578160200160208202803683370190505b5085549091506000906001600160401b038111156115e457634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561160d578160200160208202803683370190505b50905060005b865463ffffffff821610156117a5576000878263ffffffff168154811061164a57634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060000154878363ffffffff168151811061168557634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154868363ffffffff16815181106116bc57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154858363ffffffff16815181106116f357634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154845163ffffffff91821691869190851690811061173057634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16838363ffffffff168151811061178257634e487b7160e01b600052603260045260246000fd5b91151560209283029190910190910152508061179d81615007565b915050611613565b50939b929a50909850965090945092505050565b6117c16138f8565b6040805160a0810182528481526020810184905290810182905263ffffffff42166060820152600060808201526008546078116118335760405162461bcd60e51b815260206004820152601060248201526f546f6f206d616e7920636f6d6d69747360801b60448201526064016106b1565b6008805460018181019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018590556000948552600960209081526040808720805480850182559088529682902084516004909802019687559083015191860191909155810151600285015560608101516003909401805460809092015115156401000000000264ffffffffff1990921663ffffffff90951694909417179092555050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a898960405161191a989796959493929190614db6565b60405180910390a161192e60023387611941565b5063f23a6e6160e01b9695505050505050565b600083600381111561196357634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915015611b485760005b60008281526020819052604090205463ffffffff82161015611b46576000828152602081905260408120805463ffffffff8416908110611a0c57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115611a3957634e487b7160e01b600052602160045260246000fd5b60018281548110611a5a57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115611a8d57634e487b7160e01b600052602160045260246000fd5b14611a985750611b34565b8360018281548110611aba57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414611ad75750611b34565b846001600160a01b031660018281548110611b0257634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614611b2c5750611b34565b505050505050565b80611b3e81615007565b9150506119bc565b505b60006040518060600160405280866003811115611b7557634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff191690836003811115611c1a57634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a290611c8390879087908790614cc4565b60405180910390a15050505050565b611cbd60017f0000000000000000000000000000000000000000000000000000000000000000614f7e565b60ff168314611d0e5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420656e6f756768206e65696768626f72732070726f766964656400000060448201526064016106b1565b6000600282604051602001611d2591815260200190565b60408051601f1981840301815290829052611d3f91614aa0565b602060405180830381855afa158015611d5c573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611d7f91906148c1565b9050611dac60017f0000000000000000000000000000000000000000000000000000000000000000614f59565b63ffffffff168363ffffffff161415611dc25750805b60005b611df060017f0000000000000000000000000000000000000000000000000000000000000000614f7e565b60ff168160ff161015611f745760018085161415611eb057600286868360ff16818110611e2d57634e487b7160e01b600052603260045260246000fd5b9050602002013583604051602001611e4f929190918252602082015260400190565b60408051601f1981840301815290829052611e6991614aa0565b602060405180830381855afa158015611e86573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ea991906148c1565b9150611f54565b60028287878460ff16818110611ed657634e487b7160e01b600052603260045260246000fd5b90506020020135604051602001611ef7929190918252602082015260400190565b60408051601f1981840301815290829052611f1191614aa0565b602060405180830381855afa158015611f2e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611f5191906148c1565b91505b60018463ffffffff16901c93508080611f6c9061502b565b915050611dc5565b50807f000000000000000000000000000000000000000000000000000000000000000014611fd95760405162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81a5b98dbdc9c9958dd60721b60448201526064016106b1565b505b50505050565b60008060008d8d60e01b6001600160e01b0319168d604051602001612019939291909283526020830191909152604082015260600190565b60408051601f1981840301815291905280516020909101209050600060048c600781111561205757634e487b7160e01b600052602160045260246000fd5b141561209a576040805160608a811b6001600160601b0319166020830152918101899052015b6040516020818303038152906040528051906020012090506121e5565b60068c60078111156120bc57634e487b7160e01b600052602160045260246000fd5b14156120e15785856040516120d2929190614a90565b604051809103902090506121e5565b60058c600781111561210357634e487b7160e01b600052602160045260246000fd5b141561212757604080516001600160601b031960608b901b1660208201520161207d565b60008c600781111561214957634e487b7160e01b600052602160045260246000fd5b8c600381111561216957634e487b7160e01b600052602160045260246000fd5b60001b8c60601b6001600160601b0319168c60001b8c60601b6001600160601b0319168c60001b8c8c6040516020016121a9989796959493929190614a53565b6040516020818303038152906040529050806040516020016121cb9190614aa0565b604051602081830303815290604052805190602001209150505b909e909d509b505050505050505050505050565b60008061222960ff7f00000000000000000000000000000000000000000000000000000000000000001687614ed4565b9050600061225a60ff7f0000000000000000000000000000000000000000000000000000000000000000168861504b565b60008981526009602052604090208054919250906122ac5760405162461bcd60e51b815260206004820152600f60248201526e139bc818dbdb5b5a5d08199bdd5b99608a1b60448201526064016106b1565b60005b815463ffffffff821610156125b0576000828263ffffffff16815481106122e657634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190506000816001015489604051602001612318929190918252602082015260400190565b6040516020818303038152906040528051906020012090508082600201541461234257505061259e565b898260010154146123955760405162461bcd60e51b815260206004820152601760248201527f506172616d657465722068617368206d69736d6174636800000000000000000060448201526064016106b1565b60068860078111156123b757634e487b7160e01b600052602160045260246000fd5b146124e15760038201546000907f00000000000000000000000000000000000000000000000000000000000000009061241a9060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614ed4565b6124249190614f59565b90508663ffffffff168163ffffffff16146124815760405162461bcd60e51b815260206004820152601a60248201527f496e646578202d2074696d657374616d70206d69736d6174636800000000000060448201526064016106b1565b63ffffffff811660009081526006602052604090205460ff9081169087168111156124de5760405162461bcd60e51b815260206004820152600d60248201526c4e6f6e636520746f6f206c6f7760981b60448201526064016106b1565b50505b6003820154640100000000900460ff161561253e5760405162461bcd60e51b815260206004820152601860248201527f436f6d6d697420616c726561647920636f6d706c65746564000000000000000060448201526064016106b1565b60038201546125529063ffffffff16613bd3565b6125905760405162461bcd60e51b815260206004820152600f60248201526e52657665616c20746f6f206c61746560881b60448201526064016106b1565b82965050505050505061066b565b806125a881615007565b9150506122af565b5060405162461bcd60e51b815260206004820152600f60248201526e139bc81d985b1a590818dbdb5b5a5d608a1b60448201526064016106b1565b6000838152600960205260409020805461263d5760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e840d0c2e6d606b1b60448201526064016106b1565b805463ffffffff8416106126895760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e892dcc8caf606b1b60448201526064016106b1565b6000818463ffffffff16815481106126b157634e487b7160e01b600052603260045260246000fd5b60009182526020909120600490910201600381015490915063ffffffff1661271b5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420636f6d6d69742074696d657374616d70000000000000000060448201526064016106b1565b600683600781111561273d57634e487b7160e01b600052602160045260246000fd5b146127bf5760038101546000907f0000000000000000000000000000000000000000000000000000000000000000906127a09060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614ed4565b6127aa9190614f59565b90506127b581613bee565b6127bd613c8f565b505b600301805464ff00000000191664010000000017905550505050565b60006127e8606083614ec0565b9050816127f6826060614f16565b63ffffffff16146128195760405162461bcd60e51b81526004016106b190614e14565b60005b8163ffffffff168163ffffffff161015611fdb5760006128ac8585612842856060614f16565b63ffffffff1690612854866060614f16565b61285f906020614e98565b63ffffffff169261287293929190614e58565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f6a92505050565b60038111156128cb57634e487b7160e01b600052602160045260246000fd5b9050600061290786866128df866060614f16565b6128ea906020614e98565b63ffffffff16906128fc876060614f16565b61285f906034614e98565b60601c9050600061294887878660606129209190614f16565b61292b906040614e98565b63ffffffff169061293d886060614f16565b61285f906060614e98565b9050612955838383611941565b505050808061296390615007565b91505061281c565b600083600381111561298d57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f1981840301815291815281516020928301206000818152928390529120549091506129e85750505050565b60005b60008281526020819052604090205463ffffffff82161015612f77576000828152602081905260408120805463ffffffff8416908110612a3b57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115612a6857634e487b7160e01b600052602160045260246000fd5b60018281548110612a8957634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612abc57634e487b7160e01b600052602160045260246000fd5b14612ac75750612f65565b8360018281548110612ae957634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414612b065750612f65565b846001600160a01b031660018281548110612b3157634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614612b5b5750612f65565b60018054600091612b6b91614f42565b905060018181548110612b8e57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160018381548110612bbd57634e487b7160e01b600052603260045260246000fd5b6000918252602090912082546002909202018054909160ff1690829060ff19166001836003811115612bff57634e487b7160e01b600052602160045260246000fd5b021790555081548154610100600160a81b031916610100918290046001600160a01b03169091021781556001918201549082015580546000919084908110612c5757634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612c8a57634e487b7160e01b600052602160045260246000fd5b6001805485908110612cac57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b031660601b6001600160601b03191660018581548110612cff57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015460001b604051602001612d37939291909283526020830191909152604082015260600190565b6040516020818303038152906040528051906020012090506001805480612d6e57634e487b7160e01b600052603160045260246000fd5b60008281526020812060026000199093019283020180546001600160a81b031916815560010181905591555b60008281526020819052604090205463ffffffff82161015612e5657826000808481526020019081526020016000208263ffffffff1681548110612dee57634e487b7160e01b600052603260045260246000fd5b90600052602060002001541415612e4457836000808481526020019081526020016000208263ffffffff1681548110612e3757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b80612e4e81615007565b915050612d9a565b5060008581526020819052604090208054612e7390600190614f42565b81548110612e9157634e487b7160e01b600052603260045260246000fd5b90600052602060002001546000808781526020019081526020016000208481548110612ecd57634e487b7160e01b600052603260045260246000fd5b9060005260206000200181905550600080868152602001908152602001600020805480612f0a57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590557f166bc904e3b7f8699e175923a2635944dd9ac0dc817927aac60d854d23a82b9b888888604051612f5393929190614cc4565b60405180910390a15050505050505050565b80612f6f81615007565b9150506129eb565b507ffc773cf3883ef83133327fbc62fe0a7c3c96add34a1781cae66ba5de7efa3f5f848484604051612fab93929190614cc4565b60405180910390a150505050565b6000612fc6606083614ec0565b905081612fd4826060614f16565b63ffffffff1614612ff75760405162461bcd60e51b81526004016106b190614e14565b60005b8163ffffffff168163ffffffff161015611fdb5760006130208585612842856060614f16565b600381111561303f57634e487b7160e01b600052602160045260246000fd5b9050600061305386866128df866060614f16565b60601c9050600061306c87878660606129209190614f16565b905061307983838361296b565b505050808061308790615007565b915050612ffa565b60008660038111156130b157634e487b7160e01b600052602160045260246000fd5b14156132695760405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905286169063a9059cbb90604401602060405180830381600087803b15801561310157600080fd5b505af1925050508015613131575060408051601f3d908101601f1916820190925261312e91810190614882565b60015b6131ea5761313d61509a565b806308c379a014156131a457506131526150b2565b8061315d57506131a6565b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba87878787878660405161319696959493929190614d27565b60405180910390a150611b2c565b505b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba86868686866040516131dd959493929190614d6e565b60405180910390a1611b2c565b8015613232576131fb878787611941565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b318787878787604051613196959493929190614cec565b7f75a36803468aca74d964b22522480470a7a3f2121daa5994c2a937aec85d23298787878787604051613196959493929190614cec565b600186600381111561328b57634e487b7160e01b600052602160045260246000fd5b141561333157604051635c46a7ef60e11b81526001600160a01b0386169063b88d4fde906132c3903090879089908790600401614abc565b600060405180830381600087803b1580156132dd57600080fd5b505af19250505080156132ee575060015b6132fa5761313d61509a565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516131dd959493929190614cec565b600286600381111561335357634e487b7160e01b600052602160045260246000fd5b1415611b2c57604051637921219560e11b81526001600160a01b0386169063f242432a9061338d9030908790899088908890600401614b40565b600060405180830381600087803b1580156133a757600080fd5b505af19250505080156133b8575060015b6133c45761313d61509a565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516133fb959493929190614cec565b60405180910390a1505050505050565b6000613418606083614ec0565b905081613426826060614f16565b63ffffffff16146134495760405162461bcd60e51b81526004016106b190614e14565b60008163ffffffff166001600160401b0381111561347757634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156134c257816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816134955790505b50905060005b8263ffffffff168163ffffffff1610156135c95760006134ee8686612842856060614f16565b600381111561350d57634e487b7160e01b600052602160045260246000fd5b9050600061352187876128df866060614f16565b60601c9050600061353a88888660606129209190614f16565b60001c9050604051806060016040528084600381111561356a57634e487b7160e01b600052602160045260246000fd5b8152602001836001600160a01b0316815260200182815250858563ffffffff16815181106135a857634e487b7160e01b600052603260045260246000fd5b602002602001018190525050505080806135c190615007565b9150506134c8565b50611fdb81613ff6565b6000806135e36201518042614ec0565b60055490915063ffffffff90811690821611156136155760006004556005805463ffffffff191663ffffffff83161790555b600354836004546136269190614e80565b111561368b576003546004546040805186815260208101939093528201526001600160a01b03851660608201527f705f289c5579ebb63d8c90ed39a42a76ded07641efe4f445a9a97d1e95c75c68906080015b60405180910390a16000915050610607565b824710156136db57604080518481524760208201526001600160a01b038616918101919091527fd90084f259c3c1dbd378c6c23cff1383005852e0d9829773e15afdbaf15fb7d890606001613679565b82600460008282546136ed9190614e80565b90915550506040516000906001600160a01b0386169085908381818185875af1925050503d806000811461373d576040519150601f19603f3d011682016040523d82523d6000602084013e613742565b606091505b50509050806137a957836004600082825461375d9190614f42565b90915550506040516001600160a01b03861681527f2c7068ca7f82b1436494678e109b299bc751ccbb88d560f7c011b48dfdb2117b9060200160405180910390a1600092505050610607565b604080518581526001600160a01b03871660208201527f8f4636f285a9a17fe3479ab47bb7a5deadaf9b2295a16c3965f55fa48e542d1f910160405180910390a1506001949350505050565b6002546000906001600160a01b0316613837576040517fc27dbdcf29e2a161f0420d399444129801e578bafe157fef0370098459e082bf90600090a150600090565b61383f61055c565b610fc1576040517fa3a244603d968c02ebd2017f990d4e077cf0381929976be2a0cb07076147a56f90600090a150600090565b6002546001600160a01b0316156138d65760405162461bcd60e51b815260206004820152602260248201527f4c617374207265736f7274206164647265737320697320616c72656164792073604482015261195d60f21b60648201526084016106b1565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000425b60085463ffffffff831610156139ce57600060088363ffffffff168154811061393557634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260409091208054919250906139615750506139bc565b60008160008154811061398457634e487b7160e01b600052603260045260246000fd5b6000918252602090912060036004909202019081015490915063ffffffff603b19860181169116106139b8575050506139ce565b5050505b816139c681615007565b9250506138fc565b63ffffffff82166139dd575050565b60005b8263ffffffff168163ffffffff161015613ae057600060088263ffffffff1681548110613a1d57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260408220909250905b815463ffffffff82161015613ab357818163ffffffff1681548110613a7157634e487b7160e01b600052603260045260246000fd5b600091825260208220600490910201818155600181018290556002810191909155600301805464ffffffffff1916905580613aab81615007565b915050613a3c565b506000828152600960205260408120613acb916143b1565b50508080613ad890615007565b9150506139e0565b50600854825b8163ffffffff168163ffffffff161015613b735760088163ffffffff1681548110613b2157634e487b7160e01b600052603260045260246000fd5b9060005260206000200154600885830363ffffffff1681548110613b5557634e487b7160e01b600052603260045260246000fd5b60009182526020909120015580613b6b81615007565b915050613ae6565b5060005b8363ffffffff168163ffffffff161015611fdb576008805480613baa57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558080613bcb90615007565b915050613b77565b6000603c613be18342614f59565b63ffffffff161092915050565b63ffffffff811660009081526006602052604090205460ff1680613c62576007805460018101825560008290527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68860088204018054919092166004026101000a63ffffffff81810219909216918516021790555b63ffffffff919091166000908152600660205260409020805460ff1916600190920160ff16919091179055565b6000613c9c603c42614f59565b90506000613ccd60ff7f00000000000000000000000000000000000000000000000000000000000000001683614ed4565b905060007f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff161115613d3257613d2f7f000000000000000000000000000000000000000000000000000000000000000083614f59565b90505b6007546000906001600160401b03811115613d5d57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613d86578160200160208202803683370190505b5090506000805b60075460ff82161015613e6957600060078260ff1681548110613dc057634e487b7160e01b600052603260045260246000fd5b6000918252602090912060088204015460079091166004026101000a900463ffffffff90811691508516811015613e135763ffffffff81166000908152600660205260409020805460ff19169055613e56565b80848463ffffffff1681518110613e3a57634e487b7160e01b600052603260045260246000fd5b63ffffffff909216602092830291909101909101526001909201915b5080613e618161502b565b915050613d8d565b5060008163ffffffff166001600160401b03811115613e9857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613ec1578160200160208202803683370190505b50905060005b8263ffffffff168160ff161015613f4d57838160ff1681518110613efb57634e487b7160e01b600052603260045260246000fd5b6020026020010151828260ff1681518110613f2657634e487b7160e01b600052603260045260246000fd5b63ffffffff9092166020928302919091019091015280613f458161502b565b915050613ec7565b508051613f619060079060208401906143d5565b50505050505050565b6000815160001415613f7e57506000919050565b602082511115613fc75760405162461bcd60e51b8152602060048201526014602482015273696e70757420627974657320746f6f206c6f6e6760601b60448201526064016106b1565b60008083516020613fd89190614f42565b613fe3906008614ef7565b60209490940151841c90931b9392505050565b60005b60015463ffffffff8216101561416957600060018263ffffffff168154811061403257634e487b7160e01b600052603260045260246000fd5b600091825260208220600290910201546001805460ff90921693509063ffffffff851690811061407257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b03169050600060018463ffffffff16815481106140c257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154905060008360038111156140f857634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905290822090925061415291614484565b50505050808061416190615007565b915050613ff9565b50614176600160006144a2565b60005b81518163ffffffff1610156143ad576000828263ffffffff16815181106141b057634e487b7160e01b600052603260045260246000fd5b60200260200101516000015190506000838363ffffffff16815181106141e657634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000848463ffffffff168151811061421c57634e487b7160e01b600052603260045260246000fd5b6020026020010151604001519050600083600381111561424c57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b031916918301919091528101839052608001604051602081830303815290604052805190602001209050600060405180606001604052808660038111156142bb57634e487b7160e01b600052602160045260246000fd5b81526001600160a01b03861660208201526040018490526001805480820182556000829052825160029091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805493945084939092839160ff19169083600381111561433957634e487b7160e01b600052602160045260246000fd5b021790555060208281015182546001600160a01b0390911661010002610100600160a81b03199091161782556040928301516001928301556000948552848152918420805491820181558452922063ffffffff8716920191909155508392506143a59150829050615007565b915050614179565b5050565b50805460008255600402906000526020600020908101906143d291906144c3565b50565b828054828255906000526020600020906007016008900481019282156144745791602002820160005b8382111561444257835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026143fe565b80156144725782816101000a81549063ffffffff0219169055600401602081600301049283019260010302614442565b505b506144809291506144f5565b5090565b50805460008255906000526020600020908101906143d291906144f5565b50805460008255600202906000526020600020908101906143d2919061450a565b5b8082111561448057600080825560018201819055600282015560038101805464ffffffffff191690556004016144c4565b5b8082111561448057600081556001016144f6565b5b808211156144805780546001600160a81b03191681556000600182015560020161450b565b803561453b8161513b565b919050565b60008083601f840112614551578182fd5b5081356001600160401b03811115614567578182fd5b6020830191508360208260051b850101111561458257600080fd5b9250929050565b60008083601f84011261459a578182fd5b5081356001600160401b038111156145b0578182fd5b60208301915083602082850101111561458257600080fd5b80356008811061453b57600080fd5b80356004811061453b57600080fd5b803563ffffffff8116811461453b57600080fd5b60008060008060008060008060a0898b031215614615578384fd5b88356146208161513b565b975060208901356146308161513b565b965060408901356001600160401b038082111561464b578586fd5b6146578c838d01614540565b909850965060608b013591508082111561466f578586fd5b61467b8c838d01614540565b909650945060808b0135915080821115614693578384fd5b506146a08b828c01614589565b999c989b5096995094979396929594505050565b6000806000806000608086880312156146cb578081fd5b85356146d68161513b565b945060208601356146e68161513b565b93506040860135925060608601356001600160401b03811115614707578182fd5b61471388828901614589565b969995985093965092949392505050565b60008060008060008060a0878903121561473c578182fd5b86356147478161513b565b955060208701356147578161513b565b9450604087013593506060870135925060808701356001600160401b0381111561477f578283fd5b61478b89828a01614589565b979a9699509497509295939492505050565b6000806000806000806000806000806000806101408d8f0312156147bf578384fd5b6001600160401b038d3511156147d3578384fd5b6147e08e8e358f01614540565b909c509a506147f160208e016145e6565b995060408d0135985061480660608e016145c8565b975061481460808e016145d7565b965061482260a08e01614530565b955060c08d0135945061483760e08e01614530565b93506101008d013592506001600160401b036101208e01351115614859578081fd5b61486a8e6101208f01358f01614589565b81935080925050509295989b509295989b509295989b565b600060208284031215614893578081fd5b815180151581146148a2578182fd5b9392505050565b6000602082840312156148ba578081fd5b5035919050565b6000602082840312156148d2578081fd5b5051919050565b6000806000606084860312156148ed578081fd5b505081359360208301359350604090920135919050565b600060208284031215614915578081fd5b81356148a281615150565b600060208284031215614931578081fd5b81516148a281615150565b6000815180845260208085019450808401835b8381101561496d57815115158752958201959082019060010161494f565b509495945050505050565b6000815180845260208085019450808401835b8381101561496d5781518752958201959082019060010161498b565b6000815180845260208085019450808401835b8381101561496d57815163ffffffff16875295820195908201906001016149ba565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008151808452614a1d816020860160208601614fa1565b601f01601f19169290920160200192915050565b60048110614a4f57634e487b7160e01b600052602160045260246000fd5b9052565b8881528760208201528660408201528560608201528460808201528360a0820152818360c08301376000910160c001908152979650505050505050565b8183823760009101908152919050565b60008251614ab2818460208701614fa1565b9190910192915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614aef90830184614a05565b9695505050505050565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090614b3490830184866149dc565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614b7a90830184614a05565b979650505050505050565b60a081526000614b9860a0830188614978565b8281036020840152614baa8188614978565b90508281036040840152614bbe8187614978565b90508281036060840152614bd281866149a7565b90508281036080840152614b34818561493c565b608081526000614bf96080830187614978565b8281036020840152614c0b8187614978565b90508281036040840152614c1f81866149a7565b90508281036060840152614b7a818561493c565b606080825284519082018190526000906020906080840190828801845b82811015614c7357614c63848351614a31565b9284019290840190600101614c50565b50505083810382850152855180825286830191830190845b81811015614cb05783516001600160a01b031683529284019291840191600101614c8b565b50508481036040860152614b348187614978565b60608101614cd28286614a31565b6001600160a01b0393909316602082015260400152919050565b60a08101614cfa8288614a31565b6001600160a01b039586166020830152604082019490945291909316606082015260800191909152919050565b614d318188614a31565b6001600160a01b03868116602083015260408201869052841660608201526080810183905260c060a08201819052600090614b3490830184614a05565b614d788187614a31565b6001600160a01b039485166020820152604081019390935292166060820152608081019190915260c060a0820181905260009082015260e001919050565b614dc0818a614a31565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090614e0690830184866149dc565b9a9950505050505050505050565b60208082526024908201527f64617461206d7573742068617665206c656e677468206d756c7469706c65207460408201526337901c9b60e11b606082015260800190565b60008085851115614e67578182fd5b83861115614e73578182fd5b5050820193919092039150565b60008219821115614e9357614e9361506e565b500190565b600063ffffffff808316818516808303821115614eb757614eb761506e565b01949350505050565b600082614ecf57614ecf615084565b500490565b600063ffffffff80841680614eeb57614eeb615084565b92169190910492915050565b6000816000190483118215151615614f1157614f1161506e565b500290565b600063ffffffff80831681851681830481118215151615614f3957614f3961506e565b02949350505050565b600082821015614f5457614f5461506e565b500390565b600063ffffffff83811690831681811015614f7657614f7661506e565b039392505050565b600060ff821660ff841680821015614f9857614f9861506e565b90039392505050565b60005b83811015614fbc578181015183820152602001614fa4565b83811115611fdb5750506000910152565b601f8201601f191681016001600160401b038111828210171561500057634e487b7160e01b600052604160045260246000fd5b6040525050565b600063ffffffff808316818114156150215761502161506e565b6001019392505050565b600060ff821660ff8114156150425761504261506e565b60010192915050565b600063ffffffff8084168061506257615062615084565b92169190910692915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600060033d11156150af57600481823e5160e01c5b90565b600060443d10156150c05790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156150ef57505050505090565b82850191508151818111156151075750505050505090565b843d87010160208285010111156151215750505050505090565b61513060208286010187614fcd565b509095945050505050565b6001600160a01b03811681146143d257600080fd5b6001600160e01b0319811681146143d257600080fdfea2646970667358221220d4809935f437d7d15449611a5bc85c2febf695a4c5f623dbe1237f3199c19cee64736f6c63430008040033", + "deployedBytecode": "0x6080604052600436106100f75760003560e01c8063a17027e11161008a578063d087d28811610059578063d087d288146104d5578063d87458a3146104fc578063e4e5b2581461051c578063f23a6e611461053c57600080fd5b8063a17027e11461045a578063a4874d7714610480578063bc197c8114610495578063c34a6dad146104b557600080fd5b80632293d3fb116100c65780632293d3fb1461029e5780632f1f7520146102cb5780635a9b0b89146102f0578063695def4c1461043657600080fd5b806301ffc9a7146101c05780630d8e6e2c146101f5578063150b7a02146102175780631cf4ea051461025057600080fd5b366101bb57604080513481523360208201527fa26ab80e902f2055a125714fc6f2eb15df2a09c7fe39c7fc71204ffba72109db910160405180910390a1670de0b6b3a7640000341461014557005b6002546001600160a01b0316331461015957005b6002546001600160a01b031661016b57005b3330141561017557005b6040513381527f0cbe1fea4becf04af2176bbef0c9c53d439d30a05a197aacc38bb4a2873222e39060200160405180910390a16101b061055c565b6101b957600080fd5b005b600080fd5b3480156101cc57600080fd5b506101e06101db366004614904565b6105bb565b60405190151581526020015b60405180910390f35b34801561020157600080fd5b50604080516007815260036020820152016101ec565b34801561022357600080fd5b506102376102323660046146b4565b61060d565b6040516001600160e01b031990911681526020016101ec565b34801561025c57600080fd5b5061027061026b3660046148a9565b610674565b6040516101ec9493929190938452602084019290925263ffffffff1660408301521515606082015260800190565b3480156102aa57600080fd5b506004546005546040805192835263ffffffff9091166020830152016101ec565b3480156102d757600080fd5b506102e06106ba565b6040516101ec9493929190614be6565b3480156102fc57600080fd5b506103e06002546003547f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0390911691565b6040805198895260ff97881660208a01529587169588019590955263ffffffff9384166060880152919092166080860152921660a08401526001600160a01b0390911660c083015260e0820152610100016101ec565b34801561044257600080fd5b5061044b6106f7565b6040516101ec93929190614c33565b34801561046657600080fd5b5061046f6109e5565b6040516101ec959493929190614b85565b34801561048c57600080fd5b506101e0610e59565b3480156104a157600080fd5b506102376104b03660046145fa565b610fc7565b3480156104c157600080fd5b506101b96104d036600461479d565b6110d9565b3480156104e157600080fd5b506104ea6113ce565b60405160ff90911681526020016101ec565b34801561050857600080fd5b5061046f6105173660046148a9565b611447565b34801561052857600080fd5b506101b96105373660046148d9565b6117b9565b34801561054857600080fd5b50610237610557366004614724565b6118da565b60025460405160009182916001600160a01b039091169047908381818185875af1925050503d80600081146105ad576040519150601f19603f3d011682016040523d82523d6000602084013e6105b2565b606091505b50909392505050565b60006001600160e01b031982166301ffc9a760e01b14806105ec57506001600160e01b0319821663f23a6e6160e01b145b8061060757506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161064d989796959493929190614db6565b60405180910390a161066160013386611941565b50630a85bd0160e11b5b95945050505050565b60008060008060405162461bcd60e51b81526004016106b1906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b60405180910390fd5b60608060608060405162461bcd60e51b81526004016106b1906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b606080606060006001805490506001600160401b0381111561072957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610752578160200160208202803683370190505b506001549091506000906001600160401b0381111561078157634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156107aa578160200160208202803683370190505b506001549091506000906001600160401b038111156107d957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610802578160200160208202803683370190505b50905060005b60015463ffffffff821610156109d85760018163ffffffff168154811061083f57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061087e57634e487b7160e01b600052603260045260246000fd5b602002602001019060038111156108a557634e487b7160e01b600052602160045260246000fd5b908160038111156108c657634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106108f157634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff168151811061093c57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061098357634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff16815181106109bb57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806109d081615007565b915050610808565b5091959094509092509050565b60608060608060606000805b60085463ffffffff82161015610a6f5760006009600060088463ffffffff1681548110610a2e57634e487b7160e01b600052603260045260246000fd5b906000526020600020015481526020019081526020016000209050808054905083610a599190614e98565b9250508080610a6790615007565b9150506109f1565b5060008163ffffffff166001600160401b03811115610a9e57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610ac7578160200160208202803683370190505b50905060008263ffffffff166001600160401b03811115610af857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b21578160200160208202803683370190505b50905060008363ffffffff166001600160401b03811115610b5257634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b7b578160200160208202803683370190505b50905060008463ffffffff166001600160401b03811115610bac57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610bd5578160200160208202803683370190505b50905060008563ffffffff166001600160401b03811115610c0657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c2f578160200160208202803683370190505b5090506000805b60085463ffffffff82161015610e465760006009600060088463ffffffff1681548110610c7357634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020905060005b815463ffffffff82161015610e31576000828263ffffffff1681548110610cc857634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201905080600001548a8663ffffffff1681518110610d0357634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154898663ffffffff1681518110610d3a57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154888663ffffffff1681518110610d7157634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154875163ffffffff918216918991908816908110610dae57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16868663ffffffff1681518110610e0057634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015284610e1a81615007565b955050508080610e2990615007565b915050610c91565b50508080610e3e90615007565b915050610c36565b50949b939a509198509650945092505050565b600063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000610ed060ff7f00000000000000000000000000000000000000000000000000000000000000001642614ec0565b610eda9190614f59565b63ffffffff1611610f235760405162461bcd60e51b8152602060048201526013602482015272546f6f206561726c7920746f2072657469726560681b60448201526064016106b1565b6002546001600160a01b0316610f7b5760405162461bcd60e51b815260206004820152601e60248201527f4c617374207265736f72742061646472657373206973206e6f7420736574000060448201526064016106b1565b610f8361055c565b610fc15760405162461bcd60e51b815260206004820152600f60248201526e149958dbdd995c9e4819985a5b1959608a1b60448201526064016106b1565b50600190565b6000805b63ffffffff81168711156110c3573063f23a6e618b8b8b8b63ffffffff871681811061100757634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061103457634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161105e96959493929190614af9565b602060405180830381600087803b15801561107857600080fd5b505af115801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b09190614920565b50806110bb81615007565b915050610fcb565b5063bc197c8160e01b9998505050505050505050565b6110e58c8c8c8c611c92565b61111060017f0000000000000000000000000000000000000000000000000000000000000000614f59565b63ffffffff168a63ffffffff16141561119e57600688600781111561114557634e487b7160e01b600052602160045260246000fd5b1461119e5760405162461bcd60e51b815260206004820152602360248201527f4c617374206f7065726174696f6e20726573657276656420666f72207265636f6044820152623b32b960e91b60648201526084016106b1565b6000806111db8e8e60008181106111c557634e487b7160e01b600052603260045260246000fd5b905060200201358d8d8d8d8d8d8d8d8d8d611fe1565b9150915060006111ee838e848f8f6121f9565b90506111fb83828d6125eb565b60008b600781111561121d57634e487b7160e01b600052602160045260246000fd5b14156112435783156112385761123385856127db565b6113bd565b6112338a8a8a611941565b60018b600781111561126557634e487b7160e01b600052602160045260246000fd5b141561128657831561127c576112338a8a8a61296b565b6112338585612fb9565b60028b60078111156112a857634e487b7160e01b600052602160045260246000fd5b14156112f2576112338a8a8a8a8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061308f92505050565b60038b600781111561131457634e487b7160e01b600052602160045260246000fd5b141561132457611233858561340b565b60048b600781111561134657634e487b7160e01b600052602160045260246000fd5b141561135c5761135687876135d3565b506113bd565b60068b600781111561137e57634e487b7160e01b600052602160045260246000fd5b141561138c576113566137f5565b60058b60078111156113ae57634e487b7160e01b600052602160045260246000fd5b14156113bd576113bd87613872565b505050505050505050505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000061141f60ff7f00000000000000000000000000000000000000000000000000000000000000001642614ed4565b6114299190614f59565b63ffffffff1660009081526006602052604090205460ff1692915050565b600081815260096020526040812080546060928392839283928392916001600160401b0381111561148857634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114b1578160200160208202803683370190505b5082549091506000906001600160401b038111156114df57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611508578160200160208202803683370190505b5083549091506000906001600160401b0381111561153657634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561155f578160200160208202803683370190505b5084549091506000906001600160401b0381111561158d57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156115b6578160200160208202803683370190505b5085549091506000906001600160401b038111156115e457634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561160d578160200160208202803683370190505b50905060005b865463ffffffff821610156117a5576000878263ffffffff168154811061164a57634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060000154878363ffffffff168151811061168557634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154868363ffffffff16815181106116bc57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154858363ffffffff16815181106116f357634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154845163ffffffff91821691869190851690811061173057634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16838363ffffffff168151811061178257634e487b7160e01b600052603260045260246000fd5b91151560209283029190910190910152508061179d81615007565b915050611613565b50939b929a50909850965090945092505050565b6117c16138f8565b6040805160a0810182528481526020810184905290810182905263ffffffff42166060820152600060808201526008546078116118335760405162461bcd60e51b815260206004820152601060248201526f546f6f206d616e7920636f6d6d69747360801b60448201526064016106b1565b6008805460018181019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018590556000948552600960209081526040808720805480850182559088529682902084516004909802019687559083015191860191909155810151600285015560608101516003909401805460809092015115156401000000000264ffffffffff1990921663ffffffff90951694909417179092555050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a898960405161191a989796959493929190614db6565b60405180910390a161192e60023387611941565b5063f23a6e6160e01b9695505050505050565b600083600381111561196357634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915015611b485760005b60008281526020819052604090205463ffffffff82161015611b46576000828152602081905260408120805463ffffffff8416908110611a0c57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115611a3957634e487b7160e01b600052602160045260246000fd5b60018281548110611a5a57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115611a8d57634e487b7160e01b600052602160045260246000fd5b14611a985750611b34565b8360018281548110611aba57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414611ad75750611b34565b846001600160a01b031660018281548110611b0257634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614611b2c5750611b34565b505050505050565b80611b3e81615007565b9150506119bc565b505b60006040518060600160405280866003811115611b7557634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff191690836003811115611c1a57634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a290611c8390879087908790614cc4565b60405180910390a15050505050565b611cbd60017f0000000000000000000000000000000000000000000000000000000000000000614f7e565b60ff168314611d0e5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420656e6f756768206e65696768626f72732070726f766964656400000060448201526064016106b1565b6000600282604051602001611d2591815260200190565b60408051601f1981840301815290829052611d3f91614aa0565b602060405180830381855afa158015611d5c573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611d7f91906148c1565b9050611dac60017f0000000000000000000000000000000000000000000000000000000000000000614f59565b63ffffffff168363ffffffff161415611dc25750805b60005b611df060017f0000000000000000000000000000000000000000000000000000000000000000614f7e565b60ff168160ff161015611f745760018085161415611eb057600286868360ff16818110611e2d57634e487b7160e01b600052603260045260246000fd5b9050602002013583604051602001611e4f929190918252602082015260400190565b60408051601f1981840301815290829052611e6991614aa0565b602060405180830381855afa158015611e86573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ea991906148c1565b9150611f54565b60028287878460ff16818110611ed657634e487b7160e01b600052603260045260246000fd5b90506020020135604051602001611ef7929190918252602082015260400190565b60408051601f1981840301815290829052611f1191614aa0565b602060405180830381855afa158015611f2e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611f5191906148c1565b91505b60018463ffffffff16901c93508080611f6c9061502b565b915050611dc5565b50807f000000000000000000000000000000000000000000000000000000000000000014611fd95760405162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81a5b98dbdc9c9958dd60721b60448201526064016106b1565b505b50505050565b60008060008d8d60e01b6001600160e01b0319168d604051602001612019939291909283526020830191909152604082015260600190565b60408051601f1981840301815291905280516020909101209050600060048c600781111561205757634e487b7160e01b600052602160045260246000fd5b141561209a576040805160608a811b6001600160601b0319166020830152918101899052015b6040516020818303038152906040528051906020012090506121e5565b60068c60078111156120bc57634e487b7160e01b600052602160045260246000fd5b14156120e15785856040516120d2929190614a90565b604051809103902090506121e5565b60058c600781111561210357634e487b7160e01b600052602160045260246000fd5b141561212757604080516001600160601b031960608b901b1660208201520161207d565b60008c600781111561214957634e487b7160e01b600052602160045260246000fd5b8c600381111561216957634e487b7160e01b600052602160045260246000fd5b60001b8c60601b6001600160601b0319168c60001b8c60601b6001600160601b0319168c60001b8c8c6040516020016121a9989796959493929190614a53565b6040516020818303038152906040529050806040516020016121cb9190614aa0565b604051602081830303815290604052805190602001209150505b909e909d509b505050505050505050505050565b60008061222960ff7f00000000000000000000000000000000000000000000000000000000000000001687614ed4565b9050600061225a60ff7f0000000000000000000000000000000000000000000000000000000000000000168861504b565b60008981526009602052604090208054919250906122ac5760405162461bcd60e51b815260206004820152600f60248201526e139bc818dbdb5b5a5d08199bdd5b99608a1b60448201526064016106b1565b60005b815463ffffffff821610156125b0576000828263ffffffff16815481106122e657634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190506000816001015489604051602001612318929190918252602082015260400190565b6040516020818303038152906040528051906020012090508082600201541461234257505061259e565b898260010154146123955760405162461bcd60e51b815260206004820152601760248201527f506172616d657465722068617368206d69736d6174636800000000000000000060448201526064016106b1565b60068860078111156123b757634e487b7160e01b600052602160045260246000fd5b146124e15760038201546000907f00000000000000000000000000000000000000000000000000000000000000009061241a9060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614ed4565b6124249190614f59565b90508663ffffffff168163ffffffff16146124815760405162461bcd60e51b815260206004820152601a60248201527f496e646578202d2074696d657374616d70206d69736d6174636800000000000060448201526064016106b1565b63ffffffff811660009081526006602052604090205460ff9081169087168111156124de5760405162461bcd60e51b815260206004820152600d60248201526c4e6f6e636520746f6f206c6f7760981b60448201526064016106b1565b50505b6003820154640100000000900460ff161561253e5760405162461bcd60e51b815260206004820152601860248201527f436f6d6d697420616c726561647920636f6d706c65746564000000000000000060448201526064016106b1565b60038201546125529063ffffffff16613bd3565b6125905760405162461bcd60e51b815260206004820152600f60248201526e52657665616c20746f6f206c61746560881b60448201526064016106b1565b82965050505050505061066b565b806125a881615007565b9150506122af565b5060405162461bcd60e51b815260206004820152600f60248201526e139bc81d985b1a590818dbdb5b5a5d608a1b60448201526064016106b1565b6000838152600960205260409020805461263d5760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e840d0c2e6d606b1b60448201526064016106b1565b805463ffffffff8416106126895760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e892dcc8caf606b1b60448201526064016106b1565b6000818463ffffffff16815481106126b157634e487b7160e01b600052603260045260246000fd5b60009182526020909120600490910201600381015490915063ffffffff1661271b5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420636f6d6d69742074696d657374616d70000000000000000060448201526064016106b1565b600683600781111561273d57634e487b7160e01b600052602160045260246000fd5b146127bf5760038101546000907f0000000000000000000000000000000000000000000000000000000000000000906127a09060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614ed4565b6127aa9190614f59565b90506127b581613bee565b6127bd613c8f565b505b600301805464ff00000000191664010000000017905550505050565b60006127e8606083614ec0565b9050816127f6826060614f16565b63ffffffff16146128195760405162461bcd60e51b81526004016106b190614e14565b60005b8163ffffffff168163ffffffff161015611fdb5760006128ac8585612842856060614f16565b63ffffffff1690612854866060614f16565b61285f906020614e98565b63ffffffff169261287293929190614e58565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f6a92505050565b60038111156128cb57634e487b7160e01b600052602160045260246000fd5b9050600061290786866128df866060614f16565b6128ea906020614e98565b63ffffffff16906128fc876060614f16565b61285f906034614e98565b60601c9050600061294887878660606129209190614f16565b61292b906040614e98565b63ffffffff169061293d886060614f16565b61285f906060614e98565b9050612955838383611941565b505050808061296390615007565b91505061281c565b600083600381111561298d57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f1981840301815291815281516020928301206000818152928390529120549091506129e85750505050565b60005b60008281526020819052604090205463ffffffff82161015612f77576000828152602081905260408120805463ffffffff8416908110612a3b57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115612a6857634e487b7160e01b600052602160045260246000fd5b60018281548110612a8957634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612abc57634e487b7160e01b600052602160045260246000fd5b14612ac75750612f65565b8360018281548110612ae957634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414612b065750612f65565b846001600160a01b031660018281548110612b3157634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614612b5b5750612f65565b60018054600091612b6b91614f42565b905060018181548110612b8e57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160018381548110612bbd57634e487b7160e01b600052603260045260246000fd5b6000918252602090912082546002909202018054909160ff1690829060ff19166001836003811115612bff57634e487b7160e01b600052602160045260246000fd5b021790555081548154610100600160a81b031916610100918290046001600160a01b03169091021781556001918201549082015580546000919084908110612c5757634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612c8a57634e487b7160e01b600052602160045260246000fd5b6001805485908110612cac57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b031660601b6001600160601b03191660018581548110612cff57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015460001b604051602001612d37939291909283526020830191909152604082015260600190565b6040516020818303038152906040528051906020012090506001805480612d6e57634e487b7160e01b600052603160045260246000fd5b60008281526020812060026000199093019283020180546001600160a81b031916815560010181905591555b60008281526020819052604090205463ffffffff82161015612e5657826000808481526020019081526020016000208263ffffffff1681548110612dee57634e487b7160e01b600052603260045260246000fd5b90600052602060002001541415612e4457836000808481526020019081526020016000208263ffffffff1681548110612e3757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b80612e4e81615007565b915050612d9a565b5060008581526020819052604090208054612e7390600190614f42565b81548110612e9157634e487b7160e01b600052603260045260246000fd5b90600052602060002001546000808781526020019081526020016000208481548110612ecd57634e487b7160e01b600052603260045260246000fd5b9060005260206000200181905550600080868152602001908152602001600020805480612f0a57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590557f166bc904e3b7f8699e175923a2635944dd9ac0dc817927aac60d854d23a82b9b888888604051612f5393929190614cc4565b60405180910390a15050505050505050565b80612f6f81615007565b9150506129eb565b507ffc773cf3883ef83133327fbc62fe0a7c3c96add34a1781cae66ba5de7efa3f5f848484604051612fab93929190614cc4565b60405180910390a150505050565b6000612fc6606083614ec0565b905081612fd4826060614f16565b63ffffffff1614612ff75760405162461bcd60e51b81526004016106b190614e14565b60005b8163ffffffff168163ffffffff161015611fdb5760006130208585612842856060614f16565b600381111561303f57634e487b7160e01b600052602160045260246000fd5b9050600061305386866128df866060614f16565b60601c9050600061306c87878660606129209190614f16565b905061307983838361296b565b505050808061308790615007565b915050612ffa565b60008660038111156130b157634e487b7160e01b600052602160045260246000fd5b14156132695760405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905286169063a9059cbb90604401602060405180830381600087803b15801561310157600080fd5b505af1925050508015613131575060408051601f3d908101601f1916820190925261312e91810190614882565b60015b6131ea5761313d61509a565b806308c379a014156131a457506131526150b2565b8061315d57506131a6565b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba87878787878660405161319696959493929190614d27565b60405180910390a150611b2c565b505b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba86868686866040516131dd959493929190614d6e565b60405180910390a1611b2c565b8015613232576131fb878787611941565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b318787878787604051613196959493929190614cec565b7f75a36803468aca74d964b22522480470a7a3f2121daa5994c2a937aec85d23298787878787604051613196959493929190614cec565b600186600381111561328b57634e487b7160e01b600052602160045260246000fd5b141561333157604051635c46a7ef60e11b81526001600160a01b0386169063b88d4fde906132c3903090879089908790600401614abc565b600060405180830381600087803b1580156132dd57600080fd5b505af19250505080156132ee575060015b6132fa5761313d61509a565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516131dd959493929190614cec565b600286600381111561335357634e487b7160e01b600052602160045260246000fd5b1415611b2c57604051637921219560e11b81526001600160a01b0386169063f242432a9061338d9030908790899088908890600401614b40565b600060405180830381600087803b1580156133a757600080fd5b505af19250505080156133b8575060015b6133c45761313d61509a565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516133fb959493929190614cec565b60405180910390a1505050505050565b6000613418606083614ec0565b905081613426826060614f16565b63ffffffff16146134495760405162461bcd60e51b81526004016106b190614e14565b60008163ffffffff166001600160401b0381111561347757634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156134c257816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816134955790505b50905060005b8263ffffffff168163ffffffff1610156135c95760006134ee8686612842856060614f16565b600381111561350d57634e487b7160e01b600052602160045260246000fd5b9050600061352187876128df866060614f16565b60601c9050600061353a88888660606129209190614f16565b60001c9050604051806060016040528084600381111561356a57634e487b7160e01b600052602160045260246000fd5b8152602001836001600160a01b0316815260200182815250858563ffffffff16815181106135a857634e487b7160e01b600052603260045260246000fd5b602002602001018190525050505080806135c190615007565b9150506134c8565b50611fdb81613ff6565b6000806135e36201518042614ec0565b60055490915063ffffffff90811690821611156136155760006004556005805463ffffffff191663ffffffff83161790555b600354836004546136269190614e80565b111561368b576003546004546040805186815260208101939093528201526001600160a01b03851660608201527f705f289c5579ebb63d8c90ed39a42a76ded07641efe4f445a9a97d1e95c75c68906080015b60405180910390a16000915050610607565b824710156136db57604080518481524760208201526001600160a01b038616918101919091527fd90084f259c3c1dbd378c6c23cff1383005852e0d9829773e15afdbaf15fb7d890606001613679565b82600460008282546136ed9190614e80565b90915550506040516000906001600160a01b0386169085908381818185875af1925050503d806000811461373d576040519150601f19603f3d011682016040523d82523d6000602084013e613742565b606091505b50509050806137a957836004600082825461375d9190614f42565b90915550506040516001600160a01b03861681527f2c7068ca7f82b1436494678e109b299bc751ccbb88d560f7c011b48dfdb2117b9060200160405180910390a1600092505050610607565b604080518581526001600160a01b03871660208201527f8f4636f285a9a17fe3479ab47bb7a5deadaf9b2295a16c3965f55fa48e542d1f910160405180910390a1506001949350505050565b6002546000906001600160a01b0316613837576040517fc27dbdcf29e2a161f0420d399444129801e578bafe157fef0370098459e082bf90600090a150600090565b61383f61055c565b610fc1576040517fa3a244603d968c02ebd2017f990d4e077cf0381929976be2a0cb07076147a56f90600090a150600090565b6002546001600160a01b0316156138d65760405162461bcd60e51b815260206004820152602260248201527f4c617374207265736f7274206164647265737320697320616c72656164792073604482015261195d60f21b60648201526084016106b1565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000425b60085463ffffffff831610156139ce57600060088363ffffffff168154811061393557634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260409091208054919250906139615750506139bc565b60008160008154811061398457634e487b7160e01b600052603260045260246000fd5b6000918252602090912060036004909202019081015490915063ffffffff603b19860181169116106139b8575050506139ce565b5050505b816139c681615007565b9250506138fc565b63ffffffff82166139dd575050565b60005b8263ffffffff168163ffffffff161015613ae057600060088263ffffffff1681548110613a1d57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260408220909250905b815463ffffffff82161015613ab357818163ffffffff1681548110613a7157634e487b7160e01b600052603260045260246000fd5b600091825260208220600490910201818155600181018290556002810191909155600301805464ffffffffff1916905580613aab81615007565b915050613a3c565b506000828152600960205260408120613acb916143b1565b50508080613ad890615007565b9150506139e0565b50600854825b8163ffffffff168163ffffffff161015613b735760088163ffffffff1681548110613b2157634e487b7160e01b600052603260045260246000fd5b9060005260206000200154600885830363ffffffff1681548110613b5557634e487b7160e01b600052603260045260246000fd5b60009182526020909120015580613b6b81615007565b915050613ae6565b5060005b8363ffffffff168163ffffffff161015611fdb576008805480613baa57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558080613bcb90615007565b915050613b77565b6000603c613be18342614f59565b63ffffffff161092915050565b63ffffffff811660009081526006602052604090205460ff1680613c62576007805460018101825560008290527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68860088204018054919092166004026101000a63ffffffff81810219909216918516021790555b63ffffffff919091166000908152600660205260409020805460ff1916600190920160ff16919091179055565b6000613c9c603c42614f59565b90506000613ccd60ff7f00000000000000000000000000000000000000000000000000000000000000001683614ed4565b905060007f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff161115613d3257613d2f7f000000000000000000000000000000000000000000000000000000000000000083614f59565b90505b6007546000906001600160401b03811115613d5d57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613d86578160200160208202803683370190505b5090506000805b60075460ff82161015613e6957600060078260ff1681548110613dc057634e487b7160e01b600052603260045260246000fd5b6000918252602090912060088204015460079091166004026101000a900463ffffffff90811691508516811015613e135763ffffffff81166000908152600660205260409020805460ff19169055613e56565b80848463ffffffff1681518110613e3a57634e487b7160e01b600052603260045260246000fd5b63ffffffff909216602092830291909101909101526001909201915b5080613e618161502b565b915050613d8d565b5060008163ffffffff166001600160401b03811115613e9857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613ec1578160200160208202803683370190505b50905060005b8263ffffffff168160ff161015613f4d57838160ff1681518110613efb57634e487b7160e01b600052603260045260246000fd5b6020026020010151828260ff1681518110613f2657634e487b7160e01b600052603260045260246000fd5b63ffffffff9092166020928302919091019091015280613f458161502b565b915050613ec7565b508051613f619060079060208401906143d5565b50505050505050565b6000815160001415613f7e57506000919050565b602082511115613fc75760405162461bcd60e51b8152602060048201526014602482015273696e70757420627974657320746f6f206c6f6e6760601b60448201526064016106b1565b60008083516020613fd89190614f42565b613fe3906008614ef7565b60209490940151841c90931b9392505050565b60005b60015463ffffffff8216101561416957600060018263ffffffff168154811061403257634e487b7160e01b600052603260045260246000fd5b600091825260208220600290910201546001805460ff90921693509063ffffffff851690811061407257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b03169050600060018463ffffffff16815481106140c257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154905060008360038111156140f857634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905290822090925061415291614484565b50505050808061416190615007565b915050613ff9565b50614176600160006144a2565b60005b81518163ffffffff1610156143ad576000828263ffffffff16815181106141b057634e487b7160e01b600052603260045260246000fd5b60200260200101516000015190506000838363ffffffff16815181106141e657634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000848463ffffffff168151811061421c57634e487b7160e01b600052603260045260246000fd5b6020026020010151604001519050600083600381111561424c57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b031916918301919091528101839052608001604051602081830303815290604052805190602001209050600060405180606001604052808660038111156142bb57634e487b7160e01b600052602160045260246000fd5b81526001600160a01b03861660208201526040018490526001805480820182556000829052825160029091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805493945084939092839160ff19169083600381111561433957634e487b7160e01b600052602160045260246000fd5b021790555060208281015182546001600160a01b0390911661010002610100600160a81b03199091161782556040928301516001928301556000948552848152918420805491820181558452922063ffffffff8716920191909155508392506143a59150829050615007565b915050614179565b5050565b50805460008255600402906000526020600020908101906143d291906144c3565b50565b828054828255906000526020600020906007016008900481019282156144745791602002820160005b8382111561444257835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026143fe565b80156144725782816101000a81549063ffffffff0219169055600401602081600301049283019260010302614442565b505b506144809291506144f5565b5090565b50805460008255906000526020600020908101906143d291906144f5565b50805460008255600202906000526020600020908101906143d2919061450a565b5b8082111561448057600080825560018201819055600282015560038101805464ffffffffff191690556004016144c4565b5b8082111561448057600081556001016144f6565b5b808211156144805780546001600160a81b03191681556000600182015560020161450b565b803561453b8161513b565b919050565b60008083601f840112614551578182fd5b5081356001600160401b03811115614567578182fd5b6020830191508360208260051b850101111561458257600080fd5b9250929050565b60008083601f84011261459a578182fd5b5081356001600160401b038111156145b0578182fd5b60208301915083602082850101111561458257600080fd5b80356008811061453b57600080fd5b80356004811061453b57600080fd5b803563ffffffff8116811461453b57600080fd5b60008060008060008060008060a0898b031215614615578384fd5b88356146208161513b565b975060208901356146308161513b565b965060408901356001600160401b038082111561464b578586fd5b6146578c838d01614540565b909850965060608b013591508082111561466f578586fd5b61467b8c838d01614540565b909650945060808b0135915080821115614693578384fd5b506146a08b828c01614589565b999c989b5096995094979396929594505050565b6000806000806000608086880312156146cb578081fd5b85356146d68161513b565b945060208601356146e68161513b565b93506040860135925060608601356001600160401b03811115614707578182fd5b61471388828901614589565b969995985093965092949392505050565b60008060008060008060a0878903121561473c578182fd5b86356147478161513b565b955060208701356147578161513b565b9450604087013593506060870135925060808701356001600160401b0381111561477f578283fd5b61478b89828a01614589565b979a9699509497509295939492505050565b6000806000806000806000806000806000806101408d8f0312156147bf578384fd5b6001600160401b038d3511156147d3578384fd5b6147e08e8e358f01614540565b909c509a506147f160208e016145e6565b995060408d0135985061480660608e016145c8565b975061481460808e016145d7565b965061482260a08e01614530565b955060c08d0135945061483760e08e01614530565b93506101008d013592506001600160401b036101208e01351115614859578081fd5b61486a8e6101208f01358f01614589565b81935080925050509295989b509295989b509295989b565b600060208284031215614893578081fd5b815180151581146148a2578182fd5b9392505050565b6000602082840312156148ba578081fd5b5035919050565b6000602082840312156148d2578081fd5b5051919050565b6000806000606084860312156148ed578081fd5b505081359360208301359350604090920135919050565b600060208284031215614915578081fd5b81356148a281615150565b600060208284031215614931578081fd5b81516148a281615150565b6000815180845260208085019450808401835b8381101561496d57815115158752958201959082019060010161494f565b509495945050505050565b6000815180845260208085019450808401835b8381101561496d5781518752958201959082019060010161498b565b6000815180845260208085019450808401835b8381101561496d57815163ffffffff16875295820195908201906001016149ba565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008151808452614a1d816020860160208601614fa1565b601f01601f19169290920160200192915050565b60048110614a4f57634e487b7160e01b600052602160045260246000fd5b9052565b8881528760208201528660408201528560608201528460808201528360a0820152818360c08301376000910160c001908152979650505050505050565b8183823760009101908152919050565b60008251614ab2818460208701614fa1565b9190910192915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614aef90830184614a05565b9695505050505050565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090614b3490830184866149dc565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614b7a90830184614a05565b979650505050505050565b60a081526000614b9860a0830188614978565b8281036020840152614baa8188614978565b90508281036040840152614bbe8187614978565b90508281036060840152614bd281866149a7565b90508281036080840152614b34818561493c565b608081526000614bf96080830187614978565b8281036020840152614c0b8187614978565b90508281036040840152614c1f81866149a7565b90508281036060840152614b7a818561493c565b606080825284519082018190526000906020906080840190828801845b82811015614c7357614c63848351614a31565b9284019290840190600101614c50565b50505083810382850152855180825286830191830190845b81811015614cb05783516001600160a01b031683529284019291840191600101614c8b565b50508481036040860152614b348187614978565b60608101614cd28286614a31565b6001600160a01b0393909316602082015260400152919050565b60a08101614cfa8288614a31565b6001600160a01b039586166020830152604082019490945291909316606082015260800191909152919050565b614d318188614a31565b6001600160a01b03868116602083015260408201869052841660608201526080810183905260c060a08201819052600090614b3490830184614a05565b614d788187614a31565b6001600160a01b039485166020820152604081019390935292166060820152608081019190915260c060a0820181905260009082015260e001919050565b614dc0818a614a31565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090614e0690830184866149dc565b9a9950505050505050505050565b60208082526024908201527f64617461206d7573742068617665206c656e677468206d756c7469706c65207460408201526337901c9b60e11b606082015260800190565b60008085851115614e67578182fd5b83861115614e73578182fd5b5050820193919092039150565b60008219821115614e9357614e9361506e565b500190565b600063ffffffff808316818516808303821115614eb757614eb761506e565b01949350505050565b600082614ecf57614ecf615084565b500490565b600063ffffffff80841680614eeb57614eeb615084565b92169190910492915050565b6000816000190483118215151615614f1157614f1161506e565b500290565b600063ffffffff80831681851681830481118215151615614f3957614f3961506e565b02949350505050565b600082821015614f5457614f5461506e565b500390565b600063ffffffff83811690831681811015614f7657614f7661506e565b039392505050565b600060ff821660ff841680821015614f9857614f9861506e565b90039392505050565b60005b83811015614fbc578181015183820152602001614fa4565b83811115611fdb5750506000910152565b601f8201601f191681016001600160401b038111828210171561500057634e487b7160e01b600052604160045260246000fd5b6040525050565b600063ffffffff808316818114156150215761502161506e565b6001019392505050565b600060ff821660ff8114156150425761504261506e565b60010192915050565b600063ffffffff8084168061506257615062615084565b92169190910692915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600060033d11156150af57600481823e5160e01c5b90565b600060443d10156150c05790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156150ef57505050505090565b82850191508151818111156151075750505050505090565b843d87010160208285010111156151215750505050505090565b61513060208286010187614fcd565b509095945050505050565b6001600160a01b03811681146143d257600080fd5b6001600160e01b0319811681146143d257600080fdfea2646970667358221220d4809935f437d7d15449611a5bc85c2febf695a4c5f623dbe1237f3199c19cee64736f6c63430008040033", "immutableReferences": { "437": [ { @@ -915,7 +915,7 @@ }, { "length": 32, - "start": 8053 + "start": 8056 } ], "439": [ @@ -925,11 +925,11 @@ }, { "length": 32, - "start": 7318 + "start": 7321 }, { "length": 32, - "start": 7625 + "start": 7628 } ], "441": [ @@ -939,23 +939,23 @@ }, { "length": 32, - "start": 3753 + "start": 3754 }, { "length": 32, - "start": 5110 + "start": 5113 }, { "length": 32, - "start": 9156 + "start": 9198 }, { "length": 32, - "start": 10026 + "start": 10100 }, { "length": 32, - "start": 15451 + "start": 15527 } ], "443": [ @@ -965,27 +965,27 @@ }, { "length": 32, - "start": 3715 + "start": 3716 }, { "length": 32, - "start": 5072 + "start": 5075 }, { "length": 32, - "start": 9116 + "start": 9158 }, { "length": 32, - "start": 9986 + "start": 10060 }, { "length": 32, - "start": 15495 + "start": 15571 }, { "length": 32, - "start": 15550 + "start": 15626 } ], "445": [ @@ -995,7 +995,7 @@ }, { "length": 32, - "start": 3681 + "start": 3682 } ], "447": [ @@ -1005,21 +1005,21 @@ }, { "length": 32, - "start": 8704 + "start": 8707 }, { "length": 32, - "start": 8753 + "start": 8756 } ], "449": [ { "length": 32, - "start": 4331 + "start": 4332 }, { "length": 32, - "start": 7557 + "start": 7560 } ] }, @@ -7208,7 +7208,7 @@ } ] }, - "name": "abi_decode_tuple_t_array$_t_bytes32_$dyn_calldata_ptrt_uint32t_bytes32t_enum$_OperationType_$493t_enum$_TokenType_$2607t_addresst_uint256t_address_payablet_uint256t_bytes_calldata_ptr", + "name": "abi_decode_tuple_t_array$_t_bytes32_$dyn_calldata_ptrt_uint32t_bytes32t_enum$_OperationType_$493t_enum$_TokenType_$2627t_addresst_uint256t_address_payablet_uint256t_bytes_calldata_ptr", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -14966,7 +14966,7 @@ } ] }, - "name": "abi_encode_tuple_t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_array$_t_enum$_TokenType_$2627_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -16325,7 +16325,7 @@ } ] }, - "name": "abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256__to_t_uint8_t_address_t_uint256__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TokenType_$2627_t_address_t_uint256__to_t_uint8_t_address_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -16688,7 +16688,7 @@ } ] }, - "name": "abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256_t_address_t_uint256__to_t_uint8_t_address_t_uint256_t_address_t_uint256__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TokenType_$2627_t_address_t_uint256_t_address_t_uint256__to_t_uint8_t_address_t_uint256_t_address_t_uint256__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -17124,7 +17124,7 @@ } ] }, - "name": "abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TokenType_$2627_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -17593,7 +17593,7 @@ } ] }, - "name": "abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256_t_address_t_uint256_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TokenType_$2627_t_address_t_uint256_t_address_t_uint256_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -18093,7 +18093,7 @@ } ] }, - "name": "abi_encode_tuple_t_enum$_TokenType_$2607_t_rational_1_by_1_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TokenType_$2627_t_rational_1_by_1_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -18611,7 +18611,7 @@ } ] }, - "name": "abi_encode_tuple_t_enum$_TokenType_$2607_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", + "name": "abi_encode_tuple_t_enum$_TokenType_$2627_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed", "nodeType": "YulFunctionDefinition", "parameters": [ { @@ -27957,15 +27957,15 @@ } ] }, - "contents": "{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n validator_revert_address(value)\n }\n function abi_decode_array_bytes32_dyn_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_enum_OperationType(offset) -> value\n {\n value := calldataload(offset)\n if iszero(lt(value, 8)) { revert(0, 0) }\n }\n function abi_decode_enum_TokenType(offset) -> value\n {\n value := calldataload(offset)\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n function abi_decode_uint32(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let value2_1, value3_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n let offset_2 := calldataload(add(headStart, 128))\n if gt(offset_2, _1) { revert(value6, value6) }\n let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_2), dataEnd)\n value6 := value6_1\n value7 := value7_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_decode_tuple_t_array$_t_bytes32_$dyn_calldata_ptrt_uint32t_bytes32t_enum$_OperationType_$493t_enum$_TokenType_$2607t_addresst_uint256t_address_payablet_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11\n {\n if slt(sub(dataEnd, headStart), 320) { revert(value8, value8) }\n if gt(calldataload(headStart), 0xffffffffffffffff) { revert(value8, value8) }\n let value0_1, value1_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, calldataload(headStart)), dataEnd)\n value0 := value0_1\n value1 := value1_1\n value2 := abi_decode_uint32(add(headStart, 32))\n value3 := calldataload(add(headStart, 64))\n value4 := abi_decode_enum_OperationType(add(headStart, 96))\n value5 := abi_decode_enum_TokenType(add(headStart, 128))\n value6 := abi_decode_address(add(headStart, 160))\n value7 := calldataload(add(headStart, 192))\n value8 := abi_decode_address(add(headStart, 224))\n value9 := calldataload(add(headStart, 256))\n if gt(calldataload(add(headStart, 288)), 0xffffffffffffffff) { revert(value11, value11) }\n let value10_1, value11_1 := abi_decode_bytes_calldata(add(headStart, calldataload(add(headStart, 288))), dataEnd)\n value10 := value10_1\n value11 := value11_1\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_array_bool_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := end\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, iszero(iszero(mload(srcPtr))))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_array_bytes32_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := end\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_array_uint32_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := end\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), 0xffffffff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), end)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_TokenType(value, pos)\n {\n if iszero(lt(value, 4))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(pos, value)\n }\n function abi_encode_tuple_packed_t_bytes32__to_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, value0)\n end := add(pos, 32)\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n end := add(pos, 64)\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n mstore(add(pos, 64), value2)\n end := add(pos, 96)\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes_calldata_ptr__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value7, value6, value5, value4, value3, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n mstore(add(pos, 64), value2)\n mstore(add(pos, 96), value3)\n mstore(add(pos, 128), value4)\n mstore(add(pos, 160), value5)\n calldatacopy(add(pos, 192), value6, value7)\n let _1 := add(add(pos, value7), 192)\n mstore(_1, end)\n end := _1\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, end)\n end := _1\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n { end := pos }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_payable__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), 160)\n tail := abi_encode_bytes_calldata(value4, value5, add(headStart, 160))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), 160)\n tail := abi_encode_bytes(value4, add(headStart, 160))\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 160)\n let tail_1 := abi_encode_array_bytes32_dyn(value0, add(headStart, 160))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n let tail_2 := abi_encode_array_bytes32_dyn(value1, tail_1)\n mstore(add(headStart, 64), sub(tail_2, headStart))\n let tail_3 := abi_encode_array_bytes32_dyn(value2, tail_2)\n mstore(add(headStart, 96), sub(tail_3, headStart))\n let tail_4 := abi_encode_array_uint32_dyn(value3, tail_3)\n mstore(add(headStart, 128), sub(tail_4, headStart))\n tail := abi_encode_array_bool_dyn(value4, tail_4)\n }\n function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 128)\n let tail_1 := abi_encode_array_bytes32_dyn(value0, add(headStart, 128))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n let tail_2 := abi_encode_array_bytes32_dyn(value1, tail_1)\n mstore(add(headStart, 64), sub(tail_2, headStart))\n let tail_3 := abi_encode_array_uint32_dyn(value2, tail_2)\n mstore(add(headStart, 96), sub(tail_3, headStart))\n tail := abi_encode_array_bool_dyn(value3, tail_3)\n }\n function abi_encode_tuple_t_array$_t_enum$_TokenType_$2607_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let tail_1 := add(headStart, 96)\n mstore(headStart, 96)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 128)\n let _1 := 0x20\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n abi_encode_enum_TokenType(mload(srcPtr), pos)\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n mstore(add(headStart, _1), sub(pos, headStart))\n let pos_1 := pos\n let length_1 := mload(value1)\n mstore(pos, length_1)\n pos_1 := add(pos, _1)\n let srcPtr_1 := add(value1, _1)\n let i_1 := tail\n for { } lt(i_1, length_1) { i_1 := add(i_1, 1) }\n {\n mstore(pos_1, and(mload(srcPtr_1), sub(shl(160, 1), 1)))\n pos_1 := add(pos_1, _1)\n srcPtr_1 := add(srcPtr_1, _1)\n }\n mstore(add(headStart, 64), sub(pos_1, headStart))\n tail := abi_encode_array_bytes32_dyn(value2, pos_1)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_uint32_t_bool__to_t_bytes32_t_bytes32_t_uint32_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, 0xffffffff))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_uint8_t_uint32_t_uint32_t_uint8_t_address_t_uint256__to_t_bytes32_t_uint8_t_uint8_t_uint32_t_uint32_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 256)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), and(value2, 0xff))\n let _1 := 0xffffffff\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), and(value5, 0xff))\n mstore(add(headStart, 192), and(value6, sub(shl(160, 1), 1)))\n mstore(add(headStart, 224), value7)\n }\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, shl(224, 0xffffffff)))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256__to_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256_t_address_t_uint256__to_t_uint8_t_address_t_uint256_t_address_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n abi_encode_enum_TokenType(value0, headStart)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), 192)\n tail := abi_encode_bytes(value5, add(headStart, 192))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2607_t_address_t_uint256_t_address_t_uint256_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), 192)\n mstore(add(headStart, 192), tail)\n tail := add(headStart, 224)\n }\n function abi_encode_tuple_t_enum$_TokenType_$2607_t_rational_1_by_1_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), 224)\n tail := abi_encode_bytes_calldata(value6, value7, add(headStart, 224))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2607_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), 224)\n tail := abi_encode_bytes_calldata(value6, value7, add(headStart, 224))\n }\n function abi_encode_tuple_t_stringliteral_0c1004916946b89dffc8743f953d4885accbd82403cd8bd9e53f384fa95731af__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 16)\n mstore(add(headStart, 64), \"Too many commits\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_0d3a5f34c29e81aa7bbfe59ba3e3db3006ac807af6a54ad3cac7463abb5d83b0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 13)\n mstore(add(headStart, 64), \"Nonce too low\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_1c2d20c6fc3078eff495891b6caa29a7be172ac7018d2f6172fb68ba87240f3d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"Last resort address is not set\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_286e638d23bc87ce733fb0202708f485eb6091553feef3d943a83966c37e7639__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Reveal too late\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_2c594e135171cc6dc0d96175148636924623810d2d534a029b78044ab417d7d0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"input bytes too long\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_2d6af051cc9bdd806c60b20e274721a89fb9a7025afbe00dde07d3201c4068b2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Commit already completed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3430d3063c70bc84041a3bb75a9010a8e7685d878f7521f09ab01e30ea2f9f24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Parameter hash mismatch\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_38f47be26bf822ff597a5cbffa2774ecae1ceaa169f734b7db0a07fb62c9547a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"No commit found\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_50d19c134c4136d96b547b25b22aa8e1363529709733541230ebfa41cb82b262__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Too early to retire\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"Index - timestamp mismatch\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_5515ff285a2022327bc0ffdc690388a3a1d15360640a68caecd56fe24371f01a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Proof is incorrect\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_791866c3f9c9c03c601447bf48dd4e0bd3f849759626f2144adccf6e77c6e64d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Invalid commit timestamp\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_7fb6a81bbdba15000418055bc5e058938e4fd0b50065d70de11ee03ca8f293e3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"data must have length multiple t\")\n mstore(add(headStart, 96), \"o 96\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_83d08d6dcf099c52fbe149a08cb4ffd65f3fec6dbf87dba7bc08b7a534982441__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"Not enough neighbors provided\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_887bc482e9abfdf76109db32e10c15ef35a028513416621efc881c8a92574313__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Recovery failed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_8a9c0db4284cd81d8eaef3d877f21bcccab643ae503f9d63f7eb3ad5aacbe749__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Invalid commit hash\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_b20dc6ef8ce4f94dd03e7dbd2b41776293fb93e4528d85e98acf1bfed3136f73__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 10)\n mstore(add(headStart, 64), \"Deprecated\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_bc3ff827c71f29679c970d77c58ec807a06259e86e9cd823a8554b04d0d6f030__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"Last resort address is already s\")\n mstore(add(headStart, 96), \"et\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c3972966c6b890cd04bd250ec8fd05d1950759334a3d8fa4e9bb3d0693e9952d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"No valid commit\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_dd8f27f99c8575d947c48310b46d36796c8df82285fc83fecd33510610055413__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Invalid commitIndex\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_fab9828a623b3dec5ff9fd3a2c3a6f583ee6577f264fc8a5c168e0454ba5a4ba__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"Last operation reserved for reco\")\n mstore(add(headStart, 96), \"ver\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_address_payable__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_address_payable__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_address_payable__to_t_uint256_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint32_t_uint32__to_t_uint32_t_uint32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := 0xffffffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut\n {\n if gt(startIndex, endIndex) { revert(offsetOut, offsetOut) }\n if gt(endIndex, length) { revert(offsetOut, offsetOut) }\n offsetOut := add(offset, startIndex)\n lengthOut := sub(endIndex, startIndex)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_add_t_uint32(x, y) -> sum\n {\n let _1 := 0xffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n sum := add(x_1, y_1)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_div_t_uint32(x, y) -> r\n {\n let _1 := 0xffffffff\n let y_1 := and(y, _1)\n if iszero(y_1) { panic_error_0x12() }\n r := div(and(x, _1), y_1)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_mul_t_uint32(x, y) -> product\n {\n let _1 := 0xffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if and(iszero(iszero(x_1)), gt(y_1, div(_1, x_1))) { panic_error_0x11() }\n product := mul(x_1, y_1)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function checked_sub_t_uint32(x, y) -> diff\n {\n let _1 := 0xffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if lt(x_1, y_1) { panic_error_0x11() }\n diff := sub(x_1, y_1)\n }\n function checked_sub_t_uint8(x, y) -> diff\n {\n let x_1 := and(x, 0xff)\n let y_1 := and(y, 0xff)\n if lt(x_1, y_1) { panic_error_0x11() }\n diff := sub(x_1, y_1)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function finalize_allocation(memPtr, size)\n {\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function increment_t_uint32(value) -> ret\n {\n let _1 := 0xffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function increment_t_uint8(value) -> ret\n {\n let value_1 := and(value, 0xff)\n if eq(value_1, 0xff) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function mod_t_uint32(x, y) -> r\n {\n let _1 := 0xffffffff\n let y_1 := and(y, _1)\n if iszero(y_1) { panic_error_0x12() }\n r := mod(and(x, _1), y_1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function return_data_selector() -> sig\n {\n if gt(returndatasize(), 3)\n {\n returndatacopy(sig, sig, 4)\n sig := shr(224, mload(sig))\n }\n }\n function try_decode_error_message() -> ret\n {\n if lt(returndatasize(), 0x44) { leave }\n let data := mload(64)\n let _1 := not(3)\n returndatacopy(data, 4, add(returndatasize(), _1))\n let offset := mload(data)\n let _2 := returndatasize()\n let _3 := 0xffffffffffffffff\n if or(gt(offset, _3), gt(add(offset, 0x24), _2)) { leave }\n let msg := add(data, offset)\n let length := mload(msg)\n if gt(length, _3) { leave }\n if gt(add(add(msg, length), 0x20), add(add(data, returndatasize()), _1)) { leave }\n finalize_allocation(data, add(add(offset, length), 0x20))\n ret := msg\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n}", + "contents": "{\n { }\n function abi_decode_address(offset) -> value\n {\n value := calldataload(offset)\n validator_revert_address(value)\n }\n function abi_decode_array_bytes32_dyn_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, shl(5, length)), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_bytes_calldata(offset, end) -> arrayPos, length\n {\n if iszero(slt(add(offset, 0x1f), end)) { revert(arrayPos, arrayPos) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(arrayPos, arrayPos) }\n arrayPos := add(offset, 0x20)\n if gt(add(add(offset, length), 0x20), end) { revert(0, 0) }\n }\n function abi_decode_enum_OperationType(offset) -> value\n {\n value := calldataload(offset)\n if iszero(lt(value, 8)) { revert(0, 0) }\n }\n function abi_decode_enum_TokenType(offset) -> value\n {\n value := calldataload(offset)\n if iszero(lt(value, 4)) { revert(0, 0) }\n }\n function abi_decode_uint32(offset) -> value\n {\n value := calldataload(offset)\n if iszero(eq(value, and(value, 0xffffffff))) { revert(0, 0) }\n }\n function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n let offset := calldataload(add(headStart, 64))\n let _1 := 0xffffffffffffffff\n if gt(offset, _1) { revert(value4, value4) }\n let value2_1, value3_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, offset), dataEnd)\n value2 := value2_1\n value3 := value3_1\n let offset_1 := calldataload(add(headStart, 96))\n if gt(offset_1, _1) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, offset_1), dataEnd)\n value4 := value4_1\n value5 := value5_1\n let offset_2 := calldataload(add(headStart, 128))\n if gt(offset_2, _1) { revert(value6, value6) }\n let value6_1, value7_1 := abi_decode_bytes_calldata(add(headStart, offset_2), dataEnd)\n value6 := value6_1\n value7 := value7_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n {\n if slt(sub(dataEnd, headStart), 128) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value3_1, value4_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value3 := value3_1\n value4 := value4_1\n }\n function abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n {\n if slt(sub(dataEnd, headStart), 160) { revert(value4, value4) }\n let value := calldataload(headStart)\n validator_revert_address(value)\n value0 := value\n let value_1 := calldataload(add(headStart, 32))\n validator_revert_address(value_1)\n value1 := value_1\n value2 := calldataload(add(headStart, 64))\n value3 := calldataload(add(headStart, 96))\n let offset := calldataload(add(headStart, 128))\n if gt(offset, 0xffffffffffffffff) { revert(value4, value4) }\n let value4_1, value5_1 := abi_decode_bytes_calldata(add(headStart, offset), dataEnd)\n value4 := value4_1\n value5 := value5_1\n }\n function abi_decode_tuple_t_array$_t_bytes32_$dyn_calldata_ptrt_uint32t_bytes32t_enum$_OperationType_$493t_enum$_TokenType_$2627t_addresst_uint256t_address_payablet_uint256t_bytes_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10, value11\n {\n if slt(sub(dataEnd, headStart), 320) { revert(value8, value8) }\n if gt(calldataload(headStart), 0xffffffffffffffff) { revert(value8, value8) }\n let value0_1, value1_1 := abi_decode_array_bytes32_dyn_calldata(add(headStart, calldataload(headStart)), dataEnd)\n value0 := value0_1\n value1 := value1_1\n value2 := abi_decode_uint32(add(headStart, 32))\n value3 := calldataload(add(headStart, 64))\n value4 := abi_decode_enum_OperationType(add(headStart, 96))\n value5 := abi_decode_enum_TokenType(add(headStart, 128))\n value6 := abi_decode_address(add(headStart, 160))\n value7 := calldataload(add(headStart, 192))\n value8 := abi_decode_address(add(headStart, 224))\n value9 := calldataload(add(headStart, 256))\n if gt(calldataload(add(headStart, 288)), 0xffffffffffffffff) { revert(value11, value11) }\n let value10_1, value11_1 := abi_decode_bytes_calldata(add(headStart, calldataload(add(headStart, 288))), dataEnd)\n value10 := value10_1\n value11 := value11_1\n }\n function abi_decode_tuple_t_bool_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n if iszero(eq(value, iszero(iszero(value)))) { revert(value0, value0) }\n value0 := value\n }\n function abi_decode_tuple_t_bytes32(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := calldataload(headStart)\n }\n function abi_decode_tuple_t_bytes32_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n value0 := mload(headStart)\n }\n function abi_decode_tuple_t_bytes32t_bytes32t_bytes32(headStart, dataEnd) -> value0, value1, value2\n {\n if slt(sub(dataEnd, headStart), 96) { revert(value2, value2) }\n value0 := calldataload(headStart)\n value1 := calldataload(add(headStart, 32))\n value2 := calldataload(add(headStart, 64))\n }\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := calldataload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_decode_tuple_t_bytes4_fromMemory(headStart, dataEnd) -> value0\n {\n if slt(sub(dataEnd, headStart), 32) { revert(value0, value0) }\n let value := mload(headStart)\n validator_revert_bytes4(value)\n value0 := value\n }\n function abi_encode_array_bool_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := end\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, iszero(iszero(mload(srcPtr))))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_array_bytes32_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := end\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, mload(srcPtr))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_array_uint32_dyn(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n let _1 := 0x20\n pos := add(pos, _1)\n let srcPtr := add(value, _1)\n let i := end\n for { } lt(i, length) { i := add(i, 1) }\n {\n mstore(pos, and(mload(srcPtr), 0xffffffff))\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n end := pos\n }\n function abi_encode_bytes_calldata(start, length, pos) -> end\n {\n mstore(pos, length)\n calldatacopy(add(pos, 0x20), start, length)\n mstore(add(add(pos, length), 0x20), end)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_bytes(value, pos) -> end\n {\n let length := mload(value)\n mstore(pos, length)\n copy_memory_to_memory(add(value, 0x20), add(pos, 0x20), length)\n end := add(add(pos, and(add(length, 31), not(31))), 0x20)\n }\n function abi_encode_enum_TokenType(value, pos)\n {\n if iszero(lt(value, 4))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x21)\n revert(0, 0x24)\n }\n mstore(pos, value)\n }\n function abi_encode_tuple_packed_t_bytes32__to_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n mstore(pos, value0)\n end := add(pos, 32)\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n end := add(pos, 64)\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32_t_bytes32__to_t_bytes32_t_bytes32_t_bytes32__nonPadded_inplace_fromStack_reversed(pos, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n mstore(add(pos, 64), value2)\n end := add(pos, 96)\n }\n function abi_encode_tuple_packed_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes_calldata_ptr__to_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes32_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value7, value6, value5, value4, value3, value2, value1, value0) -> end\n {\n mstore(pos, value0)\n mstore(add(pos, 32), value1)\n mstore(add(pos, 64), value2)\n mstore(add(pos, 96), value3)\n mstore(add(pos, 128), value4)\n mstore(add(pos, 160), value5)\n calldatacopy(add(pos, 192), value6, value7)\n let _1 := add(add(pos, value7), 192)\n mstore(_1, end)\n end := _1\n }\n function abi_encode_tuple_packed_t_bytes_calldata_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value1, value0) -> end\n {\n calldatacopy(pos, value0, value1)\n let _1 := add(pos, value1)\n mstore(_1, end)\n end := _1\n }\n function abi_encode_tuple_packed_t_bytes_memory_ptr__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos, value0) -> end\n {\n let length := mload(value0)\n copy_memory_to_memory(add(value0, 0x20), pos, length)\n end := add(pos, length)\n }\n function abi_encode_tuple_packed_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_bytes_memory_ptr__nonPadded_inplace_fromStack_reversed(pos) -> end\n { end := pos }\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_payable__to_t_address__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), 128)\n tail := abi_encode_bytes(value3, add(headStart, 128))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_calldata_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), 160)\n tail := abi_encode_bytes_calldata(value4, value5, add(headStart, 160))\n }\n function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n let _1 := sub(shl(160, 1), 1)\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), value3)\n mstore(add(headStart, 128), 160)\n tail := abi_encode_bytes(value4, add(headStart, 160))\n }\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 160)\n let tail_1 := abi_encode_array_bytes32_dyn(value0, add(headStart, 160))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n let tail_2 := abi_encode_array_bytes32_dyn(value1, tail_1)\n mstore(add(headStart, 64), sub(tail_2, headStart))\n let tail_3 := abi_encode_array_bytes32_dyn(value2, tail_2)\n mstore(add(headStart, 96), sub(tail_3, headStart))\n let tail_4 := abi_encode_array_uint32_dyn(value3, tail_3)\n mstore(add(headStart, 128), sub(tail_4, headStart))\n tail := abi_encode_array_bool_dyn(value4, tail_4)\n }\n function abi_encode_tuple_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__to_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_bytes32_$dyn_memory_ptr_t_array$_t_uint32_$dyn_memory_ptr_t_array$_t_bool_$dyn_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n mstore(headStart, 128)\n let tail_1 := abi_encode_array_bytes32_dyn(value0, add(headStart, 128))\n mstore(add(headStart, 32), sub(tail_1, headStart))\n let tail_2 := abi_encode_array_bytes32_dyn(value1, tail_1)\n mstore(add(headStart, 64), sub(tail_2, headStart))\n let tail_3 := abi_encode_array_uint32_dyn(value2, tail_2)\n mstore(add(headStart, 96), sub(tail_3, headStart))\n tail := abi_encode_array_bool_dyn(value3, tail_3)\n }\n function abi_encode_tuple_t_array$_t_enum$_TokenType_$2627_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint8_$dyn_memory_ptr_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n let tail_1 := add(headStart, 96)\n mstore(headStart, 96)\n let pos := tail_1\n let length := mload(value0)\n mstore(tail_1, length)\n pos := add(headStart, 128)\n let _1 := 0x20\n let srcPtr := add(value0, _1)\n let i := tail\n for { } lt(i, length) { i := add(i, 1) }\n {\n abi_encode_enum_TokenType(mload(srcPtr), pos)\n pos := add(pos, _1)\n srcPtr := add(srcPtr, _1)\n }\n mstore(add(headStart, _1), sub(pos, headStart))\n let pos_1 := pos\n let length_1 := mload(value1)\n mstore(pos, length_1)\n pos_1 := add(pos, _1)\n let srcPtr_1 := add(value1, _1)\n let i_1 := tail\n for { } lt(i_1, length_1) { i_1 := add(i_1, 1) }\n {\n mstore(pos_1, and(mload(srcPtr_1), sub(shl(160, 1), 1)))\n pos_1 := add(pos_1, _1)\n srcPtr_1 := add(srcPtr_1, _1)\n }\n mstore(add(headStart, 64), sub(pos_1, headStart))\n tail := abi_encode_array_bytes32_dyn(value2, pos_1)\n }\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, iszero(iszero(value0)))\n }\n function abi_encode_tuple_t_bytes32_t_bytes32_t_uint32_t_bool__to_t_bytes32_t_bytes32_t_uint32_t_bool__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, 0xffffffff))\n mstore(add(headStart, 96), iszero(iszero(value3)))\n }\n function abi_encode_tuple_t_bytes32_t_uint8_t_uint8_t_uint32_t_uint32_t_uint8_t_address_t_uint256__to_t_bytes32_t_uint8_t_uint8_t_uint32_t_uint32_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 256)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, 0xff))\n mstore(add(headStart, 64), and(value2, 0xff))\n let _1 := 0xffffffff\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), and(value5, 0xff))\n mstore(add(headStart, 192), and(value6, sub(shl(160, 1), 1)))\n mstore(add(headStart, 224), value7)\n }\n function abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, shl(224, 0xffffffff)))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2627_t_address_t_uint256__to_t_uint8_t_address_t_uint256__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n mstore(add(headStart, 64), value2)\n }\n function abi_encode_tuple_t_enum$_TokenType_$2627_t_address_t_uint256_t_address_t_uint256__to_t_uint8_t_address_t_uint256_t_address_t_uint256__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 160)\n abi_encode_enum_TokenType(value0, headStart)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n }\n function abi_encode_tuple_t_enum$_TokenType_$2627_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), 192)\n tail := abi_encode_bytes(value5, add(headStart, 192))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2627_t_address_t_uint256_t_address_t_uint256_t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470__to_t_uint8_t_address_t_uint256_t_address_t_uint256_t_string_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 32), and(value1, _1))\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), value4)\n mstore(add(headStart, 160), 192)\n mstore(add(headStart, 192), tail)\n tail := add(headStart, 224)\n }\n function abi_encode_tuple_t_enum$_TokenType_$2627_t_rational_1_by_1_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), 224)\n tail := abi_encode_bytes_calldata(value6, value7, add(headStart, 224))\n }\n function abi_encode_tuple_t_enum$_TokenType_$2627_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_calldata_ptr__to_t_uint8_t_uint256_t_address_t_address_t_address_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value7, value6, value5, value4, value3, value2, value1, value0) -> tail\n {\n abi_encode_enum_TokenType(value0, headStart)\n mstore(add(headStart, 32), value1)\n let _1 := sub(shl(160, 1), 1)\n mstore(add(headStart, 64), and(value2, _1))\n mstore(add(headStart, 96), and(value3, _1))\n mstore(add(headStart, 128), and(value4, _1))\n mstore(add(headStart, 160), value5)\n mstore(add(headStart, 192), 224)\n tail := abi_encode_bytes_calldata(value6, value7, add(headStart, 224))\n }\n function abi_encode_tuple_t_stringliteral_0c1004916946b89dffc8743f953d4885accbd82403cd8bd9e53f384fa95731af__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 16)\n mstore(add(headStart, 64), \"Too many commits\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_0d3a5f34c29e81aa7bbfe59ba3e3db3006ac807af6a54ad3cac7463abb5d83b0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 13)\n mstore(add(headStart, 64), \"Nonce too low\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_1c2d20c6fc3078eff495891b6caa29a7be172ac7018d2f6172fb68ba87240f3d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 30)\n mstore(add(headStart, 64), \"Last resort address is not set\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_286e638d23bc87ce733fb0202708f485eb6091553feef3d943a83966c37e7639__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Reveal too late\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_2c594e135171cc6dc0d96175148636924623810d2d534a029b78044ab417d7d0__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 20)\n mstore(add(headStart, 64), \"input bytes too long\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_2d6af051cc9bdd806c60b20e274721a89fb9a7025afbe00dde07d3201c4068b2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Commit already completed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_3430d3063c70bc84041a3bb75a9010a8e7685d878f7521f09ab01e30ea2f9f24__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 23)\n mstore(add(headStart, 64), \"Parameter hash mismatch\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_38f47be26bf822ff597a5cbffa2774ecae1ceaa169f734b7db0a07fb62c9547a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"No commit found\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_50d19c134c4136d96b547b25b22aa8e1363529709733541230ebfa41cb82b262__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Too early to retire\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 26)\n mstore(add(headStart, 64), \"Index - timestamp mismatch\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_5515ff285a2022327bc0ffdc690388a3a1d15360640a68caecd56fe24371f01a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 18)\n mstore(add(headStart, 64), \"Proof is incorrect\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_791866c3f9c9c03c601447bf48dd4e0bd3f849759626f2144adccf6e77c6e64d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 24)\n mstore(add(headStart, 64), \"Invalid commit timestamp\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_7fb6a81bbdba15000418055bc5e058938e4fd0b50065d70de11ee03ca8f293e3__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 36)\n mstore(add(headStart, 64), \"data must have length multiple t\")\n mstore(add(headStart, 96), \"o 96\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_83d08d6dcf099c52fbe149a08cb4ffd65f3fec6dbf87dba7bc08b7a534982441__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 29)\n mstore(add(headStart, 64), \"Not enough neighbors provided\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_887bc482e9abfdf76109db32e10c15ef35a028513416621efc881c8a92574313__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"Recovery failed\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_8a9c0db4284cd81d8eaef3d877f21bcccab643ae503f9d63f7eb3ad5aacbe749__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Invalid commit hash\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_b20dc6ef8ce4f94dd03e7dbd2b41776293fb93e4528d85e98acf1bfed3136f73__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 10)\n mstore(add(headStart, 64), \"Deprecated\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_bc3ff827c71f29679c970d77c58ec807a06259e86e9cd823a8554b04d0d6f030__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 34)\n mstore(add(headStart, 64), \"Last resort address is already s\")\n mstore(add(headStart, 96), \"et\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_stringliteral_c3972966c6b890cd04bd250ec8fd05d1950759334a3d8fa4e9bb3d0693e9952d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 15)\n mstore(add(headStart, 64), \"No valid commit\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_dd8f27f99c8575d947c48310b46d36796c8df82285fc83fecd33510610055413__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 19)\n mstore(add(headStart, 64), \"Invalid commitIndex\")\n tail := add(headStart, 96)\n }\n function abi_encode_tuple_t_stringliteral_fab9828a623b3dec5ff9fd3a2c3a6f583ee6577f264fc8a5c168e0454ba5a4ba__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n {\n mstore(headStart, 32)\n mstore(add(headStart, 32), 35)\n mstore(add(headStart, 64), \"Last operation reserved for reco\")\n mstore(add(headStart, 96), \"ver\")\n tail := add(headStart, 128)\n }\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_address_payable__to_t_uint256_t_address__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), and(value1, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_address_payable__to_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value2, value1, value0) -> tail\n {\n tail := add(headStart, 96)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), and(value2, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256_t_address_payable__to_t_uint256_t_uint256_t_uint256_t_address__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n {\n tail := add(headStart, 128)\n mstore(headStart, value0)\n mstore(add(headStart, 32), value1)\n mstore(add(headStart, 64), value2)\n mstore(add(headStart, 96), and(value3, sub(shl(160, 1), 1)))\n }\n function abi_encode_tuple_t_uint32_t_uint32__to_t_uint32_t_uint32__fromStack_reversed(headStart, value1, value0) -> tail\n {\n tail := add(headStart, 64)\n let _1 := 0xffffffff\n mstore(headStart, and(value0, _1))\n mstore(add(headStart, 32), and(value1, _1))\n }\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart, value0) -> tail\n {\n tail := add(headStart, 32)\n mstore(headStart, and(value0, 0xff))\n }\n function calldata_array_index_range_access_t_bytes_calldata_ptr(offset, length, startIndex, endIndex) -> offsetOut, lengthOut\n {\n if gt(startIndex, endIndex) { revert(offsetOut, offsetOut) }\n if gt(endIndex, length) { revert(offsetOut, offsetOut) }\n offsetOut := add(offset, startIndex)\n lengthOut := sub(endIndex, startIndex)\n }\n function checked_add_t_uint256(x, y) -> sum\n {\n if gt(x, not(y)) { panic_error_0x11() }\n sum := add(x, y)\n }\n function checked_add_t_uint32(x, y) -> sum\n {\n let _1 := 0xffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if gt(x_1, sub(_1, y_1)) { panic_error_0x11() }\n sum := add(x_1, y_1)\n }\n function checked_div_t_uint256(x, y) -> r\n {\n if iszero(y) { panic_error_0x12() }\n r := div(x, y)\n }\n function checked_div_t_uint32(x, y) -> r\n {\n let _1 := 0xffffffff\n let y_1 := and(y, _1)\n if iszero(y_1) { panic_error_0x12() }\n r := div(and(x, _1), y_1)\n }\n function checked_mul_t_uint256(x, y) -> product\n {\n if and(iszero(iszero(x)), gt(y, div(not(0), x))) { panic_error_0x11() }\n product := mul(x, y)\n }\n function checked_mul_t_uint32(x, y) -> product\n {\n let _1 := 0xffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if and(iszero(iszero(x_1)), gt(y_1, div(_1, x_1))) { panic_error_0x11() }\n product := mul(x_1, y_1)\n }\n function checked_sub_t_uint256(x, y) -> diff\n {\n if lt(x, y) { panic_error_0x11() }\n diff := sub(x, y)\n }\n function checked_sub_t_uint32(x, y) -> diff\n {\n let _1 := 0xffffffff\n let x_1 := and(x, _1)\n let y_1 := and(y, _1)\n if lt(x_1, y_1) { panic_error_0x11() }\n diff := sub(x_1, y_1)\n }\n function checked_sub_t_uint8(x, y) -> diff\n {\n let x_1 := and(x, 0xff)\n let y_1 := and(y, 0xff)\n if lt(x_1, y_1) { panic_error_0x11() }\n diff := sub(x_1, y_1)\n }\n function copy_memory_to_memory(src, dst, length)\n {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length) { mstore(add(dst, length), 0) }\n }\n function finalize_allocation(memPtr, size)\n {\n let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr))\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n mstore(64, newFreePtr)\n }\n function increment_t_uint32(value) -> ret\n {\n let _1 := 0xffffffff\n let value_1 := and(value, _1)\n if eq(value_1, _1) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function increment_t_uint8(value) -> ret\n {\n let value_1 := and(value, 0xff)\n if eq(value_1, 0xff) { panic_error_0x11() }\n ret := add(value_1, 1)\n }\n function mod_t_uint32(x, y) -> r\n {\n let _1 := 0xffffffff\n let y_1 := and(y, _1)\n if iszero(y_1) { panic_error_0x12() }\n r := mod(and(x, _1), y_1)\n }\n function panic_error_0x11()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n function panic_error_0x12()\n {\n mstore(0, shl(224, 0x4e487b71))\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n function return_data_selector() -> sig\n {\n if gt(returndatasize(), 3)\n {\n returndatacopy(sig, sig, 4)\n sig := shr(224, mload(sig))\n }\n }\n function try_decode_error_message() -> ret\n {\n if lt(returndatasize(), 0x44) { leave }\n let data := mload(64)\n let _1 := not(3)\n returndatacopy(data, 4, add(returndatasize(), _1))\n let offset := mload(data)\n let _2 := returndatasize()\n let _3 := 0xffffffffffffffff\n if or(gt(offset, _3), gt(add(offset, 0x24), _2)) { leave }\n let msg := add(data, offset)\n let length := mload(msg)\n if gt(length, _3) { leave }\n if gt(add(add(msg, length), 0x20), add(add(data, returndatasize()), _1)) { leave }\n finalize_allocation(data, add(add(offset, length), 0x20))\n ret := msg\n }\n function validator_revert_address(value)\n {\n if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n }\n function validator_revert_bytes4(value)\n {\n if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n }\n}", "id": 8, "language": "Yul", "name": "#utility.yul" } ], - "sourceMap": "151:24059:6:-:0;;;4057:517;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4258:12;;;;4280:16;;;;;;;;;4306:20;;;;;;;-1:-1:-1;;;;;;4336:8:6;;;;;;;;4354:20;;;;;;4384:17;:38;;-1:-1:-1;;;;;4384:38:6;;-1:-1:-1;;;;;;4384:38:6;;;;;;4432:10;:24;;;4466:52;;;;;;4554:11;4384:38;4289:7;4554:11;:::i;:::-;4548:18;;:1;:18;:::i;:::-;4528:39;;-1:-1:-1;;;;;;4528:39:6;;;-1:-1:-1;151:24059:6;;-1:-1:-1;;;;;;;151:24059:6;14:167:8;92:13;;145:10;134:22;;124:33;;114:2;;171:1;168;161:12;114:2;73:108;;;:::o;186:160::-;263:13;;316:4;305:16;;295:27;;285:2;;336:1;333;326:12;351:854;484:6;492;500;508;516;524;532;540;593:3;581:9;572:7;568:23;564:33;561:2;;;615:6;607;600:22;561:2;649:9;643:16;633:26;;678:47;721:2;710:9;706:18;678:47;:::i;:::-;668:57;;744:47;787:2;776:9;772:18;744:47;:::i;:::-;734:57;;810:48;854:2;843:9;839:18;810:48;:::i;:::-;800:58;;877:49;921:3;910:9;906:19;877:49;:::i;:::-;867:59;;945:48;988:3;977:9;973:19;945:48;:::i;:::-;1036:3;1021:19;;1015:26;935:58;;-1:-1:-1;;;;;;1070:31:8;;1060:42;;1050:2;;1121:6;1113;1106:22;1050:2;1149:5;1139:15;;;1194:3;1183:9;1179:19;1173:26;1163:36;;551:654;;;;;;;;;;;:::o;1210:422::-;1299:1;1342:5;1299:1;1356:270;1377:7;1367:8;1364:21;1356:270;;;1436:4;1432:1;1428:6;1424:17;1418:4;1415:27;1412:2;;;1445:18;;:::i;:::-;1495:7;1485:8;1481:22;1478:2;;;1515:16;;;;1478:2;1594:22;;;;1554:15;;;;1356:270;;;1360:3;1274:358;;;;;:::o;1637:140::-;1695:5;1724:47;1765:4;1755:8;1751:19;1745:4;1724:47;:::i;:::-;1715:56;1705:72;-1:-1:-1;;;1705:72:8:o;1782:806::-;1831:5;1861:8;1851:2;;-1:-1:-1;1902:1:8;1916:5;;1851:2;1950:4;1940:2;;-1:-1:-1;1987:1:8;2001:5;;1940:2;2032:4;2050:1;2045:59;;;;2118:1;2113:130;;;;2025:218;;2045:59;2075:1;2066:10;;2089:5;;;2113:130;2150:3;2140:8;2137:17;2134:2;;;2157:18;;:::i;:::-;-1:-1:-1;;2213:1:8;2199:16;;2228:5;;2025:218;;2327:2;2317:8;2314:16;2308:3;2302:4;2299:13;2295:36;2289:2;2279:8;2276:16;2271:2;2265:4;2262:12;2258:35;2255:77;2252:2;;;-1:-1:-1;2364:19:8;;;2396:5;;2252:2;2443:34;2468:8;2462:4;2443:34;:::i;:::-;2513:6;2509:1;2505:6;2501:19;2492:7;2489:32;2486:2;;;2524:18;;:::i;:::-;2562:20;;-1:-1:-1;1841:747:8;;;;;:::o;2593:195::-;2631:4;2668;2665:1;2661:12;2700:4;2697:1;2693:12;2725:3;2720;2717:12;2714:2;;;2732:18;;:::i;:::-;2769:13;;;2640:148;-1:-1:-1;;;2640:148:8:o;2793:127::-;2854:10;2849:3;2845:20;2842:1;2835:31;2885:4;2882:1;2875:15;2909:4;2906:1;2899:15;2825:95;151:24059:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "151:24059:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4622:38;;;4638:9;30559:25:8;;4649:10:6;30615:2:8;30600:18;;30593:60;4622:38:6;;30532:18:8;4622:38:6;;;;;;;3102:7;4674:9;:41;4670:78;;151:24059;4670:78;4775:17;;-1:-1:-1;;;;;4775:17:6;4761:10;:31;4757:68;;151:24059;4757:68;4838:17;;-1:-1:-1;;;;;4838:17:6;4834:68;;151:24059;4834:68;4915:10;4937:4;4915:27;4911:64;;;151:24059;4911:64;4989:33;;5011:10;11859:51:8;;4989:33:6;;11847:2:8;11832:18;4989:33:6;;;;;;;5040:8;:6;:8::i;:::-;5032:17;;;;;;151:24059;;;;;3101:270:7;;;;;;;;;;-1:-1:-1;3101:270:7;;;;;:::i;:::-;;:::i;:::-;;;17567:14:8;;17560:22;17542:41;;17530:2;17515:18;3101:270:7;;;;;;;;5600:117:6;;;;;;;;;;-1:-1:-1;5600:117:6;;;3190:3;32191:34:8;;3274:3:6;32256:2:8;32241:18;;32234:43;32135:18;5600:117:6;32117:166:8;3460:374:7;;;;;;;;;;-1:-1:-1;3460:374:7;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;18951:33:8;;;18933:52;;18921:2;18906:18;3460:374:7;18888:103:8;7462:129:6;;;;;;;;;;-1:-1:-1;7462:129:6;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;17817:25:8;;;17873:2;17858:18;;17851:34;;;;17933:10;17921:23;17916:2;17901:18;;17894:51;17988:14;17981:22;17976:2;17961:18;;17954:50;17804:3;17789:19;;17771:239;5723:128:6;;;;;;;;;;-1:-1:-1;5816:10:6;;5828:15;;5723:128;;;31125:25:8;;;5828:15:6;;;;31181:2:8;31166:18;;31159:34;31098:18;5723:128:6;31080:119:8;6018:149:6;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;5365:229::-;;;;;;;;;;;;5557:17;;5576:10;;5493:4;;5499:6;;5507:8;;5517:2;;5521:8;;5531:24;;-1:-1:-1;;;;;5557:17:6;;;;5365:229;;;;;18342:25:8;;;18415:4;18403:17;;;18398:2;18383:18;;18376:45;18457:17;;;18437:18;;;18430:45;;;;18494:10;18540:15;;;18535:2;18520:18;;18513:43;18593:15;;;;18587:3;18572:19;;18565:44;18646:17;;18640:3;18625:19;;18618:46;-1:-1:-1;;;;;18701:32:8;;;18695:3;18680:19;;18673:61;18765:3;18750:19;;18743:35;18329:3;18314:19;5365:229:6;18296:488:8;3840:652:7;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;6173:1283:6:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;5063:296::-;;;;;;;;;;;;;:::i;2728:367:7:-;;;;;;;;;;-1:-1:-1;2728:367:7;;;;;:::i;:::-;;:::i;14235:1886:6:-;;;;;;;;;;-1:-1:-1;14235:1886:6;;;;;:::i;:::-;;:::i;5857:155::-;;;;;;;;;;;;;:::i;:::-;;;32460:4:8;32448:17;;;32430:36;;32418:2;32403:18;5857:155:6;32385:87:8;7597:907:6;;;;;;;;;;-1:-1:-1;7597:907:6;;;;;:::i;:::-;;:::i;8510:358::-;;;;;;;;;;-1:-1:-1;8510:358:6;;;;;:::i;:::-;;:::i;2332:390:7:-;;;;;;;;;;-1:-1:-1;2332:390:7;;;;;:::i;:::-;;:::i;9110:258:6:-;9280:17;;:57;;9146:4;;;;-1:-1:-1;;;;;9280:17:6;;;;9311:21;;9146:4;9280:57;9146:4;9280:57;9311:21;9280:17;:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9262:75:6;;9110:258;-1:-1:-1;;;9110:258:6:o;3101:270:7:-;3180:4;-1:-1:-1;;;;;;3203:46:7;;-1:-1:-1;;;3203:46:7;;:104;;-1:-1:-1;;;;;;;3261:46:7;;-1:-1:-1;;;3261:46:7;3203:104;:161;;;-1:-1:-1;;;;;;;3319:45:7;;-1:-1:-1;;;3319:45:7;3203:161;3196:168;3101:270;-1:-1:-1;;3101:270:7:o;3460:374::-;3621:6;3643:77;3657:16;3675:1;3678:4;3684:10;3696:8;3706:7;3715:4;;3643:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;3730:50;3742:16;3760:10;3772:7;3730:11;:50::i;:::-;-1:-1:-1;;;;3460:374:7;;;;;;;:::o;7462:129:6:-;7523:7;7532;7541:6;7549:4;7564:20;;-1:-1:-1;;;7564:20:6;;;;;;28749:2:8;28731:21;;;28788:2;28768:18;;;28761:30;-1:-1:-1;;;28822:2:8;28807:18;;28800:40;28872:2;28857:18;;28721:160;7564:20:6;;;;;;;;6018:149;6063:16;6081;6099:15;6116:13;6140:20;;-1:-1:-1;;;6140:20:6;;;;;;28749:2:8;28731:21;;;28788:2;28768:18;;;28761:30;-1:-1:-1;;;28822:2:8;28807:18;;28800:40;28872:2;28857:18;;28721:160;3840:652:7;3891:18;3911:16;3929;3956:29;4004:13;:20;;;;-1:-1:-1;;;;;3988:37:7;;;;;-1:-1:-1;;;3988:37:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3988:37:7;-1:-1:-1;4086:13:7;:20;3956:69;;-1:-1:-1;4035:34:7;;-1:-1:-1;;;;;4072:35:7;;;;;-1:-1:-1;;;4072:35:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4072:35:7;-1:-1:-1;4159:13:7;:20;4035:72;;-1:-1:-1;4117:25:7;;-1:-1:-1;;;;;4145:35:7;;;;;-1:-1:-1;;;4145:35:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4145:35:7;;4117:63;;4195:8;4190:238;4213:13;:20;4209:24;;;;4190:238;;;4270:13;4284:1;4270:16;;;;;;;;-1:-1:-1;;;4270:16:7;;;;;;;;;;;;;;;;;;;;;;:26;4254:13;;4270:26;;;;;4254:10;;:13;;;;;;;;-1:-1:-1;;;4254:13:7;;;;;;;;;;;;;;:42;;;;;;;-1:-1:-1;;;4254:42:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;4254:42:7;;;;;;;;;;;;;4333:13;4347:1;4333:16;;;;;;;;-1:-1:-1;;;4333:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;4333:32:7;4310:17;4328:1;4310:20;;;;;;;;-1:-1:-1;;;4310:20:7;;;;;;;;;;;;;;:55;-1:-1:-1;;;;;4310:55:7;;;-1:-1:-1;;;;;4310:55:7;;;;;4393:13;4407:1;4393:16;;;;;;;;-1:-1:-1;;;4393:16:7;;;;;;;;;;;;;;;;;;;:24;;;4379:8;4388:1;4379:11;;;;;;;;-1:-1:-1;;;4379:11:7;;;;;;;;;;;;;;;;;;:38;4235:3;;;;:::i;:::-;;;;4190:238;;;-1:-1:-1;4445:10:7;;4457:17;;-1:-1:-1;4476:8:7;;-1:-1:-1;3840:652:7;-1:-1:-1;3840:652:7:o;6173:1283:6:-;6221:16;6239;6257;6275:15;6292:13;6321:17;6357:8;6352:160;6375:7;:14;6371:18;;;;6352:160;;;6410:19;6432:12;:24;6445:7;6453:1;6445:10;;;;;;;;-1:-1:-1;;;6445:10:6;;;;;;;;;;;;;;;;;6432:24;;;;;;;;;;;6410:46;;6491:2;:9;;;;6470:31;;;;;:::i;:::-;;;6352:160;6391:3;;;;;:::i;:::-;;;;6352:160;;;;6521:23;6561:10;6547:25;;-1:-1:-1;;;;;6547:25:6;;;;;-1:-1:-1;;;6547:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6547:25:6;;6521:51;;6582:28;6627:10;6613:25;;-1:-1:-1;;;;;6613:25:6;;;;;-1:-1:-1;;;6613:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6613:25:6;;6582:56;;6648:35;6700:10;6686:25;;-1:-1:-1;;;;;6686:25:6;;;;;-1:-1:-1;;;6686:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6686:25:6;;6648:63;;6721:26;6763:10;6750:24;;-1:-1:-1;;;;;6750:24:6;;;;;-1:-1:-1;;;6750:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6750:24:6;;6721:53;;6784:23;6821:10;6810:22;;-1:-1:-1;;;;;6810:22:6;;;;;-1:-1:-1;;;6810:22:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6810:22:6;;6784:48;;6842:12;6873:8;6868:501;6891:7;:14;6887:18;;;;6868:501;;;6926:19;6948:12;:24;6961:7;6969:1;6961:10;;;;;;;;-1:-1:-1;;;6961:10:6;;;;;;;;;;;;;;;;;6948:24;;;;;;;;;;;6926:46;;6991:8;6986:373;7009:9;;7005:13;;;;6986:373;;;7043:16;7062:2;7065:1;7062:5;;;;;;;;-1:-1:-1;;;7062:5:6;;;;;;;;;;;;;;;;;;;7043:24;;7101:1;:6;;;7085;7092:5;7085:13;;;;;;;;-1:-1:-1;;;7085:13:6;;;;;;;;;;;;;;:22;;;;;7146:1;:12;;;7125:11;7137:5;7125:18;;;;;;;;-1:-1:-1;;;7125:18:6;;;;;;;;;;;;;;:33;;;;;7204:1;:18;;;7176;7195:5;7176:25;;;;;;;;-1:-1:-1;;;7176:25:6;;;;;;;;;;;;;;;;;;:46;7260:11;;;;7240:17;;7260:11;;;;;7240:10;;:17;;;;;;;;-1:-1:-1;;;7240:17:6;;;;;;;;;;;;;;:31;;;;;;;;;;;7308:1;:11;;;;;;;;;;;;7289:9;7299:5;7289:16;;;;;;;;-1:-1:-1;;;7289:16:6;;;;;;;;;:30;;;:16;;;;;;;;;;;:30;7337:7;;;;:::i;:::-;;;;6986:373;7020:3;;;;;:::i;:::-;;;;6986:373;;;;6868:501;6907:3;;;;;:::i;:::-;;;;6868:501;;;-1:-1:-1;7386:6:6;;7394:11;;-1:-1:-1;7407:18:6;;-1:-1:-1;7407:18:6;-1:-1:-1;7394:11:6;-1:-1:-1;6173:1283:6;-1:-1:-1;;;6173:1283:6:o;5063:296::-;5099:4;5127:50;5169:8;5127:50;5164:2;5134:26;;5152:8;5134:26;:15;:26;:::i;:::-;5127:39;;;;:::i;:::-;:50;;;5119:82;;;;-1:-1:-1;;;5119:82:6;;25891:2:8;5119:82:6;;;25873:21:8;25930:2;25910:18;;;25903:30;-1:-1:-1;;;25949:18:8;;;25942:49;26008:18;;5119:82:6;25863:169:8;5119:82:6;5219:17;;-1:-1:-1;;;;;5219:17:6;5211:74;;;;-1:-1:-1;;;5211:74:6;;23790:2:8;5211:74:6;;;23772:21:8;23829:2;23809:18;;;23802:30;23868:32;23848:18;;;23841:60;23918:18;;5211:74:6;23762:180:8;5211:74:6;5303:8;:6;:8::i;:::-;5295:36;;;;-1:-1:-1;;;5295:36:6;;28057:2:8;5295:36:6;;;28039:21:8;28096:2;28076:18;;;28069:30;-1:-1:-1;;;28115:18:8;;;28108:45;28170:18;;5295:36:6;28029:165:8;5295:36:6;-1:-1:-1;5348:4:6;;5063:296::o;2728:367:7:-;2891:6;;2908:128;2927:14;;;;-1:-1:-1;2908:128:7;;;2962:4;:22;2985:8;2995:4;3001:3;;:6;;;;;;;;-1:-1:-1;;;3001:6:7;;;;;;;;;;;;;;;3009;;3016:1;3009:9;;;;;;;-1:-1:-1;;;3009:9:7;;;;;;;;;;;;;;;3020:4;;2962:63;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2943:3:7;;;;:::i;:::-;;;;2908:128;;;-1:-1:-1;;;;3052:36:7;2728:367;-1:-1:-1;;;;;;;;;2728:367:7:o;14235:1886:6:-;14500:48;14516:9;;14527:14;14543:4;14500:15;:48::i;:::-;14580:14;14593:1;14580:10;:14;:::i;:::-;14562:32;;:14;:32;;;14558:149;;;14635:21;14618:13;:38;;;;;;-1:-1:-1;;;14618:38:6;;;;;;;;;;14610:86;;;;-1:-1:-1;;;14610:86:6;;30183:2:8;14610:86:6;;;30165:21:8;30222:2;30202:18;;;30195:30;30261:34;30241:18;;;30234:62;-1:-1:-1;;;30312:18:8;;;30305:33;30355:19;;14610:86:6;30155:225:8;14610:86:6;14717:18;14737;14759:134;14774:9;;14784:1;14774:12;;;;;-1:-1:-1;;;14774:12:6;;;;;;;;;;;;;;;14788:14;14804:4;14822:13;14837:9;14848:15;14865:7;14874:4;14880:6;14888:4;;14759:14;:134::i;:::-;14716:177;;;;14903:18;14924:59;14938:10;14950:14;14966:10;14978:4;14924:13;:59::i;:::-;14903:80;;14993:40;15009:10;15021:11;14993:15;:40::i;:::-;15115:19;15098:13;:36;;;;;;-1:-1:-1;;;15098:36:6;;;;;;;;;;15094:1021;;;15154:15;;15150:158;;15189:17;15201:4;;15189:11;:17::i;:::-;15094:1021;;15150:158;15245:48;15257:9;15268:15;15285:7;15245:11;:48::i;15094:1021::-;15345:21;15328:13;:38;;;;;;-1:-1:-1;;;15328:38:6;;;;;;;;;;15324:791;;;15386:15;;15382:162;;15421:50;15435:9;15446:15;15463:7;15421:13;:50::i;15382:162::-;15510:19;15524:4;;15510:13;:19::i;15324:791::-;15581:28;15564:13;:45;;;;;;-1:-1:-1;;;15564:45:6;;;;;;;;;;15560:555;;;15625:71;15640:9;15651:15;15668:7;15677:4;15683:6;15691:4;;15625:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15625:14:6;;-1:-1:-1;;;15625:71:6:i;15560:555::-;15734:28;15717:13;:45;;;;;;-1:-1:-1;;;15717:45:6;;;;;;;;;;15713:402;;;15778:29;15802:4;;15778:23;:29::i;15713:402::-;15845:22;15828:13;:39;;;;;;-1:-1:-1;;;15828:39:6;;;;;;;;;;15824:291;;;15883:23;15893:4;15899:6;15883:9;:23::i;:::-;;15824:291;;;15944:21;15927:13;:38;;;;;;-1:-1:-1;;;15927:38:6;;;;;;;;;;15923:192;;;15981:10;:8;:10::i;15923:192::-;16029:34;16012:13;:51;;;;;;-1:-1:-1;;;16012:51:6;;;;;;;;;;16008:107;;;16079:25;16099:4;16079:19;:25::i;:::-;14235:1886;;;;;;;;;;;;;;;:::o;5857:155::-;5900:5;;5973:2;5936:34;;5962:8;5936:34;5943:15;5936:34;:::i;:::-;:39;;;;:::i;:::-;5992:13;;;;;;:6;:13;;;;;;;;;5857:155;-1:-1:-1;;5857:155:6:o;7597:907::-;7751:19;7773:18;;;:12;:18;;;;;7841:9;;7656:16;;;;;;;;;;7773:18;-1:-1:-1;;;;;7827:24:6;;;;;-1:-1:-1;;;7827:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7827:24:6;-1:-1:-1;7906:9:6;;7801:50;;-1:-1:-1;7861:28:6;;-1:-1:-1;;;;;7892:24:6;;;;;-1:-1:-1;;;7892:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7892:24:6;-1:-1:-1;7978:9:6;;7861:55;;-1:-1:-1;7926:35:6;;-1:-1:-1;;;;;7964:24:6;;;;;-1:-1:-1;;;7964:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7964:24:6;-1:-1:-1;8040:9:6;;7926:62;;-1:-1:-1;7998:26:6;;-1:-1:-1;;;;;8027:23:6;;;;;-1:-1:-1;;;8027:23:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8027:23:6;-1:-1:-1;8097:9:6;;7998:52;;-1:-1:-1;8060:23:6;;-1:-1:-1;;;;;8086:21:6;;;;;-1:-1:-1;;;8086:21:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8086:21:6;;8060:47;;8122:8;8117:300;8140:9;;8136:13;;;;8117:300;;;8170:16;8189:2;8192:1;8189:5;;;;;;;;-1:-1:-1;;;8189:5:6;;;;;;;;;;;;;;;;;;;8170:24;;8220:1;:6;;;8208;8215:1;8208:9;;;;;;;;-1:-1:-1;;;8208:9:6;;;;;;;;;;;;;;:18;;;;;8257:1;:12;;;8240:11;8252:1;8240:14;;;;;;;;-1:-1:-1;;;8240:14:6;;;;;;;;;;;;;;:29;;;;;8307:1;:18;;;8283;8302:1;8283:21;;;;;;;;-1:-1:-1;;;8283:21:6;;;;;;;;;;;;;;;;;;:42;8355:11;;;;8339:13;;8355:11;;;;;8339:10;;:13;;;;;;;;-1:-1:-1;;;8339:13:6;;;;;;;;;;;;;;:27;;;;;;;;;;;8395:1;:11;;;;;;;;;;;;8380:9;8390:1;8380:12;;;;;;;;-1:-1:-1;;;8380:12:6;;;;;;;;;:26;;;:12;;;;;;;;;;;:26;-1:-1:-1;8151:3:6;;;;:::i;:::-;;;;8117:300;;;-1:-1:-1;8434:6:6;;8442:11;;-1:-1:-1;8455:18:6;;-1:-1:-1;8442:11:6;-1:-1:-1;8434:6:6;;-1:-1:-1;7597:907:6;-1:-1:-1;;;7597:907:6:o;8510:358::-;8605:17;:15;:17::i;:::-;8651:74;;;;;;;;;;;;;;;;;;;;;;;;8701:15;8651:74;;;;;8632:16;8651:74;;;;8743:7;:14;3149:3;-1:-1:-1;8735:61:6;;;;-1:-1:-1;;;8735:61:6;;23103:2:8;8735:61:6;;;23085:21:8;23142:2;23122:18;;;23115:30;-1:-1:-1;;;23161:18:8;;;23154:46;23217:18;;8735:61:6;23075:166:8;8735:61:6;8806:7;:18;;;;;;;;;;;;;;-1:-1:-1;8834:18:6;;;:12;8806:18;8834;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8834:27:6;;;;;;;;;;;;;;;-1:-1:-1;;8510:358:6:o;2332:390:7:-;2512:6;2534:77;2548:17;2567:5;2574:4;2580:10;2592:8;2602:2;2606:4;;2534:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;2621:46;2633:17;2652:10;2664:2;2621:11;:46::i;:::-;-1:-1:-1;;;;2332:390:7;;;;;;;;:::o;4500:1030::-;4603:11;4656:9;4648:18;;;;;;-1:-1:-1;;;4648:18:7;;;;;;;;;4627:94;;;;;;10133:19:8;;;;4677:24:7;;;;-1:-1:-1;;;;;;4669:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;4627:94:7;;;-1:-1:-1;;4627:94:7;;;;;;;;;4617:105;;4627:94;4617:105;;;;4772:1;4736:26;;;;;;;;;:33;4617:105;;-1:-1:-1;4736:37:7;4732:549;;4794:8;4789:482;4812:21;:26;;;;;;;;;;:33;4808:37;;;;4789:482;;;4870:9;4882:26;;;;;;;;;;:29;;;;;;;;;;-1:-1:-1;;;4882:29:7;;;;;;;;;;;;;;;;;4870:41;;4963:9;4933:39;;;;;;-1:-1:-1;;;4933:39:7;;;;;;;;;:13;4947:1;4933:16;;;;;;-1:-1:-1;;;4933:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;:39;;;;;;-1:-1:-1;;;4933:39:7;;;;;;;;;;4929:53;;4974:8;;;4929:53;5032:7;5004:13;5018:1;5004:16;;;;;;-1:-1:-1;;;5004:16:7;;;;;;;;;;;;;;;;;;;:24;;;:35;5000:49;;5041:8;;;5000:49;5107:15;-1:-1:-1;;;;;5071:51:7;:13;5085:1;5071:16;;;;;;-1:-1:-1;;;5071:16:7;;;;;;;;;;;;;;;;;;;;;;:32;;;;-1:-1:-1;;;;;5071:32:7;:51;5067:65;;5124:8;;;5067:65;5250:7;;;4500:1030;;;:::o;4789:482::-;4847:3;;;;:::i;:::-;;;;4789:482;;;;4732:549;5290:22;5315:49;;;;;;;;5328:9;5315:49;;;;;;-1:-1:-1;;;5315:49:7;;;;;;;;;;;-1:-1:-1;;;;;5315:49:7;;;;;;;;;;;;;;;;;-1:-1:-1;5374:26:7;;;;;;;;;5406:13;:20;;5374:53;;;;;;;;;;;;;;;;;;;;5437:22;;;;;;;;;;;;;;;;;;;;;5290:74;;-1:-1:-1;5290:74:7;;5437:22;;;;;-1:-1:-1;;5437:22:7;;;;;;;;;-1:-1:-1;;;5437:22:7;;;;;;;;;;;;;-1:-1:-1;5437:22:7;;;;;;-1:-1:-1;;;;;5437:22:7;;;;;-1:-1:-1;;;;;;5437:22:7;;;;;;;;;;;;;;;;5474:49;;;;;5487:9;;5498:15;;5515:7;;5474:49;:::i;:::-;;;;;;;;4500:1030;;;;;:::o;16250:704:6:-;16388:10;16397:1;16388:6;:10;:::i;:::-;16368:30;;;;16360:72;;;;-1:-1:-1;;;16360:72:6;;27699:2:8;16360:72:6;;;27681:21:8;27738:2;27718:18;;;27711:30;27777:31;27757:18;;;27750:59;27826:18;;16360:72:6;27671:179:8;16360:72:6;16442:9;16454:26;16474:4;16461:18;;;;;;9638:19:8;;9682:2;9673:12;;9628:63;16461:18:6;;;;-1:-1:-1;;16461:18:6;;;;;;;;;;16454:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16442:38;-1:-1:-1;16506:14:6;16519:1;16506:10;:14;:::i;:::-;16494:26;;:8;:26;;;16490:107;;;-1:-1:-1;16582:4:6;16490:107;16611:7;16606:276;16628:10;16637:1;16628:6;:10;:::i;:::-;16624:14;;:1;:14;;;16606:276;;;16675:4;16664:15;;;16663:25;16659:185;;;16712:37;16732:9;;16742:1;16732:12;;;;;;;-1:-1:-1;;;16732:12:6;;;;;;;;;;;;;;;16746:1;16719:29;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;16719:29:6;;;;-1:-1:-1;;16719:29:6;;;;;;;;;;16712:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16708:41;;16659:185;;;16792:37;16812:1;16815:9;;16825:1;16815:12;;;;;;;-1:-1:-1;;;16815:12:6;;;;;;;;;;;;;;;16799:29;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;16799:29:6;;;;-1:-1:-1;;16799:29:6;;;;;;;;;;16792:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16788:41;;16659:185;16870:1;16857:14;;;;;;;16640:3;;;;;:::i;:::-;;;;16606:276;;;;16907:1;16899:4;:9;16891:40;;;;-1:-1:-1;;;16891:40:6;;26594:2:8;16891:40:6;;;26576:21:8;26633:2;26613:18;;;26606:30;-1:-1:-1;;;26652:18:8;;;26645:48;26710:18;;16891:40:6;26566:168:8;16891:40:6;16941:7;16250:704;;;;;:::o;12941:1287::-;13194:7;13203;13222:12;13260:8;13285:14;13278:22;;-1:-1:-1;;;;;13270:31:6;;13303:4;13247:61;;;;;;;;;10133:19:8;;;10177:2;10168:12;;10161:28;;;;10214:2;10205:12;;10198:28;10251:2;10242:12;;10123:137;13247:61:6;;;;-1:-1:-1;;13247:61:6;;;;;;;;;13237:72;;13247:61;13237:72;;;;;-1:-1:-1;13319:18:6;13381:22;13364:13;:39;;;;;;-1:-1:-1;;;13364:39:6;;;;;;;;;;13360:827;;;13442:62;;;13463:22;;;;-1:-1:-1;;;;;;13455:31:6;13442:62;;;9853:19:8;9888:12;;;9881:28;;;9925:12;13442:62:6;;;;;;;;;;;;;13432:73;;;;;;13419:86;;13360:827;;;13543:21;13526:13;:38;;;;;;-1:-1:-1;;;13526:38:6;;;;;;;;;;13522:665;;;13603:4;;13593:15;;;;;;;:::i;:::-;;;;;;;;13580:28;;13522:665;;;13646:34;13629:13;:51;;;;;;-1:-1:-1;;;13629:51:6;;;;;;;;;;13625:562;;;13719:45;;;-1:-1:-1;;;;;;13740:22:6;;;;13732:31;13719:45;;;9638:19:8;9673:12;13719:45:6;9628:63:8;13625:562:6;13796:19;13864:13;13856:22;;;;;;-1:-1:-1;;;13856:22:6;;;;;;;;;13913:9;13905:18;;;;;;-1:-1:-1;;;13905:18:6;;;;;;;;;13897:27;;13958:15;13950:24;;-1:-1:-1;;;;;13942:33:6;;14001:7;13993:16;;14043:4;14035:13;;-1:-1:-1;;;;;14027:22:6;;14075:6;14067:15;;14100:4;;13818:300;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;13796:322;;14168:6;14155:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;14145:31;;;;;;14132:44;;13625:562;;14204:4;;;;-1:-1:-1;12941:1287:6;-1:-1:-1;;;;;;;;;;;;12941:1287:6:o;20386:1628::-;20503:6;;20540:41;;20557:24;20540:41;:14;:41;:::i;:::-;20525:56;-1:-1:-1;20591:11:6;20611:41;;20628:24;20611:41;:14;:41;:::i;:::-;20663:19;20685:18;;;:12;:18;;;;;20721:9;;20591:62;;-1:-1:-1;20685:18:6;20713:41;;;;-1:-1:-1;;;20713:41:6;;25547:2:8;20713:41:6;;;25529:21:8;25586:2;25566:18;;;25559:30;-1:-1:-1;;;25605:18:8;;;25598:45;25660:18;;20713:41:6;25519:165:8;20713:41:6;20769:8;20764:1209;20787:9;;20783:13;;;;20764:1209;;;20817:16;20836:2;20839:1;20836:5;;;;;;;;-1:-1:-1;;;20836:5:6;;;;;;;;;;;;;;;;;;;20817:24;;20855:32;20913:1;:12;;;20927:4;20900:32;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;20900:32:6;;;;;;;;;;;;;20890:43;;;;;;20855:78;;20973:24;20951:1;:18;;;:46;20947:134;;21058:8;;;;20947:134;21118:10;21102:1;:12;;;:26;21094:62;;;;-1:-1:-1;;;21094:62:6;;25195:2:8;21094:62:6;;;25177:21:8;25234:2;25214:18;;;25207:30;25273:25;25253:18;;;25246:53;25316:18;;21094:62:6;25167:173:8;21094:62:6;21187:11;;;;21170:14;;21212:2;;21187:22;;;21201:8;21187:22;;:11;;:22;:::i;:::-;:27;;;;:::i;:::-;21170:44;;21247:5;21236:16;;:7;:16;;;21228:55;;;;-1:-1:-1;;;21228:55:6;;26239:2:8;21228:55:6;;;26221:21:8;26278:2;26258:18;;;26251:30;26317:28;26297:18;;;26290:56;26363:18;;21228:55:6;26211:176:8;21228:55:6;21319:15;;;21297:19;21319:15;;;:6;:15;;;;;;;;;;;21356:22;;;-1:-1:-1;21356:22:6;21348:48;;;;-1:-1:-1;;;21348:48:6;;23448:2:8;21348:48:6;;;23430:21:8;23487:2;23467:18;;;23460:30;-1:-1:-1;;;23506:18:8;;;23499:43;23559:18;;21348:48:6;23420:163:8;21348:48:6;21419:11;;;;;;;;;21418:12;21410:49;;;;-1:-1:-1;;;21410:49:6;;24842:2:8;21410:49:6;;;24824:21:8;24881:2;24861:18;;;24854:30;24920:26;24900:18;;;24893:54;24964:18;;21410:49:6;24814:174:8;21410:49:6;21908:11;;;;21892:28;;21908:11;;21892:15;:28::i;:::-;21884:56;;;;-1:-1:-1;;;21884:56:6;;24149:2:8;21884:56:6;;;24131:21:8;24188:2;24168:18;;;24161:30;-1:-1:-1;;;24207:18:8;;;24200:45;24262:18;;21884:56:6;24121:165:8;21884:56:6;21961:1;21954:8;;;;;;;;;;;;20764:1209;20798:3;;;;:::i;:::-;;;;20764:1209;;;-1:-1:-1;21982:25:6;;-1:-1:-1;;;21982:25:6;;29491:2:8;21982:25:6;;;29473:21:8;29530:2;29510:18;;;29503:30;-1:-1:-1;;;29549:18:8;;;29542:45;29604:18;;21982:25:6;29463:165:8;20386:1628:6;;;;;;;:::o;22020:538::-;22104:19;22126:24;;;:12;:24;;;;;22168:9;;22160:45;;;;-1:-1:-1;;;22160:45:6;;28401:2:8;22160:45:6;;;28383:21:8;28440:2;28420:18;;;28413:30;-1:-1:-1;;;28459:18:8;;;28452:49;28518:18;;22160:45:6;28373:169:8;22160:45:6;22223:9;;:23;;;-1:-1:-1;22215:55:6;;;;-1:-1:-1;;;22215:55:6;;29835:2:8;22215:55:6;;;29817:21:8;29874:2;29854:18;;;29847:30;-1:-1:-1;;;29893:18:8;;;29886:49;29952:18;;22215:55:6;29807:169:8;22215:55:6;22280:16;22299:2;22302:11;22299:15;;;;;;;;-1:-1:-1;;;22299:15:6;;;;;;;;;;;;;;;;;;;;;;22332:11;;;;22299:15;;-1:-1:-1;22332:11:6;;22324:52;;;;-1:-1:-1;;;22324:52:6;;26941:2:8;22324:52:6;;;26923:21:8;26980:2;26960:18;;;26953:30;27019:26;26999:18;;;26992:54;27063:18;;22324:52:6;26913:174:8;22324:52:6;22437:11;;;;22415:12;;22463:2;;22430:30;;;22452:8;22430:30;;22437:11;;22430:30;:::i;:::-;:35;;;;:::i;:::-;22415:50;;22475:22;22491:5;22475:15;:22::i;:::-;22507:16;:14;:16::i;:::-;-1:-1:-1;22533:11:6;;:18;;-1:-1:-1;;22533:18:6;;;;;-1:-1:-1;;;22020:538:6:o;9045:596:7:-;9106:16;9132;9146:2;9132:4;:16;:::i;:::-;9106:43;-1:-1:-1;9185:4:7;9167:14;9106:43;9179:2;9167:14;:::i;:::-;:29;;;9159:78;;;;-1:-1:-1;;;9159:78:7;;;;;;;:::i;:::-;9252:8;9247:388;9270:9;9266:13;;:1;:13;;;9247:388;;;9300:19;9340:37;9350:4;;9355:6;:1;9359:2;9355:6;:::i;:::-;9350:26;;;9364:6;:1;9368:2;9364:6;:::i;:::-;:11;;9373:2;9364:11;:::i;:::-;9350:26;;;;;;;;;:::i;:::-;9340:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9340:9:7;;-1:-1:-1;;;9340:37:7:i;:::-;9322:57;;;;;;-1:-1:-1;;;9322:57:7;;;;;;;;;9300:79;-1:-1:-1;9393:23:7;9435:42;9445:4;;9450:6;:1;9454:2;9450:6;:::i;:::-;:11;;9459:2;9450:11;:::i;:::-;9445:31;;;9464:6;:1;9468:2;9464:6;:::i;:::-;:11;;9473:2;9464:11;:::i;9435:42::-;9419:60;;9393:86;;9493:15;9519:42;9529:4;;9534:1;9538:2;9534:6;;;;:::i;:::-;:11;;9543:2;9534:11;:::i;:::-;9529:31;;;9548:6;:1;9552:2;9548:6;:::i;:::-;:11;;9557:2;9548:11;:::i;9519:42::-;9511:51;-1:-1:-1;9576:48:7;9588:9;9599:15;9511:51;9576:11;:48::i;:::-;9247:388;;;9281:3;;;;;:::i;:::-;;;;9247:388;;5536:1613;5641:11;5694:9;5686:18;;;;;;-1:-1:-1;;;5686:18:7;;;;;;;;;5665:94;;;;;;10133:19:8;;;;5715:24:7;;;;-1:-1:-1;;;;;;5707:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;5665:94:7;;;-1:-1:-1;;5665:94:7;;;;;;;;;5655:105;;5665:94;5655:105;;;;5774:21;:26;;;;;;;;;:33;5655:105;;-1:-1:-1;5770:75:7;;5828:7;5536:1613;;;:::o;5770:75::-;5859:8;5854:1224;5877:21;:26;;;;;;;;;;:33;5873:37;;;;5854:1224;;;5931:9;5943:26;;;;;;;;;;:29;;;;;;;;;;-1:-1:-1;;;5943:29:7;;;;;;;;;;;;;;;;;5931:41;;6020:9;5990:39;;;;;;-1:-1:-1;;;5990:39:7;;;;;;;;;:13;6004:1;5990:16;;;;;;-1:-1:-1;;;5990:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;:39;;;;;;-1:-1:-1;;;5990:39:7;;;;;;;;;;5986:53;;6031:8;;;5986:53;6085:7;6057:13;6071:1;6057:16;;;;;;-1:-1:-1;;;6057:16:7;;;;;;;;;;;;;;;;;;;:24;;;:35;6053:49;;6094:8;;;6053:49;6156:15;-1:-1:-1;;;;;6120:51:7;:13;6134:1;6120:16;;;;;;-1:-1:-1;;;6120:16:7;;;;;;;;;;;;;;;;;;;;;;:32;;;;-1:-1:-1;;;;;6120:32:7;:51;6116:65;;6173:8;;;6116:65;6275:1;6252:20;;6226:23;;6252:24;;;:::i;:::-;6226:50;;6309:13;6323:15;6309:30;;;;;;-1:-1:-1;;;6309:30:7;;;;;;;;;;;;;;;;;;;6290:13;6304:1;6290:16;;;;;;-1:-1:-1;;;6290:16:7;;;;;;;;;;;;;;;;;:49;;:16;;;;;:49;;:16;;:49;;;:16;;-1:-1:-1;;6290:49:7;;;;;;;;;-1:-1:-1;;;6290:49:7;;;;;;;;;;;;;-1:-1:-1;6290:49:7;;;;-1:-1:-1;;;;;;6290:49:7;;;;;;-1:-1:-1;;;;;6290:49:7;;;;;;;-1:-1:-1;6290:49:7;;;;;;;;6413:16;;-1:-1:-1;;;6427:1:7;;6413:16;;;;-1:-1:-1;;;6413:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;6405:35;;;;;;-1:-1:-1;;;6405:35:7;;;;;;;;;6459:13;:16;;6473:1;;6459:16;;;;-1:-1:-1;;;6459:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;6459:32:7;6451:41;;-1:-1:-1;;;;;6443:50:7;;6503:13;6517:1;6503:16;;;;;;-1:-1:-1;;;6503:16:7;;;;;;;;;;;;;;;;;;;:24;;;6495:33;;6384:145;;;;;;;;;10133:19:8;;;10177:2;10168:12;;10161:28;;;;10214:2;10205:12;;10198:28;10251:2;10242:12;;10123:137;6384:145:7;;;;;;;;;;;;;6374:156;;;;;;6353:177;;6544:13;:19;;;;;-1:-1:-1;;;6544:19:7;;;;;;;;;;;;;;;;;-1:-1:-1;;6544:19:7;;;;;;;;;-1:-1:-1;;;;;;6544:19:7;;;;;;;;;;6577:244;6600:21;:33;;;;;;;;;;:40;6596:44;;;;6577:244;;;6709:15;6669:21;:33;6691:10;6669:33;;;;;;;;;;;6703:1;6669:36;;;;;;;;-1:-1:-1;;;6669:36:7;;;;;;;;;;;;;;;;;:55;6665:142;;;6787:1;6748:21;:33;6770:10;6748:33;;;;;;;;;;;6782:1;6748:36;;;;;;;;-1:-1:-1;;;6748:36:7;;;;;;;;;;;;;;;;;;:40;6665:142;6642:3;;;;:::i;:::-;;;;6577:244;;;-1:-1:-1;6866:21:7;:26;;;;;;;;;;6893:33;;:37;;6929:1;;6893:37;:::i;:::-;6866:65;;;;;;-1:-1:-1;;;6866:65:7;;;;;;;;;;;;;;;;;6834:21;:26;6856:3;6834:26;;;;;;;;;;;6861:1;6834:29;;;;;;-1:-1:-1;;;6834:29:7;;;;;;;;;;;;;;;;:97;;;;6945:21;:26;6967:3;6945:26;;;;;;;;;;;:32;;;;;-1:-1:-1;;;6945:32:7;;;;;;;;;;;;;;;;;;;;;;;;;;6996:51;7011:9;7022:15;7039:7;6996:51;;;;;;;;:::i;:::-;;;;;;;;7061:7;;;;;5536:1613;;;:::o;5854:1224::-;5912:3;;;;:::i;:::-;;;;5854:1224;;;;7092:50;7106:9;7117:15;7134:7;7092:50;;;;;;;;:::i;:::-;;;;;;;;5536:1613;;;;:::o;9647:600::-;9710:16;9736;9750:2;9736:4;:16;:::i;:::-;9710:43;-1:-1:-1;9789:4:7;9771:14;9710:43;9783:2;9771:14;:::i;:::-;:29;;;9763:78;;;;-1:-1:-1;;;9763:78:7;;;;;;;:::i;:::-;9856:8;9851:390;9874:9;9870:13;;:1;:13;;;9851:390;;;9904:19;9944:37;9954:4;;9959:6;:1;9963:2;9959:6;:::i;9944:37::-;9926:57;;;;;;-1:-1:-1;;;9926:57:7;;;;;;;;;9904:79;-1:-1:-1;9997:23:7;10039:42;10049:4;;10054:6;:1;10058:2;10054:6;:::i;10039:42::-;10023:60;;9997:86;;10097:15;10123:42;10133:4;;10138:1;10142:2;10138:6;;;;:::i;10123:42::-;10115:51;-1:-1:-1;10180:50:7;10194:9;10205:15;10115:51;10180:13;:50::i;:::-;9851:390;;;9885:3;;;;;:::i;:::-;;;;9851:390;;10879:1973:6;11051:15;11038:9;:28;;;;;;-1:-1:-1;;;11038:28:6;;;;;;;;;;11034:1812;;;11086:46;;-1:-1:-1;;;11086:46:6;;-1:-1:-1;;;;;13979:32:8;;;11086:46:6;;;13961:51:8;14028:18;;;14021:34;;;11086:32:6;;;;;13934:18:8;;11086:46:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11086:46:6;;;;;;;;-1:-1:-1;;11086:46:6;;;;;;;;;;;;:::i;:::-;;;11082:695;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;11567:77;11586:9;11597:15;11614:7;11623:4;11629:6;11637;11567:77;;;;;;;;;;;:::i;:::-;;;;;;;;11511:148;11034:1812;;11082:695;;;11689:73;11708:9;11719:15;11736:7;11745:4;11751:6;11689:73;;;;;;;;;;:::i;:::-;;;;;;;;11034:1812;;11082:695;11177:7;11173:230;;;11208:48;11220:9;11231:15;11248:7;11208:11;:48::i;:::-;11283:73;11306:9;11317:15;11334:7;11343:4;11349:6;11283:73;;;;;;;;;;:::i;11173:230::-;11425:70;11445:9;11456:15;11473:7;11482:4;11488:6;11425:70;;;;;;;;;;:::i;11034:1812::-;11810:16;11797:9;:29;;;;;;-1:-1:-1;;;11797:29:6;;;;;;;;;;11793:1053;;;11846:77;;-1:-1:-1;;;11846:77:6;;-1:-1:-1;;;;;11846:41:6;;;;;:77;;11896:4;;11903;;11909:7;;11918:4;;11846:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11842:459;;;;:::i;:::-;11946:73;11969:9;11980:15;11997:7;12006:4;12012:6;11946:73;;;;;;;;;;:::i;11793:1053::-;12334:17;12321:9;:30;;;;;;-1:-1:-1;;;12321:30:6;;;;;;;;;;12317:529;;;12371:86;;-1:-1:-1;;;12371:86:6;;-1:-1:-1;;;;;12371:42:6;;;;;:86;;12422:4;;12429;;12435:7;;12444:6;;12452:4;;12371:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12367:469;;;;:::i;:::-;12481:73;12504:9;12515:15;12532:7;12541:4;12547:6;12481:73;;;;;;;;;;:::i;:::-;;;;;;;;10879:1973;;;;;;:::o;8286:753:7:-;8359:16;8385;8399:2;8385:4;:16;:::i;:::-;8359:43;-1:-1:-1;8438:4:7;8420:14;8359:43;8432:2;8420:14;:::i;:::-;:29;;;8412:78;;;;-1:-1:-1;;;8412:78:7;;;;;;;:::i;:::-;8500:38;8560:9;8541:29;;-1:-1:-1;;;;;8541:29:7;;;;;-1:-1:-1;;;8541:29:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;8541:29:7;;-1:-1:-1;;8541:29:7;;;;;;;;;;;;8500:70;;8585:8;8580:411;8603:9;8599:13;;:1;:13;;;8580:411;;;8633:19;8673:37;8683:4;;8688:6;:1;8692:2;8688:6;:::i;8673:37::-;8655:57;;;;;;-1:-1:-1;;;8655:57:7;;;;;;;;;8633:79;-1:-1:-1;8726:23:7;8768:42;8778:4;;8783:6;:1;8787:2;8783:6;:::i;8768:42::-;8752:60;;8726:86;;8826:15;8852:42;8862:4;;8867:1;8871:2;8867:6;;;;:::i;8852:42::-;8844:51;;8826:69;;8931:49;;;;;;;;8944:9;8931:49;;;;;;-1:-1:-1;;;8931:49:7;;;;;;;;;;;;;8955:15;-1:-1:-1;;;;;8931:49:7;;;;;8972:7;8931:49;;;8909:16;8926:1;8909:19;;;;;;;;-1:-1:-1;;;8909:19:7;;;;;;;;;;;;;;:71;;;;8580:411;;;8614:3;;;;;:::i;:::-;;;;8580:411;;;;9000:32;9015:16;9000:14;:32::i;9374:975:6:-;9449:4;;9485:33;3043:5;9485:15;:33;:::i;:::-;9539:15;;9465:54;;-1:-1:-1;9539:15:6;;;;9533:21;;;;9529:101;;;9583:1;9570:10;:14;9598:15;:21;;-1:-1:-1;;9598:21:6;;;;;;;9529:101;9665:10;;9656:6;9643:10;;:19;;;;:::i;:::-;:32;9639:148;;;9721:10;;9733;;9696:54;;;31801:25:8;;;31857:2;31842:18;;31835:34;;;;31885:18;;31878:34;-1:-1:-1;;;;;31948:32:8;;31943:2;31928:18;;31921:60;9696:54:6;;31788:3:8;31773:19;9696:54:6;;;;;;;;9771:5;9764:12;;;;;9639:148;9824:6;9800:21;:30;9796:145;;;9851:53;;;31414:25:8;;;9876:21:6;31470:2:8;31455:18;;31448:34;-1:-1:-1;;;;;31518:32:8;;31498:18;;;31491:60;;;;9851:53:6;;31402:2:8;31387:18;9851:53:6;31369:188:8;9796:145:6;9964:6;9950:10;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;9998:29:6;;9981:12;;-1:-1:-1;;;;;9998:9:6;;;10016:6;;9981:12;9998:29;9981:12;9998:29;10016:6;9998:9;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9980:47;;;10156:7;10151:130;;10193:6;10179:10;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;10218:26:6;;-1:-1:-1;;;;;11877:32:8;;11859:51;;10218:26:6;;11847:2:8;11832:18;10218:26:6;;;;;;;10265:5;10258:12;;;;;;10151:130;10296:25;;;30559::8;;;-1:-1:-1;;;;;30620:32:8;;30615:2;30600:18;;30593:60;10296:25:6;;30532:18:8;10296:25:6;;;;;;;-1:-1:-1;10338:4:6;;9374:975;-1:-1:-1;;;;9374:975:6:o;10355:295::-;10412:17;;10393:4;;-1:-1:-1;;;;;10412:17:6;10408:118;;10464:25;;;;;;;-1:-1:-1;10510:5:6;;10355:295::o;10408:118::-;10540:8;:6;:8::i;:::-;10535:88;;10569:17;;;;;;;-1:-1:-1;10607:5:6;;10355:295::o;10656:217::-;10748:17;;-1:-1:-1;;;;;10748:17:6;:31;10740:78;;;;-1:-1:-1;;;10740:78:6;;29088:2:8;10740:78:6;;;29070:21:8;29127:2;29107:18;;;29100:30;29166:34;29146:18;;;29139:62;-1:-1:-1;;;29217:18:8;;;29210:32;29259:19;;10740:78:6;29060:224:8;10740:78:6;10828:17;:38;;-1:-1:-1;;;;;;10828:38:6;-1:-1:-1;;;;;10828:38:6;;;;;;;;;;10656:217::o;17409:2529::-;17455:18;17506:15;17695:931;17716:7;:14;17702:28;;;;17695:931;;;17761:12;17776:7;17784:11;17776:20;;;;;;;;-1:-1:-1;;;17776:20:6;;;;;;;;;;;;;;;;;;;;;17832:18;;;:12;:18;;;;;;;17966:9;;17776:20;;-1:-1:-1;17832:18:6;17962:61;;18000:8;;;;17962:61;18468:16;18487:2;18490:1;18487:5;;;;;;-1:-1:-1;;;18487:5:6;;;;;;;;;;;;;;;;;18530:11;18487:5;;;;;18530:11;;;;18487:5;;-1:-1:-1;18530:36:6;-1:-1:-1;;18545:21:6;;18530:36;;:11;;:36;18526:80;;18586:5;;;;;18526:80;17695:931;;;;17732:13;;;;:::i;:::-;;;;17695:931;;;18785:16;;;18781:159;;18923:7;;17409:2529::o;18781:159::-;19060:8;19055:281;19078:11;19074:15;;:1;:15;;;19055:281;;;19110:12;19125:7;19133:1;19125:10;;;;;;;;-1:-1:-1;;;19125:10:6;;;;;;;;;;;;;;;;;;;;;19171:18;;;:12;:18;;;;;;19125:10;;-1:-1:-1;19171:18:6;19203:84;19226:9;;19222:13;;;;19203:84;;;19267:2;19270:1;19267:5;;;;;;;;-1:-1:-1;;;19267:5:6;;;;;;;;;;;;;;;;;;;;;19260:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19260:12:6;;;19237:3;;;;:::i;:::-;;;;19203:84;;;-1:-1:-1;19307:18:6;;;;:12;:18;;;;;19300:25;;;:::i;:::-;19055:281;;19091:3;;;;;:::i;:::-;;;;19055:281;;;-1:-1:-1;19541:7:6;:14;19582:11;19566:134;19599:3;19595:7;;:1;:7;;;19566:134;;;19669:7;19677:1;19669:10;;;;;;;;-1:-1:-1;;;19669:10:6;;;;;;;;;;;;;;;;;19642:7;19654:11;19650:1;:15;19642:24;;;;;;;;-1:-1:-1;;;19642:24:6;;;;;;;;;;;;;;;;;;:37;19604:3;;;;:::i;:::-;;;;19566:134;;;;19714:8;19709:79;19732:11;19728:15;;:1;:15;;;19709:79;;;19764:7;:13;;;;;-1:-1:-1;;;19764:13:6;;;;;;;;;;;;;;;;;;;;;;;;;;19745:3;;;;;:::i;:::-;;;;19709:79;;19944:156;20011:4;3001:2;20038:36;20064:10;20045:15;20038:36;:::i;:::-;:55;;;;19944:156;-1:-1:-1;;19944:156:6:o;23998:210::-;24066:13;;;24056:7;24066:13;;;:6;:13;;;;;;;;24093:6;24089:61;;24115:12;:24;;;;;;;-1:-1:-1;24115:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24089:61;24174:13;;;;;;;;;:6;:13;;;;;:21;;-1:-1:-1;;24174:21:6;24194:1;24190:5;;;24174:21;;;;;;;;23998:210::o;22818:1174::-;22863:11;22877:42;3001:2;22884:15;22877:42;:::i;:::-;22863:56;-1:-1:-1;22929:25:6;22957:15;;22964:8;22957:15;22863:56;22957:15;:::i;:::-;22929:43;;22982:15;23036:2;23015:23;;:18;:23;;;23011:88;;;23065:23;23086:2;23065:18;:23;:::i;:::-;23054:34;;23011:88;23153:12;:19;23108:29;;-1:-1:-1;;;;;23140:33:6;;;;;-1:-1:-1;;;23140:33:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23140:33:6;;23108:65;;23183:22;23224:7;23219:341;23241:12;:19;23237:23;;;;23219:341;;;23281:12;23296;23309:1;23296:15;;;;;;;;-1:-1:-1;;;23296:15:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23329:16:6;;;;23325:225;;;23372:13;;;;;;;:6;:13;;;;;23365:20;;-1:-1:-1;;23365:20:6;;;23325:225;;;23457:5;23424:13;23438:15;23424:30;;;;;;;;-1:-1:-1;;;23424:30:6;;;;;;;;;:38;;;;:30;;;;;;;;;;;:38;23504:17;;;;;23325:225;-1:-1:-1;23262:3:6;;;;:::i;:::-;;;;23219:341;;;;23776:28;23820:15;23807:29;;-1:-1:-1;;;;;23807:29:6;;;;;-1:-1:-1;;;23807:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23807:29:6;;23776:60;;23851:7;23846:103;23868:15;23864:19;;:1;:19;;;23846:103;;;23922:13;23936:1;23922:16;;;;;;;;-1:-1:-1;;;23922:16:6;;;;;;;;;;;;;;;23904:12;23917:1;23904:15;;;;;;;;-1:-1:-1;;;23904:15:6;;;;;;;;;:34;;;;:15;;;;;;;;;;;:34;23885:3;;;;:::i;:::-;;;;23846:103;;;-1:-1:-1;23958:27:6;;;;:12;;:27;;;;;:::i;:::-;;22818:1174;;;;;;:::o;10253:408:7:-;10311:7;10333:1;:8;10345:1;10333:13;10329:63;;;-1:-1:-1;10377:3:7;;10253:408;-1:-1:-1;10253:408:7:o;10329:63::-;10421:2;10409:1;:8;:14;;10401:47;;;;-1:-1:-1;;;10401:47:7;;24493:2:8;10401:47:7;;;24475:21:8;24532:2;24512:18;;;24505:30;-1:-1:-1;;;24551:18:8;;;24544:50;24611:18;;10401:47:7;24465:170:8;10401:47:7;10458:9;10477;10501:1;:8;10496:2;:13;;;;:::i;:::-;10495:19;;10513:1;10495:19;:::i;:::-;10565:2;10558:10;;;;10552:17;10587:11;;10616;;;;10253:408;-1:-1:-1;;;10253:408:7:o;7155:1125::-;7243:8;7238:431;7261:13;:20;7257:24;;;;7238:431;;;7302:19;7324:13;7338:1;7324:16;;;;;;;;-1:-1:-1;;;7324:16:7;;;;;;;;;;;;;;;;;;;;;:26;;7390:16;;7324:26;;;;;-1:-1:-1;7324:26:7;7390:16;;;;;;;;-1:-1:-1;;;7390:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;7390:32:7;7364:58;;7436:15;7454:13;7468:1;7454:16;;;;;;;;-1:-1:-1;;;7454:16:7;;;;;;;;;;;;;;;;;;;:24;;;7436:42;;7492:11;7545:9;7537:18;;;;;;-1:-1:-1;;;7537:18:7;;;;;;;;;7516:94;;;;;;10133:19:8;;;;7566:24:7;;;;-1:-1:-1;;;;;;7558:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;7516:94:7;;;-1:-1:-1;;7516:94:7;;;;;;;;;7506:105;;7516:94;7506:105;;;;7632:21;:26;;;;;;;;;;7506:105;;-1:-1:-1;7625:33:7;;;:::i;:::-;7238:431;;;;7283:3;;;;;:::i;:::-;;;;7238:431;;;-1:-1:-1;7678:20:7;7685:13;;7678:20;:::i;:::-;7713:8;7708:566;7731:16;:23;7727:1;:27;;;7708:566;;;7775:19;7797:16;7814:1;7797:19;;;;;;;;-1:-1:-1;;;7797:19:7;;;;;;;;;;;;;;;:29;;;7775:51;;7840:23;7866:16;7883:1;7866:19;;;;;;;;-1:-1:-1;;;7866:19:7;;;;;;;;;;;;;;;:35;;;7840:61;;7915:15;7933:16;7950:1;7933:19;;;;;;;;-1:-1:-1;;;7933:19:7;;;;;;;;;;;;;;;:27;;;7915:45;;7974:11;8027:9;8019:18;;;;;;-1:-1:-1;;;8019:18:7;;;;;;;;;7998:94;;;;;;10133:19:8;;;;8048:24:7;;;;-1:-1:-1;;;;;;8040:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;7998:94:7;;;;;;;;;;;;7988:105;;;;;;7974:119;;8107:21;8131:49;;;;;;;;8144:9;8131:49;;;;;;-1:-1:-1;;;8131:49:7;;;;;;;;;;;-1:-1:-1;;;;;8131:49:7;;;;;;;;;;;8194:13;:21;;;;;;;-1:-1:-1;8194:21:7;;;;;;;;;;;;;8107:73;;-1:-1:-1;8107:73:7;;8194:21;;;;-1:-1:-1;;8194:21:7;;;;;;;;;-1:-1:-1;;;8194:21:7;;;;;;;;;;;;;-1:-1:-1;8194:21:7;;;;;;;-1:-1:-1;;;;;8194:21:7;;;;;-1:-1:-1;;;;;;8194:21:7;;;;;;;;;;;;;;;;;8229:26;;;;;;;;;:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8261:1:7;;-1:-1:-1;7756:3:7;;-1:-1:-1;8261:1:7;;-1:-1:-1;7756:3:7;:::i;:::-;;;;7708:566;;;;7155:1125;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:134:8;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:395::-;216:8;226:6;280:3;273:4;265:6;261:17;257:27;247:2;;305:8;295;288:26;247:2;-1:-1:-1;335:20:8;;-1:-1:-1;;;;;367:30:8;;364:2;;;417:8;407;400:26;364:2;461:4;453:6;449:17;437:29;;521:3;514:4;504:6;501:1;497:14;489:6;485:27;481:38;478:47;475:2;;;538:1;535;528:12;475:2;237:311;;;;;:::o;553:375::-;604:8;614:6;668:3;661:4;653:6;649:17;645:27;635:2;;693:8;683;676:26;635:2;-1:-1:-1;723:20:8;;-1:-1:-1;;;;;755:30:8;;752:2;;;805:8;795;788:26;752:2;849:4;841:6;837:17;825:29;;901:3;894:4;885:6;877;873:19;869:30;866:39;863:2;;;918:1;915;908:12;933:154;1012:20;;1061:1;1051:12;;1041:2;;1077:1;1074;1067:12;1092:150;1167:20;;1216:1;1206:12;;1196:2;;1232:1;1229;1222:12;1247:163;1314:20;;1374:10;1363:22;;1353:33;;1343:2;;1400:1;1397;1390:12;1415:1378;1575:6;1583;1591;1599;1607;1615;1623;1631;1684:3;1672:9;1663:7;1659:23;1655:33;1652:2;;;1706:6;1698;1691:22;1652:2;1750:9;1737:23;1769:31;1794:5;1769:31;:::i;:::-;1819:5;-1:-1:-1;1876:2:8;1861:18;;1848:32;1889:33;1848:32;1889:33;:::i;:::-;1941:7;-1:-1:-1;1999:2:8;1984:18;;1971:32;-1:-1:-1;;;;;2052:14:8;;;2049:2;;;2084:6;2076;2069:22;2049:2;2128:70;2190:7;2181:6;2170:9;2166:22;2128:70;:::i;:::-;2217:8;;-1:-1:-1;2102:96:8;-1:-1:-1;2305:2:8;2290:18;;2277:32;;-1:-1:-1;2321:16:8;;;2318:2;;;2355:6;2347;2340:22;2318:2;2399:72;2463:7;2452:8;2441:9;2437:24;2399:72;:::i;:::-;2490:8;;-1:-1:-1;2373:98:8;-1:-1:-1;2578:3:8;2563:19;;2550:33;;-1:-1:-1;2595:16:8;;;2592:2;;;2629:6;2621;2614:22;2592:2;;2673:60;2725:7;2714:8;2703:9;2699:24;2673:60;:::i;:::-;1642:1151;;;;-1:-1:-1;1642:1151:8;;-1:-1:-1;1642:1151:8;;;;;;2752:8;-1:-1:-1;;;1642:1151:8:o;2798:774::-;2895:6;2903;2911;2919;2927;2980:3;2968:9;2959:7;2955:23;2951:33;2948:2;;;3002:6;2994;2987:22;2948:2;3046:9;3033:23;3065:31;3090:5;3065:31;:::i;:::-;3115:5;-1:-1:-1;3172:2:8;3157:18;;3144:32;3185:33;3144:32;3185:33;:::i;:::-;3237:7;-1:-1:-1;3291:2:8;3276:18;;3263:32;;-1:-1:-1;3346:2:8;3331:18;;3318:32;-1:-1:-1;;;;;3362:30:8;;3359:2;;;3410:6;3402;3395:22;3359:2;3454:58;3504:7;3495:6;3484:9;3480:22;3454:58;:::i;:::-;2938:634;;;;-1:-1:-1;2938:634:8;;-1:-1:-1;3531:8:8;;3428:84;2938:634;-1:-1:-1;;;2938:634:8:o;3577:843::-;3683:6;3691;3699;3707;3715;3723;3776:3;3764:9;3755:7;3751:23;3747:33;3744:2;;;3798:6;3790;3783:22;3744:2;3842:9;3829:23;3861:31;3886:5;3861:31;:::i;:::-;3911:5;-1:-1:-1;3968:2:8;3953:18;;3940:32;3981:33;3940:32;3981:33;:::i;:::-;4033:7;-1:-1:-1;4087:2:8;4072:18;;4059:32;;-1:-1:-1;4138:2:8;4123:18;;4110:32;;-1:-1:-1;4193:3:8;4178:19;;4165:33;-1:-1:-1;;;;;4210:30:8;;4207:2;;;4258:6;4250;4243:22;4207:2;4302:58;4352:7;4343:6;4332:9;4328:22;4302:58;:::i;:::-;3734:686;;;;-1:-1:-1;3734:686:8;;-1:-1:-1;3734:686:8;;4379:8;;3734:686;-1:-1:-1;;;3734:686:8:o;4425:1396::-;4641:6;4649;4657;4665;4673;4681;4689;4697;4705;4713;4721:7;4730;4784:3;4772:9;4763:7;4759:23;4755:33;4752:2;;;4806:6;4798;4791:22;4752:2;-1:-1:-1;;;;;4843:9:8;4830:23;4827:47;4824:2;;;4892:6;4884;4877:22;4824:2;4936:87;5015:7;5002:9;4989:23;4978:9;4974:39;4936:87;:::i;:::-;5042:8;;-1:-1:-1;5069:8:8;-1:-1:-1;5096:37:8;5129:2;5114:18;;5096:37;:::i;:::-;5086:47;;5180:2;5169:9;5165:18;5152:32;5142:42;;5203:49;5248:2;5237:9;5233:18;5203:49;:::i;:::-;5193:59;;5271:46;5312:3;5301:9;5297:19;5271:46;:::i;:::-;5261:56;;5336:39;5370:3;5359:9;5355:19;5336:39;:::i;:::-;5326:49;;5422:3;5411:9;5407:19;5394:33;5384:43;;5446:39;5480:3;5469:9;5465:19;5446:39;:::i;:::-;5436:49;;5532:3;5521:9;5517:19;5504:33;5494:43;;-1:-1:-1;;;;;5580:3:8;5569:9;5565:19;5552:33;5549:57;5546:2;;;5625:7;5616;5609:24;5546:2;5672:85;5749:7;5741:3;5730:9;5726:19;5713:33;5702:9;5698:49;5672:85;:::i;:::-;5777:9;5766:20;;5806:9;5795:20;;;;4742:1079;;;;;;;;;;;;;;:::o;5826:297::-;5893:6;5946:2;5934:9;5925:7;5921:23;5917:32;5914:2;;;5967:6;5959;5952:22;5914:2;6004:9;5998:16;6057:5;6050:13;6043:21;6036:5;6033:32;6023:2;;6084:6;6076;6069:22;6023:2;6112:5;5904:219;-1:-1:-1;;;5904:219:8:o;6128:190::-;6187:6;6240:2;6228:9;6219:7;6215:23;6211:32;6208:2;;;6261:6;6253;6246:22;6208:2;-1:-1:-1;6289:23:8;;6198:120;-1:-1:-1;6198:120:8:o;6323:194::-;6393:6;6446:2;6434:9;6425:7;6421:23;6417:32;6414:2;;;6467:6;6459;6452:22;6414:2;-1:-1:-1;6495:16:8;;6404:113;-1:-1:-1;6404:113:8:o;6522:326::-;6599:6;6607;6615;6668:2;6656:9;6647:7;6643:23;6639:32;6636:2;;;6689:6;6681;6674:22;6636:2;-1:-1:-1;;6717:23:8;;;6787:2;6772:18;;6759:32;;-1:-1:-1;6838:2:8;6823:18;;;6810:32;;6626:222;-1:-1:-1;6626:222:8:o;6853:255::-;6911:6;6964:2;6952:9;6943:7;6939:23;6935:32;6932:2;;;6985:6;6977;6970:22;6932:2;7029:9;7016:23;7048:30;7072:5;7048:30;:::i;7113:259::-;7182:6;7235:2;7223:9;7214:7;7210:23;7206:32;7203:2;;;7256:6;7248;7241:22;7203:2;7293:9;7287:16;7312:30;7336:5;7312:30;:::i;7377:450::-;7427:3;7465:5;7459:12;7492:6;7487:3;7480:19;7518:4;7547:2;7542:3;7538:12;7531:19;;7584:2;7577:5;7573:14;7605:3;7617:185;7631:6;7628:1;7625:13;7617:185;;;7706:13;;7699:21;7692:29;7680:42;;7742:12;;;;7777:15;;;;7653:1;7646:9;7617:185;;;-1:-1:-1;7818:3:8;;7435:392;-1:-1:-1;;;;;7435:392:8:o;7832:437::-;7885:3;7923:5;7917:12;7950:6;7945:3;7938:19;7976:4;8005:2;8000:3;7996:12;7989:19;;8042:2;8035:5;8031:14;8063:3;8075:169;8089:6;8086:1;8083:13;8075:169;;;8150:13;;8138:26;;8184:12;;;;8219:15;;;;8111:1;8104:9;8075:169;;8274:453;8326:3;8364:5;8358:12;8391:6;8386:3;8379:19;8417:4;8446:2;8441:3;8437:12;8430:19;;8483:2;8476:5;8472:14;8504:3;8516:186;8530:6;8527:1;8524:13;8516:186;;;8595:13;;8610:10;8591:30;8579:43;;8642:12;;;;8677:15;;;;8552:1;8545:9;8516:186;;8732:268;8820:6;8815:3;8808:19;8872:6;8865:5;8858:4;8853:3;8849:14;8836:43;-1:-1:-1;8790:3:8;8899:16;;;8917:4;8895:27;;;8888:40;;;;8982:2;8961:15;;;-1:-1:-1;;8957:29:8;8948:39;;;8944:50;;8798:202::o;9005:257::-;9046:3;9084:5;9078:12;9111:6;9106:3;9099:19;9127:63;9183:6;9176:4;9171:3;9167:14;9160:4;9153:5;9149:16;9127:63;:::i;:::-;9244:2;9223:15;-1:-1:-1;;9219:29:8;9210:39;;;;9251:4;9206:50;;9054:208;-1:-1:-1;;9054:208:8:o;9267:237::-;9348:1;9341:5;9338:12;9328:2;;9393:10;9388:3;9384:20;9381:1;9374:31;9428:4;9425:1;9418:15;9456:4;9453:1;9446:15;9328:2;9480:18;;9318:186::o;10265:676::-;10602:6;10597:3;10590:19;10639:6;10634:2;10629:3;10625:12;10618:28;10676:6;10671:2;10666:3;10662:12;10655:28;10713:6;10708:2;10703:3;10699:12;10692:28;10751:6;10745:3;10740;10736:13;10729:29;10789:6;10783:3;10778;10774:13;10767:29;10841:6;10833;10827:3;10822;10818:13;10805:43;10572:3;10871:16;;10889:3;10867:26;10902:15;;;10867:26;10580:361;-1:-1:-1;;;;;;;10580:361:8:o;10946:273::-;11129:6;11121;11116:3;11103:33;11085:3;11155:16;;11180:15;;;11155:16;11093:126;-1:-1:-1;11093:126:8:o;11224:274::-;11353:3;11391:6;11385:13;11407:53;11453:6;11448:3;11441:4;11433:6;11429:17;11407:53;:::i;:::-;11476:16;;;;;11361:137;-1:-1:-1;;11361:137:8:o;12137:488::-;-1:-1:-1;;;;;12406:15:8;;;12388:34;;12458:15;;12453:2;12438:18;;12431:43;12505:2;12490:18;;12483:34;;;12553:3;12548:2;12533:18;;12526:31;;;12331:4;;12574:45;;12599:19;;12591:6;12574:45;:::i;:::-;12566:53;12340:285;-1:-1:-1;;;;;;12340:285:8:o;12630:587::-;-1:-1:-1;;;;;12937:15:8;;;12919:34;;12989:15;;12984:2;12969:18;;12962:43;13036:2;13021:18;;13014:34;;;13079:2;13064:18;;13057:34;;;12899:3;13122;13107:19;;13100:32;;;12862:4;;13149:62;;13191:19;;13183:6;13175;13149:62;:::i;:::-;13141:70;12871:346;-1:-1:-1;;;;;;;;12871:346:8:o;13222:560::-;-1:-1:-1;;;;;13519:15:8;;;13501:34;;13571:15;;13566:2;13551:18;;13544:43;13618:2;13603:18;;13596:34;;;13661:2;13646:18;;13639:34;;;13481:3;13704;13689:19;;13682:32;;;13444:4;;13731:45;;13756:19;;13748:6;13731:45;:::i;:::-;13723:53;13453:329;-1:-1:-1;;;;;;;13453:329:8:o;14066:1068::-;14549:3;14538:9;14531:22;14512:4;14576:57;14628:3;14617:9;14613:19;14605:6;14576:57;:::i;:::-;14681:9;14673:6;14669:22;14664:2;14653:9;14649:18;14642:50;14715:44;14752:6;14744;14715:44;:::i;:::-;14701:58;;14807:9;14799:6;14795:22;14790:2;14779:9;14775:18;14768:50;14841:44;14878:6;14870;14841:44;:::i;:::-;14827:58;;14933:9;14925:6;14921:22;14916:2;14905:9;14901:18;14894:50;14967:43;15003:6;14995;14967:43;:::i;:::-;14953:57;;15059:9;15051:6;15047:22;15041:3;15030:9;15026:19;15019:51;15087:41;15121:6;15113;15087:41;:::i;15139:863::-;15544:3;15533:9;15526:22;15507:4;15571:57;15623:3;15612:9;15608:19;15600:6;15571:57;:::i;:::-;15676:9;15668:6;15664:22;15659:2;15648:9;15644:18;15637:50;15710:44;15747:6;15739;15710:44;:::i;:::-;15696:58;;15802:9;15794:6;15790:22;15785:2;15774:9;15770:18;15763:50;15836:43;15872:6;15864;15836:43;:::i;:::-;15822:57;;15927:9;15919:6;15915:22;15910:2;15899:9;15895:18;15888:50;15955:41;15989:6;15981;15955:41;:::i;16007:1390::-;16365:2;16377:21;;;16447:13;;16350:18;;;16469:22;;;16317:4;;16545;;16522:3;16507:19;;;16572:15;;;16317:4;16618:188;16632:6;16629:1;16626:13;16618:188;;;16681:45;16722:3;16713:6;16707:13;16681:45;:::i;:::-;16746:12;;;;16781:15;;;;16654:1;16647:9;16618:188;;;-1:-1:-1;;;16842:19:8;;;16822:18;;;16815:47;16912:13;;16934:21;;;17010:15;;;;16973:12;;;17045:4;17058:215;17074:8;17069:3;17066:17;17058:215;;;17147:15;;-1:-1:-1;;;;;17143:41:8;17129:56;;17246:17;;;;17207:14;;;;17181:1;17093:11;17058:215;;;17062:3;;17320:9;17313:5;17309:21;17304:2;17293:9;17289:18;17282:49;17348:43;17385:5;17377:6;17348:43;:::i;18996:376::-;19198:2;19183:18;;19210:44;19187:9;19236:6;19210:44;:::i;:::-;-1:-1:-1;;;;;19290:32:8;;;;19285:2;19270:18;;19263:60;19354:2;19339:18;19332:34;19165:207;;-1:-1:-1;19165:207:8:o;19377:550::-;19635:3;19620:19;;19648:44;19624:9;19674:6;19648:44;:::i;:::-;-1:-1:-1;;;;;19766:15:8;;;19761:2;19746:18;;19739:43;19813:2;19798:18;;19791:34;;;;19861:15;;;;19856:2;19841:18;;19834:43;19908:3;19893:19;19886:35;;;;19602:325;;-1:-1:-1;19602:325:8:o;19932:665::-;20215:44;20249:9;20241:6;20215:44;:::i;:::-;-1:-1:-1;;;;;20333:15:8;;;20328:2;20313:18;;20306:43;20380:2;20365:18;;20358:34;;;20428:15;;20423:2;20408:18;;20401:43;20475:3;20460:19;;20453:35;;;20525:3;20286;20504:19;;20497:32;;;20196:4;;20546:45;;20571:19;;20563:6;20546:45;:::i;20602:734::-;20938:44;20972:9;20964:6;20938:44;:::i;:::-;-1:-1:-1;;;;;21056:15:8;;;21051:2;21036:18;;21029:43;21103:2;21088:18;;21081:34;;;;21151:15;;21146:2;21131:18;;21124:43;21198:3;21183:19;;21176:35;;;;21248:3;21009;21227:19;;21220:32;;;20919:4;21268:19;;;21261:33;21326:3;21311:19;;20928:408;-1:-1:-1;20928:408:8:o;21341:779::-;21668:44;21702:9;21694:6;21668:44;:::i;:::-;21743:2;21728:18;;21721:34;;;-1:-1:-1;;;;;21829:15:8;;;21824:2;21809:18;;21802:43;21881:15;;;21876:2;21861:18;;21854:43;21934:15;;21928:3;21913:19;;21906:44;21782:3;21966:19;;21959:35;;;22031:3;22025;22010:19;;22003:32;;;21649:4;;22052:62;;22094:19;;22086:6;22078;22052:62;:::i;:::-;22044:70;21658:462;-1:-1:-1;;;;;;;;;;21658:462:8:o;27092:400::-;27294:2;27276:21;;;27333:2;27313:18;;;27306:30;27372:34;27367:2;27352:18;;27345:62;-1:-1:-1;;;27438:2:8;27423:18;;27416:34;27482:3;27467:19;;27266:226::o;32477:363::-;32582:9;32593;32635:8;32623:10;32620:24;32617:2;;;32665:9;32654;32647:28;32617:2;32702:6;32692:8;32689:20;32686:2;;;32730:9;32719;32712:28;32686:2;-1:-1:-1;;32764:23:8;;;32809:25;;;;;-1:-1:-1;32607:233:8:o;32845:128::-;32885:3;32916:1;32912:6;32909:1;32906:13;32903:2;;;32922:18;;:::i;:::-;-1:-1:-1;32958:9:8;;32893:80::o;32978:228::-;33017:3;33045:10;33082:2;33079:1;33075:10;33112:2;33109:1;33105:10;33143:3;33139:2;33135:12;33130:3;33127:21;33124:2;;;33151:18;;:::i;:::-;33187:13;;33025:181;-1:-1:-1;;;;33025:181:8:o;33211:120::-;33251:1;33277;33267:2;;33282:18;;:::i;:::-;-1:-1:-1;33316:9:8;;33257:74::o;33336:191::-;33375:1;33401:10;33438:2;33435:1;33431:10;33460:3;33450:2;;33467:18;;:::i;:::-;33505:10;;33501:20;;;;;33381:146;-1:-1:-1;;33381:146:8:o;33532:168::-;33572:7;33638:1;33634;33630:6;33626:14;33623:1;33620:21;33615:1;33608:9;33601:17;33597:45;33594:2;;;33645:18;;:::i;:::-;-1:-1:-1;33685:9:8;;33584:116::o;33705:262::-;33744:7;33776:10;33813:2;33810:1;33806:10;33843:2;33840:1;33836:10;33899:3;33895:2;33891:12;33886:3;33883:21;33876:3;33869:11;33862:19;33858:47;33855:2;;;33908:18;;:::i;:::-;33948:13;;33756:211;-1:-1:-1;;;;33756:211:8:o;33972:125::-;34012:4;34040:1;34037;34034:8;34031:2;;;34045:18;;:::i;:::-;-1:-1:-1;34082:9:8;;34021:76::o;34102:221::-;34141:4;34170:10;34230;;;;34200;;34252:12;;;34249:2;;;34267:18;;:::i;:::-;34304:13;;34150:173;-1:-1:-1;;;34150:173:8:o;34328:195::-;34366:4;34403;34400:1;34396:12;34435:4;34432:1;34428:12;34460:3;34455;34452:12;34449:2;;;34467:18;;:::i;:::-;34504:13;;;34375:148;-1:-1:-1;;;34375:148:8:o;34528:258::-;34600:1;34610:113;34624:6;34621:1;34618:13;34610:113;;;34700:11;;;34694:18;34681:11;;;34674:39;34646:2;34639:10;34610:113;;;34741:6;34738:1;34735:13;34732:2;;;-1:-1:-1;;34776:1:8;34758:16;;34751:27;34581:205::o;34791:346::-;34901:2;34882:13;;-1:-1:-1;;34878:27:8;34866:40;;-1:-1:-1;;;;;34921:34:8;;34957:22;;;34918:62;34915:2;;;35022:10;35017:3;35013:20;35010:1;35003:31;35057:4;35054:1;35047:15;35085:4;35082:1;35075:15;34915:2;35116;35109:22;-1:-1:-1;;34838:299:8:o;35142:201::-;35180:3;35208:10;35253:2;35246:5;35242:14;35280:2;35271:7;35268:15;35265:2;;;35286:18;;:::i;:::-;35335:1;35322:15;;35188:155;-1:-1:-1;;;35188:155:8:o;35348:175::-;35385:3;35429:4;35422:5;35418:16;35458:4;35449:7;35446:17;35443:2;;;35466:18;;:::i;:::-;35515:1;35502:15;;35393:130;-1:-1:-1;;35393:130:8:o;35528:183::-;35559:1;35585:10;35622:2;35619:1;35615:10;35644:3;35634:2;;35651:18;;:::i;:::-;35689:10;;35685:20;;;;;35565:146;-1:-1:-1;;35565:146:8:o;35716:127::-;35777:10;35772:3;35768:20;35765:1;35758:31;35808:4;35805:1;35798:15;35832:4;35829:1;35822:15;35848:127;35909:10;35904:3;35900:20;35897:1;35890:31;35940:4;35937:1;35930:15;35964:4;35961:1;35954:15;35980:185;36015:3;36057:1;36039:16;36036:23;36033:2;;;36107:1;36102:3;36097;36082:27;36138:10;36133:3;36129:20;36033:2;36023:142;:::o;36170:671::-;36209:3;36251:4;36233:16;36230:26;36227:2;;;36217:624;:::o;36227:2::-;36293;36287:9;-1:-1:-1;;36358:16:8;36354:25;;36351:1;36287:9;36330:50;36409:4;36403:11;36433:16;-1:-1:-1;;;;;36539:2:8;36532:4;36524:6;36520:17;36517:25;36512:2;36504:6;36501:14;36498:45;36495:2;;;36546:5;;;;;36217:624;:::o;36495:2::-;36583:6;36577:4;36573:17;36562:28;;36619:3;36613:10;36646:2;36638:6;36635:14;36632:2;;;36652:5;;;;;;36217:624;:::o;36632:2::-;36736;36717:16;36711:4;36707:27;36703:36;36696:4;36687:6;36682:3;36678:16;36674:27;36671:69;36668:2;;;36743:5;;;;;;36217:624;:::o;36668:2::-;36759:57;36810:4;36801:6;36793;36789:19;36785:30;36779:4;36759:57;:::i;:::-;-1:-1:-1;36832:3:8;;36217:624;-1:-1:-1;;;;;36217:624:8:o;36846:131::-;-1:-1:-1;;;;;36921:31:8;;36911:42;;36901:2;;36967:1;36964;36957:12;36982:131;-1:-1:-1;;;;;;37056:32:8;;37046:43;;37036:2;;37103:1;37100;37093:12", - "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.4;\n\nimport \"./TokenTracker.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\ncontract ONEWallet is TokenTracker {\n event InsufficientFund(uint256 amount, uint256 balance, address dest);\n event ExceedDailyLimit(uint256 amount, uint256 limit, uint256 current, address dest);\n event UnknownTransferError(address dest);\n event LastResortAddressNotSet();\n event PaymentReceived(uint256 amount, address from);\n event PaymentSent(uint256 amount, address dest);\n event AutoRecoveryTriggered(address from);\n event RecoveryFailure();\n\n /// In future versions, it is planned that we may allow the user to extend the wallet's life through a function call. When that is implemented, the following variables may no longer be immutable, with the exception of root which shall serve as an identifier of the wallet\n bytes32 immutable root; // Note: @ivan brought up a good point in reducing this to 16-bytes so hash of two consecutive nodes can be done in a single word (to save gas and reduce blockchain clutter). Let's not worry about that for now and re-evalaute this later.\n uint8 immutable height; // including the root. e.g. for a tree with 4 leaves, the height is 3.\n uint8 immutable interval; // otp interval in seconds, default is 30\n uint32 immutable t0; // starting time block (effectiveTime (in ms) / interval)\n uint32 immutable lifespan; // in number of block (e.g. 1 block per [interval] seconds)\n uint8 immutable maxOperationsPerInterval; // number of transactions permitted per OTP interval. Each transaction shall have a unique nonce. The nonce is auto-incremented within each interval\n uint32 immutable _numLeaves; // 2 ** (height - 1)\n\n /// global mutable variables\n address payable lastResortAddress; // where money will be sent during a recovery process (or when the wallet is beyond its lifespan)\n uint256 dailyLimit; // uint128 is sufficient, but uint256 is more efficient since EVM works with 32-byte words.\n uint256 spentToday; // note: instead of tracking the money spent for the last 24h, we are simply tracking money spent per 24h block based on UTC time. It is good enough for now, but we may want to change this later.\n uint32 lastTransferDay;\n\n /// nonce tracking\n mapping(uint32 => uint8) nonces; // keys: otp index (=timestamp in seconds / interval - t0); values: the expected nonce for that otp interval. An reveal with a nonce less than the expected value will be rejected\n uint32[] nonceTracker; // list of nonces keys that have a non-zero value. keys cannot possibly result a successful reveal (indices beyond REVEAL_MAX_DELAY old) are auto-deleted during a clean up procedure that is called every time the nonces are incremented for some key. For each deleted key, the corresponding key in nonces will also be deleted. So the size of nonceTracker and nonces are both bounded.\n\n // constants\n uint32 constant REVEAL_MAX_DELAY = 60;\n uint32 constant SECONDS_PER_DAY = 86400;\n uint256 constant AUTO_RECOVERY_TRIGGER_AMOUNT = 1 ether;\n uint32 constant MAX_COMMIT_SIZE = 120;\n\n uint32 constant majorVersion = 0x7; // a change would require client to migrate\n uint32 constant minorVersion = 0x3; // a change would not require the client to migrate\n\n enum OperationType {\n TRACK, UNTRACK, TRANSFER_TOKEN, OVERRIDE_TRACK, TRANSFER, SET_RECOVERY_ADDRESS, RECOVER,\n REPLACE // reserved, not implemented yet. This is for replacing the root and set up new parameters (t0, lifespan)\n }\n /// commit management\n struct Commit {\n bytes32 hash;\n bytes32 paramsHash;\n bytes32 verificationHash;\n uint32 timestamp;\n bool completed;\n }\n\n bytes32[] commits; // self-clean on commit (auto delete commits that are beyond REVEAL_MAX_DELAY), so it's bounded by the number of commits an attacker can spam within REVEAL_MAX_DELAY time in the worst case, which is not too bad.\n mapping(bytes32 => Commit[]) commitLocker;\n\n\n constructor(bytes32 root_, uint8 height_, uint8 interval_, uint32 t0_, uint32 lifespan_, uint8 maxOperationsPerInterval_,\n address payable lastResortAddress_, uint256 dailyLimit_)\n {\n root = root_;\n height = height_;\n interval = interval_;\n t0 = t0_;\n lifespan = lifespan_;\n lastResortAddress = lastResortAddress_;\n dailyLimit = dailyLimit_;\n maxOperationsPerInterval = maxOperationsPerInterval_;\n _numLeaves = uint32(2 ** (height_ - 1));\n }\n\n receive() external payable {\n emit PaymentReceived(msg.value, msg.sender);\n if (msg.value != AUTO_RECOVERY_TRIGGER_AMOUNT) {\n return;\n }\n if (msg.sender != lastResortAddress) {\n return;\n }\n if (lastResortAddress == address(0)) {\n return;\n }\n if (msg.sender == address(this)) {\n return;\n }\n emit AutoRecoveryTriggered(msg.sender);\n require(_drain());\n }\n\n\n function retire() external returns (bool)\n {\n require(uint32(block.timestamp / interval) - t0 > lifespan, \"Too early to retire\");\n require(lastResortAddress != address(0), \"Last resort address is not set\");\n require(_drain(), \"Recovery failed\");\n return true;\n }\n\n function getInfo() external view returns (bytes32, uint8, uint8, uint32, uint32, uint8, address, uint256)\n {\n return (root, height, interval, t0, lifespan, maxOperationsPerInterval, lastResortAddress, dailyLimit);\n }\n\n function getVersion() external pure returns (uint32, uint32)\n {\n return (majorVersion, minorVersion);\n }\n\n function getCurrentSpending() external view returns (uint256, uint256)\n {\n return (spentToday, lastTransferDay);\n }\n\n function getNonce() external view returns (uint8)\n {\n uint32 index = uint32(block.timestamp) / interval - t0;\n return nonces[index];\n }\n\n function getCommits() external pure returns (bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory){\n revert(\"Deprecated\");\n }\n\n function getAllCommits() external view returns (bytes32[] memory, bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory)\n {\n uint32 numCommits = 0;\n for (uint32 i = 0; i < commits.length; i++) {\n Commit[] storage cc = commitLocker[commits[i]];\n numCommits += uint32(cc.length);\n }\n bytes32[] memory hashes = new bytes32[](numCommits);\n bytes32[] memory paramHashes = new bytes32[](numCommits);\n bytes32[] memory verificationHashes = new bytes32[](numCommits);\n uint32[] memory timestamps = new uint32[](numCommits);\n bool[] memory completed = new bool[](numCommits);\n uint32 index = 0;\n for (uint32 i = 0; i < commits.length; i++) {\n Commit[] storage cc = commitLocker[commits[i]];\n for (uint32 j = 0; j < cc.length; j++) {\n Commit storage c = cc[j];\n hashes[index] = c.hash;\n paramHashes[index] = c.paramsHash;\n verificationHashes[index] = c.verificationHash;\n timestamps[index] = c.timestamp;\n completed[index] = c.completed;\n index++;\n }\n }\n return (hashes, paramHashes, verificationHashes, timestamps, completed);\n }\n\n function findCommit(bytes32 /*hash*/) external pure returns (bytes32, bytes32, uint32, bool){\n revert(\"Deprecated\");\n }\n\n function lookupCommit(bytes32 hash) external view returns (bytes32[] memory, bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory){\n Commit[] storage cc = commitLocker[hash];\n bytes32[] memory hashes = new bytes32[](cc.length);\n bytes32[] memory paramHashes = new bytes32[](cc.length);\n bytes32[] memory verificationHashes = new bytes32[](cc.length);\n uint32[] memory timestamps = new uint32[](cc.length);\n bool[] memory completed = new bool[](cc.length);\n for (uint32 i = 0; i < cc.length; i++) {\n Commit storage c = cc[i];\n hashes[i] = c.hash;\n paramHashes[i] = c.paramsHash;\n verificationHashes[i] = c.verificationHash;\n timestamps[i] = c.timestamp;\n completed[i] = c.completed;\n }\n return (hashes, paramHashes, verificationHashes, timestamps, completed);\n }\n\n function commit(bytes32 hash, bytes32 paramsHash, bytes32 verificationHash) external {\n _cleanupCommits();\n Commit memory nc = Commit(hash, paramsHash, verificationHash, uint32(block.timestamp), false);\n require(commits.length < MAX_COMMIT_SIZE, \"Too many commits\");\n commits.push(hash);\n commitLocker[hash].push(nc);\n }\n\n /// This function sends all remaining funds of the wallet to `lastResortAddress`. The caller should verify that `lastResortAddress` is not null.\n /// TODO: also transfer all tracked ERC20, 721, 1155 tokens to `lastResortAddress`\n function _drain() internal returns (bool) {\n // this may be triggered after revealing the proof, and we must prevent revert in all cases\n (bool success,) = lastResortAddress.call{value : address(this).balance}(\"\");\n return success;\n }\n\n function _transfer(address payable dest, uint256 amount) internal returns (bool) {\n uint32 day = uint32(block.timestamp / SECONDS_PER_DAY);\n if (day > lastTransferDay) {\n spentToday = 0;\n lastTransferDay = day;\n }\n if (spentToday + amount > dailyLimit) {\n emit ExceedDailyLimit(amount, dailyLimit, spentToday, dest);\n return false;\n }\n if (address(this).balance < amount) {\n emit InsufficientFund(amount, address(this).balance, dest);\n return false;\n }\n spentToday += amount;\n (bool success,) = dest.call{value : amount}(\"\");\n // we do not want to revert the whole transaction if this operation fails, since EOTP is already revealed\n if (!success) {\n spentToday -= amount;\n emit UnknownTransferError(dest);\n return false;\n }\n\n emit PaymentSent(amount, dest);\n return true;\n }\n\n function _recover() internal returns (bool){\n if (lastResortAddress == address(0)) {\n emit LastResortAddressNotSet();\n return false;\n }\n if (!_drain()) {\n emit RecoveryFailure();\n return false;\n }\n return true;\n }\n\n function _setRecoveryAddress(address payable lastResortAddress_) internal {\n require(lastResortAddress == address(0), \"Last resort address is already set\");\n lastResortAddress = lastResortAddress_;\n }\n\n function _transferToken(TokenType tokenType, address contractAddress, uint256 tokenId, address dest, uint256 amount, bytes memory data) internal {\n if (tokenType == TokenType.ERC20) {\n try IERC20(contractAddress).transfer(dest, amount) returns (bool success){\n if (success) {\n _trackToken(tokenType, contractAddress, tokenId);\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n return;\n }\n emit TokenTransferFailed(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n } else if (tokenType == TokenType.ERC721) {\n try IERC721(contractAddress).safeTransferFrom(address(this), dest, tokenId, data){\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n } else if (tokenType == TokenType.ERC1155) {\n try IERC1155(contractAddress).safeTransferFrom(address(this), dest, tokenId, amount, data) {\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n }\n }\n\n /// Provides commitHash, paramsHash, and verificationHash given the parameters\n function _getRevealHash(bytes32 neighbor, uint32 indexWithNonce, bytes32 eotp,\n OperationType operationType, TokenType tokenType, address contractAddress, uint256 tokenId, address dest, uint256 amount, bytes calldata data) pure internal returns (bytes32, bytes32) {\n bytes32 hash = keccak256(bytes.concat(neighbor, bytes32(bytes4(indexWithNonce)), eotp));\n bytes32 paramsHash = bytes32(0);\n if (operationType == OperationType.TRANSFER) {\n paramsHash = keccak256(bytes.concat(bytes32(bytes20(address(dest))), bytes32(amount)));\n } else if (operationType == OperationType.RECOVER) {\n paramsHash = keccak256(data);\n } else if (operationType == OperationType.SET_RECOVERY_ADDRESS) {\n paramsHash = keccak256(bytes.concat(bytes32(bytes20(address(dest)))));\n } else {\n bytes memory packed = bytes.concat(\n bytes32(uint256(operationType)),\n bytes32(uint256(tokenType)),\n bytes32(bytes20(contractAddress)),\n bytes32(tokenId),\n bytes32(bytes20(dest)),\n bytes32(amount),\n data\n );\n paramsHash = keccak256(bytes.concat(packed));\n }\n return (hash, paramsHash);\n }\n\n\n function reveal(bytes32[] calldata neighbors, uint32 indexWithNonce, bytes32 eotp,\n OperationType operationType, TokenType tokenType, address contractAddress, uint256 tokenId, address payable dest, uint256 amount, bytes calldata data)\n external {\n _isCorrectProof(neighbors, indexWithNonce, eotp);\n if (indexWithNonce == _numLeaves - 1) {\n require(operationType == OperationType.RECOVER, \"Last operation reserved for recover\");\n }\n (bytes32 commitHash, bytes32 paramsHash) = _getRevealHash(neighbors[0], indexWithNonce, eotp,\n operationType, tokenType, contractAddress, tokenId, dest, amount, data);\n uint32 commitIndex = _verifyReveal(commitHash, indexWithNonce, paramsHash, eotp);\n _completeReveal(commitHash, commitIndex);\n // No revert should occur below this point\n if (operationType == OperationType.TRACK) {\n if (data.length > 0) {\n _multiTrack(data);\n } else {\n _trackToken(tokenType, contractAddress, tokenId);\n }\n } else if (operationType == OperationType.UNTRACK) {\n if (data.length > 0) {\n _untrackToken(tokenType, contractAddress, tokenId);\n } else {\n _multiUntrack(data);\n }\n } else if (operationType == OperationType.TRANSFER_TOKEN) {\n _transferToken(tokenType, contractAddress, tokenId, dest, amount, data);\n } else if (operationType == OperationType.OVERRIDE_TRACK) {\n _overrideTrackWithBytes(data);\n } else if (operationType == OperationType.TRANSFER) {\n _transfer(dest, amount);\n } else if (operationType == OperationType.RECOVER) {\n _recover();\n } else if (operationType == OperationType.SET_RECOVERY_ADDRESS) {\n _setRecoveryAddress(dest);\n }\n }\n\n /// This is just a wrapper around a modifier previously called `isCorrectProof`, to avoid \"Stack too deep\" error. Duh.\n function _isCorrectProof(bytes32[] calldata neighbors, uint32 position, bytes32 eotp) view internal {\n require(neighbors.length == height - 1, \"Not enough neighbors provided\");\n bytes32 h = sha256(bytes.concat(eotp));\n if (position == _numLeaves - 1) {\n // special case: recover only\n h = eotp;\n }\n for (uint8 i = 0; i < height - 1; i++) {\n if ((position & 0x01) == 0x01) {\n h = sha256(bytes.concat(neighbors[i], h));\n } else {\n h = sha256(bytes.concat(h, neighbors[i]));\n }\n position >>= 1;\n }\n require(root == h, \"Proof is incorrect\");\n return;\n }\n\n /// Remove old commits from storage, where the commit's timestamp is older than block.timestamp - REVEAL_MAX_DELAY. The purpose is to remove dangling data from blockchain, and prevent commits grow unbounded. This is executed at commit time. The committer pays for the gas of this cleanup. Therefore, any attacker who intend to spam commits would be disincentivized. The attacker would not succeed in preventing any normal operation by the user.\n function _cleanupCommits() internal {\n uint32 timelyIndex = 0;\n uint32 bt = uint32(block.timestamp);\n // go through past commits chronologically, starting from the oldest, and find the first commit that is not older than block.timestamp - REVEAL_MAX_DELAY.\n for (; timelyIndex < commits.length; timelyIndex++) {\n bytes32 hash = commits[timelyIndex];\n Commit[] storage cc = commitLocker[hash];\n // We may skip because the commit is already cleaned up and is considered \"untimely\".\n if (cc.length == 0) {\n continue;\n }\n // We take the first entry in `cc` as the timestamp for all commits under commit hash `hash`, because the first entry represents the oldest commit and only commit if an attacker is not attacking this wallet. If an attacker is front-running commits, the first entry may be from the attacker, but its timestamp should be identical to the user's commit (or close enough to the user's commit, if network is a bit congested)\n Commit storage c = cc[0];\n unchecked {\n if (c.timestamp >= bt - REVEAL_MAX_DELAY) {\n break;\n }\n }\n }\n // Now `timelyIndex` holds the index of the first commit that is timely. All commits at an index less than `timelyIndex` must be deleted;\n if (timelyIndex == 0) {\n // no commit is older than block.timestamp - REVEAL_MAX_DELAY. Nothing needs to be cleaned up\n return;\n }\n // Delete Commit instances for commits that are are older than block.timestamp - REVEAL_MAX_DELAY\n for (uint32 i = 0; i < timelyIndex; i++) {\n bytes32 hash = commits[i];\n Commit[] storage cc = commitLocker[hash];\n for (uint32 j = 0; j < cc.length; j++) {\n delete cc[j];\n }\n delete commitLocker[hash];\n }\n // Shift all commit hashes up by `timelyIndex` positions, and discard `commitIndex` number of hashes at the end of the array\n // This process erases old commits\n uint32 len = uint32(commits.length);\n for (uint32 i = timelyIndex; i < len; i++) {\n unchecked{\n commits[i - timelyIndex] = commits[i];\n }\n }\n for (uint32 i = 0; i < timelyIndex; i++) {\n commits.pop();\n }\n // TODO (@polymorpher): upgrade the above code after solidity implements proper support for struct-array memory-storage copy operation.\n }\n\n function _isRevealTimely(uint32 commitTime) view internal returns (bool)\n {\n return uint32(block.timestamp) - commitTime < REVEAL_MAX_DELAY;\n }\n\n /// This function verifies that the first valid entry with respect to the given `eotp` in `commitLocker[hash]` matches the provided `paramsHash` and `verificationHash`. An entry is valid with respect to `eotp` iff `h3(entry.paramsHash . eotp)` equals `entry.verificationHash`\n function _verifyReveal(bytes32 hash, uint32 indexWithNonce, bytes32 paramsHash, bytes32 eotp) view internal returns (uint32)\n {\n uint32 index = indexWithNonce / maxOperationsPerInterval;\n uint8 nonce = uint8(indexWithNonce % maxOperationsPerInterval);\n Commit[] storage cc = commitLocker[hash];\n require(cc.length > 0, \"No commit found\");\n for (uint32 i = 0; i < cc.length; i++) {\n Commit storage c = cc[i];\n bytes32 expectedVerificationHash = keccak256(bytes.concat(c.paramsHash, eotp));\n if (c.verificationHash != expectedVerificationHash) {\n // Invalid entry. Ignore\n continue;\n }\n require(c.paramsHash == paramsHash, \"Parameter hash mismatch\");\n uint32 counter = c.timestamp / interval - t0;\n require(counter == index, \"Index - timestamp mismatch\");\n uint8 expectedNonce = nonces[counter];\n require(nonce >= expectedNonce, \"Nonce too low\");\n require(!c.completed, \"Commit already completed\");\n // This normally should not happen, but when the network is congested (regardless of whether due to an attacker's malicious acts or not), the legitimate reveal may become untimely. This may happen before the old commit is cleaned up by another fresh commit. We enforce this restriction so that the attacker would not have a lot of time to reverse-engineer a single EOTP or leaf using an old commit.\n require(_isRevealTimely(c.timestamp), \"Reveal too late\");\n return i;\n }\n revert(\"No valid commit\");\n }\n\n function _completeReveal(bytes32 commitHash, uint32 commitIndex) internal {\n Commit[] storage cc = commitLocker[commitHash];\n require(cc.length > 0, \"Invalid commit hash\");\n require(cc.length > commitIndex, \"Invalid commitIndex\");\n Commit storage c = cc[commitIndex];\n require(c.timestamp > 0, \"Invalid commit timestamp\");\n // should not happen\n uint32 index = uint32(c.timestamp) / interval - t0;\n _incrementNonce(index);\n _cleanupNonces();\n c.completed = true;\n }\n\n /// This function removes all tracked nonce values correspond to interval blocks that are older than block.timestamp - REVEAL_MAX_DELAY. In doing so, extraneous data in the blockchain is removed, and both nonces and nonceTracker are bounded in size.\n function _cleanupNonces() internal {\n uint32 tMin = uint32(block.timestamp) - REVEAL_MAX_DELAY;\n uint32 indexMinUnadjusted = tMin / interval;\n uint32 indexMin = 0;\n if (indexMinUnadjusted > t0) {\n indexMin = indexMinUnadjusted - t0;\n }\n uint32[] memory nonZeroNonces = new uint32[](nonceTracker.length);\n uint32 numValidIndices = 0;\n for (uint8 i = 0; i < nonceTracker.length; i++) {\n uint32 index = nonceTracker[i];\n if (index < indexMin) {\n delete nonces[index];\n } else {\n nonZeroNonces[numValidIndices] = index;\n unchecked {\n numValidIndices++;\n }\n }\n }\n // TODO (@polymorpher): This can be later made more efficient by inline assembly. https://ethereum.stackexchange.com/questions/51891/how-to-pop-from-decrease-the-length-of-a-memory-array-in-solidity\n uint32[] memory reducedArray = new uint32[](numValidIndices);\n for (uint8 i = 0; i < numValidIndices; i++) {\n reducedArray[i] = nonZeroNonces[i];\n }\n nonceTracker = reducedArray;\n }\n\n function _incrementNonce(uint32 index) internal {\n uint8 v = nonces[index];\n if (v == 0) {\n nonceTracker.push(index);\n }\n unchecked{\n nonces[index] = v + 1;\n }\n }\n}\n", + "sourceMap": "151:24282:6:-:0;;;4057:517;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4258:12;;;;4280:16;;;;;;;;;4306:20;;;;;;;-1:-1:-1;;;;;;4336:8:6;;;;;;;;4354:20;;;;;;4384:17;:38;;-1:-1:-1;;;;;4384:38:6;;-1:-1:-1;;;;;;4384:38:6;;;;;;4432:10;:24;;;4466:52;;;;;;4554:11;4384:38;4289:7;4554:11;:::i;:::-;4548:18;;:1;:18;:::i;:::-;4528:39;;-1:-1:-1;;;;;;4528:39:6;;;-1:-1:-1;151:24282:6;;-1:-1:-1;;;;;;;151:24282:6;14:167:8;92:13;;145:10;134:22;;124:33;;114:2;;171:1;168;161:12;114:2;73:108;;;:::o;186:160::-;263:13;;316:4;305:16;;295:27;;285:2;;336:1;333;326:12;351:854;484:6;492;500;508;516;524;532;540;593:3;581:9;572:7;568:23;564:33;561:2;;;615:6;607;600:22;561:2;649:9;643:16;633:26;;678:47;721:2;710:9;706:18;678:47;:::i;:::-;668:57;;744:47;787:2;776:9;772:18;744:47;:::i;:::-;734:57;;810:48;854:2;843:9;839:18;810:48;:::i;:::-;800:58;;877:49;921:3;910:9;906:19;877:49;:::i;:::-;867:59;;945:48;988:3;977:9;973:19;945:48;:::i;:::-;1036:3;1021:19;;1015:26;935:58;;-1:-1:-1;;;;;;1070:31:8;;1060:42;;1050:2;;1121:6;1113;1106:22;1050:2;1149:5;1139:15;;;1194:3;1183:9;1179:19;1173:26;1163:36;;551:654;;;;;;;;;;;:::o;1210:422::-;1299:1;1342:5;1299:1;1356:270;1377:7;1367:8;1364:21;1356:270;;;1436:4;1432:1;1428:6;1424:17;1418:4;1415:27;1412:2;;;1445:18;;:::i;:::-;1495:7;1485:8;1481:22;1478:2;;;1515:16;;;;1478:2;1594:22;;;;1554:15;;;;1356:270;;;1360:3;1274:358;;;;;:::o;1637:140::-;1695:5;1724:47;1765:4;1755:8;1751:19;1745:4;1724:47;:::i;:::-;1715:56;1705:72;-1:-1:-1;;;1705:72:8:o;1782:806::-;1831:5;1861:8;1851:2;;-1:-1:-1;1902:1:8;1916:5;;1851:2;1950:4;1940:2;;-1:-1:-1;1987:1:8;2001:5;;1940:2;2032:4;2050:1;2045:59;;;;2118:1;2113:130;;;;2025:218;;2045:59;2075:1;2066:10;;2089:5;;;2113:130;2150:3;2140:8;2137:17;2134:2;;;2157:18;;:::i;:::-;-1:-1:-1;;2213:1:8;2199:16;;2228:5;;2025:218;;2327:2;2317:8;2314:16;2308:3;2302:4;2299:13;2295:36;2289:2;2279:8;2276:16;2271:2;2265:4;2262:12;2258:35;2255:77;2252:2;;;-1:-1:-1;2364:19:8;;;2396:5;;2252:2;2443:34;2468:8;2462:4;2443:34;:::i;:::-;2513:6;2509:1;2505:6;2501:19;2492:7;2489:32;2486:2;;;2524:18;;:::i;:::-;2562:20;;-1:-1:-1;1841:747:8;;;;;:::o;2593:195::-;2631:4;2668;2665:1;2661:12;2700:4;2697:1;2693:12;2725:3;2720;2717:12;2714:2;;;2732:18;;:::i;:::-;2769:13;;;2640:148;-1:-1:-1;;;2640:148:8:o;2793:127::-;2854:10;2849:3;2845:20;2842:1;2835:31;2885:4;2882:1;2875:15;2909:4;2906:1;2899:15;2825:95;151:24282:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "151:24282:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4622:38;;;4638:9;30559:25:8;;4649:10:6;30615:2:8;30600:18;;30593:60;4622:38:6;;30532:18:8;4622:38:6;;;;;;;3102:7;4674:9;:41;4670:78;;151:24282;4670:78;4775:17;;-1:-1:-1;;;;;4775:17:6;4761:10;:31;4757:68;;151:24282;4757:68;4838:17;;-1:-1:-1;;;;;4838:17:6;4834:68;;151:24282;4834:68;4915:10;4937:4;4915:27;4911:64;;;151:24282;4911:64;4989:33;;5011:10;11859:51:8;;4989:33:6;;11847:2:8;11832:18;4989:33:6;;;;;;;5040:8;:6;:8::i;:::-;5032:17;;;;;;151:24282;;;;;3101:270:7;;;;;;;;;;-1:-1:-1;3101:270:7;;;;;:::i;:::-;;:::i;:::-;;;17567:14:8;;17560:22;17542:41;;17530:2;17515:18;3101:270:7;;;;;;;;5600:117:6;;;;;;;;;;-1:-1:-1;5600:117:6;;;3190:3;32191:34:8;;3274:3:6;32256:2:8;32241:18;;32234:43;32135:18;5600:117:6;32117:166:8;3460:374:7;;;;;;;;;;-1:-1:-1;3460:374:7;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;18951:33:8;;;18933:52;;18921:2;18906:18;3460:374:7;18888:103:8;7462:129:6;;;;;;;;;;-1:-1:-1;7462:129:6;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;17817:25:8;;;17873:2;17858:18;;17851:34;;;;17933:10;17921:23;17916:2;17901:18;;17894:51;17988:14;17981:22;17976:2;17961:18;;17954:50;17804:3;17789:19;;17771:239;5723:128:6;;;;;;;;;;-1:-1:-1;5816:10:6;;5828:15;;5723:128;;;31125:25:8;;;5828:15:6;;;;31181:2:8;31166:18;;31159:34;31098:18;5723:128:6;31080:119:8;6018:149:6;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;5365:229::-;;;;;;;;;;;;5557:17;;5576:10;;5493:4;;5499:6;;5507:8;;5517:2;;5521:8;;5531:24;;-1:-1:-1;;;;;5557:17:6;;;;5365:229;;;;;18342:25:8;;;18415:4;18403:17;;;18398:2;18383:18;;18376:45;18457:17;;;18437:18;;;18430:45;;;;18494:10;18540:15;;;18535:2;18520:18;;18513:43;18593:15;;;;18587:3;18572:19;;18565:44;18646:17;;18640:3;18625:19;;18618:46;-1:-1:-1;;;;;18701:32:8;;;18695:3;18680:19;;18673:61;18765:3;18750:19;;18743:35;18329:3;18314:19;5365:229:6;18296:488:8;3840:652:7;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;6173:1283:6:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;5063:296::-;;;;;;;;;;;;;:::i;2728:367:7:-;;;;;;;;;;-1:-1:-1;2728:367:7;;;;;:::i;:::-;;:::i;14235:1916:6:-;;;;;;;;;;-1:-1:-1;14235:1916:6;;;;;:::i;:::-;;:::i;5857:155::-;;;;;;;;;;;;;:::i;:::-;;;32460:4:8;32448:17;;;32430:36;;32418:2;32403:18;5857:155:6;32385:87:8;7597:907:6;;;;;;;;;;-1:-1:-1;7597:907:6;;;;;:::i;:::-;;:::i;8510:358::-;;;;;;;;;;-1:-1:-1;8510:358:6;;;;;:::i;:::-;;:::i;2332:390:7:-;;;;;;;;;;-1:-1:-1;2332:390:7;;;;;:::i;:::-;;:::i;9110:258:6:-;9280:17;;:57;;9146:4;;;;-1:-1:-1;;;;;9280:17:6;;;;9311:21;;9146:4;9280:57;9146:4;9280:57;9311:21;9280:17;:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9262:75:6;;9110:258;-1:-1:-1;;;9110:258:6:o;3101:270:7:-;3180:4;-1:-1:-1;;;;;;3203:46:7;;-1:-1:-1;;;3203:46:7;;:104;;-1:-1:-1;;;;;;;3261:46:7;;-1:-1:-1;;;3261:46:7;3203:104;:161;;;-1:-1:-1;;;;;;;3319:45:7;;-1:-1:-1;;;3319:45:7;3203:161;3196:168;3101:270;-1:-1:-1;;3101:270:7:o;3460:374::-;3621:6;3643:77;3657:16;3675:1;3678:4;3684:10;3696:8;3706:7;3715:4;;3643:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;3730:50;3742:16;3760:10;3772:7;3730:11;:50::i;:::-;-1:-1:-1;;;;3460:374:7;;;;;;;;:::o;7462:129:6:-;7523:7;7532;7541:6;7549:4;7564:20;;-1:-1:-1;;;7564:20:6;;;;;;28749:2:8;28731:21;;;28788:2;28768:18;;;28761:30;-1:-1:-1;;;28822:2:8;28807:18;;28800:40;28872:2;28857:18;;28721:160;7564:20:6;;;;;;;;6018:149;6063:16;6081;6099:15;6116:13;6140:20;;-1:-1:-1;;;6140:20:6;;;;;;28749:2:8;28731:21;;;28788:2;28768:18;;;28761:30;-1:-1:-1;;;28822:2:8;28807:18;;28800:40;28872:2;28857:18;;28721:160;3840:652:7;3891:18;3911:16;3929;3956:29;4004:13;:20;;;;-1:-1:-1;;;;;3988:37:7;;;;;-1:-1:-1;;;3988:37:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3988:37:7;-1:-1:-1;4086:13:7;:20;3956:69;;-1:-1:-1;4035:34:7;;-1:-1:-1;;;;;4072:35:7;;;;;-1:-1:-1;;;4072:35:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4072:35:7;-1:-1:-1;4159:13:7;:20;4035:72;;-1:-1:-1;4117:25:7;;-1:-1:-1;;;;;4145:35:7;;;;;-1:-1:-1;;;4145:35:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4145:35:7;;4117:63;;4195:8;4190:238;4213:13;:20;4209:24;;;;4190:238;;;4270:13;4284:1;4270:16;;;;;;;;-1:-1:-1;;;4270:16:7;;;;;;;;;;;;;;;;;;;;;;:26;4254:13;;4270:26;;;;;4254:10;;:13;;;;;;;;-1:-1:-1;;;4254:13:7;;;;;;;;;;;;;;:42;;;;;;;-1:-1:-1;;;4254:42:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;4254:42:7;;;;;;;;;;;;;4333:13;4347:1;4333:16;;;;;;;;-1:-1:-1;;;4333:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;4333:32:7;4310:17;4328:1;4310:20;;;;;;;;-1:-1:-1;;;4310:20:7;;;;;;;;;;;;;;:55;-1:-1:-1;;;;;4310:55:7;;;-1:-1:-1;;;;;4310:55:7;;;;;4393:13;4407:1;4393:16;;;;;;;;-1:-1:-1;;;4393:16:7;;;;;;;;;;;;;;;;;;;:24;;;4379:8;4388:1;4379:11;;;;;;;;-1:-1:-1;;;4379:11:7;;;;;;;;;;;;;;;;;;:38;4235:3;;;;:::i;:::-;;;;4190:238;;;-1:-1:-1;4445:10:7;;4457:17;;-1:-1:-1;4476:8:7;;-1:-1:-1;3840:652:7;-1:-1:-1;3840:652:7:o;6173:1283:6:-;6221:16;6239;6257;6275:15;6292:13;6321:17;6357:8;6352:160;6375:7;:14;6371:18;;;;6352:160;;;6410:19;6432:12;:24;6445:7;6453:1;6445:10;;;;;;;;-1:-1:-1;;;6445:10:6;;;;;;;;;;;;;;;;;6432:24;;;;;;;;;;;6410:46;;6491:2;:9;;;;6470:31;;;;;:::i;:::-;;;6352:160;6391:3;;;;;:::i;:::-;;;;6352:160;;;;6521:23;6561:10;6547:25;;-1:-1:-1;;;;;6547:25:6;;;;;-1:-1:-1;;;6547:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6547:25:6;;6521:51;;6582:28;6627:10;6613:25;;-1:-1:-1;;;;;6613:25:6;;;;;-1:-1:-1;;;6613:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6613:25:6;;6582:56;;6648:35;6700:10;6686:25;;-1:-1:-1;;;;;6686:25:6;;;;;-1:-1:-1;;;6686:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6686:25:6;;6648:63;;6721:26;6763:10;6750:24;;-1:-1:-1;;;;;6750:24:6;;;;;-1:-1:-1;;;6750:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6750:24:6;;6721:53;;6784:23;6821:10;6810:22;;-1:-1:-1;;;;;6810:22:6;;;;;-1:-1:-1;;;6810:22:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6810:22:6;;6784:48;;6842:12;6873:8;6868:501;6891:7;:14;6887:18;;;;6868:501;;;6926:19;6948:12;:24;6961:7;6969:1;6961:10;;;;;;;;-1:-1:-1;;;6961:10:6;;;;;;;;;;;;;;;;;6948:24;;;;;;;;;;;6926:46;;6991:8;6986:373;7009:9;;7005:13;;;;6986:373;;;7043:16;7062:2;7065:1;7062:5;;;;;;;;-1:-1:-1;;;7062:5:6;;;;;;;;;;;;;;;;;;;7043:24;;7101:1;:6;;;7085;7092:5;7085:13;;;;;;;;-1:-1:-1;;;7085:13:6;;;;;;;;;;;;;;:22;;;;;7146:1;:12;;;7125:11;7137:5;7125:18;;;;;;;;-1:-1:-1;;;7125:18:6;;;;;;;;;;;;;;:33;;;;;7204:1;:18;;;7176;7195:5;7176:25;;;;;;;;-1:-1:-1;;;7176:25:6;;;;;;;;;;;;;;;;;;:46;7260:11;;;;7240:17;;7260:11;;;;;7240:10;;:17;;;;;;;;-1:-1:-1;;;7240:17:6;;;;;;;;;;;;;;:31;;;;;;;;;;;7308:1;:11;;;;;;;;;;;;7289:9;7299:5;7289:16;;;;;;;;-1:-1:-1;;;7289:16:6;;;;;;;;;:30;;;:16;;;;;;;;;;;:30;7337:7;;;;:::i;:::-;;;;6986:373;7020:3;;;;;:::i;:::-;;;;6986:373;;;;6868:501;6907:3;;;;;:::i;:::-;;;;6868:501;;;-1:-1:-1;7386:6:6;;7394:11;;-1:-1:-1;7407:18:6;;-1:-1:-1;7407:18:6;-1:-1:-1;7394:11:6;-1:-1:-1;6173:1283:6;-1:-1:-1;;;6173:1283:6:o;5063:296::-;5099:4;5127:50;5169:8;5127:50;5164:2;5134:26;;5152:8;5134:26;:15;:26;:::i;:::-;5127:39;;;;:::i;:::-;:50;;;5119:82;;;;-1:-1:-1;;;5119:82:6;;25891:2:8;5119:82:6;;;25873:21:8;25930:2;25910:18;;;25903:30;-1:-1:-1;;;25949:18:8;;;25942:49;26008:18;;5119:82:6;25863:169:8;5119:82:6;5219:17;;-1:-1:-1;;;;;5219:17:6;5211:74;;;;-1:-1:-1;;;5211:74:6;;23790:2:8;5211:74:6;;;23772:21:8;23829:2;23809:18;;;23802:30;23868:32;23848:18;;;23841:60;23918:18;;5211:74:6;23762:180:8;5211:74:6;5303:8;:6;:8::i;:::-;5295:36;;;;-1:-1:-1;;;5295:36:6;;28057:2:8;5295:36:6;;;28039:21:8;28096:2;28076:18;;;28069:30;-1:-1:-1;;;28115:18:8;;;28108:45;28170:18;;5295:36:6;28029:165:8;5295:36:6;-1:-1:-1;5348:4:6;;5063:296::o;2728:367:7:-;2891:6;;2908:128;2927:14;;;;-1:-1:-1;2908:128:7;;;2962:4;:22;2985:8;2995:4;3001:3;;:6;;;;;;;;-1:-1:-1;;;3001:6:7;;;;;;;;;;;;;;;3009;;3016:1;3009:9;;;;;;;-1:-1:-1;;;3009:9:7;;;;;;;;;;;;;;;3020:4;;2962:63;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2943:3:7;;;;:::i;:::-;;;;2908:128;;;-1:-1:-1;;;;3052:36:7;2728:367;-1:-1:-1;;;;;;;;;2728:367:7:o;14235:1916:6:-;14500:48;14516:9;;14527:14;14543:4;14500:15;:48::i;:::-;14580:14;14593:1;14580:10;:14;:::i;:::-;14562:32;;:14;:32;;;14558:149;;;14635:21;14618:13;:38;;;;;;-1:-1:-1;;;14618:38:6;;;;;;;;;;14610:86;;;;-1:-1:-1;;;14610:86:6;;30183:2:8;14610:86:6;;;30165:21:8;30222:2;30202:18;;;30195:30;30261:34;30241:18;;;30234:62;-1:-1:-1;;;30312:18:8;;;30305:33;30355:19;;14610:86:6;30155:225:8;14610:86:6;14717:18;14737;14759:134;14774:9;;14784:1;14774:12;;;;;-1:-1:-1;;;14774:12:6;;;;;;;;;;;;;;;14788:14;14804:4;14822:13;14837:9;14848:15;14865:7;14874:4;14880:6;14888:4;;14759:14;:134::i;:::-;14716:177;;;;14903:18;14924:74;14938:10;14950:14;14966:10;14978:4;14984:13;14924;:74::i;:::-;14903:95;;15008:55;15024:10;15036:11;15049:13;15008:15;:55::i;:::-;15145:19;15128:13;:36;;;;;;-1:-1:-1;;;15128:36:6;;;;;;;;;;15124:1021;;;15184:15;;15180:158;;15219:17;15231:4;;15219:11;:17::i;:::-;15124:1021;;15180:158;15275:48;15287:9;15298:15;15315:7;15275:11;:48::i;15124:1021::-;15375:21;15358:13;:38;;;;;;-1:-1:-1;;;15358:38:6;;;;;;;;;;15354:791;;;15416:15;;15412:162;;15451:50;15465:9;15476:15;15493:7;15451:13;:50::i;15412:162::-;15540:19;15554:4;;15540:13;:19::i;15354:791::-;15611:28;15594:13;:45;;;;;;-1:-1:-1;;;15594:45:6;;;;;;;;;;15590:555;;;15655:71;15670:9;15681:15;15698:7;15707:4;15713:6;15721:4;;15655:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15655:14:6;;-1:-1:-1;;;15655:71:6:i;15590:555::-;15764:28;15747:13;:45;;;;;;-1:-1:-1;;;15747:45:6;;;;;;;;;;15743:402;;;15808:29;15832:4;;15808:23;:29::i;15743:402::-;15875:22;15858:13;:39;;;;;;-1:-1:-1;;;15858:39:6;;;;;;;;;;15854:291;;;15913:23;15923:4;15929:6;15913:9;:23::i;:::-;;15854:291;;;15974:21;15957:13;:38;;;;;;-1:-1:-1;;;15957:38:6;;;;;;;;;;15953:192;;;16011:10;:8;:10::i;15953:192::-;16059:34;16042:13;:51;;;;;;-1:-1:-1;;;16042:51:6;;;;;;;;;;16038:107;;;16109:25;16129:4;16109:19;:25::i;:::-;14235:1916;;;;;;;;;;;;;;;:::o;5857:155::-;5900:5;;5973:2;5936:34;;5962:8;5936:34;5943:15;5936:34;:::i;:::-;:39;;;;:::i;:::-;5992:13;;;;;;:6;:13;;;;;;;;;5857:155;-1:-1:-1;;5857:155:6:o;7597:907::-;7751:19;7773:18;;;:12;:18;;;;;7841:9;;7656:16;;;;;;;;;;7773:18;-1:-1:-1;;;;;7827:24:6;;;;;-1:-1:-1;;;7827:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7827:24:6;-1:-1:-1;7906:9:6;;7801:50;;-1:-1:-1;7861:28:6;;-1:-1:-1;;;;;7892:24:6;;;;;-1:-1:-1;;;7892:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7892:24:6;-1:-1:-1;7978:9:6;;7861:55;;-1:-1:-1;7926:35:6;;-1:-1:-1;;;;;7964:24:6;;;;;-1:-1:-1;;;7964:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7964:24:6;-1:-1:-1;8040:9:6;;7926:62;;-1:-1:-1;7998:26:6;;-1:-1:-1;;;;;8027:23:6;;;;;-1:-1:-1;;;8027:23:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8027:23:6;-1:-1:-1;8097:9:6;;7998:52;;-1:-1:-1;8060:23:6;;-1:-1:-1;;;;;8086:21:6;;;;;-1:-1:-1;;;8086:21:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8086:21:6;;8060:47;;8122:8;8117:300;8140:9;;8136:13;;;;8117:300;;;8170:16;8189:2;8192:1;8189:5;;;;;;;;-1:-1:-1;;;8189:5:6;;;;;;;;;;;;;;;;;;;8170:24;;8220:1;:6;;;8208;8215:1;8208:9;;;;;;;;-1:-1:-1;;;8208:9:6;;;;;;;;;;;;;;:18;;;;;8257:1;:12;;;8240:11;8252:1;8240:14;;;;;;;;-1:-1:-1;;;8240:14:6;;;;;;;;;;;;;;:29;;;;;8307:1;:18;;;8283;8302:1;8283:21;;;;;;;;-1:-1:-1;;;8283:21:6;;;;;;;;;;;;;;;;;;:42;8355:11;;;;8339:13;;8355:11;;;;;8339:10;;:13;;;;;;;;-1:-1:-1;;;8339:13:6;;;;;;;;;;;;;;:27;;;;;;;;;;;8395:1;:11;;;;;;;;;;;;8380:9;8390:1;8380:12;;;;;;;;-1:-1:-1;;;8380:12:6;;;;;;;;;:26;;;:12;;;;;;;;;;;:26;-1:-1:-1;8151:3:6;;;;:::i;:::-;;;;8117:300;;;-1:-1:-1;8434:6:6;;8442:11;;-1:-1:-1;8455:18:6;;-1:-1:-1;8442:11:6;-1:-1:-1;8434:6:6;;-1:-1:-1;7597:907:6;-1:-1:-1;;;7597:907:6:o;8510:358::-;8605:17;:15;:17::i;:::-;8651:74;;;;;;;;;;;;;;;;;;;;;;;;8701:15;8651:74;;;;;8632:16;8651:74;;;;8743:7;:14;3149:3;-1:-1:-1;8735:61:6;;;;-1:-1:-1;;;8735:61:6;;23103:2:8;8735:61:6;;;23085:21:8;23142:2;23122:18;;;23115:30;-1:-1:-1;;;23161:18:8;;;23154:46;23217:18;;8735:61:6;23075:166:8;8735:61:6;8806:7;:18;;;;;;;;;;;;;;-1:-1:-1;8834:18:6;;;:12;8806:18;8834;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8834:27:6;;;;;;;;;;;;;;;-1:-1:-1;;8510:358:6:o;2332:390:7:-;2512:6;2534:77;2548:17;2567:5;2574:4;2580:10;2592:8;2602:2;2606:4;;2534:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;2621:46;2633:17;2652:10;2664:2;2621:11;:46::i;:::-;-1:-1:-1;;;;2332:390:7;;;;;;;;:::o;4500:1030::-;4603:11;4656:9;4648:18;;;;;;-1:-1:-1;;;4648:18:7;;;;;;;;;4627:94;;;;;;10133:19:8;;;;4677:24:7;;;;-1:-1:-1;;;;;;4669:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;4627:94:7;;;-1:-1:-1;;4627:94:7;;;;;;;;;4617:105;;4627:94;4617:105;;;;4772:1;4736:26;;;;;;;;;:33;4617:105;;-1:-1:-1;4736:37:7;4732:549;;4794:8;4789:482;4812:21;:26;;;;;;;;;;:33;4808:37;;;;4789:482;;;4870:9;4882:26;;;;;;;;;;:29;;;;;;;;;;-1:-1:-1;;;4882:29:7;;;;;;;;;;;;;;;;;4870:41;;4963:9;4933:39;;;;;;-1:-1:-1;;;4933:39:7;;;;;;;;;:13;4947:1;4933:16;;;;;;-1:-1:-1;;;4933:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;:39;;;;;;-1:-1:-1;;;4933:39:7;;;;;;;;;;4929:53;;4974:8;;;4929:53;5032:7;5004:13;5018:1;5004:16;;;;;;-1:-1:-1;;;5004:16:7;;;;;;;;;;;;;;;;;;;:24;;;:35;5000:49;;5041:8;;;5000:49;5107:15;-1:-1:-1;;;;;5071:51:7;:13;5085:1;5071:16;;;;;;-1:-1:-1;;;5071:16:7;;;;;;;;;;;;;;;;;;;;;;:32;;;;-1:-1:-1;;;;;5071:32:7;:51;5067:65;;5124:8;;;5067:65;5250:7;;;4500:1030;;;:::o;4789:482::-;4847:3;;;;:::i;:::-;;;;4789:482;;;;4732:549;5290:22;5315:49;;;;;;;;5328:9;5315:49;;;;;;-1:-1:-1;;;5315:49:7;;;;;;;;;;;-1:-1:-1;;;;;5315:49:7;;;;;;;;;;;;;;;;;-1:-1:-1;5374:26:7;;;;;;;;;5406:13;:20;;5374:53;;;;;;;;;;;;;;;;;;;;5437:22;;;;;;;;;;;;;;;;;;;;;5290:74;;-1:-1:-1;5290:74:7;;5437:22;;;;;-1:-1:-1;;5437:22:7;;;;;;;;;-1:-1:-1;;;5437:22:7;;;;;;;;;;;;;-1:-1:-1;5437:22:7;;;;;;-1:-1:-1;;;;;5437:22:7;;;;;-1:-1:-1;;;;;;5437:22:7;;;;;;;;;;;;;;;;5474:49;;;;;5487:9;;5498:15;;5515:7;;5474:49;:::i;:::-;;;;;;;;4500:1030;;;;;:::o;16280:704:6:-;16418:10;16427:1;16418:6;:10;:::i;:::-;16398:30;;;;16390:72;;;;-1:-1:-1;;;16390:72:6;;27699:2:8;16390:72:6;;;27681:21:8;27738:2;27718:18;;;27711:30;27777:31;27757:18;;;27750:59;27826:18;;16390:72:6;27671:179:8;16390:72:6;16472:9;16484:26;16504:4;16491:18;;;;;;9638:19:8;;9682:2;9673:12;;9628:63;16491:18:6;;;;-1:-1:-1;;16491:18:6;;;;;;;;;;16484:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16472:38;-1:-1:-1;16536:14:6;16549:1;16536:10;:14;:::i;:::-;16524:26;;:8;:26;;;16520:107;;;-1:-1:-1;16612:4:6;16520:107;16641:7;16636:276;16658:10;16667:1;16658:6;:10;:::i;:::-;16654:14;;:1;:14;;;16636:276;;;16705:4;16694:15;;;16693:25;16689:185;;;16742:37;16762:9;;16772:1;16762:12;;;;;;;-1:-1:-1;;;16762:12:6;;;;;;;;;;;;;;;16776:1;16749:29;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;16749:29:6;;;;-1:-1:-1;;16749:29:6;;;;;;;;;;16742:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16738:41;;16689:185;;;16822:37;16842:1;16845:9;;16855:1;16845:12;;;;;;;-1:-1:-1;;;16845:12:6;;;;;;;;;;;;;;;16829:29;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;16829:29:6;;;;-1:-1:-1;;16829:29:6;;;;;;;;;;16822:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16818:41;;16689:185;16900:1;16887:14;;;;;;;16670:3;;;;;:::i;:::-;;;;16636:276;;;;16937:1;16929:4;:9;16921:40;;;;-1:-1:-1;;;16921:40:6;;26594:2:8;16921:40:6;;;26576:21:8;26633:2;26613:18;;;26606:30;-1:-1:-1;;;26652:18:8;;;26645:48;26710:18;;16921:40:6;26566:168:8;16921:40:6;16971:7;16280:704;;;;;:::o;12941:1287::-;13194:7;13203;13222:12;13260:8;13285:14;13278:22;;-1:-1:-1;;;;;13270:31:6;;13303:4;13247:61;;;;;;;;;10133:19:8;;;10177:2;10168:12;;10161:28;;;;10214:2;10205:12;;10198:28;10251:2;10242:12;;10123:137;13247:61:6;;;;-1:-1:-1;;13247:61:6;;;;;;;;;13237:72;;13247:61;13237:72;;;;;-1:-1:-1;13319:18:6;13381:22;13364:13;:39;;;;;;-1:-1:-1;;;13364:39:6;;;;;;;;;;13360:827;;;13442:62;;;13463:22;;;;-1:-1:-1;;;;;;13455:31:6;13442:62;;;9853:19:8;9888:12;;;9881:28;;;9925:12;13442:62:6;;;;;;;;;;;;;13432:73;;;;;;13419:86;;13360:827;;;13543:21;13526:13;:38;;;;;;-1:-1:-1;;;13526:38:6;;;;;;;;;;13522:665;;;13603:4;;13593:15;;;;;;;:::i;:::-;;;;;;;;13580:28;;13522:665;;;13646:34;13629:13;:51;;;;;;-1:-1:-1;;;13629:51:6;;;;;;;;;;13625:562;;;13719:45;;;-1:-1:-1;;;;;;13740:22:6;;;;13732:31;13719:45;;;9638:19:8;9673:12;13719:45:6;9628:63:8;13625:562:6;13796:19;13864:13;13856:22;;;;;;-1:-1:-1;;;13856:22:6;;;;;;;;;13913:9;13905:18;;;;;;-1:-1:-1;;;13905:18:6;;;;;;;;;13897:27;;13958:15;13950:24;;-1:-1:-1;;;;;13942:33:6;;14001:7;13993:16;;14043:4;14035:13;;-1:-1:-1;;;;;14027:22:6;;14075:6;14067:15;;14100:4;;13818:300;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;13796:322;;14168:6;14155:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;14145:31;;;;;;14132:44;;13625:562;;14204:4;;;;-1:-1:-1;12941:1287:6;-1:-1:-1;;;;;;;;;;;;12941:1287:6:o;20416:1745::-;20562:6;;20599:41;;20616:24;20599:41;:14;:41;:::i;:::-;20584:56;-1:-1:-1;20650:11:6;20670:41;;20687:24;20670:41;:14;:41;:::i;:::-;20722:19;20744:18;;;:12;:18;;;;;20780:9;;20650:62;;-1:-1:-1;20744:18:6;20772:41;;;;-1:-1:-1;;;20772:41:6;;25547:2:8;20772:41:6;;;25529:21:8;25586:2;25566:18;;;25559:30;-1:-1:-1;;;25605:18:8;;;25598:45;25660:18;;20772:41:6;25519:165:8;20772:41:6;20828:8;20823:1297;20846:9;;20842:13;;;;20823:1297;;;20876:16;20895:2;20898:1;20895:5;;;;;;;;-1:-1:-1;;;20895:5:6;;;;;;;;;;;;;;;;;;;20876:24;;20914:32;20972:1;:12;;;20986:4;20959:32;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;20959:32:6;;;;;;;;;;;;;20949:43;;;;;;20914:78;;21032:24;21010:1;:18;;;:46;21006:134;;21117:8;;;;21006:134;21177:10;21161:1;:12;;;:26;21153:62;;;;-1:-1:-1;;;21153:62:6;;25195:2:8;21153:62:6;;;25177:21:8;25234:2;25214:18;;;25207:30;25273:25;25253:18;;;25246:53;25316:18;;21153:62:6;25167:173:8;21153:62:6;21250:21;21233:13;:38;;;;;;-1:-1:-1;;;21233:38:6;;;;;;;;;;21229:315;;21308:11;;;;21291:14;;21333:2;;21308:22;;;21322:8;21308:22;;:11;;:22;:::i;:::-;:27;;;;:::i;:::-;21291:44;;21372:5;21361:16;;:7;:16;;;21353:55;;;;-1:-1:-1;;;21353:55:6;;26239:2:8;21353:55:6;;;26221:21:8;26278:2;26258:18;;;26251:30;26317:28;26297:18;;;26290:56;26363:18;;21353:55:6;26211:176:8;21353:55:6;21448:15;;;21426:19;21448:15;;;:6;:15;;;;;;;;;;;21489:22;;;-1:-1:-1;21489:22:6;21481:48;;;;-1:-1:-1;;;21481:48:6;;23448:2:8;21481:48:6;;;23430:21:8;23487:2;23467:18;;;23460:30;-1:-1:-1;;;23506:18:8;;;23499:43;23559:18;;21481:48:6;23420:163:8;21481:48:6;21229:315;;;21566:11;;;;;;;;;21565:12;21557:49;;;;-1:-1:-1;;;21557:49:6;;24842:2:8;21557:49:6;;;24824:21:8;24881:2;24861:18;;;24854:30;24920:26;24900:18;;;24893:54;24964:18;;21557:49:6;24814:174:8;21557:49:6;22055:11;;;;22039:28;;22055:11;;22039:15;:28::i;:::-;22031:56;;;;-1:-1:-1;;;22031:56:6;;24149:2:8;22031:56:6;;;24131:21:8;24188:2;24168:18;;;24161:30;-1:-1:-1;;;24207:18:8;;;24200:45;24262:18;;22031:56:6;24121:165:8;22031:56:6;22108:1;22101:8;;;;;;;;;;20823:1297;20857:3;;;;:::i;:::-;;;;20823:1297;;;-1:-1:-1;22129:25:6;;-1:-1:-1;;;22129:25:6;;29491:2:8;22129:25:6;;;29473:21:8;29530:2;29510:18;;;29503:30;-1:-1:-1;;;29549:18:8;;;29542:45;29604:18;;22129:25:6;29463:165:8;22167:614:6;22280:19;22302:24;;;:12;:24;;;;;22344:9;;22336:45;;;;-1:-1:-1;;;22336:45:6;;28401:2:8;22336:45:6;;;28383:21:8;28440:2;28420:18;;;28413:30;-1:-1:-1;;;28459:18:8;;;28452:49;28518:18;;22336:45:6;28373:169:8;22336:45:6;22399:9;;:23;;;-1:-1:-1;22391:55:6;;;;-1:-1:-1;;;22391:55:6;;29835:2:8;22391:55:6;;;29817:21:8;29874:2;29854:18;;;29847:30;-1:-1:-1;;;29893:18:8;;;29886:49;29952:18;;22391:55:6;29807:169:8;22391:55:6;22456:16;22475:2;22478:11;22475:15;;;;;;;;-1:-1:-1;;;22475:15:6;;;;;;;;;;;;;;;;;;;;;;22508:11;;;;22475:15;;-1:-1:-1;22508:11:6;;22500:52;;;;-1:-1:-1;;;22500:52:6;;26941:2:8;22500:52:6;;;26923:21:8;26980:2;26960:18;;;26953:30;27019:26;26999:18;;;26992:54;27063:18;;22500:52:6;26913:174:8;22500:52:6;22583:21;22566:13;:38;;;;;;-1:-1:-1;;;22566:38:6;;;;;;;;;;22562:185;;22642:11;;;;22620:12;;22668:2;;22635:30;;;22657:8;22635:30;;22642:11;;22635:30;:::i;:::-;:35;;;;:::i;:::-;22620:50;;22684:22;22700:5;22684:15;:22::i;:::-;22720:16;:14;:16::i;:::-;22562:185;;22756:11;;:18;;-1:-1:-1;;22756:18:6;;;;;-1:-1:-1;;;;22167:614:6:o;9045:596:7:-;9106:16;9132;9146:2;9132:4;:16;:::i;:::-;9106:43;-1:-1:-1;9185:4:7;9167:14;9106:43;9179:2;9167:14;:::i;:::-;:29;;;9159:78;;;;-1:-1:-1;;;9159:78:7;;;;;;;:::i;:::-;9252:8;9247:388;9270:9;9266:13;;:1;:13;;;9247:388;;;9300:19;9340:37;9350:4;;9355:6;:1;9359:2;9355:6;:::i;:::-;9350:26;;;9364:6;:1;9368:2;9364:6;:::i;:::-;:11;;9373:2;9364:11;:::i;:::-;9350:26;;;;;;;;;:::i;:::-;9340:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9340:9:7;;-1:-1:-1;;;9340:37:7:i;:::-;9322:57;;;;;;-1:-1:-1;;;9322:57:7;;;;;;;;;9300:79;-1:-1:-1;9393:23:7;9435:42;9445:4;;9450:6;:1;9454:2;9450:6;:::i;:::-;:11;;9459:2;9450:11;:::i;:::-;9445:31;;;9464:6;:1;9468:2;9464:6;:::i;:::-;:11;;9473:2;9464:11;:::i;9435:42::-;9419:60;;9393:86;;9493:15;9519:42;9529:4;;9534:1;9538:2;9534:6;;;;:::i;:::-;:11;;9543:2;9534:11;:::i;:::-;9529:31;;;9548:6;:1;9552:2;9548:6;:::i;:::-;:11;;9557:2;9548:11;:::i;9519:42::-;9511:51;-1:-1:-1;9576:48:7;9588:9;9599:15;9511:51;9576:11;:48::i;:::-;9247:388;;;9281:3;;;;;:::i;:::-;;;;9247:388;;5536:1613;5641:11;5694:9;5686:18;;;;;;-1:-1:-1;;;5686:18:7;;;;;;;;;5665:94;;;;;;10133:19:8;;;;5715:24:7;;;;-1:-1:-1;;;;;;5707:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;5665:94:7;;;-1:-1:-1;;5665:94:7;;;;;;;;;5655:105;;5665:94;5655:105;;;;5774:21;:26;;;;;;;;;:33;5655:105;;-1:-1:-1;5770:75:7;;5828:7;5536:1613;;;:::o;5770:75::-;5859:8;5854:1224;5877:21;:26;;;;;;;;;;:33;5873:37;;;;5854:1224;;;5931:9;5943:26;;;;;;;;;;:29;;;;;;;;;;-1:-1:-1;;;5943:29:7;;;;;;;;;;;;;;;;;5931:41;;6020:9;5990:39;;;;;;-1:-1:-1;;;5990:39:7;;;;;;;;;:13;6004:1;5990:16;;;;;;-1:-1:-1;;;5990:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;:39;;;;;;-1:-1:-1;;;5990:39:7;;;;;;;;;;5986:53;;6031:8;;;5986:53;6085:7;6057:13;6071:1;6057:16;;;;;;-1:-1:-1;;;6057:16:7;;;;;;;;;;;;;;;;;;;:24;;;:35;6053:49;;6094:8;;;6053:49;6156:15;-1:-1:-1;;;;;6120:51:7;:13;6134:1;6120:16;;;;;;-1:-1:-1;;;6120:16:7;;;;;;;;;;;;;;;;;;;;;;:32;;;;-1:-1:-1;;;;;6120:32:7;:51;6116:65;;6173:8;;;6116:65;6275:1;6252:20;;6226:23;;6252:24;;;:::i;:::-;6226:50;;6309:13;6323:15;6309:30;;;;;;-1:-1:-1;;;6309:30:7;;;;;;;;;;;;;;;;;;;6290:13;6304:1;6290:16;;;;;;-1:-1:-1;;;6290:16:7;;;;;;;;;;;;;;;;;:49;;:16;;;;;:49;;:16;;:49;;;:16;;-1:-1:-1;;6290:49:7;;;;;;;;;-1:-1:-1;;;6290:49:7;;;;;;;;;;;;;-1:-1:-1;6290:49:7;;;;-1:-1:-1;;;;;;6290:49:7;;;;;;-1:-1:-1;;;;;6290:49:7;;;;;;;-1:-1:-1;6290:49:7;;;;;;;;6413:16;;-1:-1:-1;;;6427:1:7;;6413:16;;;;-1:-1:-1;;;6413:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;6405:35;;;;;;-1:-1:-1;;;6405:35:7;;;;;;;;;6459:13;:16;;6473:1;;6459:16;;;;-1:-1:-1;;;6459:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;6459:32:7;6451:41;;-1:-1:-1;;;;;6443:50:7;;6503:13;6517:1;6503:16;;;;;;-1:-1:-1;;;6503:16:7;;;;;;;;;;;;;;;;;;;:24;;;6495:33;;6384:145;;;;;;;;;10133:19:8;;;10177:2;10168:12;;10161:28;;;;10214:2;10205:12;;10198:28;10251:2;10242:12;;10123:137;6384:145:7;;;;;;;;;;;;;6374:156;;;;;;6353:177;;6544:13;:19;;;;;-1:-1:-1;;;6544:19:7;;;;;;;;;;;;;;;;;-1:-1:-1;;6544:19:7;;;;;;;;;-1:-1:-1;;;;;;6544:19:7;;;;;;;;;;6577:244;6600:21;:33;;;;;;;;;;:40;6596:44;;;;6577:244;;;6709:15;6669:21;:33;6691:10;6669:33;;;;;;;;;;;6703:1;6669:36;;;;;;;;-1:-1:-1;;;6669:36:7;;;;;;;;;;;;;;;;;:55;6665:142;;;6787:1;6748:21;:33;6770:10;6748:33;;;;;;;;;;;6782:1;6748:36;;;;;;;;-1:-1:-1;;;6748:36:7;;;;;;;;;;;;;;;;;;:40;6665:142;6642:3;;;;:::i;:::-;;;;6577:244;;;-1:-1:-1;6866:21:7;:26;;;;;;;;;;6893:33;;:37;;6929:1;;6893:37;:::i;:::-;6866:65;;;;;;-1:-1:-1;;;6866:65:7;;;;;;;;;;;;;;;;;6834:21;:26;6856:3;6834:26;;;;;;;;;;;6861:1;6834:29;;;;;;-1:-1:-1;;;6834:29:7;;;;;;;;;;;;;;;;:97;;;;6945:21;:26;6967:3;6945:26;;;;;;;;;;;:32;;;;;-1:-1:-1;;;6945:32:7;;;;;;;;;;;;;;;;;;;;;;;;;;6996:51;7011:9;7022:15;7039:7;6996:51;;;;;;;;:::i;:::-;;;;;;;;7061:7;;;;;5536:1613;;;:::o;5854:1224::-;5912:3;;;;:::i;:::-;;;;5854:1224;;;;7092:50;7106:9;7117:15;7134:7;7092:50;;;;;;;;:::i;:::-;;;;;;;;5536:1613;;;;:::o;9647:600::-;9710:16;9736;9750:2;9736:4;:16;:::i;:::-;9710:43;-1:-1:-1;9789:4:7;9771:14;9710:43;9783:2;9771:14;:::i;:::-;:29;;;9763:78;;;;-1:-1:-1;;;9763:78:7;;;;;;;:::i;:::-;9856:8;9851:390;9874:9;9870:13;;:1;:13;;;9851:390;;;9904:19;9944:37;9954:4;;9959:6;:1;9963:2;9959:6;:::i;9944:37::-;9926:57;;;;;;-1:-1:-1;;;9926:57:7;;;;;;;;;9904:79;-1:-1:-1;9997:23:7;10039:42;10049:4;;10054:6;:1;10058:2;10054:6;:::i;10039:42::-;10023:60;;9997:86;;10097:15;10123:42;10133:4;;10138:1;10142:2;10138:6;;;;:::i;10123:42::-;10115:51;-1:-1:-1;10180:50:7;10194:9;10205:15;10115:51;10180:13;:50::i;:::-;9851:390;;;9885:3;;;;;:::i;:::-;;;;9851:390;;10879:1973:6;11051:15;11038:9;:28;;;;;;-1:-1:-1;;;11038:28:6;;;;;;;;;;11034:1812;;;11086:46;;-1:-1:-1;;;11086:46:6;;-1:-1:-1;;;;;13979:32:8;;;11086:46:6;;;13961:51:8;14028:18;;;14021:34;;;11086:32:6;;;;;13934:18:8;;11086:46:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11086:46:6;;;;;;;;-1:-1:-1;;11086:46:6;;;;;;;;;;;;:::i;:::-;;;11082:695;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;11567:77;11586:9;11597:15;11614:7;11623:4;11629:6;11637;11567:77;;;;;;;;;;;:::i;:::-;;;;;;;;11511:148;11034:1812;;11082:695;;;11689:73;11708:9;11719:15;11736:7;11745:4;11751:6;11689:73;;;;;;;;;;:::i;:::-;;;;;;;;11034:1812;;11082:695;11177:7;11173:230;;;11208:48;11220:9;11231:15;11248:7;11208:11;:48::i;:::-;11283:73;11306:9;11317:15;11334:7;11343:4;11349:6;11283:73;;;;;;;;;;:::i;11173:230::-;11425:70;11445:9;11456:15;11473:7;11482:4;11488:6;11425:70;;;;;;;;;;:::i;11034:1812::-;11810:16;11797:9;:29;;;;;;-1:-1:-1;;;11797:29:6;;;;;;;;;;11793:1053;;;11846:77;;-1:-1:-1;;;11846:77:6;;-1:-1:-1;;;;;11846:41:6;;;;;:77;;11896:4;;11903;;11909:7;;11918:4;;11846:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11842:459;;;;:::i;:::-;11946:73;11969:9;11980:15;11997:7;12006:4;12012:6;11946:73;;;;;;;;;;:::i;11793:1053::-;12334:17;12321:9;:30;;;;;;-1:-1:-1;;;12321:30:6;;;;;;;;;;12317:529;;;12371:86;;-1:-1:-1;;;12371:86:6;;-1:-1:-1;;;;;12371:42:6;;;;;:86;;12422:4;;12429;;12435:7;;12444:6;;12452:4;;12371:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12367:469;;;;:::i;:::-;12481:73;12504:9;12515:15;12532:7;12541:4;12547:6;12481:73;;;;;;;;;;:::i;:::-;;;;;;;;10879:1973;;;;;;:::o;8286:753:7:-;8359:16;8385;8399:2;8385:4;:16;:::i;:::-;8359:43;-1:-1:-1;8438:4:7;8420:14;8359:43;8432:2;8420:14;:::i;:::-;:29;;;8412:78;;;;-1:-1:-1;;;8412:78:7;;;;;;;:::i;:::-;8500:38;8560:9;8541:29;;-1:-1:-1;;;;;8541:29:7;;;;;-1:-1:-1;;;8541:29:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;8541:29:7;;-1:-1:-1;;8541:29:7;;;;;;;;;;;;8500:70;;8585:8;8580:411;8603:9;8599:13;;:1;:13;;;8580:411;;;8633:19;8673:37;8683:4;;8688:6;:1;8692:2;8688:6;:::i;8673:37::-;8655:57;;;;;;-1:-1:-1;;;8655:57:7;;;;;;;;;8633:79;-1:-1:-1;8726:23:7;8768:42;8778:4;;8783:6;:1;8787:2;8783:6;:::i;8768:42::-;8752:60;;8726:86;;8826:15;8852:42;8862:4;;8867:1;8871:2;8867:6;;;;:::i;8852:42::-;8844:51;;8826:69;;8931:49;;;;;;;;8944:9;8931:49;;;;;;-1:-1:-1;;;8931:49:7;;;;;;;;;;;;;8955:15;-1:-1:-1;;;;;8931:49:7;;;;;8972:7;8931:49;;;8909:16;8926:1;8909:19;;;;;;;;-1:-1:-1;;;8909:19:7;;;;;;;;;;;;;;:71;;;;8580:411;;;8614:3;;;;;:::i;:::-;;;;8580:411;;;;9000:32;9015:16;9000:14;:32::i;9374:975:6:-;9449:4;;9485:33;3043:5;9485:15;:33;:::i;:::-;9539:15;;9465:54;;-1:-1:-1;9539:15:6;;;;9533:21;;;;9529:101;;;9583:1;9570:10;:14;9598:15;:21;;-1:-1:-1;;9598:21:6;;;;;;;9529:101;9665:10;;9656:6;9643:10;;:19;;;;:::i;:::-;:32;9639:148;;;9721:10;;9733;;9696:54;;;31801:25:8;;;31857:2;31842:18;;31835:34;;;;31885:18;;31878:34;-1:-1:-1;;;;;31948:32:8;;31943:2;31928:18;;31921:60;9696:54:6;;31788:3:8;31773:19;9696:54:6;;;;;;;;9771:5;9764:12;;;;;9639:148;9824:6;9800:21;:30;9796:145;;;9851:53;;;31414:25:8;;;9876:21:6;31470:2:8;31455:18;;31448:34;-1:-1:-1;;;;;31518:32:8;;31498:18;;;31491:60;;;;9851:53:6;;31402:2:8;31387:18;9851:53:6;31369:188:8;9796:145:6;9964:6;9950:10;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;9998:29:6;;9981:12;;-1:-1:-1;;;;;9998:9:6;;;10016:6;;9981:12;9998:29;9981:12;9998:29;10016:6;9998:9;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9980:47;;;10156:7;10151:130;;10193:6;10179:10;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;10218:26:6;;-1:-1:-1;;;;;11877:32:8;;11859:51;;10218:26:6;;11847:2:8;11832:18;10218:26:6;;;;;;;10265:5;10258:12;;;;;;10151:130;10296:25;;;30559::8;;;-1:-1:-1;;;;;30620:32:8;;30615:2;30600:18;;30593:60;10296:25:6;;30532:18:8;10296:25:6;;;;;;;-1:-1:-1;10338:4:6;;9374:975;-1:-1:-1;;;;9374:975:6:o;10355:295::-;10412:17;;10393:4;;-1:-1:-1;;;;;10412:17:6;10408:118;;10464:25;;;;;;;-1:-1:-1;10510:5:6;;10355:295::o;10408:118::-;10540:8;:6;:8::i;:::-;10535:88;;10569:17;;;;;;;-1:-1:-1;10607:5:6;;10355:295::o;10656:217::-;10748:17;;-1:-1:-1;;;;;10748:17:6;:31;10740:78;;;;-1:-1:-1;;;10740:78:6;;29088:2:8;10740:78:6;;;29070:21:8;29127:2;29107:18;;;29100:30;29166:34;29146:18;;;29139:62;-1:-1:-1;;;29217:18:8;;;29210:32;29259:19;;10740:78:6;29060:224:8;10740:78:6;10828:17;:38;;-1:-1:-1;;;;;;10828:38:6;-1:-1:-1;;;;;10828:38:6;;;;;;;;;;10656:217::o;17439:2529::-;17485:18;17536:15;17725:931;17746:7;:14;17732:28;;;;17725:931;;;17791:12;17806:7;17814:11;17806:20;;;;;;;;-1:-1:-1;;;17806:20:6;;;;;;;;;;;;;;;;;;;;;17862:18;;;:12;:18;;;;;;;17996:9;;17806:20;;-1:-1:-1;17862:18:6;17992:61;;18030:8;;;;17992:61;18498:16;18517:2;18520:1;18517:5;;;;;;-1:-1:-1;;;18517:5:6;;;;;;;;;;;;;;;;;18560:11;18517:5;;;;;18560:11;;;;18517:5;;-1:-1:-1;18560:36:6;-1:-1:-1;;18575:21:6;;18560:36;;:11;;:36;18556:80;;18616:5;;;;;18556:80;17725:931;;;;17762:13;;;;:::i;:::-;;;;17725:931;;;18815:16;;;18811:159;;18953:7;;17439:2529::o;18811:159::-;19090:8;19085:281;19108:11;19104:15;;:1;:15;;;19085:281;;;19140:12;19155:7;19163:1;19155:10;;;;;;;;-1:-1:-1;;;19155:10:6;;;;;;;;;;;;;;;;;;;;;19201:18;;;:12;:18;;;;;;19155:10;;-1:-1:-1;19201:18:6;19233:84;19256:9;;19252:13;;;;19233:84;;;19297:2;19300:1;19297:5;;;;;;;;-1:-1:-1;;;19297:5:6;;;;;;;;;;;;;;;;;;;;;19290:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19290:12:6;;;19267:3;;;;:::i;:::-;;;;19233:84;;;-1:-1:-1;19337:18:6;;;;:12;:18;;;;;19330:25;;;:::i;:::-;19085:281;;19121:3;;;;;:::i;:::-;;;;19085:281;;;-1:-1:-1;19571:7:6;:14;19612:11;19596:134;19629:3;19625:7;;:1;:7;;;19596:134;;;19699:7;19707:1;19699:10;;;;;;;;-1:-1:-1;;;19699:10:6;;;;;;;;;;;;;;;;;19672:7;19684:11;19680:1;:15;19672:24;;;;;;;;-1:-1:-1;;;19672:24:6;;;;;;;;;;;;;;;;;;:37;19634:3;;;;:::i;:::-;;;;19596:134;;;;19744:8;19739:79;19762:11;19758:15;;:1;:15;;;19739:79;;;19794:7;:13;;;;;-1:-1:-1;;;19794:13:6;;;;;;;;;;;;;;;;;;;;;;;;;;19775:3;;;;;:::i;:::-;;;;19739:79;;19974:156;20041:4;3001:2;20068:36;20094:10;20075:15;20068:36;:::i;:::-;:55;;;;19974:156;-1:-1:-1;;19974:156:6:o;24221:210::-;24289:13;;;24279:7;24289:13;;;:6;:13;;;;;;;;24316:6;24312:61;;24338:12;:24;;;;;;;-1:-1:-1;24338:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24312:61;24397:13;;;;;;;;;:6;:13;;;;;:21;;-1:-1:-1;;24397:21:6;24417:1;24413:5;;;24397:21;;;;;;;;24221:210::o;23041:1174::-;23086:11;23100:42;3001:2;23107:15;23100:42;:::i;:::-;23086:56;-1:-1:-1;23152:25:6;23180:15;;23187:8;23180:15;23086:56;23180:15;:::i;:::-;23152:43;;23205:15;23259:2;23238:23;;:18;:23;;;23234:88;;;23288:23;23309:2;23288:18;:23;:::i;:::-;23277:34;;23234:88;23376:12;:19;23331:29;;-1:-1:-1;;;;;23363:33:6;;;;;-1:-1:-1;;;23363:33:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23363:33:6;;23331:65;;23406:22;23447:7;23442:341;23464:12;:19;23460:23;;;;23442:341;;;23504:12;23519;23532:1;23519:15;;;;;;;;-1:-1:-1;;;23519:15:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23552:16:6;;;;23548:225;;;23595:13;;;;;;;:6;:13;;;;;23588:20;;-1:-1:-1;;23588:20:6;;;23548:225;;;23680:5;23647:13;23661:15;23647:30;;;;;;;;-1:-1:-1;;;23647:30:6;;;;;;;;;:38;;;;:30;;;;;;;;;;;:38;23727:17;;;;;23548:225;-1:-1:-1;23485:3:6;;;;:::i;:::-;;;;23442:341;;;;23999:28;24043:15;24030:29;;-1:-1:-1;;;;;24030:29:6;;;;;-1:-1:-1;;;24030:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24030:29:6;;23999:60;;24074:7;24069:103;24091:15;24087:19;;:1;:19;;;24069:103;;;24145:13;24159:1;24145:16;;;;;;;;-1:-1:-1;;;24145:16:6;;;;;;;;;;;;;;;24127:12;24140:1;24127:15;;;;;;;;-1:-1:-1;;;24127:15:6;;;;;;;;;:34;;;;:15;;;;;;;;;;;:34;24108:3;;;;:::i;:::-;;;;24069:103;;;-1:-1:-1;24181:27:6;;;;:12;;:27;;;;;:::i;:::-;;23041:1174;;;;;;:::o;10253:408:7:-;10311:7;10333:1;:8;10345:1;10333:13;10329:63;;;-1:-1:-1;10377:3:7;;10253:408;-1:-1:-1;10253:408:7:o;10329:63::-;10421:2;10409:1;:8;:14;;10401:47;;;;-1:-1:-1;;;10401:47:7;;24493:2:8;10401:47:7;;;24475:21:8;24532:2;24512:18;;;24505:30;-1:-1:-1;;;24551:18:8;;;24544:50;24611:18;;10401:47:7;24465:170:8;10401:47:7;10458:9;10477;10501:1;:8;10496:2;:13;;;;:::i;:::-;10495:19;;10513:1;10495:19;:::i;:::-;10565:2;10558:10;;;;10552:17;10587:11;;10616;;;;10253:408;-1:-1:-1;;;10253:408:7:o;7155:1125::-;7243:8;7238:431;7261:13;:20;7257:24;;;;7238:431;;;7302:19;7324:13;7338:1;7324:16;;;;;;;;-1:-1:-1;;;7324:16:7;;;;;;;;;;;;;;;;;;;;;:26;;7390:16;;7324:26;;;;;-1:-1:-1;7324:26:7;7390:16;;;;;;;;-1:-1:-1;;;7390:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;7390:32:7;7364:58;;7436:15;7454:13;7468:1;7454:16;;;;;;;;-1:-1:-1;;;7454:16:7;;;;;;;;;;;;;;;;;;;:24;;;7436:42;;7492:11;7545:9;7537:18;;;;;;-1:-1:-1;;;7537:18:7;;;;;;;;;7516:94;;;;;;10133:19:8;;;;7566:24:7;;;;-1:-1:-1;;;;;;7558:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;7516:94:7;;;-1:-1:-1;;7516:94:7;;;;;;;;;7506:105;;7516:94;7506:105;;;;7632:21;:26;;;;;;;;;;7506:105;;-1:-1:-1;7625:33:7;;;:::i;:::-;7238:431;;;;7283:3;;;;;:::i;:::-;;;;7238:431;;;-1:-1:-1;7678:20:7;7685:13;;7678:20;:::i;:::-;7713:8;7708:566;7731:16;:23;7727:1;:27;;;7708:566;;;7775:19;7797:16;7814:1;7797:19;;;;;;;;-1:-1:-1;;;7797:19:7;;;;;;;;;;;;;;;:29;;;7775:51;;7840:23;7866:16;7883:1;7866:19;;;;;;;;-1:-1:-1;;;7866:19:7;;;;;;;;;;;;;;;:35;;;7840:61;;7915:15;7933:16;7950:1;7933:19;;;;;;;;-1:-1:-1;;;7933:19:7;;;;;;;;;;;;;;;:27;;;7915:45;;7974:11;8027:9;8019:18;;;;;;-1:-1:-1;;;8019:18:7;;;;;;;;;7998:94;;;;;;10133:19:8;;;;8048:24:7;;;;-1:-1:-1;;;;;;8040:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;7998:94:7;;;;;;;;;;;;7988:105;;;;;;7974:119;;8107:21;8131:49;;;;;;;;8144:9;8131:49;;;;;;-1:-1:-1;;;8131:49:7;;;;;;;;;;;-1:-1:-1;;;;;8131:49:7;;;;;;;;;;;8194:13;:21;;;;;;;-1:-1:-1;8194:21:7;;;;;;;;;;;;;8107:73;;-1:-1:-1;8107:73:7;;8194:21;;;;-1:-1:-1;;8194:21:7;;;;;;;;;-1:-1:-1;;;8194:21:7;;;;;;;;;;;;;-1:-1:-1;8194:21:7;;;;;;;-1:-1:-1;;;;;8194:21:7;;;;;-1:-1:-1;;;;;;8194:21:7;;;;;;;;;;;;;;;;;8229:26;;;;;;;;;:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8261:1:7;;-1:-1:-1;7756:3:7;;-1:-1:-1;8261:1:7;;-1:-1:-1;7756:3:7;:::i;:::-;;;;7708:566;;;;7155:1125;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:134:8;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:395::-;216:8;226:6;280:3;273:4;265:6;261:17;257:27;247:2;;305:8;295;288:26;247:2;-1:-1:-1;335:20:8;;-1:-1:-1;;;;;367:30:8;;364:2;;;417:8;407;400:26;364:2;461:4;453:6;449:17;437:29;;521:3;514:4;504:6;501:1;497:14;489:6;485:27;481:38;478:47;475:2;;;538:1;535;528:12;475:2;237:311;;;;;:::o;553:375::-;604:8;614:6;668:3;661:4;653:6;649:17;645:27;635:2;;693:8;683;676:26;635:2;-1:-1:-1;723:20:8;;-1:-1:-1;;;;;755:30:8;;752:2;;;805:8;795;788:26;752:2;849:4;841:6;837:17;825:29;;901:3;894:4;885:6;877;873:19;869:30;866:39;863:2;;;918:1;915;908:12;933:154;1012:20;;1061:1;1051:12;;1041:2;;1077:1;1074;1067:12;1092:150;1167:20;;1216:1;1206:12;;1196:2;;1232:1;1229;1222:12;1247:163;1314:20;;1374:10;1363:22;;1353:33;;1343:2;;1400:1;1397;1390:12;1415:1378;1575:6;1583;1591;1599;1607;1615;1623;1631;1684:3;1672:9;1663:7;1659:23;1655:33;1652:2;;;1706:6;1698;1691:22;1652:2;1750:9;1737:23;1769:31;1794:5;1769:31;:::i;:::-;1819:5;-1:-1:-1;1876:2:8;1861:18;;1848:32;1889:33;1848:32;1889:33;:::i;:::-;1941:7;-1:-1:-1;1999:2:8;1984:18;;1971:32;-1:-1:-1;;;;;2052:14:8;;;2049:2;;;2084:6;2076;2069:22;2049:2;2128:70;2190:7;2181:6;2170:9;2166:22;2128:70;:::i;:::-;2217:8;;-1:-1:-1;2102:96:8;-1:-1:-1;2305:2:8;2290:18;;2277:32;;-1:-1:-1;2321:16:8;;;2318:2;;;2355:6;2347;2340:22;2318:2;2399:72;2463:7;2452:8;2441:9;2437:24;2399:72;:::i;:::-;2490:8;;-1:-1:-1;2373:98:8;-1:-1:-1;2578:3:8;2563:19;;2550:33;;-1:-1:-1;2595:16:8;;;2592:2;;;2629:6;2621;2614:22;2592:2;;2673:60;2725:7;2714:8;2703:9;2699:24;2673:60;:::i;:::-;1642:1151;;;;-1:-1:-1;1642:1151:8;;-1:-1:-1;1642:1151:8;;;;;;2752:8;-1:-1:-1;;;1642:1151:8:o;2798:774::-;2895:6;2903;2911;2919;2927;2980:3;2968:9;2959:7;2955:23;2951:33;2948:2;;;3002:6;2994;2987:22;2948:2;3046:9;3033:23;3065:31;3090:5;3065:31;:::i;:::-;3115:5;-1:-1:-1;3172:2:8;3157:18;;3144:32;3185:33;3144:32;3185:33;:::i;:::-;3237:7;-1:-1:-1;3291:2:8;3276:18;;3263:32;;-1:-1:-1;3346:2:8;3331:18;;3318:32;-1:-1:-1;;;;;3362:30:8;;3359:2;;;3410:6;3402;3395:22;3359:2;3454:58;3504:7;3495:6;3484:9;3480:22;3454:58;:::i;:::-;2938:634;;;;-1:-1:-1;2938:634:8;;-1:-1:-1;3531:8:8;;3428:84;2938:634;-1:-1:-1;;;2938:634:8:o;3577:843::-;3683:6;3691;3699;3707;3715;3723;3776:3;3764:9;3755:7;3751:23;3747:33;3744:2;;;3798:6;3790;3783:22;3744:2;3842:9;3829:23;3861:31;3886:5;3861:31;:::i;:::-;3911:5;-1:-1:-1;3968:2:8;3953:18;;3940:32;3981:33;3940:32;3981:33;:::i;:::-;4033:7;-1:-1:-1;4087:2:8;4072:18;;4059:32;;-1:-1:-1;4138:2:8;4123:18;;4110:32;;-1:-1:-1;4193:3:8;4178:19;;4165:33;-1:-1:-1;;;;;4210:30:8;;4207:2;;;4258:6;4250;4243:22;4207:2;4302:58;4352:7;4343:6;4332:9;4328:22;4302:58;:::i;:::-;3734:686;;;;-1:-1:-1;3734:686:8;;-1:-1:-1;3734:686:8;;4379:8;;3734:686;-1:-1:-1;;;3734:686:8:o;4425:1396::-;4641:6;4649;4657;4665;4673;4681;4689;4697;4705;4713;4721:7;4730;4784:3;4772:9;4763:7;4759:23;4755:33;4752:2;;;4806:6;4798;4791:22;4752:2;-1:-1:-1;;;;;4843:9:8;4830:23;4827:47;4824:2;;;4892:6;4884;4877:22;4824:2;4936:87;5015:7;5002:9;4989:23;4978:9;4974:39;4936:87;:::i;:::-;5042:8;;-1:-1:-1;5069:8:8;-1:-1:-1;5096:37:8;5129:2;5114:18;;5096:37;:::i;:::-;5086:47;;5180:2;5169:9;5165:18;5152:32;5142:42;;5203:49;5248:2;5237:9;5233:18;5203:49;:::i;:::-;5193:59;;5271:46;5312:3;5301:9;5297:19;5271:46;:::i;:::-;5261:56;;5336:39;5370:3;5359:9;5355:19;5336:39;:::i;:::-;5326:49;;5422:3;5411:9;5407:19;5394:33;5384:43;;5446:39;5480:3;5469:9;5465:19;5446:39;:::i;:::-;5436:49;;5532:3;5521:9;5517:19;5504:33;5494:43;;-1:-1:-1;;;;;5580:3:8;5569:9;5565:19;5552:33;5549:57;5546:2;;;5625:7;5616;5609:24;5546:2;5672:85;5749:7;5741:3;5730:9;5726:19;5713:33;5702:9;5698:49;5672:85;:::i;:::-;5777:9;5766:20;;5806:9;5795:20;;;;4742:1079;;;;;;;;;;;;;;:::o;5826:297::-;5893:6;5946:2;5934:9;5925:7;5921:23;5917:32;5914:2;;;5967:6;5959;5952:22;5914:2;6004:9;5998:16;6057:5;6050:13;6043:21;6036:5;6033:32;6023:2;;6084:6;6076;6069:22;6023:2;6112:5;5904:219;-1:-1:-1;;;5904:219:8:o;6128:190::-;6187:6;6240:2;6228:9;6219:7;6215:23;6211:32;6208:2;;;6261:6;6253;6246:22;6208:2;-1:-1:-1;6289:23:8;;6198:120;-1:-1:-1;6198:120:8:o;6323:194::-;6393:6;6446:2;6434:9;6425:7;6421:23;6417:32;6414:2;;;6467:6;6459;6452:22;6414:2;-1:-1:-1;6495:16:8;;6404:113;-1:-1:-1;6404:113:8:o;6522:326::-;6599:6;6607;6615;6668:2;6656:9;6647:7;6643:23;6639:32;6636:2;;;6689:6;6681;6674:22;6636:2;-1:-1:-1;;6717:23:8;;;6787:2;6772:18;;6759:32;;-1:-1:-1;6838:2:8;6823:18;;;6810:32;;6626:222;-1:-1:-1;6626:222:8:o;6853:255::-;6911:6;6964:2;6952:9;6943:7;6939:23;6935:32;6932:2;;;6985:6;6977;6970:22;6932:2;7029:9;7016:23;7048:30;7072:5;7048:30;:::i;7113:259::-;7182:6;7235:2;7223:9;7214:7;7210:23;7206:32;7203:2;;;7256:6;7248;7241:22;7203:2;7293:9;7287:16;7312:30;7336:5;7312:30;:::i;7377:450::-;7427:3;7465:5;7459:12;7492:6;7487:3;7480:19;7518:4;7547:2;7542:3;7538:12;7531:19;;7584:2;7577:5;7573:14;7605:3;7617:185;7631:6;7628:1;7625:13;7617:185;;;7706:13;;7699:21;7692:29;7680:42;;7742:12;;;;7777:15;;;;7653:1;7646:9;7617:185;;;-1:-1:-1;7818:3:8;;7435:392;-1:-1:-1;;;;;7435:392:8:o;7832:437::-;7885:3;7923:5;7917:12;7950:6;7945:3;7938:19;7976:4;8005:2;8000:3;7996:12;7989:19;;8042:2;8035:5;8031:14;8063:3;8075:169;8089:6;8086:1;8083:13;8075:169;;;8150:13;;8138:26;;8184:12;;;;8219:15;;;;8111:1;8104:9;8075:169;;8274:453;8326:3;8364:5;8358:12;8391:6;8386:3;8379:19;8417:4;8446:2;8441:3;8437:12;8430:19;;8483:2;8476:5;8472:14;8504:3;8516:186;8530:6;8527:1;8524:13;8516:186;;;8595:13;;8610:10;8591:30;8579:43;;8642:12;;;;8677:15;;;;8552:1;8545:9;8516:186;;8732:268;8820:6;8815:3;8808:19;8872:6;8865:5;8858:4;8853:3;8849:14;8836:43;-1:-1:-1;8790:3:8;8899:16;;;8917:4;8895:27;;;8888:40;;;;8982:2;8961:15;;;-1:-1:-1;;8957:29:8;8948:39;;;8944:50;;8798:202::o;9005:257::-;9046:3;9084:5;9078:12;9111:6;9106:3;9099:19;9127:63;9183:6;9176:4;9171:3;9167:14;9160:4;9153:5;9149:16;9127:63;:::i;:::-;9244:2;9223:15;-1:-1:-1;;9219:29:8;9210:39;;;;9251:4;9206:50;;9054:208;-1:-1:-1;;9054:208:8:o;9267:237::-;9348:1;9341:5;9338:12;9328:2;;9393:10;9388:3;9384:20;9381:1;9374:31;9428:4;9425:1;9418:15;9456:4;9453:1;9446:15;9328:2;9480:18;;9318:186::o;10265:676::-;10602:6;10597:3;10590:19;10639:6;10634:2;10629:3;10625:12;10618:28;10676:6;10671:2;10666:3;10662:12;10655:28;10713:6;10708:2;10703:3;10699:12;10692:28;10751:6;10745:3;10740;10736:13;10729:29;10789:6;10783:3;10778;10774:13;10767:29;10841:6;10833;10827:3;10822;10818:13;10805:43;10572:3;10871:16;;10889:3;10867:26;10902:15;;;10867:26;10580:361;-1:-1:-1;;;;;;;10580:361:8:o;10946:273::-;11129:6;11121;11116:3;11103:33;11085:3;11155:16;;11180:15;;;11155:16;11093:126;-1:-1:-1;11093:126:8:o;11224:274::-;11353:3;11391:6;11385:13;11407:53;11453:6;11448:3;11441:4;11433:6;11429:17;11407:53;:::i;:::-;11476:16;;;;;11361:137;-1:-1:-1;;11361:137:8:o;12137:488::-;-1:-1:-1;;;;;12406:15:8;;;12388:34;;12458:15;;12453:2;12438:18;;12431:43;12505:2;12490:18;;12483:34;;;12553:3;12548:2;12533:18;;12526:31;;;12331:4;;12574:45;;12599:19;;12591:6;12574:45;:::i;:::-;12566:53;12340:285;-1:-1:-1;;;;;;12340:285:8:o;12630:587::-;-1:-1:-1;;;;;12937:15:8;;;12919:34;;12989:15;;12984:2;12969:18;;12962:43;13036:2;13021:18;;13014:34;;;13079:2;13064:18;;13057:34;;;12899:3;13122;13107:19;;13100:32;;;12862:4;;13149:62;;13191:19;;13183:6;13175;13149:62;:::i;:::-;13141:70;12871:346;-1:-1:-1;;;;;;;;12871:346:8:o;13222:560::-;-1:-1:-1;;;;;13519:15:8;;;13501:34;;13571:15;;13566:2;13551:18;;13544:43;13618:2;13603:18;;13596:34;;;13661:2;13646:18;;13639:34;;;13481:3;13704;13689:19;;13682:32;;;13444:4;;13731:45;;13756:19;;13748:6;13731:45;:::i;:::-;13723:53;13453:329;-1:-1:-1;;;;;;;13453:329:8:o;14066:1068::-;14549:3;14538:9;14531:22;14512:4;14576:57;14628:3;14617:9;14613:19;14605:6;14576:57;:::i;:::-;14681:9;14673:6;14669:22;14664:2;14653:9;14649:18;14642:50;14715:44;14752:6;14744;14715:44;:::i;:::-;14701:58;;14807:9;14799:6;14795:22;14790:2;14779:9;14775:18;14768:50;14841:44;14878:6;14870;14841:44;:::i;:::-;14827:58;;14933:9;14925:6;14921:22;14916:2;14905:9;14901:18;14894:50;14967:43;15003:6;14995;14967:43;:::i;:::-;14953:57;;15059:9;15051:6;15047:22;15041:3;15030:9;15026:19;15019:51;15087:41;15121:6;15113;15087:41;:::i;15139:863::-;15544:3;15533:9;15526:22;15507:4;15571:57;15623:3;15612:9;15608:19;15600:6;15571:57;:::i;:::-;15676:9;15668:6;15664:22;15659:2;15648:9;15644:18;15637:50;15710:44;15747:6;15739;15710:44;:::i;:::-;15696:58;;15802:9;15794:6;15790:22;15785:2;15774:9;15770:18;15763:50;15836:43;15872:6;15864;15836:43;:::i;:::-;15822:57;;15927:9;15919:6;15915:22;15910:2;15899:9;15895:18;15888:50;15955:41;15989:6;15981;15955:41;:::i;16007:1390::-;16365:2;16377:21;;;16447:13;;16350:18;;;16469:22;;;16317:4;;16545;;16522:3;16507:19;;;16572:15;;;16317:4;16618:188;16632:6;16629:1;16626:13;16618:188;;;16681:45;16722:3;16713:6;16707:13;16681:45;:::i;:::-;16746:12;;;;16781:15;;;;16654:1;16647:9;16618:188;;;-1:-1:-1;;;16842:19:8;;;16822:18;;;16815:47;16912:13;;16934:21;;;17010:15;;;;16973:12;;;17045:4;17058:215;17074:8;17069:3;17066:17;17058:215;;;17147:15;;-1:-1:-1;;;;;17143:41:8;17129:56;;17246:17;;;;17207:14;;;;17181:1;17093:11;17058:215;;;17062:3;;17320:9;17313:5;17309:21;17304:2;17293:9;17289:18;17282:49;17348:43;17385:5;17377:6;17348:43;:::i;18996:376::-;19198:2;19183:18;;19210:44;19187:9;19236:6;19210:44;:::i;:::-;-1:-1:-1;;;;;19290:32:8;;;;19285:2;19270:18;;19263:60;19354:2;19339:18;19332:34;19165:207;;-1:-1:-1;19165:207:8:o;19377:550::-;19635:3;19620:19;;19648:44;19624:9;19674:6;19648:44;:::i;:::-;-1:-1:-1;;;;;19766:15:8;;;19761:2;19746:18;;19739:43;19813:2;19798:18;;19791:34;;;;19861:15;;;;19856:2;19841:18;;19834:43;19908:3;19893:19;19886:35;;;;19602:325;;-1:-1:-1;19602:325:8:o;19932:665::-;20215:44;20249:9;20241:6;20215:44;:::i;:::-;-1:-1:-1;;;;;20333:15:8;;;20328:2;20313:18;;20306:43;20380:2;20365:18;;20358:34;;;20428:15;;20423:2;20408:18;;20401:43;20475:3;20460:19;;20453:35;;;20525:3;20286;20504:19;;20497:32;;;20196:4;;20546:45;;20571:19;;20563:6;20546:45;:::i;20602:734::-;20938:44;20972:9;20964:6;20938:44;:::i;:::-;-1:-1:-1;;;;;21056:15:8;;;21051:2;21036:18;;21029:43;21103:2;21088:18;;21081:34;;;;21151:15;;21146:2;21131:18;;21124:43;21198:3;21183:19;;21176:35;;;;21248:3;21009;21227:19;;21220:32;;;20919:4;21268:19;;;21261:33;21326:3;21311:19;;20928:408;-1:-1:-1;20928:408:8:o;21341:779::-;21668:44;21702:9;21694:6;21668:44;:::i;:::-;21743:2;21728:18;;21721:34;;;-1:-1:-1;;;;;21829:15:8;;;21824:2;21809:18;;21802:43;21881:15;;;21876:2;21861:18;;21854:43;21934:15;;21928:3;21913:19;;21906:44;21782:3;21966:19;;21959:35;;;22031:3;22025;22010:19;;22003:32;;;21649:4;;22052:62;;22094:19;;22086:6;22078;22052:62;:::i;:::-;22044:70;21658:462;-1:-1:-1;;;;;;;;;;21658:462:8:o;27092:400::-;27294:2;27276:21;;;27333:2;27313:18;;;27306:30;27372:34;27367:2;27352:18;;27345:62;-1:-1:-1;;;27438:2:8;27423:18;;27416:34;27482:3;27467:19;;27266:226::o;32477:363::-;32582:9;32593;32635:8;32623:10;32620:24;32617:2;;;32665:9;32654;32647:28;32617:2;32702:6;32692:8;32689:20;32686:2;;;32730:9;32719;32712:28;32686:2;-1:-1:-1;;32764:23:8;;;32809:25;;;;;-1:-1:-1;32607:233:8:o;32845:128::-;32885:3;32916:1;32912:6;32909:1;32906:13;32903:2;;;32922:18;;:::i;:::-;-1:-1:-1;32958:9:8;;32893:80::o;32978:228::-;33017:3;33045:10;33082:2;33079:1;33075:10;33112:2;33109:1;33105:10;33143:3;33139:2;33135:12;33130:3;33127:21;33124:2;;;33151:18;;:::i;:::-;33187:13;;33025:181;-1:-1:-1;;;;33025:181:8:o;33211:120::-;33251:1;33277;33267:2;;33282:18;;:::i;:::-;-1:-1:-1;33316:9:8;;33257:74::o;33336:191::-;33375:1;33401:10;33438:2;33435:1;33431:10;33460:3;33450:2;;33467:18;;:::i;:::-;33505:10;;33501:20;;;;;33381:146;-1:-1:-1;;33381:146:8:o;33532:168::-;33572:7;33638:1;33634;33630:6;33626:14;33623:1;33620:21;33615:1;33608:9;33601:17;33597:45;33594:2;;;33645:18;;:::i;:::-;-1:-1:-1;33685:9:8;;33584:116::o;33705:262::-;33744:7;33776:10;33813:2;33810:1;33806:10;33843:2;33840:1;33836:10;33899:3;33895:2;33891:12;33886:3;33883:21;33876:3;33869:11;33862:19;33858:47;33855:2;;;33908:18;;:::i;:::-;33948:13;;33756:211;-1:-1:-1;;;;33756:211:8:o;33972:125::-;34012:4;34040:1;34037;34034:8;34031:2;;;34045:18;;:::i;:::-;-1:-1:-1;34082:9:8;;34021:76::o;34102:221::-;34141:4;34170:10;34230;;;;34200;;34252:12;;;34249:2;;;34267:18;;:::i;:::-;34304:13;;34150:173;-1:-1:-1;;;34150:173:8:o;34328:195::-;34366:4;34403;34400:1;34396:12;34435:4;34432:1;34428:12;34460:3;34455;34452:12;34449:2;;;34467:18;;:::i;:::-;34504:13;;;34375:148;-1:-1:-1;;;34375:148:8:o;34528:258::-;34600:1;34610:113;34624:6;34621:1;34618:13;34610:113;;;34700:11;;;34694:18;34681:11;;;34674:39;34646:2;34639:10;34610:113;;;34741:6;34738:1;34735:13;34732:2;;;-1:-1:-1;;34776:1:8;34758:16;;34751:27;34581:205::o;34791:346::-;34901:2;34882:13;;-1:-1:-1;;34878:27:8;34866:40;;-1:-1:-1;;;;;34921:34:8;;34957:22;;;34918:62;34915:2;;;35022:10;35017:3;35013:20;35010:1;35003:31;35057:4;35054:1;35047:15;35085:4;35082:1;35075:15;34915:2;35116;35109:22;-1:-1:-1;;34838:299:8:o;35142:201::-;35180:3;35208:10;35253:2;35246:5;35242:14;35280:2;35271:7;35268:15;35265:2;;;35286:18;;:::i;:::-;35335:1;35322:15;;35188:155;-1:-1:-1;;;35188:155:8:o;35348:175::-;35385:3;35429:4;35422:5;35418:16;35458:4;35449:7;35446:17;35443:2;;;35466:18;;:::i;:::-;35515:1;35502:15;;35393:130;-1:-1:-1;;35393:130:8:o;35528:183::-;35559:1;35585:10;35622:2;35619:1;35615:10;35644:3;35634:2;;35651:18;;:::i;:::-;35689:10;;35685:20;;;;;35565:146;-1:-1:-1;;35565:146:8:o;35716:127::-;35777:10;35772:3;35768:20;35765:1;35758:31;35808:4;35805:1;35798:15;35832:4;35829:1;35822:15;35848:127;35909:10;35904:3;35900:20;35897:1;35890:31;35940:4;35937:1;35930:15;35964:4;35961:1;35954:15;35980:185;36015:3;36057:1;36039:16;36036:23;36033:2;;;36107:1;36102:3;36097;36082:27;36138:10;36133:3;36129:20;36033:2;36023:142;:::o;36170:671::-;36209:3;36251:4;36233:16;36230:26;36227:2;;;36217:624;:::o;36227:2::-;36293;36287:9;-1:-1:-1;;36358:16:8;36354:25;;36351:1;36287:9;36330:50;36409:4;36403:11;36433:16;-1:-1:-1;;;;;36539:2:8;36532:4;36524:6;36520:17;36517:25;36512:2;36504:6;36501:14;36498:45;36495:2;;;36546:5;;;;;36217:624;:::o;36495:2::-;36583:6;36577:4;36573:17;36562:28;;36619:3;36613:10;36646:2;36638:6;36635:14;36632:2;;;36652:5;;;;;;36217:624;:::o;36632:2::-;36736;36717:16;36711:4;36707:27;36703:36;36696:4;36687:6;36682:3;36678:16;36674:27;36671:69;36668:2;;;36743:5;;;;;;36217:624;:::o;36668:2::-;36759:57;36810:4;36801:6;36793;36789:19;36785:30;36779:4;36759:57;:::i;:::-;-1:-1:-1;36832:3:8;;36217:624;-1:-1:-1;;;;;36217:624:8:o;36846:131::-;-1:-1:-1;;;;;36921:31:8;;36911:42;;36901:2;;36967:1;36964;36957:12;36982:131;-1:-1:-1;;;;;;37056:32:8;;37046:43;;37036:2;;37103:1;37100;37093:12", + "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.4;\n\nimport \"./TokenTracker.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\ncontract ONEWallet is TokenTracker {\n event InsufficientFund(uint256 amount, uint256 balance, address dest);\n event ExceedDailyLimit(uint256 amount, uint256 limit, uint256 current, address dest);\n event UnknownTransferError(address dest);\n event LastResortAddressNotSet();\n event PaymentReceived(uint256 amount, address from);\n event PaymentSent(uint256 amount, address dest);\n event AutoRecoveryTriggered(address from);\n event RecoveryFailure();\n\n /// In future versions, it is planned that we may allow the user to extend the wallet's life through a function call. When that is implemented, the following variables may no longer be immutable, with the exception of root which shall serve as an identifier of the wallet\n bytes32 immutable root; // Note: @ivan brought up a good point in reducing this to 16-bytes so hash of two consecutive nodes can be done in a single word (to save gas and reduce blockchain clutter). Let's not worry about that for now and re-evalaute this later.\n uint8 immutable height; // including the root. e.g. for a tree with 4 leaves, the height is 3.\n uint8 immutable interval; // otp interval in seconds, default is 30\n uint32 immutable t0; // starting time block (effectiveTime (in ms) / interval)\n uint32 immutable lifespan; // in number of block (e.g. 1 block per [interval] seconds)\n uint8 immutable maxOperationsPerInterval; // number of transactions permitted per OTP interval. Each transaction shall have a unique nonce. The nonce is auto-incremented within each interval\n uint32 immutable _numLeaves; // 2 ** (height - 1)\n\n /// global mutable variables\n address payable lastResortAddress; // where money will be sent during a recovery process (or when the wallet is beyond its lifespan)\n uint256 dailyLimit; // uint128 is sufficient, but uint256 is more efficient since EVM works with 32-byte words.\n uint256 spentToday; // note: instead of tracking the money spent for the last 24h, we are simply tracking money spent per 24h block based on UTC time. It is good enough for now, but we may want to change this later.\n uint32 lastTransferDay;\n\n /// nonce tracking\n mapping(uint32 => uint8) nonces; // keys: otp index (=timestamp in seconds / interval - t0); values: the expected nonce for that otp interval. An reveal with a nonce less than the expected value will be rejected\n uint32[] nonceTracker; // list of nonces keys that have a non-zero value. keys cannot possibly result a successful reveal (indices beyond REVEAL_MAX_DELAY old) are auto-deleted during a clean up procedure that is called every time the nonces are incremented for some key. For each deleted key, the corresponding key in nonces will also be deleted. So the size of nonceTracker and nonces are both bounded.\n\n // constants\n uint32 constant REVEAL_MAX_DELAY = 60;\n uint32 constant SECONDS_PER_DAY = 86400;\n uint256 constant AUTO_RECOVERY_TRIGGER_AMOUNT = 1 ether;\n uint32 constant MAX_COMMIT_SIZE = 120;\n\n uint32 constant majorVersion = 0x7; // a change would require client to migrate\n uint32 constant minorVersion = 0x3; // a change would not require the client to migrate\n\n enum OperationType {\n TRACK, UNTRACK, TRANSFER_TOKEN, OVERRIDE_TRACK, TRANSFER, SET_RECOVERY_ADDRESS, RECOVER,\n REPLACE // reserved, not implemented yet. This is for replacing the root and set up new parameters (t0, lifespan)\n }\n /// commit management\n struct Commit {\n bytes32 hash;\n bytes32 paramsHash;\n bytes32 verificationHash;\n uint32 timestamp;\n bool completed;\n }\n\n bytes32[] commits; // self-clean on commit (auto delete commits that are beyond REVEAL_MAX_DELAY), so it's bounded by the number of commits an attacker can spam within REVEAL_MAX_DELAY time in the worst case, which is not too bad.\n mapping(bytes32 => Commit[]) commitLocker;\n\n\n constructor(bytes32 root_, uint8 height_, uint8 interval_, uint32 t0_, uint32 lifespan_, uint8 maxOperationsPerInterval_,\n address payable lastResortAddress_, uint256 dailyLimit_)\n {\n root = root_;\n height = height_;\n interval = interval_;\n t0 = t0_;\n lifespan = lifespan_;\n lastResortAddress = lastResortAddress_;\n dailyLimit = dailyLimit_;\n maxOperationsPerInterval = maxOperationsPerInterval_;\n _numLeaves = uint32(2 ** (height_ - 1));\n }\n\n receive() external payable {\n emit PaymentReceived(msg.value, msg.sender);\n if (msg.value != AUTO_RECOVERY_TRIGGER_AMOUNT) {\n return;\n }\n if (msg.sender != lastResortAddress) {\n return;\n }\n if (lastResortAddress == address(0)) {\n return;\n }\n if (msg.sender == address(this)) {\n return;\n }\n emit AutoRecoveryTriggered(msg.sender);\n require(_drain());\n }\n\n\n function retire() external returns (bool)\n {\n require(uint32(block.timestamp / interval) - t0 > lifespan, \"Too early to retire\");\n require(lastResortAddress != address(0), \"Last resort address is not set\");\n require(_drain(), \"Recovery failed\");\n return true;\n }\n\n function getInfo() external view returns (bytes32, uint8, uint8, uint32, uint32, uint8, address, uint256)\n {\n return (root, height, interval, t0, lifespan, maxOperationsPerInterval, lastResortAddress, dailyLimit);\n }\n\n function getVersion() external pure returns (uint32, uint32)\n {\n return (majorVersion, minorVersion);\n }\n\n function getCurrentSpending() external view returns (uint256, uint256)\n {\n return (spentToday, lastTransferDay);\n }\n\n function getNonce() external view returns (uint8)\n {\n uint32 index = uint32(block.timestamp) / interval - t0;\n return nonces[index];\n }\n\n function getCommits() external pure returns (bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory){\n revert(\"Deprecated\");\n }\n\n function getAllCommits() external view returns (bytes32[] memory, bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory)\n {\n uint32 numCommits = 0;\n for (uint32 i = 0; i < commits.length; i++) {\n Commit[] storage cc = commitLocker[commits[i]];\n numCommits += uint32(cc.length);\n }\n bytes32[] memory hashes = new bytes32[](numCommits);\n bytes32[] memory paramHashes = new bytes32[](numCommits);\n bytes32[] memory verificationHashes = new bytes32[](numCommits);\n uint32[] memory timestamps = new uint32[](numCommits);\n bool[] memory completed = new bool[](numCommits);\n uint32 index = 0;\n for (uint32 i = 0; i < commits.length; i++) {\n Commit[] storage cc = commitLocker[commits[i]];\n for (uint32 j = 0; j < cc.length; j++) {\n Commit storage c = cc[j];\n hashes[index] = c.hash;\n paramHashes[index] = c.paramsHash;\n verificationHashes[index] = c.verificationHash;\n timestamps[index] = c.timestamp;\n completed[index] = c.completed;\n index++;\n }\n }\n return (hashes, paramHashes, verificationHashes, timestamps, completed);\n }\n\n function findCommit(bytes32 /*hash*/) external pure returns (bytes32, bytes32, uint32, bool){\n revert(\"Deprecated\");\n }\n\n function lookupCommit(bytes32 hash) external view returns (bytes32[] memory, bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory){\n Commit[] storage cc = commitLocker[hash];\n bytes32[] memory hashes = new bytes32[](cc.length);\n bytes32[] memory paramHashes = new bytes32[](cc.length);\n bytes32[] memory verificationHashes = new bytes32[](cc.length);\n uint32[] memory timestamps = new uint32[](cc.length);\n bool[] memory completed = new bool[](cc.length);\n for (uint32 i = 0; i < cc.length; i++) {\n Commit storage c = cc[i];\n hashes[i] = c.hash;\n paramHashes[i] = c.paramsHash;\n verificationHashes[i] = c.verificationHash;\n timestamps[i] = c.timestamp;\n completed[i] = c.completed;\n }\n return (hashes, paramHashes, verificationHashes, timestamps, completed);\n }\n\n function commit(bytes32 hash, bytes32 paramsHash, bytes32 verificationHash) external {\n _cleanupCommits();\n Commit memory nc = Commit(hash, paramsHash, verificationHash, uint32(block.timestamp), false);\n require(commits.length < MAX_COMMIT_SIZE, \"Too many commits\");\n commits.push(hash);\n commitLocker[hash].push(nc);\n }\n\n /// This function sends all remaining funds of the wallet to `lastResortAddress`. The caller should verify that `lastResortAddress` is not null.\n /// TODO: also transfer all tracked ERC20, 721, 1155 tokens to `lastResortAddress`\n function _drain() internal returns (bool) {\n // this may be triggered after revealing the proof, and we must prevent revert in all cases\n (bool success,) = lastResortAddress.call{value : address(this).balance}(\"\");\n return success;\n }\n\n function _transfer(address payable dest, uint256 amount) internal returns (bool) {\n uint32 day = uint32(block.timestamp / SECONDS_PER_DAY);\n if (day > lastTransferDay) {\n spentToday = 0;\n lastTransferDay = day;\n }\n if (spentToday + amount > dailyLimit) {\n emit ExceedDailyLimit(amount, dailyLimit, spentToday, dest);\n return false;\n }\n if (address(this).balance < amount) {\n emit InsufficientFund(amount, address(this).balance, dest);\n return false;\n }\n spentToday += amount;\n (bool success,) = dest.call{value : amount}(\"\");\n // we do not want to revert the whole transaction if this operation fails, since EOTP is already revealed\n if (!success) {\n spentToday -= amount;\n emit UnknownTransferError(dest);\n return false;\n }\n\n emit PaymentSent(amount, dest);\n return true;\n }\n\n function _recover() internal returns (bool){\n if (lastResortAddress == address(0)) {\n emit LastResortAddressNotSet();\n return false;\n }\n if (!_drain()) {\n emit RecoveryFailure();\n return false;\n }\n return true;\n }\n\n function _setRecoveryAddress(address payable lastResortAddress_) internal {\n require(lastResortAddress == address(0), \"Last resort address is already set\");\n lastResortAddress = lastResortAddress_;\n }\n\n function _transferToken(TokenType tokenType, address contractAddress, uint256 tokenId, address dest, uint256 amount, bytes memory data) internal {\n if (tokenType == TokenType.ERC20) {\n try IERC20(contractAddress).transfer(dest, amount) returns (bool success){\n if (success) {\n _trackToken(tokenType, contractAddress, tokenId);\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n return;\n }\n emit TokenTransferFailed(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n } else if (tokenType == TokenType.ERC721) {\n try IERC721(contractAddress).safeTransferFrom(address(this), dest, tokenId, data){\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n } else if (tokenType == TokenType.ERC1155) {\n try IERC1155(contractAddress).safeTransferFrom(address(this), dest, tokenId, amount, data) {\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n }\n }\n\n /// Provides commitHash, paramsHash, and verificationHash given the parameters\n function _getRevealHash(bytes32 neighbor, uint32 indexWithNonce, bytes32 eotp,\n OperationType operationType, TokenType tokenType, address contractAddress, uint256 tokenId, address dest, uint256 amount, bytes calldata data) pure internal returns (bytes32, bytes32) {\n bytes32 hash = keccak256(bytes.concat(neighbor, bytes32(bytes4(indexWithNonce)), eotp));\n bytes32 paramsHash = bytes32(0);\n if (operationType == OperationType.TRANSFER) {\n paramsHash = keccak256(bytes.concat(bytes32(bytes20(address(dest))), bytes32(amount)));\n } else if (operationType == OperationType.RECOVER) {\n paramsHash = keccak256(data);\n } else if (operationType == OperationType.SET_RECOVERY_ADDRESS) {\n paramsHash = keccak256(bytes.concat(bytes32(bytes20(address(dest)))));\n } else {\n bytes memory packed = bytes.concat(\n bytes32(uint256(operationType)),\n bytes32(uint256(tokenType)),\n bytes32(bytes20(contractAddress)),\n bytes32(tokenId),\n bytes32(bytes20(dest)),\n bytes32(amount),\n data\n );\n paramsHash = keccak256(bytes.concat(packed));\n }\n return (hash, paramsHash);\n }\n\n\n function reveal(bytes32[] calldata neighbors, uint32 indexWithNonce, bytes32 eotp,\n OperationType operationType, TokenType tokenType, address contractAddress, uint256 tokenId, address payable dest, uint256 amount, bytes calldata data)\n external {\n _isCorrectProof(neighbors, indexWithNonce, eotp);\n if (indexWithNonce == _numLeaves - 1) {\n require(operationType == OperationType.RECOVER, \"Last operation reserved for recover\");\n }\n (bytes32 commitHash, bytes32 paramsHash) = _getRevealHash(neighbors[0], indexWithNonce, eotp,\n operationType, tokenType, contractAddress, tokenId, dest, amount, data);\n uint32 commitIndex = _verifyReveal(commitHash, indexWithNonce, paramsHash, eotp, operationType);\n _completeReveal(commitHash, commitIndex, operationType);\n // No revert should occur below this point\n if (operationType == OperationType.TRACK) {\n if (data.length > 0) {\n _multiTrack(data);\n } else {\n _trackToken(tokenType, contractAddress, tokenId);\n }\n } else if (operationType == OperationType.UNTRACK) {\n if (data.length > 0) {\n _untrackToken(tokenType, contractAddress, tokenId);\n } else {\n _multiUntrack(data);\n }\n } else if (operationType == OperationType.TRANSFER_TOKEN) {\n _transferToken(tokenType, contractAddress, tokenId, dest, amount, data);\n } else if (operationType == OperationType.OVERRIDE_TRACK) {\n _overrideTrackWithBytes(data);\n } else if (operationType == OperationType.TRANSFER) {\n _transfer(dest, amount);\n } else if (operationType == OperationType.RECOVER) {\n _recover();\n } else if (operationType == OperationType.SET_RECOVERY_ADDRESS) {\n _setRecoveryAddress(dest);\n }\n }\n\n /// This is just a wrapper around a modifier previously called `isCorrectProof`, to avoid \"Stack too deep\" error. Duh.\n function _isCorrectProof(bytes32[] calldata neighbors, uint32 position, bytes32 eotp) view internal {\n require(neighbors.length == height - 1, \"Not enough neighbors provided\");\n bytes32 h = sha256(bytes.concat(eotp));\n if (position == _numLeaves - 1) {\n // special case: recover only\n h = eotp;\n }\n for (uint8 i = 0; i < height - 1; i++) {\n if ((position & 0x01) == 0x01) {\n h = sha256(bytes.concat(neighbors[i], h));\n } else {\n h = sha256(bytes.concat(h, neighbors[i]));\n }\n position >>= 1;\n }\n require(root == h, \"Proof is incorrect\");\n return;\n }\n\n /// Remove old commits from storage, where the commit's timestamp is older than block.timestamp - REVEAL_MAX_DELAY. The purpose is to remove dangling data from blockchain, and prevent commits grow unbounded. This is executed at commit time. The committer pays for the gas of this cleanup. Therefore, any attacker who intend to spam commits would be disincentivized. The attacker would not succeed in preventing any normal operation by the user.\n function _cleanupCommits() internal {\n uint32 timelyIndex = 0;\n uint32 bt = uint32(block.timestamp);\n // go through past commits chronologically, starting from the oldest, and find the first commit that is not older than block.timestamp - REVEAL_MAX_DELAY.\n for (; timelyIndex < commits.length; timelyIndex++) {\n bytes32 hash = commits[timelyIndex];\n Commit[] storage cc = commitLocker[hash];\n // We may skip because the commit is already cleaned up and is considered \"untimely\".\n if (cc.length == 0) {\n continue;\n }\n // We take the first entry in `cc` as the timestamp for all commits under commit hash `hash`, because the first entry represents the oldest commit and only commit if an attacker is not attacking this wallet. If an attacker is front-running commits, the first entry may be from the attacker, but its timestamp should be identical to the user's commit (or close enough to the user's commit, if network is a bit congested)\n Commit storage c = cc[0];\n unchecked {\n if (c.timestamp >= bt - REVEAL_MAX_DELAY) {\n break;\n }\n }\n }\n // Now `timelyIndex` holds the index of the first commit that is timely. All commits at an index less than `timelyIndex` must be deleted;\n if (timelyIndex == 0) {\n // no commit is older than block.timestamp - REVEAL_MAX_DELAY. Nothing needs to be cleaned up\n return;\n }\n // Delete Commit instances for commits that are are older than block.timestamp - REVEAL_MAX_DELAY\n for (uint32 i = 0; i < timelyIndex; i++) {\n bytes32 hash = commits[i];\n Commit[] storage cc = commitLocker[hash];\n for (uint32 j = 0; j < cc.length; j++) {\n delete cc[j];\n }\n delete commitLocker[hash];\n }\n // Shift all commit hashes up by `timelyIndex` positions, and discard `commitIndex` number of hashes at the end of the array\n // This process erases old commits\n uint32 len = uint32(commits.length);\n for (uint32 i = timelyIndex; i < len; i++) {\n unchecked{\n commits[i - timelyIndex] = commits[i];\n }\n }\n for (uint32 i = 0; i < timelyIndex; i++) {\n commits.pop();\n }\n // TODO (@polymorpher): upgrade the above code after solidity implements proper support for struct-array memory-storage copy operation.\n }\n\n function _isRevealTimely(uint32 commitTime) view internal returns (bool)\n {\n return uint32(block.timestamp) - commitTime < REVEAL_MAX_DELAY;\n }\n\n /// This function verifies that the first valid entry with respect to the given `eotp` in `commitLocker[hash]` matches the provided `paramsHash` and `verificationHash`. An entry is valid with respect to `eotp` iff `h3(entry.paramsHash . eotp)` equals `entry.verificationHash`\n function _verifyReveal(bytes32 hash, uint32 indexWithNonce, bytes32 paramsHash, bytes32 eotp, OperationType operationType) view internal returns (uint32)\n {\n uint32 index = indexWithNonce / maxOperationsPerInterval;\n uint8 nonce = uint8(indexWithNonce % maxOperationsPerInterval);\n Commit[] storage cc = commitLocker[hash];\n require(cc.length > 0, \"No commit found\");\n for (uint32 i = 0; i < cc.length; i++) {\n Commit storage c = cc[i];\n bytes32 expectedVerificationHash = keccak256(bytes.concat(c.paramsHash, eotp));\n if (c.verificationHash != expectedVerificationHash) {\n // Invalid entry. Ignore\n continue;\n }\n require(c.paramsHash == paramsHash, \"Parameter hash mismatch\");\n if (operationType != OperationType.RECOVER) {\n uint32 counter = c.timestamp / interval - t0;\n require(counter == index, \"Index - timestamp mismatch\");\n uint8 expectedNonce = nonces[counter];\n require(nonce >= expectedNonce, \"Nonce too low\");\n }\n require(!c.completed, \"Commit already completed\");\n // This normally should not happen, but when the network is congested (regardless of whether due to an attacker's malicious acts or not), the legitimate reveal may become untimely. This may happen before the old commit is cleaned up by another fresh commit. We enforce this restriction so that the attacker would not have a lot of time to reverse-engineer a single EOTP or leaf using an old commit.\n require(_isRevealTimely(c.timestamp), \"Reveal too late\");\n return i;\n }\n revert(\"No valid commit\");\n }\n\n function _completeReveal(bytes32 commitHash, uint32 commitIndex, OperationType operationType) internal {\n Commit[] storage cc = commitLocker[commitHash];\n require(cc.length > 0, \"Invalid commit hash\");\n require(cc.length > commitIndex, \"Invalid commitIndex\");\n Commit storage c = cc[commitIndex];\n require(c.timestamp > 0, \"Invalid commit timestamp\");\n if (operationType != OperationType.RECOVER) {\n uint32 index = uint32(c.timestamp) / interval - t0;\n _incrementNonce(index);\n _cleanupNonces();\n }\n c.completed = true;\n }\n\n /// This function removes all tracked nonce values correspond to interval blocks that are older than block.timestamp - REVEAL_MAX_DELAY. In doing so, extraneous data in the blockchain is removed, and both nonces and nonceTracker are bounded in size.\n function _cleanupNonces() internal {\n uint32 tMin = uint32(block.timestamp) - REVEAL_MAX_DELAY;\n uint32 indexMinUnadjusted = tMin / interval;\n uint32 indexMin = 0;\n if (indexMinUnadjusted > t0) {\n indexMin = indexMinUnadjusted - t0;\n }\n uint32[] memory nonZeroNonces = new uint32[](nonceTracker.length);\n uint32 numValidIndices = 0;\n for (uint8 i = 0; i < nonceTracker.length; i++) {\n uint32 index = nonceTracker[i];\n if (index < indexMin) {\n delete nonces[index];\n } else {\n nonZeroNonces[numValidIndices] = index;\n unchecked {\n numValidIndices++;\n }\n }\n }\n // TODO (@polymorpher): This can be later made more efficient by inline assembly. https://ethereum.stackexchange.com/questions/51891/how-to-pop-from-decrease-the-length-of-a-memory-array-in-solidity\n uint32[] memory reducedArray = new uint32[](numValidIndices);\n for (uint8 i = 0; i < numValidIndices; i++) {\n reducedArray[i] = nonZeroNonces[i];\n }\n nonceTracker = reducedArray;\n }\n\n function _incrementNonce(uint32 index) internal {\n uint8 v = nonces[index];\n if (v == 0) {\n nonceTracker.push(index);\n }\n unchecked{\n nonces[index] = v + 1;\n }\n }\n}\n", "sourcePath": "/Users/polymorpher/git/one-wallet/code/contracts/ONEWallet.sol", "ast": { "absolutePath": "project:/contracts/ONEWallet.sol", @@ -27989,13 +27989,13 @@ 374 ], "ONEWallet": [ - 2592 + 2612 ], "TokenTracker": [ - 3860 + 3880 ] }, - "id": 2593, + "id": 2613, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ @@ -28016,8 +28016,8 @@ "id": 389, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2593, - "sourceUnit": 3861, + "scope": 2613, + "sourceUnit": 3881, "src": "64:28:6", "symbolAliases": [], "unitAlias": "" @@ -28028,7 +28028,7 @@ "id": 390, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2593, + "scope": 2613, "sourceUnit": 241, "src": "93:56:6", "symbolAliases": [], @@ -28042,7 +28042,7 @@ "id": 391, "name": "TokenTracker", "nodeType": "IdentifierPath", - "referencedDeclaration": 3860, + "referencedDeclaration": 3880, "src": "173:12:6" }, "id": 392, @@ -28053,10 +28053,10 @@ "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 2592, + "id": 2612, "linearizedBaseContracts": [ - 2592, - 3860, + 2612, + 3880, 162, 386, 374 @@ -28566,7 +28566,7 @@ "name": "root", "nameLocation": "921:4:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "903:22:6", "stateVariable": true, "storageLocation": "default", @@ -28593,7 +28593,7 @@ "name": "height", "nameLocation": "1185:6:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1169:22:6", "stateVariable": true, "storageLocation": "default", @@ -28620,7 +28620,7 @@ "name": "interval", "nameLocation": "1284:8:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1268:24:6", "stateVariable": true, "storageLocation": "default", @@ -28647,7 +28647,7 @@ "name": "t0", "nameLocation": "1357:2:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1340:19:6", "stateVariable": true, "storageLocation": "default", @@ -28674,7 +28674,7 @@ "name": "lifespan", "nameLocation": "1440:8:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1423:25:6", "stateVariable": true, "storageLocation": "default", @@ -28701,7 +28701,7 @@ "name": "maxOperationsPerInterval", "nameLocation": "1531:24:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1515:40:6", "stateVariable": true, "storageLocation": "default", @@ -28728,7 +28728,7 @@ "name": "_numLeaves", "nameLocation": "1727:10:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1710:27:6", "stateVariable": true, "storageLocation": "default", @@ -28761,7 +28761,7 @@ "name": "lastResortAddress", "nameLocation": "1814:17:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1798:33:6", "stateVariable": true, "storageLocation": "default", @@ -28789,7 +28789,7 @@ "name": "dailyLimit", "nameLocation": "1943:10:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1935:18:6", "stateVariable": true, "storageLocation": "default", @@ -28816,7 +28816,7 @@ "name": "spentToday", "nameLocation": "2059:10:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "2051:18:6", "stateVariable": true, "storageLocation": "default", @@ -28843,7 +28843,7 @@ "name": "lastTransferDay", "nameLocation": "2278:15:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "2271:22:6", "stateVariable": true, "storageLocation": "default", @@ -28876,7 +28876,7 @@ "name": "nonces", "nameLocation": "2348:6:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "2323:31:6", "stateVariable": true, "storageLocation": "default", @@ -28922,7 +28922,7 @@ "name": "nonceTracker", "nameLocation": "2548:12:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "2539:21:6", "stateVariable": true, "storageLocation": "default", @@ -28958,7 +28958,7 @@ "name": "REVEAL_MAX_DELAY", "nameLocation": "2982:16:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "2966:37:6", "stateVariable": true, "storageLocation": "default", @@ -29001,7 +29001,7 @@ "name": "SECONDS_PER_DAY", "nameLocation": "3025:15:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "3009:39:6", "stateVariable": true, "storageLocation": "default", @@ -29044,7 +29044,7 @@ "name": "AUTO_RECOVERY_TRIGGER_AMOUNT", "nameLocation": "3071:28:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "3054:55:6", "stateVariable": true, "storageLocation": "default", @@ -29088,7 +29088,7 @@ "name": "MAX_COMMIT_SIZE", "nameLocation": "3131:15:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "3115:37:6", "stateVariable": true, "storageLocation": "default", @@ -29131,7 +29131,7 @@ "name": "majorVersion", "nameLocation": "3175:12:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "3159:34:6", "stateVariable": true, "storageLocation": "default", @@ -29174,7 +29174,7 @@ "name": "minorVersion", "nameLocation": "3259:12:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "3243:34:6", "stateVariable": true, "storageLocation": "default", @@ -29419,7 +29419,7 @@ "name": "Commit", "nameLocation": "3619:6:6", "nodeType": "StructDefinition", - "scope": 2592, + "scope": 2612, "src": "3612:155:6", "visibility": "public" }, @@ -29430,7 +29430,7 @@ "name": "commits", "nameLocation": "3783:7:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "3773:17:6", "stateVariable": true, "storageLocation": "default", @@ -29466,7 +29466,7 @@ "name": "commitLocker", "nameLocation": "4037:12:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "4008:41:6", "stateVariable": true, "storageLocation": "default", @@ -30281,7 +30281,7 @@ "parameters": [], "src": "4248:0:6" }, - "scope": 2592, + "scope": 2612, "src": "4057:517:6", "stateMutability": "nonpayable", "virtual": false, @@ -30695,7 +30695,7 @@ "referencedDeclaration": 4294967268, "src": "4937:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } } @@ -30703,7 +30703,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } ], @@ -30926,7 +30926,7 @@ "parameters": [], "src": "4607:0:6" }, - "scope": 2592, + "scope": 2612, "src": "4580:476:6", "stateMutability": "payable", "virtual": false, @@ -31482,7 +31482,7 @@ ], "src": "5098:6:6" }, - "scope": 2592, + "scope": 2612, "src": "5063:296:6", "stateMutability": "nonpayable", "virtual": false, @@ -31852,7 +31852,7 @@ ], "src": "5406:64:6" }, - "scope": 2592, + "scope": 2612, "src": "5365:229:6", "stateMutability": "view", "virtual": false, @@ -31987,7 +31987,7 @@ ], "src": "5644:16:6" }, - "scope": 2592, + "scope": 2612, "src": "5600:117:6", "stateMutability": "pure", "virtual": false, @@ -32122,7 +32122,7 @@ ], "src": "5775:18:6" }, - "scope": 2592, + "scope": 2612, "src": "5723:128:6", "stateMutability": "view", "virtual": false, @@ -32394,7 +32394,7 @@ ], "src": "5899:7:6" }, - "scope": 2592, + "scope": 2612, "src": "5857:155:6", "stateMutability": "view", "virtual": false, @@ -32633,7 +32633,7 @@ ], "src": "6062:68:6" }, - "scope": 2592, + "scope": 2612, "src": "6018:149:6", "stateMutability": "pure", "virtual": false, @@ -34924,7 +34924,7 @@ ], "src": "6220:86:6" }, - "scope": 2592, + "scope": 2612, "src": "6173:1283:6", "stateMutability": "view", "virtual": false, @@ -35155,7 +35155,7 @@ ], "src": "7522:32:6" }, - "scope": 2592, + "scope": 2612, "src": "7462:129:6", "stateMutability": "pure", "virtual": false, @@ -36859,7 +36859,7 @@ ], "src": "7655:86:6" }, - "scope": 2592, + "scope": 2612, "src": "7597:907:6", "stateMutability": "view", "virtual": false, @@ -36880,7 +36880,7 @@ "name": "_cleanupCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2197, + "referencedDeclaration": 2199, "src": "8605:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -37507,7 +37507,7 @@ "parameters": [], "src": "8595:0:6" }, - "scope": 2592, + "scope": 2612, "src": "8510:358:6", "stateMutability": "nonpayable", "virtual": false, @@ -37634,7 +37634,7 @@ "referencedDeclaration": 4294967268, "src": "9319:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } } @@ -37642,7 +37642,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } ], @@ -37791,7 +37791,7 @@ ], "src": "9145:6:6" }, - "scope": 2592, + "scope": 2612, "src": "9110:258:6", "stateMutability": "nonpayable", "virtual": false, @@ -38313,7 +38313,7 @@ "referencedDeclaration": 4294967268, "src": "9808:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } } @@ -38321,7 +38321,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } ], @@ -38426,7 +38426,7 @@ "referencedDeclaration": 4294967268, "src": "9884:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } } @@ -38434,7 +38434,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } ], @@ -39105,7 +39105,7 @@ ], "src": "9448:6:6" }, - "scope": 2592, + "scope": 2612, "src": "9374:975:6", "stateMutability": "nonpayable", "virtual": false, @@ -39461,7 +39461,7 @@ ], "src": "10392:6:6" }, - "scope": 2592, + "scope": 2612, "src": "10355:295:6", "stateMutability": "nonpayable", "virtual": false, @@ -39720,7 +39720,7 @@ "parameters": [], "src": "10730:0:6" }, - "scope": 2592, + "scope": 2612, "src": "10656:217:6", "stateMutability": "nonpayable", "virtual": false, @@ -39735,7 +39735,7 @@ { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, "id": 1384, @@ -39751,7 +39751,7 @@ "referencedDeclaration": 1368, "src": "11038:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -39763,10 +39763,10 @@ "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "11051:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2627_$", "typeString": "type(enum TokenTracker.TokenType)" } }, @@ -39777,10 +39777,10 @@ "lValueRequested": false, "memberName": "ERC20", "nodeType": "MemberAccess", - "referencedDeclaration": 2603, + "referencedDeclaration": 2623, "src": "11051:15:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -39793,7 +39793,7 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, "id": 1453, @@ -39809,7 +39809,7 @@ "referencedDeclaration": 1368, "src": "11797:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -39821,10 +39821,10 @@ "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "11810:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2627_$", "typeString": "type(enum TokenTracker.TokenType)" } }, @@ -39835,10 +39835,10 @@ "lValueRequested": false, "memberName": "ERC721", "nodeType": "MemberAccess", - "referencedDeclaration": 2604, + "referencedDeclaration": 2624, "src": "11810:16:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -39851,7 +39851,7 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, "id": 1506, @@ -39867,7 +39867,7 @@ "referencedDeclaration": 1368, "src": "12321:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -39879,10 +39879,10 @@ "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "12334:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2627_$", "typeString": "type(enum TokenTracker.TokenType)" } }, @@ -39893,10 +39893,10 @@ "lValueRequested": false, "memberName": "ERC1155", "nodeType": "MemberAccess", - "referencedDeclaration": 2605, + "referencedDeclaration": 2625, "src": "12334:17:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -39933,7 +39933,7 @@ "referencedDeclaration": 1368, "src": "12504:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -39989,7 +39989,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -40013,10 +40013,10 @@ "name": "TokenTransferSucceeded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2692, + "referencedDeclaration": 2712, "src": "12481:22:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, @@ -40063,7 +40063,7 @@ "referencedDeclaration": 1368, "src": "12645:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -40131,7 +40131,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -40159,10 +40159,10 @@ "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, + "referencedDeclaration": 2699, "src": "12626:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, @@ -40243,7 +40243,7 @@ "referencedDeclaration": 1368, "src": "12767:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -40315,7 +40315,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -40343,10 +40343,10 @@ "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, + "referencedDeclaration": 2699, "src": "12748:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, @@ -40389,7 +40389,7 @@ "referencedDeclaration": 4294967268, "src": "12422:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } } @@ -40397,7 +40397,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } ], @@ -40618,7 +40618,7 @@ "referencedDeclaration": 1368, "src": "11969:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -40674,7 +40674,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -40698,10 +40698,10 @@ "name": "TokenTransferSucceeded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2692, + "referencedDeclaration": 2712, "src": "11946:22:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, @@ -40748,7 +40748,7 @@ "referencedDeclaration": 1368, "src": "12110:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -40816,7 +40816,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -40844,10 +40844,10 @@ "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, + "referencedDeclaration": 2699, "src": "12091:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, @@ -40928,7 +40928,7 @@ "referencedDeclaration": 1368, "src": "12232:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -41000,7 +41000,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -41028,10 +41028,10 @@ "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, + "referencedDeclaration": 2699, "src": "12213:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, @@ -41074,7 +41074,7 @@ "referencedDeclaration": 4294967268, "src": "11896:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } } @@ -41082,7 +41082,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } ], @@ -41308,7 +41308,7 @@ "referencedDeclaration": 1368, "src": "11220:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -41340,7 +41340,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -41356,10 +41356,10 @@ "name": "_trackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3089, + "referencedDeclaration": 3109, "src": "11208:11:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, @@ -41393,7 +41393,7 @@ "referencedDeclaration": 1368, "src": "11306:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -41449,7 +41449,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -41473,10 +41473,10 @@ "name": "TokenTransferSucceeded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2692, + "referencedDeclaration": 2712, "src": "11283:22:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, @@ -41519,7 +41519,7 @@ "referencedDeclaration": 1368, "src": "11445:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -41575,7 +41575,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -41599,10 +41599,10 @@ "name": "TokenTransferFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2664, + "referencedDeclaration": 2684, "src": "11425:19:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, @@ -41683,7 +41683,7 @@ "referencedDeclaration": 1368, "src": "11586:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -41751,7 +41751,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -41779,10 +41779,10 @@ "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, + "referencedDeclaration": 2699, "src": "11567:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, @@ -41863,7 +41863,7 @@ "referencedDeclaration": 1368, "src": "11708:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -41935,7 +41935,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -41963,10 +41963,10 @@ "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, + "referencedDeclaration": 2699, "src": "11689:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, @@ -42144,7 +42144,7 @@ "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, "typeName": { @@ -42154,13 +42154,13 @@ "id": 1366, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "10903:9:6" }, - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "10903:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -42312,7 +42312,7 @@ "parameters": [], "src": "11024:0:6" }, - "scope": 2592, + "scope": 2612, "src": "10879:1973:6", "stateMutability": "nonpayable", "virtual": false, @@ -43011,7 +43011,7 @@ "referencedDeclaration": 1574, "src": "13913:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } } @@ -43019,7 +43019,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } ], @@ -44547,7 +44547,7 @@ "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, "typeName": { @@ -44557,13 +44557,13 @@ "id": 1572, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "13057:9:6" }, - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "13057:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -44770,7 +44770,7 @@ ], "src": "13193:18:6" }, - "scope": 2592, + "scope": 2612, "src": "12941:1287:6", "stateMutability": "pure", "virtual": false, @@ -44778,9 +44778,9 @@ }, { "body": { - "id": 1923, + "id": 1925, "nodeType": "Block", - "src": "14490:1631:6", + "src": "14490:1661:6", "statements": [ { "expression": { @@ -44841,7 +44841,7 @@ "name": "_isCorrectProof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2028, + "referencedDeclaration": 2030, "src": "14500:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_uint32_$_t_bytes32_$returns$__$", @@ -45089,7 +45089,7 @@ "name": "commitHash", "nameLocation": "14725:10:6", "nodeType": "VariableDeclaration", - "scope": 1923, + "scope": 1925, "src": "14717:18:6", "stateVariable": false, "storageLocation": "default", @@ -45116,7 +45116,7 @@ "name": "paramsHash", "nameLocation": "14745:10:6", "nodeType": "VariableDeclaration", - "scope": 1923, + "scope": 1925, "src": "14737:18:6", "stateVariable": false, "storageLocation": "default", @@ -45225,7 +45225,7 @@ "referencedDeclaration": 1755, "src": "14837:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -45309,7 +45309,7 @@ "typeString": "enum ONEWallet.OperationType" }, { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -45340,7 +45340,7 @@ "referencedDeclaration": 1742, "src": "14759:14:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint32_$_t_bytes32_$_t_enum$_OperationType_$493_$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes32_$_t_bytes32_$", + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint32_$_t_bytes32_$_t_enum$_OperationType_$493_$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes32_$_t_bytes32_$", "typeString": "function (bytes32,uint32,bytes32,enum ONEWallet.OperationType,enum TokenTracker.TokenType,address,uint256,address,uint256,bytes calldata) pure returns (bytes32,bytes32)" } }, @@ -45374,7 +45374,7 @@ "name": "commitIndex", "nameLocation": "14910:11:6", "nodeType": "VariableDeclaration", - "scope": 1923, + "scope": 1925, "src": "14903:18:6", "stateVariable": false, "storageLocation": "default", @@ -45395,7 +45395,7 @@ "visibility": "internal" } ], - "id": 1816, + "id": 1817, "initialValue": { "arguments": [ { @@ -45445,6 +45445,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" } + }, + { + "id": 1815, + "name": "operationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1752, + "src": "14984:13:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } } ], "expression": { @@ -45464,20 +45476,24 @@ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" + }, + { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" } ], "id": 1810, "name": "_verifyReveal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2359, + "referencedDeclaration": 2370, "src": "14924:13:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint32_$_t_bytes32_$_t_bytes32_$returns$_t_uint32_$", - "typeString": "function (bytes32,uint32,bytes32,bytes32) view returns (uint32)" + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint32_$_t_bytes32_$_t_bytes32_$_t_enum$_OperationType_$493_$returns$_t_uint32_$", + "typeString": "function (bytes32,uint32,bytes32,bytes32,enum ONEWallet.OperationType) view returns (uint32)" } }, - "id": 1815, + "id": 1816, "isConstant": false, "isLValue": false, "isPure": false, @@ -45485,7 +45501,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14924:59:6", + "src": "14924:74:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -45493,34 +45509,46 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "14903:80:6" + "src": "14903:95:6" }, { "expression": { "arguments": [ { - "id": 1818, + "id": 1819, "name": "commitHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1790, - "src": "15009:10:6", + "src": "15024:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1819, + "id": 1820, "name": "commitIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1809, - "src": "15021:11:6", + "src": "15036:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } + }, + { + "id": 1821, + "name": "operationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1752, + "src": "15049:13:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } } ], "expression": { @@ -45532,20 +45560,24 @@ { "typeIdentifier": "t_uint32", "typeString": "uint32" + }, + { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" } ], - "id": 1817, + "id": 1818, "name": "_completeReveal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2432, - "src": "14993:15:6", + "referencedDeclaration": 2452, + "src": "15008:15:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint32_$returns$__$", - "typeString": "function (bytes32,uint32)" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint32_$_t_enum$_OperationType_$493_$returns$__$", + "typeString": "function (bytes32,uint32,enum ONEWallet.OperationType)" } }, - "id": 1820, + "id": 1822, "isConstant": false, "isLValue": false, "isPure": false, @@ -45553,16 +45585,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14993:40:6", + "src": "15008:55:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1821, + "id": 1823, "nodeType": "ExpressionStatement", - "src": "14993:40:6" + "src": "15008:55:6" }, { "condition": { @@ -45570,18 +45602,18 @@ "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1825, + "id": 1827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1822, + "id": 1824, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1752, - "src": "15098:13:6", + "src": "15128:13:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" @@ -45591,18 +45623,18 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1823, + "id": 1825, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 493, - "src": "15115:13:6", + "src": "15145:13:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1824, + "id": 1826, "isConstant": false, "isLValue": false, "isPure": true, @@ -45610,13 +45642,13 @@ "memberName": "TRACK", "nodeType": "MemberAccess", "referencedDeclaration": 485, - "src": "15115:19:6", + "src": "15145:19:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15098:36:6", + "src": "15128:36:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -45628,18 +45660,18 @@ "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1847, + "id": 1849, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1844, + "id": 1846, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1752, - "src": "15328:13:6", + "src": "15358:13:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" @@ -45649,18 +45681,18 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1845, + "id": 1847, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 493, - "src": "15345:13:6", + "src": "15375:13:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1846, + "id": 1848, "isConstant": false, "isLValue": false, "isPure": true, @@ -45668,13 +45700,13 @@ "memberName": "UNTRACK", "nodeType": "MemberAccess", "referencedDeclaration": 486, - "src": "15345:21:6", + "src": "15375:21:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15328:38:6", + "src": "15358:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -45686,18 +45718,18 @@ "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1869, + "id": 1871, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1866, + "id": 1868, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1752, - "src": "15564:13:6", + "src": "15594:13:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" @@ -45707,18 +45739,18 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1867, + "id": 1869, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 493, - "src": "15581:13:6", + "src": "15611:13:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1868, + "id": 1870, "isConstant": false, "isLValue": false, "isPure": true, @@ -45726,13 +45758,13 @@ "memberName": "TRANSFER_TOKEN", "nodeType": "MemberAccess", "referencedDeclaration": 487, - "src": "15581:28:6", + "src": "15611:28:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15564:45:6", + "src": "15594:45:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -45744,18 +45776,18 @@ "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1883, + "id": 1885, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1880, + "id": 1882, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1752, - "src": "15717:13:6", + "src": "15747:13:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" @@ -45765,18 +45797,18 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1881, + "id": 1883, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 493, - "src": "15734:13:6", + "src": "15764:13:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1882, + "id": 1884, "isConstant": false, "isLValue": false, "isPure": true, @@ -45784,13 +45816,13 @@ "memberName": "OVERRIDE_TRACK", "nodeType": "MemberAccess", "referencedDeclaration": 488, - "src": "15734:28:6", + "src": "15764:28:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15717:45:6", + "src": "15747:45:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -45802,18 +45834,18 @@ "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1892, + "id": 1894, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1889, + "id": 1891, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1752, - "src": "15828:13:6", + "src": "15858:13:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" @@ -45823,18 +45855,18 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1890, + "id": 1892, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 493, - "src": "15845:13:6", + "src": "15875:13:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1891, + "id": 1893, "isConstant": false, "isLValue": false, "isPure": true, @@ -45842,13 +45874,13 @@ "memberName": "TRANSFER", "nodeType": "MemberAccess", "referencedDeclaration": 489, - "src": "15845:22:6", + "src": "15875:22:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15828:39:6", + "src": "15858:39:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -45860,18 +45892,18 @@ "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1902, + "id": 1904, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1899, + "id": 1901, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1752, - "src": "15927:13:6", + "src": "15957:13:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" @@ -45881,18 +45913,18 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1900, + "id": 1902, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 493, - "src": "15944:13:6", + "src": "15974:13:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1901, + "id": 1903, "isConstant": false, "isLValue": false, "isPure": true, @@ -45900,13 +45932,13 @@ "memberName": "RECOVER", "nodeType": "MemberAccess", "referencedDeclaration": 491, - "src": "15944:21:6", + "src": "15974:21:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15927:38:6", + "src": "15957:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -45918,18 +45950,18 @@ "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1910, + "id": 1912, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1907, + "id": 1909, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1752, - "src": "16012:13:6", + "src": "16042:13:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" @@ -45939,18 +45971,18 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1908, + "id": 1910, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 493, - "src": "16029:13:6", + "src": "16059:13:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1909, + "id": 1911, "isConstant": false, "isLValue": false, "isPure": true, @@ -45958,36 +45990,36 @@ "memberName": "SET_RECOVERY_ADDRESS", "nodeType": "MemberAccess", "referencedDeclaration": 490, - "src": "16029:34:6", + "src": "16059:34:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "16012:51:6", + "src": "16042:51:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1916, + "id": 1918, "nodeType": "IfStatement", - "src": "16008:107:6", + "src": "16038:107:6", "trueBody": { - "id": 1915, + "id": 1917, "nodeType": "Block", - "src": "16065:50:6", + "src": "16095:50:6", "statements": [ { "expression": { "arguments": [ { - "id": 1912, + "id": 1914, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1761, - "src": "16099:4:6", + "src": "16129:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -46001,18 +46033,18 @@ "typeString": "address payable" } ], - "id": 1911, + "id": 1913, "name": "_setRecoveryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1365, - "src": "16079:19:6", + "src": "16109:19:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$returns$__$", "typeString": "function (address payable)" } }, - "id": 1913, + "id": 1915, "isConstant": false, "isLValue": false, "isPure": false, @@ -46020,45 +46052,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16079:25:6", + "src": "16109:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1914, + "id": 1916, "nodeType": "ExpressionStatement", - "src": "16079:25:6" + "src": "16109:25:6" } ] } }, - "id": 1917, + "id": 1919, "nodeType": "IfStatement", - "src": "15923:192:6", + "src": "15953:192:6", "trueBody": { - "id": 1906, + "id": 1908, "nodeType": "Block", - "src": "15967:35:6", + "src": "15997:35:6", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1903, + "id": 1905, "name": "_recover", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1345, - "src": "15981:8:6", + "src": "16011:8:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_bool_$", "typeString": "function () returns (bool)" } }, - "id": 1904, + "id": 1906, "isConstant": false, "isLValue": false, "isPure": false, @@ -46066,50 +46098,50 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15981:10:6", + "src": "16011:10:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1905, + "id": 1907, "nodeType": "ExpressionStatement", - "src": "15981:10:6" + "src": "16011:10:6" } ] } }, - "id": 1918, + "id": 1920, "nodeType": "IfStatement", - "src": "15824:291:6", + "src": "15854:291:6", "trueBody": { - "id": 1898, + "id": 1900, "nodeType": "Block", - "src": "15869:48:6", + "src": "15899:48:6", "statements": [ { "expression": { "arguments": [ { - "id": 1894, + "id": 1896, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1761, - "src": "15893:4:6", + "src": "15923:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 1895, + "id": 1897, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1763, - "src": "15899:6:6", + "src": "15929:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46127,18 +46159,18 @@ "typeString": "uint256" } ], - "id": 1893, + "id": 1895, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1314, - "src": "15883:9:6", + "src": "15913:9:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address payable,uint256) returns (bool)" } }, - "id": 1896, + "id": 1898, "isConstant": false, "isLValue": false, "isPure": false, @@ -46146,38 +46178,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15883:23:6", + "src": "15913:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1897, + "id": 1899, "nodeType": "ExpressionStatement", - "src": "15883:23:6" + "src": "15913:23:6" } ] } }, - "id": 1919, + "id": 1921, "nodeType": "IfStatement", - "src": "15713:402:6", + "src": "15743:402:6", "trueBody": { - "id": 1888, + "id": 1890, "nodeType": "Block", - "src": "15764:54:6", + "src": "15794:54:6", "statements": [ { "expression": { "arguments": [ { - "id": 1885, + "id": 1887, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1765, - "src": "15802:4:6", + "src": "15832:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -46191,18 +46223,18 @@ "typeString": "bytes calldata" } ], - "id": 1884, + "id": 1886, "name": "_overrideTrackWithBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3597, - "src": "15778:23:6", + "referencedDeclaration": 3617, + "src": "15808:23:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$__$", "typeString": "function (bytes calldata)" } }, - "id": 1886, + "id": 1888, "isConstant": false, "isLValue": false, "isPure": false, @@ -46210,98 +46242,98 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15778:29:6", + "src": "15808:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1887, + "id": 1889, "nodeType": "ExpressionStatement", - "src": "15778:29:6" + "src": "15808:29:6" } ] } }, - "id": 1920, + "id": 1922, "nodeType": "IfStatement", - "src": "15560:555:6", + "src": "15590:555:6", "trueBody": { - "id": 1879, + "id": 1881, "nodeType": "Block", - "src": "15611:96:6", + "src": "15641:96:6", "statements": [ { "expression": { "arguments": [ { - "id": 1871, + "id": 1873, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1755, - "src": "15640:9:6", + "src": "15670:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1872, + "id": 1874, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1757, - "src": "15651:15:6", + "src": "15681:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1873, + "id": 1875, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1759, - "src": "15668:7:6", + "src": "15698:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1874, + "id": 1876, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1761, - "src": "15677:4:6", + "src": "15707:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 1875, + "id": 1877, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1763, - "src": "15683:6:6", + "src": "15713:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1876, + "id": 1878, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1765, - "src": "15691:4:6", + "src": "15721:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -46311,7 +46343,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -46335,18 +46367,18 @@ "typeString": "bytes calldata" } ], - "id": 1870, + "id": 1872, "name": "_transferToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1561, - "src": "15625:14:6", + "src": "15655:14:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,bytes memory)" } }, - "id": 1877, + "id": 1879, "isConstant": false, "isLValue": false, "isPure": false, @@ -46354,27 +46386,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15625:71:6", + "src": "15655:71:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1878, + "id": 1880, "nodeType": "ExpressionStatement", - "src": "15625:71:6" + "src": "15655:71:6" } ] } }, - "id": 1921, + "id": 1923, "nodeType": "IfStatement", - "src": "15324:791:6", + "src": "15354:791:6", "trueBody": { - "id": 1865, + "id": 1867, "nodeType": "Block", - "src": "15368:186:6", + "src": "15398:186:6", "statements": [ { "condition": { @@ -46382,32 +46414,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1851, + "id": 1853, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1848, + "id": 1850, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1765, - "src": "15386:4:6", + "src": "15416:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 1849, + "id": 1851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "15386:11:6", + "src": "15416:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46417,41 +46449,41 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1850, + "id": 1852, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15400:1:6", + "src": "15430:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "15386:15:6", + "src": "15416:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1863, + "id": 1865, "nodeType": "Block", - "src": "15492:52:6", + "src": "15522:52:6", "statements": [ { "expression": { "arguments": [ { - "id": 1860, + "id": 1862, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1765, - "src": "15524:4:6", + "src": "15554:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -46465,18 +46497,18 @@ "typeString": "bytes calldata" } ], - "id": 1859, + "id": 1861, "name": "_multiUntrack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3813, - "src": "15510:13:6", + "referencedDeclaration": 3833, + "src": "15540:13:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$__$", "typeString": "function (bytes calldata)" } }, - "id": 1861, + "id": 1863, "isConstant": false, "isLValue": false, "isPure": false, @@ -46484,61 +46516,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15510:19:6", + "src": "15540:19:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1862, + "id": 1864, "nodeType": "ExpressionStatement", - "src": "15510:19:6" + "src": "15540:19:6" } ] }, - "id": 1864, + "id": 1866, "nodeType": "IfStatement", - "src": "15382:162:6", + "src": "15412:162:6", "trueBody": { - "id": 1858, + "id": 1860, "nodeType": "Block", - "src": "15403:83:6", + "src": "15433:83:6", "statements": [ { "expression": { "arguments": [ { - "id": 1853, + "id": 1855, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1755, - "src": "15435:9:6", + "src": "15465:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1854, + "id": 1856, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1757, - "src": "15446:15:6", + "src": "15476:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1855, + "id": 1857, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1759, - "src": "15463:7:6", + "src": "15493:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46548,7 +46580,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -46560,18 +46592,18 @@ "typeString": "uint256" } ], - "id": 1852, + "id": 1854, "name": "_untrackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3307, - "src": "15421:13:6", + "referencedDeclaration": 3327, + "src": "15451:13:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 1856, + "id": 1858, "isConstant": false, "isLValue": false, "isPure": false, @@ -46579,16 +46611,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15421:50:6", + "src": "15451:50:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1857, + "id": 1859, "nodeType": "ExpressionStatement", - "src": "15421:50:6" + "src": "15451:50:6" } ] } @@ -46596,13 +46628,13 @@ ] } }, - "id": 1922, + "id": 1924, "nodeType": "IfStatement", - "src": "15094:1021:6", + "src": "15124:1021:6", "trueBody": { - "id": 1843, + "id": 1845, "nodeType": "Block", - "src": "15136:182:6", + "src": "15166:182:6", "statements": [ { "condition": { @@ -46610,32 +46642,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1829, + "id": 1831, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1826, + "id": 1828, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1765, - "src": "15154:4:6", + "src": "15184:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 1827, + "id": 1829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "15154:11:6", + "src": "15184:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46645,65 +46677,65 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1828, + "id": 1830, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15168:1:6", + "src": "15198:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "15154:15:6", + "src": "15184:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1841, + "id": 1843, "nodeType": "Block", - "src": "15227:81:6", + "src": "15257:81:6", "statements": [ { "expression": { "arguments": [ { - "id": 1836, + "id": 1838, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1755, - "src": "15257:9:6", + "src": "15287:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1837, + "id": 1839, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1757, - "src": "15268:15:6", + "src": "15298:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1838, + "id": 1840, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1759, - "src": "15285:7:6", + "src": "15315:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -46713,7 +46745,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -46725,18 +46757,18 @@ "typeString": "uint256" } ], - "id": 1835, + "id": 1837, "name": "_trackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "15245:11:6", + "referencedDeclaration": 3109, + "src": "15275:11:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 1839, + "id": 1841, "isConstant": false, "isLValue": false, "isPure": false, @@ -46744,37 +46776,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15245:48:6", + "src": "15275:48:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1840, + "id": 1842, "nodeType": "ExpressionStatement", - "src": "15245:48:6" + "src": "15275:48:6" } ] }, - "id": 1842, + "id": 1844, "nodeType": "IfStatement", - "src": "15150:158:6", + "src": "15180:158:6", "trueBody": { - "id": 1834, + "id": 1836, "nodeType": "Block", - "src": "15171:50:6", + "src": "15201:50:6", "statements": [ { "expression": { "arguments": [ { - "id": 1831, + "id": 1833, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1765, - "src": "15201:4:6", + "src": "15231:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -46788,18 +46820,18 @@ "typeString": "bytes calldata" } ], - "id": 1830, + "id": 1832, "name": "_multiTrack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3705, - "src": "15189:11:6", + "referencedDeclaration": 3725, + "src": "15219:11:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$__$", "typeString": "function (bytes calldata)" } }, - "id": 1832, + "id": 1834, "isConstant": false, "isLValue": false, "isPure": false, @@ -46807,16 +46839,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15189:17:6", + "src": "15219:17:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1833, + "id": 1835, "nodeType": "ExpressionStatement", - "src": "15189:17:6" + "src": "15219:17:6" } ] } @@ -46827,7 +46859,7 @@ ] }, "functionSelector": "c34a6dad", - "id": 1924, + "id": 1926, "implemented": true, "kind": "function", "modifiers": [], @@ -46845,7 +46877,7 @@ "name": "neighbors", "nameLocation": "14270:9:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14251:28:6", "stateVariable": false, "storageLocation": "calldata", @@ -46881,7 +46913,7 @@ "name": "indexWithNonce", "nameLocation": "14288:14:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14281:21:6", "stateVariable": false, "storageLocation": "default", @@ -46908,7 +46940,7 @@ "name": "eotp", "nameLocation": "14312:4:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14304:12:6", "stateVariable": false, "storageLocation": "default", @@ -46935,7 +46967,7 @@ "name": "operationType", "nameLocation": "14340:13:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14326:27:6", "stateVariable": false, "storageLocation": "default", @@ -46969,12 +47001,12 @@ "name": "tokenType", "nameLocation": "14365:9:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14355:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, "typeName": { @@ -46984,13 +47016,13 @@ "id": 1753, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "14355:9:6" }, - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "14355:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -47003,7 +47035,7 @@ "name": "contractAddress", "nameLocation": "14384:15:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14376:23:6", "stateVariable": false, "storageLocation": "default", @@ -47031,7 +47063,7 @@ "name": "tokenId", "nameLocation": "14409:7:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14401:15:6", "stateVariable": false, "storageLocation": "default", @@ -47058,7 +47090,7 @@ "name": "dest", "nameLocation": "14434:4:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14418:20:6", "stateVariable": false, "storageLocation": "default", @@ -47086,7 +47118,7 @@ "name": "amount", "nameLocation": "14448:6:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14440:14:6", "stateVariable": false, "storageLocation": "default", @@ -47113,7 +47145,7 @@ "name": "data", "nameLocation": "14471:4:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14456:19:6", "stateVariable": false, "storageLocation": "calldata", @@ -47142,17 +47174,17 @@ "parameters": [], "src": "14490:0:6" }, - "scope": 2592, - "src": "14235:1886:6", + "scope": 2612, + "src": "14235:1916:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 2027, + "id": 2029, "nodeType": "Block", - "src": "16350:604:6", + "src": "16380:604:6", "statements": [ { "expression": { @@ -47162,32 +47194,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1941, + "id": 1943, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1936, + "id": 1938, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1928, - "src": "16368:9:6", + "referencedDeclaration": 1930, + "src": "16398:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1937, + "id": 1939, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "16368:16:6", + "src": "16398:16:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -47200,18 +47232,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1940, + "id": 1942, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1938, + "id": 1940, "name": "height", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 439, - "src": "16388:6:6", + "src": "16418:6:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -47221,27 +47253,27 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 1939, + "id": 1941, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16397:1:6", + "src": "16427:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "16388:10:6", + "src": "16418:10:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "16368:30:6", + "src": "16398:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -47249,14 +47281,14 @@ }, { "hexValue": "4e6f7420656e6f756768206e65696768626f72732070726f7669646564", - "id": 1942, + "id": 1944, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "16400:31:6", + "src": "16430:31:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_83d08d6dcf099c52fbe149a08cb4ffd65f3fec6dbf87dba7bc08b7a534982441", "typeString": "literal_string \"Not enough neighbors provided\"" @@ -47275,7 +47307,7 @@ "typeString": "literal_string \"Not enough neighbors provided\"" } ], - "id": 1935, + "id": 1937, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -47283,13 +47315,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "16360:7:6", + "src": "16390:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1943, + "id": 1945, "isConstant": false, "isLValue": false, "isPure": false, @@ -47297,31 +47329,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16360:72:6", + "src": "16390:72:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1944, + "id": 1946, "nodeType": "ExpressionStatement", - "src": "16360:72:6" + "src": "16390:72:6" }, { "assignments": [ - 1946 + 1948 ], "declarations": [ { "constant": false, - "id": 1946, + "id": 1948, "mutability": "mutable", "name": "h", - "nameLocation": "16450:1:6", + "nameLocation": "16480:1:6", "nodeType": "VariableDeclaration", - "scope": 2027, - "src": "16442:9:6", + "scope": 2029, + "src": "16472:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -47329,10 +47361,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1945, + "id": 1947, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "16442:7:6", + "src": "16472:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -47341,18 +47373,18 @@ "visibility": "internal" } ], - "id": 1954, + "id": 1956, "initialValue": { "arguments": [ { "arguments": [ { - "id": 1951, + "id": 1953, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1932, - "src": "16474:4:6", + "referencedDeclaration": 1934, + "src": "16504:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -47367,39 +47399,39 @@ } ], "expression": { - "id": 1949, + "id": 1951, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16461:5:6", + "src": "16491:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1948, + "id": 1950, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "16461:5:6", + "src": "16491:5:6", "typeDescriptions": {} } }, - "id": 1950, + "id": 1952, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "16461:12:6", + "src": "16491:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1952, + "id": 1954, "isConstant": false, "isLValue": false, "isPure": false, @@ -47407,7 +47439,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16461:18:6", + "src": "16491:18:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -47422,18 +47454,18 @@ "typeString": "bytes memory" } ], - "id": 1947, + "id": 1949, "name": "sha256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967274, - "src": "16454:6:6", + "src": "16484:6:6", "typeDescriptions": { "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1953, + "id": 1955, "isConstant": false, "isLValue": false, "isPure": false, @@ -47441,7 +47473,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16454:26:6", + "src": "16484:26:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -47449,7 +47481,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "16442:38:6" + "src": "16472:38:6" }, { "condition": { @@ -47457,18 +47489,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1959, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1955, + "id": 1957, "name": "position", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "16494:8:6", + "referencedDeclaration": 1932, + "src": "16524:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47481,18 +47513,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1958, + "id": 1960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1956, + "id": 1958, "name": "_numLeaves", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 449, - "src": "16506:10:6", + "src": "16536:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47502,54 +47534,54 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 1957, + "id": 1959, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16519:1:6", + "src": "16549:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "16506:14:6", + "src": "16536:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "16494:26:6", + "src": "16524:26:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1965, + "id": 1967, "nodeType": "IfStatement", - "src": "16490:107:6", + "src": "16520:107:6", "trueBody": { - "id": 1964, + "id": 1966, "nodeType": "Block", - "src": "16522:75:6", + "src": "16552:75:6", "statements": [ { "expression": { - "id": 1962, + "id": 1964, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1960, + "id": 1962, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1946, - "src": "16578:1:6", + "referencedDeclaration": 1948, + "src": "16608:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -47558,35 +47590,35 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1961, + "id": 1963, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1932, - "src": "16582:4:6", + "referencedDeclaration": 1934, + "src": "16612:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "16578:8:6", + "src": "16608:8:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1963, + "id": 1965, "nodeType": "ExpressionStatement", - "src": "16578:8:6" + "src": "16608:8:6" } ] } }, { "body": { - "id": 2017, + "id": 2019, "nodeType": "Block", - "src": "16645:237:6", + "src": "16675:237:6", "statements": [ { "condition": { @@ -47594,7 +47626,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1983, + "id": 1985, "isConstant": false, "isLValue": false, "isPure": false, @@ -47606,18 +47638,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1980, + "id": 1982, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1978, + "id": 1980, "name": "position", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "16664:8:6", + "referencedDeclaration": 1932, + "src": "16694:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47627,35 +47659,35 @@ "operator": "&", "rightExpression": { "hexValue": "30783031", - "id": 1979, + "id": 1981, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16675:4:6", + "src": "16705:4:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "0x01" }, - "src": "16664:15:6", + "src": "16694:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], - "id": 1981, + "id": 1983, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "16663:17:6", + "src": "16693:17:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -47665,45 +47697,45 @@ "operator": "==", "rightExpression": { "hexValue": "30783031", - "id": 1982, + "id": 1984, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16684:4:6", + "src": "16714:4:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "0x01" }, - "src": "16663:25:6", + "src": "16693:25:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2011, + "id": 2013, "nodeType": "Block", - "src": "16770:74:6", + "src": "16800:74:6", "statements": [ { "expression": { - "id": 2009, + "id": 2011, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1998, + "id": 2000, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1946, - "src": "16788:1:6", + "referencedDeclaration": 1948, + "src": "16818:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -47716,12 +47748,12 @@ { "arguments": [ { - "id": 2003, + "id": 2005, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1946, - "src": "16812:1:6", + "referencedDeclaration": 1948, + "src": "16842:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -47729,25 +47761,25 @@ }, { "baseExpression": { - "id": 2004, + "id": 2006, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1928, - "src": "16815:9:6", + "referencedDeclaration": 1930, + "src": "16845:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 2006, + "id": 2008, "indexExpression": { - "id": 2005, + "id": 2007, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1967, - "src": "16825:1:6", + "referencedDeclaration": 1969, + "src": "16855:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -47758,7 +47790,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "16815:12:6", + "src": "16845:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -47777,39 +47809,39 @@ } ], "expression": { - "id": 2001, + "id": 2003, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16799:5:6", + "src": "16829:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2000, + "id": 2002, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "16799:5:6", + "src": "16829:5:6", "typeDescriptions": {} } }, - "id": 2002, + "id": 2004, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "16799:12:6", + "src": "16829:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2007, + "id": 2009, "isConstant": false, "isLValue": false, "isPure": false, @@ -47817,7 +47849,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16799:29:6", + "src": "16829:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -47832,18 +47864,18 @@ "typeString": "bytes memory" } ], - "id": 1999, + "id": 2001, "name": "sha256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967274, - "src": "16792:6:6", + "src": "16822:6:6", "typeDescriptions": { "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2008, + "id": 2010, "isConstant": false, "isLValue": false, "isPure": false, @@ -47851,47 +47883,47 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16792:37:6", + "src": "16822:37:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "16788:41:6", + "src": "16818:41:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2010, + "id": 2012, "nodeType": "ExpressionStatement", - "src": "16788:41:6" + "src": "16818:41:6" } ] }, - "id": 2012, + "id": 2014, "nodeType": "IfStatement", - "src": "16659:185:6", + "src": "16689:185:6", "trueBody": { - "id": 1997, + "id": 1999, "nodeType": "Block", - "src": "16690:74:6", + "src": "16720:74:6", "statements": [ { "expression": { - "id": 1995, + "id": 1997, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1984, + "id": 1986, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1946, - "src": "16708:1:6", + "referencedDeclaration": 1948, + "src": "16738:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -47905,25 +47937,25 @@ "arguments": [ { "baseExpression": { - "id": 1989, + "id": 1991, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1928, - "src": "16732:9:6", + "referencedDeclaration": 1930, + "src": "16762:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1991, + "id": 1993, "indexExpression": { - "id": 1990, + "id": 1992, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1967, - "src": "16742:1:6", + "referencedDeclaration": 1969, + "src": "16772:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -47934,19 +47966,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "16732:12:6", + "src": "16762:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1992, + "id": 1994, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1946, - "src": "16746:1:6", + "referencedDeclaration": 1948, + "src": "16776:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -47965,39 +47997,39 @@ } ], "expression": { - "id": 1987, + "id": 1989, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16719:5:6", + "src": "16749:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1986, + "id": 1988, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "16719:5:6", + "src": "16749:5:6", "typeDescriptions": {} } }, - "id": 1988, + "id": 1990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "16719:12:6", + "src": "16749:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1993, + "id": 1995, "isConstant": false, "isLValue": false, "isPure": false, @@ -48005,7 +48037,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16719:29:6", + "src": "16749:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -48020,18 +48052,18 @@ "typeString": "bytes memory" } ], - "id": 1985, + "id": 1987, "name": "sha256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967274, - "src": "16712:6:6", + "src": "16742:6:6", "typeDescriptions": { "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1994, + "id": 1996, "isConstant": false, "isLValue": false, "isPure": false, @@ -48039,40 +48071,40 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16712:37:6", + "src": "16742:37:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "16708:41:6", + "src": "16738:41:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1996, + "id": 1998, "nodeType": "ExpressionStatement", - "src": "16708:41:6" + "src": "16738:41:6" } ] } }, { "expression": { - "id": 2015, + "id": 2017, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2013, + "id": 2015, "name": "position", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "16857:8:6", + "referencedDeclaration": 1932, + "src": "16887:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48082,29 +48114,29 @@ "operator": ">>=", "rightHandSide": { "hexValue": "31", - "id": 2014, + "id": 2016, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16870:1:6", + "src": "16900:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "16857:14:6", + "src": "16887:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2016, + "id": 2018, "nodeType": "ExpressionStatement", - "src": "16857:14:6" + "src": "16887:14:6" } ] }, @@ -48113,18 +48145,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1974, + "id": 1976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1970, + "id": 1972, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1967, - "src": "16624:1:6", + "referencedDeclaration": 1969, + "src": "16654:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -48137,18 +48169,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1973, + "id": 1975, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1971, + "id": 1973, "name": "height", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 439, - "src": "16628:6:6", + "src": "16658:6:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -48158,47 +48190,47 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 1972, + "id": 1974, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16637:1:6", + "src": "16667:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "16628:10:6", + "src": "16658:10:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "16624:14:6", + "src": "16654:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2018, + "id": 2020, "initializationExpression": { "assignments": [ - 1967 + 1969 ], "declarations": [ { "constant": false, - "id": 1967, + "id": 1969, "mutability": "mutable", "name": "i", - "nameLocation": "16617:1:6", + "nameLocation": "16647:1:6", "nodeType": "VariableDeclaration", - "scope": 2018, - "src": "16611:7:6", + "scope": 2020, + "src": "16641:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48206,10 +48238,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1966, + "id": 1968, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "16611:5:6", + "src": "16641:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -48218,17 +48250,17 @@ "visibility": "internal" } ], - "id": 1969, + "id": 1971, "initialValue": { "hexValue": "30", - "id": 1968, + "id": 1970, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16621:1:6", + "src": "16651:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -48236,11 +48268,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "16611:11:6" + "src": "16641:11:6" }, "loopExpression": { "expression": { - "id": 1976, + "id": 1978, "isConstant": false, "isLValue": false, "isPure": false, @@ -48248,14 +48280,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "16640:3:6", + "src": "16670:3:6", "subExpression": { - "id": 1975, + "id": 1977, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1967, - "src": "16640:1:6", + "referencedDeclaration": 1969, + "src": "16670:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -48266,12 +48298,12 @@ "typeString": "uint8" } }, - "id": 1977, + "id": 1979, "nodeType": "ExpressionStatement", - "src": "16640:3:6" + "src": "16670:3:6" }, "nodeType": "ForStatement", - "src": "16606:276:6" + "src": "16636:276:6" }, { "expression": { @@ -48281,18 +48313,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 2022, + "id": 2024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2020, + "id": 2022, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 437, - "src": "16899:4:6", + "src": "16929:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -48301,18 +48333,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 2021, + "id": 2023, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1946, - "src": "16907:1:6", + "referencedDeclaration": 1948, + "src": "16937:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "16899:9:6", + "src": "16929:9:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -48320,14 +48352,14 @@ }, { "hexValue": "50726f6f6620697320696e636f7272656374", - "id": 2023, + "id": 2025, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "16910:20:6", + "src": "16940:20:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_5515ff285a2022327bc0ffdc690388a3a1d15360640a68caecd56fe24371f01a", "typeString": "literal_string \"Proof is incorrect\"" @@ -48346,7 +48378,7 @@ "typeString": "literal_string \"Proof is incorrect\"" } ], - "id": 2019, + "id": 2021, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -48354,13 +48386,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "16891:7:6", + "src": "16921:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2024, + "id": 2026, "isConstant": false, "isLValue": false, "isPure": false, @@ -48368,51 +48400,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16891:40:6", + "src": "16921:40:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2025, + "id": 2027, "nodeType": "ExpressionStatement", - "src": "16891:40:6" + "src": "16921:40:6" }, { - "functionReturnParameters": 1934, - "id": 2026, + "functionReturnParameters": 1936, + "id": 2028, "nodeType": "Return", - "src": "16941:7:6" + "src": "16971:7:6" } ] }, "documentation": { - "id": 1925, + "id": 1927, "nodeType": "StructuredDocumentation", - "src": "16127:118:6", + "src": "16157:118:6", "text": "This is just a wrapper around a modifier previously called `isCorrectProof`, to avoid \"Stack too deep\" error. Duh." }, - "id": 2028, + "id": 2030, "implemented": true, "kind": "function", "modifiers": [], "name": "_isCorrectProof", - "nameLocation": "16259:15:6", + "nameLocation": "16289:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1933, + "id": 1935, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1928, + "id": 1930, "mutability": "mutable", "name": "neighbors", - "nameLocation": "16294:9:6", + "nameLocation": "16324:9:6", "nodeType": "VariableDeclaration", - "scope": 2028, - "src": "16275:28:6", + "scope": 2030, + "src": "16305:28:6", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -48421,18 +48453,18 @@ }, "typeName": { "baseType": { - "id": 1926, + "id": 1928, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "16275:7:6", + "src": "16305:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1927, + "id": 1929, "nodeType": "ArrayTypeName", - "src": "16275:9:6", + "src": "16305:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -48442,13 +48474,13 @@ }, { "constant": false, - "id": 1930, + "id": 1932, "mutability": "mutable", "name": "position", - "nameLocation": "16312:8:6", + "nameLocation": "16342:8:6", "nodeType": "VariableDeclaration", - "scope": 2028, - "src": "16305:15:6", + "scope": 2030, + "src": "16335:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48456,10 +48488,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1929, + "id": 1931, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "16305:6:6", + "src": "16335:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48469,13 +48501,13 @@ }, { "constant": false, - "id": 1932, + "id": 1934, "mutability": "mutable", "name": "eotp", - "nameLocation": "16330:4:6", + "nameLocation": "16360:4:6", "nodeType": "VariableDeclaration", - "scope": 2028, - "src": "16322:12:6", + "scope": 2030, + "src": "16352:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48483,10 +48515,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1931, + "id": 1933, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "16322:7:6", + "src": "16352:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -48495,40 +48527,40 @@ "visibility": "internal" } ], - "src": "16274:61:6" + "src": "16304:61:6" }, "returnParameters": { - "id": 1934, + "id": 1936, "nodeType": "ParameterList", "parameters": [], - "src": "16350:0:6" + "src": "16380:0:6" }, - "scope": 2592, - "src": "16250:704:6", + "scope": 2612, + "src": "16280:704:6", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2196, + "id": 2198, "nodeType": "Block", - "src": "17445:2493:6", + "src": "17475:2493:6", "statements": [ { "assignments": [ - 2033 + 2035 ], "declarations": [ { "constant": false, - "id": 2033, + "id": 2035, "mutability": "mutable", "name": "timelyIndex", - "nameLocation": "17462:11:6", + "nameLocation": "17492:11:6", "nodeType": "VariableDeclaration", - "scope": 2196, - "src": "17455:18:6", + "scope": 2198, + "src": "17485:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48536,10 +48568,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2032, + "id": 2034, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "17455:6:6", + "src": "17485:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48548,17 +48580,17 @@ "visibility": "internal" } ], - "id": 2035, + "id": 2037, "initialValue": { "hexValue": "30", - "id": 2034, + "id": 2036, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17476:1:6", + "src": "17506:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -48566,22 +48598,22 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "17455:22:6" + "src": "17485:22:6" }, { "assignments": [ - 2037 + 2039 ], "declarations": [ { "constant": false, - "id": 2037, + "id": 2039, "mutability": "mutable", "name": "bt", - "nameLocation": "17494:2:6", + "nameLocation": "17524:2:6", "nodeType": "VariableDeclaration", - "scope": 2196, - "src": "17487:9:6", + "scope": 2198, + "src": "17517:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48589,10 +48621,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2036, + "id": 2038, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "17487:6:6", + "src": "17517:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48601,30 +48633,30 @@ "visibility": "internal" } ], - "id": 2043, + "id": 2045, "initialValue": { "arguments": [ { "expression": { - "id": 2040, + "id": 2042, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "17506:5:6", + "src": "17536:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 2041, + "id": 2043, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "17506:15:6", + "src": "17536:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48638,26 +48670,26 @@ "typeString": "uint256" } ], - "id": 2039, + "id": 2041, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "17499:6:6", + "src": "17529:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 2038, + "id": 2040, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "17499:6:6", + "src": "17529:6:6", "typeDescriptions": {} } }, - "id": 2042, + "id": 2044, "isConstant": false, "isLValue": false, "isPure": false, @@ -48665,7 +48697,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17499:23:6", + "src": "17529:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -48673,28 +48705,28 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "17487:35:6" + "src": "17517:35:6" }, { "body": { - "id": 2090, + "id": 2092, "nodeType": "Block", - "src": "17747:879:6", + "src": "17777:879:6", "statements": [ { "assignments": [ - 2052 + 2054 ], "declarations": [ { "constant": false, - "id": 2052, + "id": 2054, "mutability": "mutable", "name": "hash", - "nameLocation": "17769:4:6", + "nameLocation": "17799:4:6", "nodeType": "VariableDeclaration", - "scope": 2090, - "src": "17761:12:6", + "scope": 2092, + "src": "17791:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -48702,10 +48734,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2051, + "id": 2053, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "17761:7:6", + "src": "17791:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -48714,28 +48746,28 @@ "visibility": "internal" } ], - "id": 2056, + "id": 2058, "initialValue": { "baseExpression": { - "id": 2053, + "id": 2055, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 507, - "src": "17776:7:6", + "src": "17806:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 2055, + "id": 2057, "indexExpression": { - "id": 2054, + "id": 2056, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "17784:11:6", + "referencedDeclaration": 2035, + "src": "17814:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -48746,29 +48778,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17776:20:6", + "src": "17806:20:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "17761:35:6" + "src": "17791:35:6" }, { "assignments": [ - 2061 + 2063 ], "declarations": [ { "constant": false, - "id": 2061, + "id": 2063, "mutability": "mutable", "name": "cc", - "nameLocation": "17827:2:6", + "nameLocation": "17857:2:6", "nodeType": "VariableDeclaration", - "scope": 2090, - "src": "17810:19:6", + "scope": 2092, + "src": "17840:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -48777,25 +48809,25 @@ }, "typeName": { "baseType": { - "id": 2059, + "id": 2061, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2058, + "id": 2060, "name": "Commit", "nodeType": "IdentifierPath", "referencedDeclaration": 504, - "src": "17810:6:6" + "src": "17840:6:6" }, "referencedDeclaration": 504, - "src": "17810:6:6", + "src": "17840:6:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 2060, + "id": 2062, "nodeType": "ArrayTypeName", - "src": "17810:8:6", + "src": "17840:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" @@ -48804,28 +48836,28 @@ "visibility": "internal" } ], - "id": 2065, + "id": 2067, "initialValue": { "baseExpression": { - "id": 2062, + "id": 2064, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 513, - "src": "17832:12:6", + "src": "17862:12:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 2064, + "id": 2066, "indexExpression": { - "id": 2063, + "id": 2065, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2052, - "src": "17845:4:6", + "referencedDeclaration": 2054, + "src": "17875:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -48836,14 +48868,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17832:18:6", + "src": "17862:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "17810:40:6" + "src": "17840:40:6" }, { "condition": { @@ -48851,32 +48883,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2069, + "id": 2071, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2066, + "id": 2068, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2061, - "src": "17966:2:6", + "referencedDeclaration": 2063, + "src": "17996:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2067, + "id": 2069, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "17966:9:6", + "src": "17996:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -48886,56 +48918,56 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 2068, + "id": 2070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17979:1:6", + "src": "18009:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "17966:14:6", + "src": "17996:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2072, + "id": 2074, "nodeType": "IfStatement", - "src": "17962:61:6", + "src": "17992:61:6", "trueBody": { - "id": 2071, + "id": 2073, "nodeType": "Block", - "src": "17982:41:6", + "src": "18012:41:6", "statements": [ { - "id": 2070, + "id": 2072, "nodeType": "Continue", - "src": "18000:8:6" + "src": "18030:8:6" } ] } }, { "assignments": [ - 2075 + 2077 ], "declarations": [ { "constant": false, - "id": 2075, + "id": 2077, "mutability": "mutable", "name": "c", - "nameLocation": "18483:1:6", + "nameLocation": "18513:1:6", "nodeType": "VariableDeclaration", - "scope": 2090, - "src": "18468:16:6", + "scope": 2092, + "src": "18498:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -48943,17 +48975,17 @@ "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 2074, + "id": 2076, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2073, + "id": 2075, "name": "Commit", "nodeType": "IdentifierPath", "referencedDeclaration": 504, - "src": "18468:6:6" + "src": "18498:6:6" }, "referencedDeclaration": 504, - "src": "18468:6:6", + "src": "18498:6:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" @@ -48962,31 +48994,31 @@ "visibility": "internal" } ], - "id": 2079, + "id": 2081, "initialValue": { "baseExpression": { - "id": 2076, + "id": 2078, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2061, - "src": "18487:2:6", + "referencedDeclaration": 2063, + "src": "18517:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2078, + "id": 2080, "indexExpression": { "hexValue": "30", - "id": 2077, + "id": 2079, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18490:1:6", + "src": "18520:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -48998,19 +49030,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "18487:5:6", + "src": "18517:5:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "18468:24:6" + "src": "18498:24:6" }, { - "id": 2089, + "id": 2091, "nodeType": "UncheckedBlock", - "src": "18502:114:6", + "src": "18532:114:6", "statements": [ { "condition": { @@ -49018,25 +49050,25 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2085, + "id": 2087, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2080, + "id": 2082, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2075, - "src": "18530:1:6", + "referencedDeclaration": 2077, + "src": "18560:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2081, + "id": 2083, "isConstant": false, "isLValue": true, "isPure": false, @@ -49044,7 +49076,7 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": 501, - "src": "18530:11:6", + "src": "18560:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49057,18 +49089,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2084, + "id": 2086, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2082, + "id": 2084, "name": "bt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2037, - "src": "18545:2:6", + "referencedDeclaration": 2039, + "src": "18575:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49077,41 +49109,41 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2083, + "id": 2085, "name": "REVEAL_MAX_DELAY", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, - "src": "18550:16:6", + "src": "18580:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "18545:21:6", + "src": "18575:21:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "18530:36:6", + "src": "18560:36:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2088, + "id": 2090, "nodeType": "IfStatement", - "src": "18526:80:6", + "src": "18556:80:6", "trueBody": { - "id": 2087, + "id": 2089, "nodeType": "Block", - "src": "18568:38:6", + "src": "18598:38:6", "statements": [ { - "id": 2086, + "id": 2088, "nodeType": "Break", - "src": "18586:5:6" + "src": "18616:5:6" } ] } @@ -49125,18 +49157,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2047, + "id": 2049, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2044, + "id": 2046, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "17702:11:6", + "referencedDeclaration": 2035, + "src": "17732:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49146,40 +49178,40 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2045, + "id": 2047, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 507, - "src": "17716:7:6", + "src": "17746:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 2046, + "id": 2048, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "17716:14:6", + "src": "17746:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "17702:28:6", + "src": "17732:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2091, + "id": 2093, "loopExpression": { "expression": { - "id": 2049, + "id": 2051, "isConstant": false, "isLValue": false, "isPure": false, @@ -49187,14 +49219,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "17732:13:6", + "src": "17762:13:6", "subExpression": { - "id": 2048, + "id": 2050, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "17732:11:6", + "referencedDeclaration": 2035, + "src": "17762:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49205,12 +49237,12 @@ "typeString": "uint32" } }, - "id": 2050, + "id": 2052, "nodeType": "ExpressionStatement", - "src": "17732:13:6" + "src": "17762:13:6" }, "nodeType": "ForStatement", - "src": "17695:931:6" + "src": "17725:931:6" }, { "condition": { @@ -49218,18 +49250,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2094, + "id": 2096, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2092, + "id": 2094, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "18785:11:6", + "referencedDeclaration": 2035, + "src": "18815:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49239,63 +49271,63 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 2093, + "id": 2095, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18800:1:6", + "src": "18830:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "18785:16:6", + "src": "18815:16:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2097, + "id": 2099, "nodeType": "IfStatement", - "src": "18781:159:6", + "src": "18811:159:6", "trueBody": { - "id": 2096, + "id": 2098, "nodeType": "Block", - "src": "18803:137:6", + "src": "18833:137:6", "statements": [ { - "functionReturnParameters": 2031, - "id": 2095, + "functionReturnParameters": 2033, + "id": 2097, "nodeType": "Return", - "src": "18923:7:6" + "src": "18953:7:6" } ] } }, { "body": { - "id": 2146, + "id": 2148, "nodeType": "Block", - "src": "19096:240:6", + "src": "19126:240:6", "statements": [ { "assignments": [ - 2109 + 2111 ], "declarations": [ { "constant": false, - "id": 2109, + "id": 2111, "mutability": "mutable", "name": "hash", - "nameLocation": "19118:4:6", + "nameLocation": "19148:4:6", "nodeType": "VariableDeclaration", - "scope": 2146, - "src": "19110:12:6", + "scope": 2148, + "src": "19140:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49303,10 +49335,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2108, + "id": 2110, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "19110:7:6", + "src": "19140:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -49315,28 +49347,28 @@ "visibility": "internal" } ], - "id": 2113, + "id": 2115, "initialValue": { "baseExpression": { - "id": 2110, + "id": 2112, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 507, - "src": "19125:7:6", + "src": "19155:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 2112, + "id": 2114, "indexExpression": { - "id": 2111, + "id": 2113, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "19133:1:6", + "referencedDeclaration": 2101, + "src": "19163:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49347,29 +49379,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "19125:10:6", + "src": "19155:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "19110:25:6" + "src": "19140:25:6" }, { "assignments": [ - 2118 + 2120 ], "declarations": [ { "constant": false, - "id": 2118, + "id": 2120, "mutability": "mutable", "name": "cc", - "nameLocation": "19166:2:6", + "nameLocation": "19196:2:6", "nodeType": "VariableDeclaration", - "scope": 2146, - "src": "19149:19:6", + "scope": 2148, + "src": "19179:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -49378,25 +49410,25 @@ }, "typeName": { "baseType": { - "id": 2116, + "id": 2118, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2115, + "id": 2117, "name": "Commit", "nodeType": "IdentifierPath", "referencedDeclaration": 504, - "src": "19149:6:6" + "src": "19179:6:6" }, "referencedDeclaration": 504, - "src": "19149:6:6", + "src": "19179:6:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 2117, + "id": 2119, "nodeType": "ArrayTypeName", - "src": "19149:8:6", + "src": "19179:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" @@ -49405,28 +49437,28 @@ "visibility": "internal" } ], - "id": 2122, + "id": 2124, "initialValue": { "baseExpression": { - "id": 2119, + "id": 2121, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 513, - "src": "19171:12:6", + "src": "19201:12:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 2121, + "id": 2123, "indexExpression": { - "id": 2120, + "id": 2122, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "19184:4:6", + "referencedDeclaration": 2111, + "src": "19214:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -49437,24 +49469,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "19171:18:6", + "src": "19201:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "19149:40:6" + "src": "19179:40:6" }, { "body": { - "id": 2139, + "id": 2141, "nodeType": "Block", - "src": "19242:45:6", + "src": "19272:45:6", "statements": [ { "expression": { - "id": 2137, + "id": 2139, "isConstant": false, "isLValue": false, "isPure": false, @@ -49462,28 +49494,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "19260:12:6", + "src": "19290:12:6", "subExpression": { "baseExpression": { - "id": 2134, + "id": 2136, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2118, - "src": "19267:2:6", + "referencedDeclaration": 2120, + "src": "19297:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2136, + "id": 2138, "indexExpression": { - "id": 2135, + "id": 2137, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, - "src": "19270:1:6", + "referencedDeclaration": 2126, + "src": "19300:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49494,7 +49526,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "19267:5:6", + "src": "19297:5:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" @@ -49505,9 +49537,9 @@ "typeString": "tuple()" } }, - "id": 2138, + "id": 2140, "nodeType": "ExpressionStatement", - "src": "19260:12:6" + "src": "19290:12:6" } ] }, @@ -49516,18 +49548,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2130, + "id": 2132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2127, + "id": 2129, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, - "src": "19222:1:6", + "referencedDeclaration": 2126, + "src": "19252:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49537,51 +49569,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2128, + "id": 2130, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2118, - "src": "19226:2:6", + "referencedDeclaration": 2120, + "src": "19256:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2129, + "id": 2131, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "19226:9:6", + "src": "19256:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "19222:13:6", + "src": "19252:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2140, + "id": 2142, "initializationExpression": { "assignments": [ - 2124 + 2126 ], "declarations": [ { "constant": false, - "id": 2124, + "id": 2126, "mutability": "mutable", "name": "j", - "nameLocation": "19215:1:6", + "nameLocation": "19245:1:6", "nodeType": "VariableDeclaration", - "scope": 2140, - "src": "19208:8:6", + "scope": 2142, + "src": "19238:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49589,10 +49621,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2123, + "id": 2125, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19208:6:6", + "src": "19238:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49601,17 +49633,17 @@ "visibility": "internal" } ], - "id": 2126, + "id": 2128, "initialValue": { "hexValue": "30", - "id": 2125, + "id": 2127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19219:1:6", + "src": "19249:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -49619,11 +49651,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "19208:12:6" + "src": "19238:12:6" }, "loopExpression": { "expression": { - "id": 2132, + "id": 2134, "isConstant": false, "isLValue": false, "isPure": false, @@ -49631,14 +49663,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "19237:3:6", + "src": "19267:3:6", "subExpression": { - "id": 2131, + "id": 2133, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, - "src": "19237:1:6", + "referencedDeclaration": 2126, + "src": "19267:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49649,16 +49681,16 @@ "typeString": "uint32" } }, - "id": 2133, + "id": 2135, "nodeType": "ExpressionStatement", - "src": "19237:3:6" + "src": "19267:3:6" }, "nodeType": "ForStatement", - "src": "19203:84:6" + "src": "19233:84:6" }, { "expression": { - "id": 2144, + "id": 2146, "isConstant": false, "isLValue": false, "isPure": false, @@ -49666,28 +49698,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "19300:25:6", + "src": "19330:25:6", "subExpression": { "baseExpression": { - "id": 2141, + "id": 2143, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 513, - "src": "19307:12:6", + "src": "19337:12:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 2143, + "id": 2145, "indexExpression": { - "id": 2142, + "id": 2144, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "19320:4:6", + "referencedDeclaration": 2111, + "src": "19350:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -49698,7 +49730,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "19307:18:6", + "src": "19337:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" @@ -49709,9 +49741,9 @@ "typeString": "tuple()" } }, - "id": 2145, + "id": 2147, "nodeType": "ExpressionStatement", - "src": "19300:25:6" + "src": "19330:25:6" } ] }, @@ -49720,18 +49752,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2104, + "id": 2106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2102, + "id": 2104, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "19074:1:6", + "referencedDeclaration": 2101, + "src": "19104:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49740,38 +49772,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2103, + "id": 2105, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "19078:11:6", + "referencedDeclaration": 2035, + "src": "19108:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19074:15:6", + "src": "19104:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2147, + "id": 2149, "initializationExpression": { "assignments": [ - 2099 + 2101 ], "declarations": [ { "constant": false, - "id": 2099, + "id": 2101, "mutability": "mutable", "name": "i", - "nameLocation": "19067:1:6", + "nameLocation": "19097:1:6", "nodeType": "VariableDeclaration", - "scope": 2147, - "src": "19060:8:6", + "scope": 2149, + "src": "19090:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49779,10 +49811,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2098, + "id": 2100, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19060:6:6", + "src": "19090:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49791,17 +49823,17 @@ "visibility": "internal" } ], - "id": 2101, + "id": 2103, "initialValue": { "hexValue": "30", - "id": 2100, + "id": 2102, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19071:1:6", + "src": "19101:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -49809,11 +49841,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "19060:12:6" + "src": "19090:12:6" }, "loopExpression": { "expression": { - "id": 2106, + "id": 2108, "isConstant": false, "isLValue": false, "isPure": false, @@ -49821,14 +49853,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "19091:3:6", + "src": "19121:3:6", "subExpression": { - "id": 2105, + "id": 2107, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "19091:1:6", + "referencedDeclaration": 2101, + "src": "19121:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49839,27 +49871,27 @@ "typeString": "uint32" } }, - "id": 2107, + "id": 2109, "nodeType": "ExpressionStatement", - "src": "19091:3:6" + "src": "19121:3:6" }, "nodeType": "ForStatement", - "src": "19055:281:6" + "src": "19085:281:6" }, { "assignments": [ - 2149 + 2151 ], "declarations": [ { "constant": false, - "id": 2149, + "id": 2151, "mutability": "mutable", "name": "len", - "nameLocation": "19528:3:6", + "nameLocation": "19558:3:6", "nodeType": "VariableDeclaration", - "scope": 2196, - "src": "19521:10:6", + "scope": 2198, + "src": "19551:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -49867,10 +49899,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2148, + "id": 2150, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19521:6:6", + "src": "19551:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -49879,30 +49911,30 @@ "visibility": "internal" } ], - "id": 2155, + "id": 2157, "initialValue": { "arguments": [ { "expression": { - "id": 2152, + "id": 2154, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 507, - "src": "19541:7:6", + "src": "19571:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 2153, + "id": 2155, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "19541:14:6", + "src": "19571:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -49916,26 +49948,26 @@ "typeString": "uint256" } ], - "id": 2151, + "id": 2153, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "19534:6:6", + "src": "19564:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 2150, + "id": 2152, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19534:6:6", + "src": "19564:6:6", "typeDescriptions": {} } }, - "id": 2154, + "id": 2156, "isConstant": false, "isLValue": false, "isPure": false, @@ -49943,7 +49975,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19534:22:6", + "src": "19564:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -49951,57 +49983,57 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "19521:35:6" + "src": "19551:35:6" }, { "body": { - "id": 2177, + "id": 2179, "nodeType": "Block", - "src": "19609:91:6", + "src": "19639:91:6", "statements": [ { - "id": 2176, + "id": 2178, "nodeType": "UncheckedBlock", - "src": "19619:71:6", + "src": "19649:71:6", "statements": [ { "expression": { - "id": 2174, + "id": 2176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2166, + "id": 2168, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 507, - "src": "19642:7:6", + "src": "19672:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 2170, + "id": 2172, "indexExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2169, + "id": 2171, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2167, + "id": 2169, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2157, - "src": "19650:1:6", + "referencedDeclaration": 2159, + "src": "19680:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50010,18 +50042,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2168, + "id": 2170, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "19654:11:6", + "referencedDeclaration": 2035, + "src": "19684:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19650:15:6", + "src": "19680:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50032,7 +50064,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "19642:24:6", + "src": "19672:24:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -50042,25 +50074,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 2171, + "id": 2173, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 507, - "src": "19669:7:6", + "src": "19699:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 2173, + "id": 2175, "indexExpression": { - "id": 2172, + "id": 2174, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2157, - "src": "19677:1:6", + "referencedDeclaration": 2159, + "src": "19707:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50071,21 +50103,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "19669:10:6", + "src": "19699:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "19642:37:6", + "src": "19672:37:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2175, + "id": 2177, "nodeType": "ExpressionStatement", - "src": "19642:37:6" + "src": "19672:37:6" } ] } @@ -50096,18 +50128,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2162, + "id": 2164, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2160, + "id": 2162, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2157, - "src": "19595:1:6", + "referencedDeclaration": 2159, + "src": "19625:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50116,38 +50148,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2161, + "id": 2163, "name": "len", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2149, - "src": "19599:3:6", + "referencedDeclaration": 2151, + "src": "19629:3:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19595:7:6", + "src": "19625:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2178, + "id": 2180, "initializationExpression": { "assignments": [ - 2157 + 2159 ], "declarations": [ { "constant": false, - "id": 2157, + "id": 2159, "mutability": "mutable", "name": "i", - "nameLocation": "19578:1:6", + "nameLocation": "19608:1:6", "nodeType": "VariableDeclaration", - "scope": 2178, - "src": "19571:8:6", + "scope": 2180, + "src": "19601:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50155,10 +50187,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2156, + "id": 2158, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19571:6:6", + "src": "19601:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50167,25 +50199,25 @@ "visibility": "internal" } ], - "id": 2159, + "id": 2161, "initialValue": { - "id": 2158, + "id": 2160, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "19582:11:6", + "referencedDeclaration": 2035, + "src": "19612:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "19571:22:6" + "src": "19601:22:6" }, "loopExpression": { "expression": { - "id": 2164, + "id": 2166, "isConstant": false, "isLValue": false, "isPure": false, @@ -50193,14 +50225,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "19604:3:6", + "src": "19634:3:6", "subExpression": { - "id": 2163, + "id": 2165, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2157, - "src": "19604:1:6", + "referencedDeclaration": 2159, + "src": "19634:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50211,18 +50243,18 @@ "typeString": "uint32" } }, - "id": 2165, + "id": 2167, "nodeType": "ExpressionStatement", - "src": "19604:3:6" + "src": "19634:3:6" }, "nodeType": "ForStatement", - "src": "19566:134:6" + "src": "19596:134:6" }, { "body": { - "id": 2194, + "id": 2196, "nodeType": "Block", - "src": "19750:38:6", + "src": "19780:38:6", "statements": [ { "expression": { @@ -50230,31 +50262,31 @@ "expression": { "argumentTypes": [], "expression": { - "id": 2189, + "id": 2191, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 507, - "src": "19764:7:6", + "src": "19794:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 2191, + "id": 2193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pop", "nodeType": "MemberAccess", - "src": "19764:11:6", + "src": "19794:11:6", "typeDescriptions": { "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$", "typeString": "function (bytes32[] storage pointer)" } }, - "id": 2192, + "id": 2194, "isConstant": false, "isLValue": false, "isPure": false, @@ -50262,16 +50294,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19764:13:6", + "src": "19794:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2193, + "id": 2195, "nodeType": "ExpressionStatement", - "src": "19764:13:6" + "src": "19794:13:6" } ] }, @@ -50280,18 +50312,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2185, + "id": 2187, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2183, + "id": 2185, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2180, - "src": "19728:1:6", + "referencedDeclaration": 2182, + "src": "19758:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50300,38 +50332,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2184, + "id": 2186, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "19732:11:6", + "referencedDeclaration": 2035, + "src": "19762:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19728:15:6", + "src": "19758:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2195, + "id": 2197, "initializationExpression": { "assignments": [ - 2180 + 2182 ], "declarations": [ { "constant": false, - "id": 2180, + "id": 2182, "mutability": "mutable", "name": "i", - "nameLocation": "19721:1:6", + "nameLocation": "19751:1:6", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "19714:8:6", + "scope": 2197, + "src": "19744:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50339,10 +50371,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2179, + "id": 2181, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19714:6:6", + "src": "19744:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50351,17 +50383,17 @@ "visibility": "internal" } ], - "id": 2182, + "id": 2184, "initialValue": { "hexValue": "30", - "id": 2181, + "id": 2183, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19725:1:6", + "src": "19755:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -50369,11 +50401,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "19714:12:6" + "src": "19744:12:6" }, "loopExpression": { "expression": { - "id": 2187, + "id": 2189, "isConstant": false, "isLValue": false, "isPure": false, @@ -50381,14 +50413,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "19745:3:6", + "src": "19775:3:6", "subExpression": { - "id": 2186, + "id": 2188, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2180, - "src": "19745:1:6", + "referencedDeclaration": 2182, + "src": "19775:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50399,51 +50431,51 @@ "typeString": "uint32" } }, - "id": 2188, + "id": 2190, "nodeType": "ExpressionStatement", - "src": "19745:3:6" + "src": "19775:3:6" }, "nodeType": "ForStatement", - "src": "19709:79:6" + "src": "19739:79:6" } ] }, "documentation": { - "id": 2029, + "id": 2031, "nodeType": "StructuredDocumentation", - "src": "16960:444:6", + "src": "16990:444:6", "text": "Remove old commits from storage, where the commit's timestamp is older than block.timestamp - REVEAL_MAX_DELAY. The purpose is to remove dangling data from blockchain, and prevent commits grow unbounded. This is executed at commit time. The committer pays for the gas of this cleanup. Therefore, any attacker who intend to spam commits would be disincentivized. The attacker would not succeed in preventing any normal operation by the user." }, - "id": 2197, + "id": 2199, "implemented": true, "kind": "function", "modifiers": [], "name": "_cleanupCommits", - "nameLocation": "17418:15:6", + "nameLocation": "17448:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2030, + "id": 2032, "nodeType": "ParameterList", "parameters": [], - "src": "17433:2:6" + "src": "17463:2:6" }, "returnParameters": { - "id": 2031, + "id": 2033, "nodeType": "ParameterList", "parameters": [], - "src": "17445:0:6" + "src": "17475:0:6" }, - "scope": 2592, - "src": "17409:2529:6", + "scope": 2612, + "src": "17439:2529:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2214, + "id": 2216, "nodeType": "Block", - "src": "20021:79:6", + "src": "20051:79:6", "statements": [ { "expression": { @@ -50451,7 +50483,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2212, + "id": 2214, "isConstant": false, "isLValue": false, "isPure": false, @@ -50461,7 +50493,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2210, + "id": 2212, "isConstant": false, "isLValue": false, "isPure": false, @@ -50470,25 +50502,25 @@ "arguments": [ { "expression": { - "id": 2206, + "id": 2208, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "20045:5:6", + "src": "20075:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 2207, + "id": 2209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "20045:15:6", + "src": "20075:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -50502,26 +50534,26 @@ "typeString": "uint256" } ], - "id": 2205, + "id": 2207, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20038:6:6", + "src": "20068:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 2204, + "id": 2206, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "20038:6:6", + "src": "20068:6:6", "typeDescriptions": {} } }, - "id": 2208, + "id": 2210, "isConstant": false, "isLValue": false, "isPure": false, @@ -50529,7 +50561,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20038:23:6", + "src": "20068:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -50539,18 +50571,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2209, + "id": 2211, "name": "commitTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2199, - "src": "20064:10:6", + "referencedDeclaration": 2201, + "src": "20094:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "20038:36:6", + "src": "20068:36:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50559,50 +50591,50 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2211, + "id": 2213, "name": "REVEAL_MAX_DELAY", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, - "src": "20077:16:6", + "src": "20107:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "20038:55:6", + "src": "20068:55:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2203, - "id": 2213, + "functionReturnParameters": 2205, + "id": 2215, "nodeType": "Return", - "src": "20031:62:6" + "src": "20061:62:6" } ] }, - "id": 2215, + "id": 2217, "implemented": true, "kind": "function", "modifiers": [], "name": "_isRevealTimely", - "nameLocation": "19953:15:6", + "nameLocation": "19983:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2200, + "id": 2202, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2199, + "id": 2201, "mutability": "mutable", "name": "commitTime", - "nameLocation": "19976:10:6", + "nameLocation": "20006:10:6", "nodeType": "VariableDeclaration", - "scope": 2215, - "src": "19969:17:6", + "scope": 2217, + "src": "19999:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50610,10 +50642,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2198, + "id": 2200, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19969:6:6", + "src": "19999:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50622,21 +50654,21 @@ "visibility": "internal" } ], - "src": "19968:19:6" + "src": "19998:19:6" }, "returnParameters": { - "id": 2203, + "id": 2205, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2202, + "id": 2204, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2215, - "src": "20011:4:6", + "scope": 2217, + "src": "20041:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50644,10 +50676,10 @@ "typeString": "bool" }, "typeName": { - "id": 2201, + "id": 2203, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "20011:4:6", + "src": "20041:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -50656,34 +50688,34 @@ "visibility": "internal" } ], - "src": "20010:6:6" + "src": "20040:6:6" }, - "scope": 2592, - "src": "19944:156:6", + "scope": 2612, + "src": "19974:156:6", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2358, + "id": 2369, "nodeType": "Block", - "src": "20515:1499:6", + "src": "20574:1587:6", "statements": [ { "assignments": [ - 2230 + 2235 ], "declarations": [ { "constant": false, - "id": 2230, + "id": 2235, "mutability": "mutable", "name": "index", - "nameLocation": "20532:5:6", + "nameLocation": "20591:5:6", "nodeType": "VariableDeclaration", - "scope": 2358, - "src": "20525:12:6", + "scope": 2369, + "src": "20584:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50691,10 +50723,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2229, + "id": 2234, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "20525:6:6", + "src": "20584:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50703,24 +50735,24 @@ "visibility": "internal" } ], - "id": 2234, + "id": 2239, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2233, + "id": 2238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2231, + "id": 2236, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2220, - "src": "20540:14:6", + "referencedDeclaration": 2222, + "src": "20599:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50729,40 +50761,40 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2232, + "id": 2237, "name": "maxOperationsPerInterval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 447, - "src": "20557:24:6", + "src": "20616:24:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "20540:41:6", + "src": "20599:41:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "20525:56:6" + "src": "20584:56:6" }, { "assignments": [ - 2236 + 2241 ], "declarations": [ { "constant": false, - "id": 2236, + "id": 2241, "mutability": "mutable", "name": "nonce", - "nameLocation": "20597:5:6", + "nameLocation": "20656:5:6", "nodeType": "VariableDeclaration", - "scope": 2358, - "src": "20591:11:6", + "scope": 2369, + "src": "20650:11:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -50770,10 +50802,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2235, + "id": 2240, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "20591:5:6", + "src": "20650:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -50782,7 +50814,7 @@ "visibility": "internal" } ], - "id": 2243, + "id": 2248, "initialValue": { "arguments": [ { @@ -50790,18 +50822,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2241, + "id": 2246, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2239, + "id": 2244, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2220, - "src": "20611:14:6", + "referencedDeclaration": 2222, + "src": "20670:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50810,18 +50842,18 @@ "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { - "id": 2240, + "id": 2245, "name": "maxOperationsPerInterval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 447, - "src": "20628:24:6", + "src": "20687:24:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "20611:41:6", + "src": "20670:41:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -50835,26 +50867,26 @@ "typeString": "uint32" } ], - "id": 2238, + "id": 2243, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20605:5:6", + "src": "20664:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 2237, + "id": 2242, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "20605:5:6", + "src": "20664:5:6", "typeDescriptions": {} } }, - "id": 2242, + "id": 2247, "isConstant": false, "isLValue": false, "isPure": false, @@ -50862,7 +50894,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20605:48:6", + "src": "20664:48:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -50870,22 +50902,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "20591:62:6" + "src": "20650:62:6" }, { "assignments": [ - 2248 + 2253 ], "declarations": [ { "constant": false, - "id": 2248, + "id": 2253, "mutability": "mutable", "name": "cc", - "nameLocation": "20680:2:6", + "nameLocation": "20739:2:6", "nodeType": "VariableDeclaration", - "scope": 2358, - "src": "20663:19:6", + "scope": 2369, + "src": "20722:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -50894,25 +50926,25 @@ }, "typeName": { "baseType": { - "id": 2246, + "id": 2251, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2245, + "id": 2250, "name": "Commit", "nodeType": "IdentifierPath", "referencedDeclaration": 504, - "src": "20663:6:6" + "src": "20722:6:6" }, "referencedDeclaration": 504, - "src": "20663:6:6", + "src": "20722:6:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 2247, + "id": 2252, "nodeType": "ArrayTypeName", - "src": "20663:8:6", + "src": "20722:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" @@ -50921,28 +50953,28 @@ "visibility": "internal" } ], - "id": 2252, + "id": 2257, "initialValue": { "baseExpression": { - "id": 2249, + "id": 2254, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 513, - "src": "20685:12:6", + "src": "20744:12:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 2251, + "id": 2256, "indexExpression": { - "id": 2250, + "id": 2255, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2218, - "src": "20698:4:6", + "referencedDeclaration": 2220, + "src": "20757:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -50953,14 +50985,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20685:18:6", + "src": "20744:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "20663:40:6" + "src": "20722:40:6" }, { "expression": { @@ -50970,32 +51002,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2257, + "id": 2262, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2254, + "id": 2259, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "20721:2:6", + "referencedDeclaration": 2253, + "src": "20780:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2255, + "id": 2260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "20721:9:6", + "src": "20780:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -51005,21 +51037,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2256, + "id": 2261, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20733:1:6", + "src": "20792:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "20721:13:6", + "src": "20780:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -51027,14 +51059,14 @@ }, { "hexValue": "4e6f20636f6d6d697420666f756e64", - "id": 2258, + "id": 2263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "20736:17:6", + "src": "20795:17:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_38f47be26bf822ff597a5cbffa2774ecae1ceaa169f734b7db0a07fb62c9547a", "typeString": "literal_string \"No commit found\"" @@ -51053,7 +51085,7 @@ "typeString": "literal_string \"No commit found\"" } ], - "id": 2253, + "id": 2258, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -51061,13 +51093,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "20713:7:6", + "src": "20772:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2259, + "id": 2264, "isConstant": false, "isLValue": false, "isPure": false, @@ -51075,37 +51107,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20713:41:6", + "src": "20772:41:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2260, + "id": 2265, "nodeType": "ExpressionStatement", - "src": "20713:41:6" + "src": "20772:41:6" }, { "body": { - "id": 2352, + "id": 2363, "nodeType": "Block", - "src": "20803:1170:6", + "src": "20862:1258:6", "statements": [ { "assignments": [ - 2274 + 2279 ], "declarations": [ { "constant": false, - "id": 2274, + "id": 2279, "mutability": "mutable", "name": "c", - "nameLocation": "20832:1:6", + "nameLocation": "20891:1:6", "nodeType": "VariableDeclaration", - "scope": 2352, - "src": "20817:16:6", + "scope": 2363, + "src": "20876:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -51113,17 +51145,17 @@ "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 2273, + "id": 2278, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2272, + "id": 2277, "name": "Commit", "nodeType": "IdentifierPath", "referencedDeclaration": 504, - "src": "20817:6:6" + "src": "20876:6:6" }, "referencedDeclaration": 504, - "src": "20817:6:6", + "src": "20876:6:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" @@ -51132,28 +51164,28 @@ "visibility": "internal" } ], - "id": 2278, + "id": 2283, "initialValue": { "baseExpression": { - "id": 2275, + "id": 2280, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "20836:2:6", + "referencedDeclaration": 2253, + "src": "20895:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2277, + "id": 2282, "indexExpression": { - "id": 2276, + "id": 2281, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "20839:1:6", + "referencedDeclaration": 2267, + "src": "20898:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -51164,29 +51196,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20836:5:6", + "src": "20895:5:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "20817:24:6" + "src": "20876:24:6" }, { "assignments": [ - 2280 + 2285 ], "declarations": [ { "constant": false, - "id": 2280, + "id": 2285, "mutability": "mutable", "name": "expectedVerificationHash", - "nameLocation": "20863:24:6", + "nameLocation": "20922:24:6", "nodeType": "VariableDeclaration", - "scope": 2352, - "src": "20855:32:6", + "scope": 2363, + "src": "20914:32:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -51194,10 +51226,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2279, + "id": 2284, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "20855:7:6", + "src": "20914:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -51206,25 +51238,25 @@ "visibility": "internal" } ], - "id": 2290, + "id": 2295, "initialValue": { "arguments": [ { "arguments": [ { "expression": { - "id": 2285, + "id": 2290, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2274, - "src": "20913:1:6", + "referencedDeclaration": 2279, + "src": "20972:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2286, + "id": 2291, "isConstant": false, "isLValue": true, "isPure": false, @@ -51232,19 +51264,19 @@ "memberName": "paramsHash", "nodeType": "MemberAccess", "referencedDeclaration": 497, - "src": "20913:12:6", + "src": "20972:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 2287, + "id": 2292, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2224, - "src": "20927:4:6", + "referencedDeclaration": 2226, + "src": "20986:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -51263,39 +51295,39 @@ } ], "expression": { - "id": 2283, + "id": 2288, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20900:5:6", + "src": "20959:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2282, + "id": 2287, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "20900:5:6", + "src": "20959:5:6", "typeDescriptions": {} } }, - "id": 2284, + "id": 2289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "20900:12:6", + "src": "20959:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2288, + "id": 2293, "isConstant": false, "isLValue": false, "isPure": false, @@ -51303,7 +51335,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20900:32:6", + "src": "20959:32:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -51318,18 +51350,18 @@ "typeString": "bytes memory" } ], - "id": 2281, + "id": 2286, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "20890:9:6", + "src": "20949:9:6", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2289, + "id": 2294, "isConstant": false, "isLValue": false, "isPure": false, @@ -51337,7 +51369,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20890:43:6", + "src": "20949:43:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -51345,7 +51377,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "20855:78:6" + "src": "20914:78:6" }, { "condition": { @@ -51353,25 +51385,25 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 2294, + "id": 2299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2291, + "id": 2296, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2274, - "src": "20951:1:6", + "referencedDeclaration": 2279, + "src": "21010:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2292, + "id": 2297, "isConstant": false, "isLValue": true, "isPure": false, @@ -51379,7 +51411,7 @@ "memberName": "verificationHash", "nodeType": "MemberAccess", "referencedDeclaration": 499, - "src": "20951:18:6", + "src": "21010:18:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -51388,35 +51420,35 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 2293, + "id": 2298, "name": "expectedVerificationHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2280, - "src": "20973:24:6", + "referencedDeclaration": 2285, + "src": "21032:24:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "20951:46:6", + "src": "21010:46:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2297, + "id": 2302, "nodeType": "IfStatement", - "src": "20947:134:6", + "src": "21006:134:6", "trueBody": { - "id": 2296, + "id": 2301, "nodeType": "Block", - "src": "20999:82:6", + "src": "21058:82:6", "statements": [ { - "id": 2295, + "id": 2300, "nodeType": "Continue", - "src": "21058:8:6" + "src": "21117:8:6" } ] } @@ -51429,25 +51461,25 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 2302, + "id": 2307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2299, + "id": 2304, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2274, - "src": "21102:1:6", + "referencedDeclaration": 2279, + "src": "21161:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2300, + "id": 2305, "isConstant": false, "isLValue": true, "isPure": false, @@ -51455,7 +51487,7 @@ "memberName": "paramsHash", "nodeType": "MemberAccess", "referencedDeclaration": 497, - "src": "21102:12:6", + "src": "21161:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -51464,18 +51496,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 2301, + "id": 2306, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2222, - "src": "21118:10:6", + "referencedDeclaration": 2224, + "src": "21177:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "21102:26:6", + "src": "21161:26:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -51483,14 +51515,14 @@ }, { "hexValue": "506172616d657465722068617368206d69736d61746368", - "id": 2303, + "id": 2308, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21130:25:6", + "src": "21189:25:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3430d3063c70bc84041a3bb75a9010a8e7685d878f7521f09ab01e30ea2f9f24", "typeString": "literal_string \"Parameter hash mismatch\"" @@ -51509,7 +51541,7 @@ "typeString": "literal_string \"Parameter hash mismatch\"" } ], - "id": 2298, + "id": 2303, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -51517,13 +51549,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "21094:7:6", + "src": "21153:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2304, + "id": 2309, "isConstant": false, "isLValue": false, "isPure": false, @@ -51531,432 +51563,501 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21094:62:6", + "src": "21153:62:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2305, + "id": 2310, "nodeType": "ExpressionStatement", - "src": "21094:62:6" + "src": "21153:62:6" }, { - "assignments": [ - 2307 - ], - "declarations": [ - { - "constant": false, - "id": 2307, - "mutability": "mutable", - "name": "counter", - "nameLocation": "21177:7:6", - "nodeType": "VariableDeclaration", - "scope": 2352, - "src": "21170:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2306, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "21170:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 2314, - "initialValue": { + "condition": { "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" }, - "id": 2313, + "id": 2314, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, "id": 2311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 2308, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2274, - "src": "21187:1:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", - "typeString": "struct ONEWallet.Commit storage pointer" - } - }, - "id": 2309, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 501, - "src": "21187:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 2310, - "name": "interval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 441, - "src": "21201:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "21187:22:6", + "name": "operationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "21233:13:6", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" } }, "nodeType": "BinaryOperation", - "operator": "-", + "operator": "!=", "rightExpression": { - "id": 2312, - "name": "t0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "21212:2:6", + "expression": { + "id": 2312, + "name": "OperationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 493, + "src": "21250:13:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", + "typeString": "type(enum ONEWallet.OperationType)" + } + }, + "id": 2313, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "RECOVER", + "nodeType": "MemberAccess", + "referencedDeclaration": 491, + "src": "21250:21:6", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" } }, - "src": "21187:27:6", + "src": "21233:38:6", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "nodeType": "VariableDeclarationStatement", - "src": "21170:44:6" - }, - { - "expression": { - "arguments": [ + "id": 2345, + "nodeType": "IfStatement", + "src": "21229:315:6", + "trueBody": { + "id": 2344, + "nodeType": "Block", + "src": "21273:271:6", + "statements": [ { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2316, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2307, - "src": "21236:7:6", - "typeDescriptions": { + "assignments": [ + 2316 + ], + "declarations": [ + { + "constant": false, + "id": 2316, + "mutability": "mutable", + "name": "counter", + "nameLocation": "21298:7:6", + "nodeType": "VariableDeclaration", + "scope": 2344, + "src": "21291:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2315, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "21291:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 2323, + "initialValue": { + "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 2317, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2230, - "src": "21247:5:6", + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2317, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "21308:1:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", + "typeString": "struct ONEWallet.Commit storage pointer" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": 501, + "src": "21308:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2319, + "name": "interval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 441, + "src": "21322:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "21308:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2321, + "name": "t0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 443, + "src": "21333:2:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "21308:27:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "21236:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "nodeType": "VariableDeclarationStatement", + "src": "21291:44:6" }, { - "hexValue": "496e646578202d2074696d657374616d70206d69736d61746368", - "id": 2319, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21254:28:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80", - "typeString": "literal_string \"Index - timestamp mismatch\"" - }, - "value": "Index - timestamp mismatch" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80", - "typeString": "literal_string \"Index - timestamp mismatch\"" - } - ], - "id": 2315, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "21228:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21228:55:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2321, - "nodeType": "ExpressionStatement", - "src": "21228:55:6" - }, - { - "assignments": [ - 2323 - ], - "declarations": [ - { - "constant": false, - "id": 2323, - "mutability": "mutable", - "name": "expectedNonce", - "nameLocation": "21303:13:6", - "nodeType": "VariableDeclaration", - "scope": 2352, - "src": "21297:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2322, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "21297:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 2327, - "initialValue": { - "baseExpression": { - "id": 2324, - "name": "nonces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "21319:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", - "typeString": "mapping(uint32 => uint8)" - } - }, - "id": 2326, - "indexExpression": { - "id": 2325, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2307, - "src": "21326:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21319:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21297:37:6" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2325, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "21361:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2326, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2235, + "src": "21372:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "21361:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e646578202d2074696d657374616d70206d69736d61746368", + "id": 2328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21379:28:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80", + "typeString": "literal_string \"Index - timestamp mismatch\"" + }, + "value": "Index - timestamp mismatch" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80", + "typeString": "literal_string \"Index - timestamp mismatch\"" + } + ], + "id": 2324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "21353:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, "id": 2329, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "21356:5:6", + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21353:55:6", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 2330, - "name": "expectedNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2323, - "src": "21365:13:6", + "id": 2330, + "nodeType": "ExpressionStatement", + "src": "21353:55:6" + }, + { + "assignments": [ + 2332 + ], + "declarations": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "expectedNonce", + "nameLocation": "21432:13:6", + "nodeType": "VariableDeclaration", + "scope": 2344, + "src": "21426:19:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2331, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "21426:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 2336, + "initialValue": { + "baseExpression": { + "id": 2333, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 463, + "src": "21448:6:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", + "typeString": "mapping(uint32 => uint8)" + } + }, + "id": 2335, + "indexExpression": { + "id": 2334, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "21455:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21448:15:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "21356:22:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } + "nodeType": "VariableDeclarationStatement", + "src": "21426:37:6" }, { - "hexValue": "4e6f6e636520746f6f206c6f77", - "id": 2332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21380:15:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0d3a5f34c29e81aa7bbfe59ba3e3db3006ac807af6a54ad3cac7463abb5d83b0", - "typeString": "literal_string \"Nonce too low\"" - }, - "value": "Nonce too low" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2338, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2241, + "src": "21489:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 2339, + "name": "expectedNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2332, + "src": "21498:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "21489:22:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f6e636520746f6f206c6f77", + "id": 2341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21513:15:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0d3a5f34c29e81aa7bbfe59ba3e3db3006ac807af6a54ad3cac7463abb5d83b0", + "typeString": "literal_string \"Nonce too low\"" + }, + "value": "Nonce too low" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0d3a5f34c29e81aa7bbfe59ba3e3db3006ac807af6a54ad3cac7463abb5d83b0", + "typeString": "literal_string \"Nonce too low\"" + } + ], + "id": 2337, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "21481:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21481:48:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } }, - { - "typeIdentifier": "t_stringliteral_0d3a5f34c29e81aa7bbfe59ba3e3db3006ac807af6a54ad3cac7463abb5d83b0", - "typeString": "literal_string \"Nonce too low\"" - } - ], - "id": 2328, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "21348:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" + "id": 2343, + "nodeType": "ExpressionStatement", + "src": "21481:48:6" } - }, - "id": 2333, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21348:48:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2334, - "nodeType": "ExpressionStatement", - "src": "21348:48:6" + ] + } }, { "expression": { "arguments": [ { - "id": 2338, + "id": 2349, "isConstant": false, "isLValue": false, "isPure": false, @@ -51964,21 +52065,21 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "21418:12:6", + "src": "21565:12:6", "subExpression": { "expression": { - "id": 2336, + "id": 2347, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2274, - "src": "21419:1:6", + "referencedDeclaration": 2279, + "src": "21566:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2337, + "id": 2348, "isConstant": false, "isLValue": true, "isPure": false, @@ -51986,7 +52087,7 @@ "memberName": "completed", "nodeType": "MemberAccess", "referencedDeclaration": 503, - "src": "21419:11:6", + "src": "21566:11:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -51999,14 +52100,14 @@ }, { "hexValue": "436f6d6d697420616c726561647920636f6d706c65746564", - "id": 2339, + "id": 2350, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21432:26:6", + "src": "21579:26:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_2d6af051cc9bdd806c60b20e274721a89fb9a7025afbe00dde07d3201c4068b2", "typeString": "literal_string \"Commit already completed\"" @@ -52025,7 +52126,7 @@ "typeString": "literal_string \"Commit already completed\"" } ], - "id": 2335, + "id": 2346, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -52033,13 +52134,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "21410:7:6", + "src": "21557:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2340, + "id": 2351, "isConstant": false, "isLValue": false, "isPure": false, @@ -52047,16 +52148,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21410:49:6", + "src": "21557:49:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2341, + "id": 2352, "nodeType": "ExpressionStatement", - "src": "21410:49:6" + "src": "21557:49:6" }, { "expression": { @@ -52065,18 +52166,18 @@ "arguments": [ { "expression": { - "id": 2344, + "id": 2355, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2274, - "src": "21908:1:6", + "referencedDeclaration": 2279, + "src": "22055:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2345, + "id": 2356, "isConstant": false, "isLValue": true, "isPure": false, @@ -52084,7 +52185,7 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": 501, - "src": "21908:11:6", + "src": "22055:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52098,18 +52199,18 @@ "typeString": "uint32" } ], - "id": 2343, + "id": 2354, "name": "_isRevealTimely", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2215, - "src": "21892:15:6", + "referencedDeclaration": 2217, + "src": "22039:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_bool_$", "typeString": "function (uint32) view returns (bool)" } }, - "id": 2346, + "id": 2357, "isConstant": false, "isLValue": false, "isPure": false, @@ -52117,7 +52218,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21892:28:6", + "src": "22039:28:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -52126,14 +52227,14 @@ }, { "hexValue": "52657665616c20746f6f206c617465", - "id": 2347, + "id": 2358, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21922:17:6", + "src": "22069:17:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_286e638d23bc87ce733fb0202708f485eb6091553feef3d943a83966c37e7639", "typeString": "literal_string \"Reveal too late\"" @@ -52152,7 +52253,7 @@ "typeString": "literal_string \"Reveal too late\"" } ], - "id": 2342, + "id": 2353, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -52160,13 +52261,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "21884:7:6", + "src": "22031:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2348, + "id": 2359, "isConstant": false, "isLValue": false, "isPure": false, @@ -52174,34 +52275,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21884:56:6", + "src": "22031:56:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2349, + "id": 2360, "nodeType": "ExpressionStatement", - "src": "21884:56:6" + "src": "22031:56:6" }, { "expression": { - "id": 2350, + "id": 2361, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "21961:1:6", + "referencedDeclaration": 2267, + "src": "22108:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "functionReturnParameters": 2228, - "id": 2351, + "functionReturnParameters": 2233, + "id": 2362, "nodeType": "Return", - "src": "21954:8:6" + "src": "22101:8:6" } ] }, @@ -52210,18 +52311,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2268, + "id": 2273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2265, + "id": 2270, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "20783:1:6", + "referencedDeclaration": 2267, + "src": "20842:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52231,51 +52332,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2266, + "id": 2271, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "20787:2:6", + "referencedDeclaration": 2253, + "src": "20846:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2267, + "id": 2272, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "20787:9:6", + "src": "20846:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "20783:13:6", + "src": "20842:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2353, + "id": 2364, "initializationExpression": { "assignments": [ - 2262 + 2267 ], "declarations": [ { "constant": false, - "id": 2262, + "id": 2267, "mutability": "mutable", "name": "i", - "nameLocation": "20776:1:6", + "nameLocation": "20835:1:6", "nodeType": "VariableDeclaration", - "scope": 2353, - "src": "20769:8:6", + "scope": 2364, + "src": "20828:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -52283,10 +52384,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2261, + "id": 2266, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "20769:6:6", + "src": "20828:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52295,17 +52396,17 @@ "visibility": "internal" } ], - "id": 2264, + "id": 2269, "initialValue": { "hexValue": "30", - "id": 2263, + "id": 2268, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20780:1:6", + "src": "20839:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -52313,11 +52414,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "20769:12:6" + "src": "20828:12:6" }, "loopExpression": { "expression": { - "id": 2270, + "id": 2275, "isConstant": false, "isLValue": false, "isPure": false, @@ -52325,14 +52426,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "20798:3:6", + "src": "20857:3:6", "subExpression": { - "id": 2269, + "id": 2274, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "20798:1:6", + "referencedDeclaration": 2267, + "src": "20857:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52343,26 +52444,26 @@ "typeString": "uint32" } }, - "id": 2271, + "id": 2276, "nodeType": "ExpressionStatement", - "src": "20798:3:6" + "src": "20857:3:6" }, "nodeType": "ForStatement", - "src": "20764:1209:6" + "src": "20823:1297:6" }, { "expression": { "arguments": [ { "hexValue": "4e6f2076616c696420636f6d6d6974", - "id": 2355, + "id": 2366, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21989:17:6", + "src": "22136:17:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3972966c6b890cd04bd250ec8fd05d1950759334a3d8fa4e9bb3d0693e9952d", "typeString": "literal_string \"No valid commit\"" @@ -52377,7 +52478,7 @@ "typeString": "literal_string \"No valid commit\"" } ], - "id": 2354, + "id": 2365, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -52385,13 +52486,13 @@ 4294967277 ], "referencedDeclaration": 4294967277, - "src": "21982:6:6", + "src": "22129:6:6", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 2356, + "id": 2367, "isConstant": false, "isLValue": false, "isPure": false, @@ -52399,45 +52500,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21982:25:6", + "src": "22129:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2357, + "id": 2368, "nodeType": "ExpressionStatement", - "src": "21982:25:6" + "src": "22129:25:6" } ] }, "documentation": { - "id": 2216, + "id": 2218, "nodeType": "StructuredDocumentation", - "src": "20106:275:6", + "src": "20136:275:6", "text": "This function verifies that the first valid entry with respect to the given `eotp` in `commitLocker[hash]` matches the provided `paramsHash` and `verificationHash`. An entry is valid with respect to `eotp` iff `h3(entry.paramsHash . eotp)` equals `entry.verificationHash`" }, - "id": 2359, + "id": 2370, "implemented": true, "kind": "function", "modifiers": [], "name": "_verifyReveal", - "nameLocation": "20395:13:6", + "nameLocation": "20425:13:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2225, + "id": 2230, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2218, + "id": 2220, "mutability": "mutable", "name": "hash", - "nameLocation": "20417:4:6", + "nameLocation": "20447:4:6", "nodeType": "VariableDeclaration", - "scope": 2359, - "src": "20409:12:6", + "scope": 2370, + "src": "20439:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -52445,10 +52546,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2217, + "id": 2219, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "20409:7:6", + "src": "20439:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -52458,13 +52559,13 @@ }, { "constant": false, - "id": 2220, + "id": 2222, "mutability": "mutable", "name": "indexWithNonce", - "nameLocation": "20430:14:6", + "nameLocation": "20460:14:6", "nodeType": "VariableDeclaration", - "scope": 2359, - "src": "20423:21:6", + "scope": 2370, + "src": "20453:21:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -52472,10 +52573,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2219, + "id": 2221, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "20423:6:6", + "src": "20453:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52485,13 +52586,13 @@ }, { "constant": false, - "id": 2222, + "id": 2224, "mutability": "mutable", "name": "paramsHash", - "nameLocation": "20454:10:6", + "nameLocation": "20484:10:6", "nodeType": "VariableDeclaration", - "scope": 2359, - "src": "20446:18:6", + "scope": 2370, + "src": "20476:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -52499,10 +52600,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2221, + "id": 2223, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "20446:7:6", + "src": "20476:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -52512,13 +52613,13 @@ }, { "constant": false, - "id": 2224, + "id": 2226, "mutability": "mutable", "name": "eotp", - "nameLocation": "20474:4:6", + "nameLocation": "20504:4:6", "nodeType": "VariableDeclaration", - "scope": 2359, - "src": "20466:12:6", + "scope": 2370, + "src": "20496:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -52526,33 +52627,67 @@ "typeString": "bytes32" }, "typeName": { - "id": 2223, + "id": 2225, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "20466:7:6", + "src": "20496:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" + }, + { + "constant": false, + "id": 2229, + "mutability": "mutable", + "name": "operationType", + "nameLocation": "20524:13:6", + "nodeType": "VariableDeclaration", + "scope": 2370, + "src": "20510:27:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + }, + "typeName": { + "id": 2228, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2227, + "name": "OperationType", + "nodeType": "IdentifierPath", + "referencedDeclaration": 493, + "src": "20510:13:6" + }, + "referencedDeclaration": 493, + "src": "20510:13:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } + }, + "visibility": "internal" } ], - "src": "20408:71:6" + "src": "20438:100:6" }, "returnParameters": { - "id": 2228, + "id": 2233, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2227, + "id": 2232, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2359, - "src": "20503:6:6", + "scope": 2370, + "src": "20562:6:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -52560,10 +52695,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2226, + "id": 2231, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "20503:6:6", + "src": "20562:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52572,34 +52707,34 @@ "visibility": "internal" } ], - "src": "20502:8:6" + "src": "20561:8:6" }, - "scope": 2592, - "src": "20386:1628:6", + "scope": 2612, + "src": "20416:1745:6", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2431, + "id": 2451, "nodeType": "Block", - "src": "22094:464:6", + "src": "22270:511:6", "statements": [ { "assignments": [ - 2370 + 2384 ], "declarations": [ { "constant": false, - "id": 2370, + "id": 2384, "mutability": "mutable", "name": "cc", - "nameLocation": "22121:2:6", + "nameLocation": "22297:2:6", "nodeType": "VariableDeclaration", - "scope": 2431, - "src": "22104:19:6", + "scope": 2451, + "src": "22280:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -52608,25 +52743,25 @@ }, "typeName": { "baseType": { - "id": 2368, + "id": 2382, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2367, + "id": 2381, "name": "Commit", "nodeType": "IdentifierPath", "referencedDeclaration": 504, - "src": "22104:6:6" + "src": "22280:6:6" }, "referencedDeclaration": 504, - "src": "22104:6:6", + "src": "22280:6:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 2369, + "id": 2383, "nodeType": "ArrayTypeName", - "src": "22104:8:6", + "src": "22280:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" @@ -52635,28 +52770,28 @@ "visibility": "internal" } ], - "id": 2374, + "id": 2388, "initialValue": { "baseExpression": { - "id": 2371, + "id": 2385, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 513, - "src": "22126:12:6", + "src": "22302:12:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 2373, + "id": 2387, "indexExpression": { - "id": 2372, + "id": 2386, "name": "commitHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2361, - "src": "22139:10:6", + "referencedDeclaration": 2372, + "src": "22315:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -52667,14 +52802,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "22126:24:6", + "src": "22302:24:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "22104:46:6" + "src": "22280:46:6" }, { "expression": { @@ -52684,32 +52819,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2379, + "id": 2393, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2376, + "id": 2390, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2370, - "src": "22168:2:6", + "referencedDeclaration": 2384, + "src": "22344:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2377, + "id": 2391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "22168:9:6", + "src": "22344:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -52719,21 +52854,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2378, + "id": 2392, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "22180:1:6", + "src": "22356:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "22168:13:6", + "src": "22344:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -52741,14 +52876,14 @@ }, { "hexValue": "496e76616c696420636f6d6d69742068617368", - "id": 2380, + "id": 2394, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "22183:21:6", + "src": "22359:21:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_8a9c0db4284cd81d8eaef3d877f21bcccab643ae503f9d63f7eb3ad5aacbe749", "typeString": "literal_string \"Invalid commit hash\"" @@ -52767,7 +52902,7 @@ "typeString": "literal_string \"Invalid commit hash\"" } ], - "id": 2375, + "id": 2389, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -52775,13 +52910,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "22160:7:6", + "src": "22336:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2381, + "id": 2395, "isConstant": false, "isLValue": false, "isPure": false, @@ -52789,16 +52924,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "22160:45:6", + "src": "22336:45:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2382, + "id": 2396, "nodeType": "ExpressionStatement", - "src": "22160:45:6" + "src": "22336:45:6" }, { "expression": { @@ -52808,32 +52943,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2387, + "id": 2401, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2384, + "id": 2398, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2370, - "src": "22223:2:6", + "referencedDeclaration": 2384, + "src": "22399:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2385, + "id": 2399, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "22223:9:6", + "src": "22399:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -52842,18 +52977,18 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 2386, + "id": 2400, "name": "commitIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "22235:11:6", + "referencedDeclaration": 2374, + "src": "22411:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22223:23:6", + "src": "22399:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -52861,14 +52996,14 @@ }, { "hexValue": "496e76616c696420636f6d6d6974496e646578", - "id": 2388, + "id": 2402, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "22248:21:6", + "src": "22424:21:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_dd8f27f99c8575d947c48310b46d36796c8df82285fc83fecd33510610055413", "typeString": "literal_string \"Invalid commitIndex\"" @@ -52887,7 +53022,7 @@ "typeString": "literal_string \"Invalid commitIndex\"" } ], - "id": 2383, + "id": 2397, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -52895,13 +53030,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "22215:7:6", + "src": "22391:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2389, + "id": 2403, "isConstant": false, "isLValue": false, "isPure": false, @@ -52909,31 +53044,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "22215:55:6", + "src": "22391:55:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2390, + "id": 2404, "nodeType": "ExpressionStatement", - "src": "22215:55:6" + "src": "22391:55:6" }, { "assignments": [ - 2393 + 2407 ], "declarations": [ { "constant": false, - "id": 2393, + "id": 2407, "mutability": "mutable", "name": "c", - "nameLocation": "22295:1:6", + "nameLocation": "22471:1:6", "nodeType": "VariableDeclaration", - "scope": 2431, - "src": "22280:16:6", + "scope": 2451, + "src": "22456:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -52941,17 +53076,17 @@ "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 2392, + "id": 2406, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2391, + "id": 2405, "name": "Commit", "nodeType": "IdentifierPath", "referencedDeclaration": 504, - "src": "22280:6:6" + "src": "22456:6:6" }, "referencedDeclaration": 504, - "src": "22280:6:6", + "src": "22456:6:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" @@ -52960,28 +53095,28 @@ "visibility": "internal" } ], - "id": 2397, + "id": 2411, "initialValue": { "baseExpression": { - "id": 2394, + "id": 2408, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2370, - "src": "22299:2:6", + "referencedDeclaration": 2384, + "src": "22475:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2396, + "id": 2410, "indexExpression": { - "id": 2395, + "id": 2409, "name": "commitIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "22302:11:6", + "referencedDeclaration": 2374, + "src": "22478:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -52992,14 +53127,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "22299:15:6", + "src": "22475:15:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "22280:34:6" + "src": "22456:34:6" }, { "expression": { @@ -53009,25 +53144,25 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2402, + "id": 2416, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2399, + "id": 2413, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2393, - "src": "22332:1:6", + "referencedDeclaration": 2407, + "src": "22508:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2400, + "id": 2414, "isConstant": false, "isLValue": true, "isPure": false, @@ -53035,7 +53170,7 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": 501, - "src": "22332:11:6", + "src": "22508:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -53045,290 +53180,69 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2401, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "number", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22346:1:6", - "typeDescriptions": { - "typeIdentifier": "t_rational_0_by_1", - "typeString": "int_const 0" - }, - "value": "0" - }, - "src": "22332:15:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "496e76616c696420636f6d6d69742074696d657374616d70", - "id": 2403, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "22349:26:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_791866c3f9c9c03c601447bf48dd4e0bd3f849759626f2144adccf6e77c6e64d", - "typeString": "literal_string \"Invalid commit timestamp\"" - }, - "value": "Invalid commit timestamp" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_791866c3f9c9c03c601447bf48dd4e0bd3f849759626f2144adccf6e77c6e64d", - "typeString": "literal_string \"Invalid commit timestamp\"" - } - ], - "id": 2398, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "22324:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2404, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22324:52:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2405, - "nodeType": "ExpressionStatement", - "src": "22324:52:6" - }, - { - "assignments": [ - 2407 - ], - "declarations": [ - { - "constant": false, - "id": 2407, - "mutability": "mutable", - "name": "index", - "nameLocation": "22422:5:6", - "nodeType": "VariableDeclaration", - "scope": 2431, - "src": "22415:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2406, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "22415:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 2417, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2416, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2414, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "arguments": [ - { - "expression": { - "id": 2410, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2393, - "src": "22437:1:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", - "typeString": "struct ONEWallet.Commit storage pointer" - } - }, - "id": 2411, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 501, - "src": "22437:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 2409, + "id": 2415, "isConstant": false, "isLValue": false, - "isPure": true, - "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22430:6:6", - "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 2408, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "22430:6:6", - "typeDescriptions": {} - } - }, - "id": 2412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22430:19:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 2413, - "name": "interval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 441, - "src": "22452:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "22430:30:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 2415, - "name": "t0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "22463:2:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "22430:35:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22415:50:6" - }, - { - "expression": { - "arguments": [ - { - "id": 2419, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "22491:5:6", + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22522:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "22508:15:6", "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_bool", + "typeString": "bool" } + }, + { + "hexValue": "496e76616c696420636f6d6d69742074696d657374616d70", + "id": 2417, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22525:26:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_791866c3f9c9c03c601447bf48dd4e0bd3f849759626f2144adccf6e77c6e64d", + "typeString": "literal_string \"Invalid commit timestamp\"" + }, + "value": "Invalid commit timestamp" } ], "expression": { "argumentTypes": [ { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_791866c3f9c9c03c601447bf48dd4e0bd3f849759626f2144adccf6e77c6e64d", + "typeString": "literal_string \"Invalid commit timestamp\"" } ], - "id": 2418, - "name": "_incrementNonce", + "id": 2412, + "name": "require", "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2591, - "src": "22475:15:6", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22500:7:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" } }, - "id": 2420, + "id": 2418, "isConstant": false, "isLValue": false, "isPure": false, @@ -53336,73 +53250,363 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "22475:22:6", + "src": "22500:52:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2421, + "id": 2419, "nodeType": "ExpressionStatement", - "src": "22475:22:6" + "src": "22500:52:6" }, { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2422, - "name": "_cleanupNonces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2559, - "src": "22507:14:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" - } + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" }, "id": 2423, "isConstant": false, "isLValue": false, "isPure": false, - "kind": "functionCall", "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22507:16:6", - "tryCall": false, + "leftExpression": { + "id": 2420, + "name": "operationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2377, + "src": "22566:13:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 2421, + "name": "OperationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 493, + "src": "22583:13:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", + "typeString": "type(enum ONEWallet.OperationType)" + } + }, + "id": 2422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "RECOVER", + "nodeType": "MemberAccess", + "referencedDeclaration": 491, + "src": "22583:21:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } + }, + "src": "22566:38:6", "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" + "typeIdentifier": "t_bool", + "typeString": "bool" } }, - "id": 2424, - "nodeType": "ExpressionStatement", - "src": "22507:16:6" + "id": 2444, + "nodeType": "IfStatement", + "src": "22562:185:6", + "trueBody": { + "id": 2443, + "nodeType": "Block", + "src": "22606:141:6", + "statements": [ + { + "assignments": [ + 2425 + ], + "declarations": [ + { + "constant": false, + "id": 2425, + "mutability": "mutable", + "name": "index", + "nameLocation": "22627:5:6", + "nodeType": "VariableDeclaration", + "scope": 2443, + "src": "22620:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2424, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "22620:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 2435, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2432, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 2428, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2407, + "src": "22642:1:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", + "typeString": "struct ONEWallet.Commit storage pointer" + } + }, + "id": 2429, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": 501, + "src": "22642:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 2427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22635:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 2426, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "22635:6:6", + "typeDescriptions": {} + } + }, + "id": 2430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22635:19:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2431, + "name": "interval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 441, + "src": "22657:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "22635:30:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2433, + "name": "t0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 443, + "src": "22668:2:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "22635:35:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22620:50:6" + }, + { + "expression": { + "arguments": [ + { + "id": 2437, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2425, + "src": "22700:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 2436, + "name": "_incrementNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2611, + "src": "22684:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22684:22:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2439, + "nodeType": "ExpressionStatement", + "src": "22684:22:6" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2440, + "name": "_cleanupNonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2579, + "src": "22720:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22720:16:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2442, + "nodeType": "ExpressionStatement", + "src": "22720:16:6" + } + ] + } }, { "expression": { - "id": 2429, + "id": 2449, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 2425, + "id": 2445, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2393, - "src": "22533:1:6", + "referencedDeclaration": 2407, + "src": "22756:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2427, + "id": 2447, "isConstant": false, "isLValue": true, "isPure": false, @@ -53410,7 +53614,7 @@ "memberName": "completed", "nodeType": "MemberAccess", "referencedDeclaration": 503, - "src": "22533:11:6", + "src": "22756:11:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -53420,52 +53624,52 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 2428, + "id": 2448, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "22547:4:6", + "src": "22770:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "22533:18:6", + "src": "22756:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2430, + "id": 2450, "nodeType": "ExpressionStatement", - "src": "22533:18:6" + "src": "22756:18:6" } ] }, - "id": 2432, + "id": 2452, "implemented": true, "kind": "function", "modifiers": [], "name": "_completeReveal", - "nameLocation": "22029:15:6", + "nameLocation": "22176:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2364, + "id": 2378, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2361, + "id": 2372, "mutability": "mutable", "name": "commitHash", - "nameLocation": "22053:10:6", + "nameLocation": "22200:10:6", "nodeType": "VariableDeclaration", - "scope": 2432, - "src": "22045:18:6", + "scope": 2452, + "src": "22192:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53473,10 +53677,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2360, + "id": 2371, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "22045:7:6", + "src": "22192:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -53486,13 +53690,13 @@ }, { "constant": false, - "id": 2363, + "id": 2374, "mutability": "mutable", "name": "commitIndex", - "nameLocation": "22072:11:6", + "nameLocation": "22219:11:6", "nodeType": "VariableDeclaration", - "scope": 2432, - "src": "22065:18:6", + "scope": 2452, + "src": "22212:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53500,52 +53704,86 @@ "typeString": "uint32" }, "typeName": { - "id": 2362, + "id": 2373, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22065:6:6", + "src": "22212:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" + }, + { + "constant": false, + "id": 2377, + "mutability": "mutable", + "name": "operationType", + "nameLocation": "22246:13:6", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "22232:27:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + }, + "typeName": { + "id": 2376, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2375, + "name": "OperationType", + "nodeType": "IdentifierPath", + "referencedDeclaration": 493, + "src": "22232:13:6" + }, + "referencedDeclaration": 493, + "src": "22232:13:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } + }, + "visibility": "internal" } ], - "src": "22044:40:6" + "src": "22191:69:6" }, "returnParameters": { - "id": 2365, + "id": 2379, "nodeType": "ParameterList", "parameters": [], - "src": "22094:0:6" + "src": "22270:0:6" }, - "scope": 2592, - "src": "22020:538:6", + "scope": 2612, + "src": "22167:614:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2558, + "id": 2578, "nodeType": "Block", - "src": "22853:1139:6", + "src": "23076:1139:6", "statements": [ { "assignments": [ - 2437 + 2457 ], "declarations": [ { "constant": false, - "id": 2437, + "id": 2457, "mutability": "mutable", "name": "tMin", - "nameLocation": "22870:4:6", + "nameLocation": "23093:4:6", "nodeType": "VariableDeclaration", - "scope": 2558, - "src": "22863:11:6", + "scope": 2578, + "src": "23086:11:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53553,10 +53791,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2436, + "id": 2456, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22863:6:6", + "src": "23086:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -53565,13 +53803,13 @@ "visibility": "internal" } ], - "id": 2445, + "id": 2465, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2444, + "id": 2464, "isConstant": false, "isLValue": false, "isPure": false, @@ -53580,25 +53818,25 @@ "arguments": [ { "expression": { - "id": 2440, + "id": 2460, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "22884:5:6", + "src": "23107:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 2441, + "id": 2461, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "22884:15:6", + "src": "23107:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -53612,26 +53850,26 @@ "typeString": "uint256" } ], - "id": 2439, + "id": 2459, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "22877:6:6", + "src": "23100:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 2438, + "id": 2458, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22877:6:6", + "src": "23100:6:6", "typeDescriptions": {} } }, - "id": 2442, + "id": 2462, "isConstant": false, "isLValue": false, "isPure": false, @@ -53639,7 +53877,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "22877:23:6", + "src": "23100:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -53649,40 +53887,40 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2443, + "id": 2463, "name": "REVEAL_MAX_DELAY", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, - "src": "22903:16:6", + "src": "23126:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22877:42:6", + "src": "23100:42:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "22863:56:6" + "src": "23086:56:6" }, { "assignments": [ - 2447 + 2467 ], "declarations": [ { "constant": false, - "id": 2447, + "id": 2467, "mutability": "mutable", "name": "indexMinUnadjusted", - "nameLocation": "22936:18:6", + "nameLocation": "23159:18:6", "nodeType": "VariableDeclaration", - "scope": 2558, - "src": "22929:25:6", + "scope": 2578, + "src": "23152:25:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53690,10 +53928,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2446, + "id": 2466, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22929:6:6", + "src": "23152:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -53702,24 +53940,24 @@ "visibility": "internal" } ], - "id": 2451, + "id": 2471, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2450, + "id": 2470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2448, + "id": 2468, "name": "tMin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2437, - "src": "22957:4:6", + "referencedDeclaration": 2457, + "src": "23180:4:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -53728,40 +53966,40 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2449, + "id": 2469, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 441, - "src": "22964:8:6", + "src": "23187:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "22957:15:6", + "src": "23180:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "22929:43:6" + "src": "23152:43:6" }, { "assignments": [ - 2453 + 2473 ], "declarations": [ { "constant": false, - "id": 2453, + "id": 2473, "mutability": "mutable", "name": "indexMin", - "nameLocation": "22989:8:6", + "nameLocation": "23212:8:6", "nodeType": "VariableDeclaration", - "scope": 2558, - "src": "22982:15:6", + "scope": 2578, + "src": "23205:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -53769,10 +54007,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2452, + "id": 2472, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22982:6:6", + "src": "23205:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -53781,17 +54019,17 @@ "visibility": "internal" } ], - "id": 2455, + "id": 2475, "initialValue": { "hexValue": "30", - "id": 2454, + "id": 2474, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23000:1:6", + "src": "23223:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -53799,7 +54037,7 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "22982:19:6" + "src": "23205:19:6" }, { "condition": { @@ -53807,18 +54045,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2458, + "id": 2478, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2456, + "id": 2476, "name": "indexMinUnadjusted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2447, - "src": "23015:18:6", + "referencedDeclaration": 2467, + "src": "23238:18:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -53827,45 +54065,45 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 2457, + "id": 2477, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 443, - "src": "23036:2:6", + "src": "23259:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23015:23:6", + "src": "23238:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2466, + "id": 2486, "nodeType": "IfStatement", - "src": "23011:88:6", + "src": "23234:88:6", "trueBody": { - "id": 2465, + "id": 2485, "nodeType": "Block", - "src": "23040:59:6", + "src": "23263:59:6", "statements": [ { "expression": { - "id": 2463, + "id": 2483, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2459, + "id": 2479, "name": "indexMin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2453, - "src": "23054:8:6", + "referencedDeclaration": 2473, + "src": "23277:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -53878,18 +54116,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2462, + "id": 2482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2460, + "id": 2480, "name": "indexMinUnadjusted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2447, - "src": "23065:18:6", + "referencedDeclaration": 2467, + "src": "23288:18:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -53898,50 +54136,50 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2461, + "id": 2481, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 443, - "src": "23086:2:6", + "src": "23309:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23065:23:6", + "src": "23288:23:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23054:34:6", + "src": "23277:34:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2464, + "id": 2484, "nodeType": "ExpressionStatement", - "src": "23054:34:6" + "src": "23277:34:6" } ] } }, { "assignments": [ - 2471 + 2491 ], "declarations": [ { "constant": false, - "id": 2471, + "id": 2491, "mutability": "mutable", "name": "nonZeroNonces", - "nameLocation": "23124:13:6", + "nameLocation": "23347:13:6", "nodeType": "VariableDeclaration", - "scope": 2558, - "src": "23108:29:6", + "scope": 2578, + "src": "23331:29:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -53950,18 +54188,18 @@ }, "typeName": { "baseType": { - "id": 2469, + "id": 2489, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23108:6:6", + "src": "23331:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2470, + "id": 2490, "nodeType": "ArrayTypeName", - "src": "23108:8:6", + "src": "23331:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -53970,30 +54208,30 @@ "visibility": "internal" } ], - "id": 2478, + "id": 2498, "initialValue": { "arguments": [ { "expression": { - "id": 2475, + "id": 2495, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 466, - "src": "23153:12:6", + "src": "23376:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2476, + "id": 2496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "23153:19:6", + "src": "23376:19:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -54007,38 +54245,38 @@ "typeString": "uint256" } ], - "id": 2474, + "id": 2494, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "23140:12:6", + "src": "23363:12:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint32[] memory)" }, "typeName": { "baseType": { - "id": 2472, + "id": 2492, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23144:6:6", + "src": "23367:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2473, + "id": 2493, "nodeType": "ArrayTypeName", - "src": "23144:8:6", + "src": "23367:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" } } }, - "id": 2477, + "id": 2497, "isConstant": false, "isLValue": false, "isPure": false, @@ -54046,7 +54284,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "23140:33:6", + "src": "23363:33:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", @@ -54054,22 +54292,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "23108:65:6" + "src": "23331:65:6" }, { "assignments": [ - 2480 + 2500 ], "declarations": [ { "constant": false, - "id": 2480, + "id": 2500, "mutability": "mutable", "name": "numValidIndices", - "nameLocation": "23190:15:6", + "nameLocation": "23413:15:6", "nodeType": "VariableDeclaration", - "scope": 2558, - "src": "23183:22:6", + "scope": 2578, + "src": "23406:22:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -54077,10 +54315,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2479, + "id": 2499, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23183:6:6", + "src": "23406:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54089,17 +54327,17 @@ "visibility": "internal" } ], - "id": 2482, + "id": 2502, "initialValue": { "hexValue": "30", - "id": 2481, + "id": 2501, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23208:1:6", + "src": "23431:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -54107,28 +54345,28 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "23183:26:6" + "src": "23406:26:6" }, { "body": { - "id": 2521, + "id": 2541, "nodeType": "Block", - "src": "23267:293:6", + "src": "23490:293:6", "statements": [ { "assignments": [ - 2495 + 2515 ], "declarations": [ { "constant": false, - "id": 2495, + "id": 2515, "mutability": "mutable", "name": "index", - "nameLocation": "23288:5:6", + "nameLocation": "23511:5:6", "nodeType": "VariableDeclaration", - "scope": 2521, - "src": "23281:12:6", + "scope": 2541, + "src": "23504:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -54136,10 +54374,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2494, + "id": 2514, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23281:6:6", + "src": "23504:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54148,28 +54386,28 @@ "visibility": "internal" } ], - "id": 2499, + "id": 2519, "initialValue": { "baseExpression": { - "id": 2496, + "id": 2516, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 466, - "src": "23296:12:6", + "src": "23519:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2498, + "id": 2518, "indexExpression": { - "id": 2497, + "id": 2517, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2484, - "src": "23309:1:6", + "referencedDeclaration": 2504, + "src": "23532:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -54180,14 +54418,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "23296:15:6", + "src": "23519:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "23281:30:6" + "src": "23504:30:6" }, { "condition": { @@ -54195,18 +54433,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2502, + "id": 2522, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2500, + "id": 2520, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "23329:5:6", + "referencedDeclaration": 2515, + "src": "23552:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54215,56 +54453,56 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2501, + "id": 2521, "name": "indexMin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2453, - "src": "23337:8:6", + "referencedDeclaration": 2473, + "src": "23560:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23329:16:6", + "src": "23552:16:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2519, + "id": 2539, "nodeType": "Block", - "src": "23406:144:6", + "src": "23629:144:6", "statements": [ { "expression": { - "id": 2513, + "id": 2533, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2509, + "id": 2529, "name": "nonZeroNonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2471, - "src": "23424:13:6", + "referencedDeclaration": 2491, + "src": "23647:13:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 2511, + "id": 2531, "indexExpression": { - "id": 2510, + "id": 2530, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "23438:15:6", + "referencedDeclaration": 2500, + "src": "23661:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54275,7 +54513,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "23424:30:6", + "src": "23647:30:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54284,35 +54522,35 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2512, + "id": 2532, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "23457:5:6", + "referencedDeclaration": 2515, + "src": "23680:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23424:38:6", + "src": "23647:38:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2514, + "id": 2534, "nodeType": "ExpressionStatement", - "src": "23424:38:6" + "src": "23647:38:6" }, { - "id": 2518, + "id": 2538, "nodeType": "UncheckedBlock", - "src": "23476:60:6", + "src": "23699:60:6", "statements": [ { "expression": { - "id": 2516, + "id": 2536, "isConstant": false, "isLValue": false, "isPure": false, @@ -54320,14 +54558,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "23504:17:6", + "src": "23727:17:6", "subExpression": { - "id": 2515, + "id": 2535, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "23504:15:6", + "referencedDeclaration": 2500, + "src": "23727:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54338,25 +54576,25 @@ "typeString": "uint32" } }, - "id": 2517, + "id": 2537, "nodeType": "ExpressionStatement", - "src": "23504:17:6" + "src": "23727:17:6" } ] } ] }, - "id": 2520, + "id": 2540, "nodeType": "IfStatement", - "src": "23325:225:6", + "src": "23548:225:6", "trueBody": { - "id": 2508, + "id": 2528, "nodeType": "Block", - "src": "23347:53:6", + "src": "23570:53:6", "statements": [ { "expression": { - "id": 2506, + "id": 2526, "isConstant": false, "isLValue": false, "isPure": false, @@ -54364,28 +54602,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "23365:20:6", + "src": "23588:20:6", "subExpression": { "baseExpression": { - "id": 2503, + "id": 2523, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 463, - "src": "23372:6:6", + "src": "23595:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 2505, + "id": 2525, "indexExpression": { - "id": 2504, + "id": 2524, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "23379:5:6", + "referencedDeclaration": 2515, + "src": "23602:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54396,7 +54634,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "23372:13:6", + "src": "23595:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -54407,9 +54645,9 @@ "typeString": "tuple()" } }, - "id": 2507, + "id": 2527, "nodeType": "ExpressionStatement", - "src": "23365:20:6" + "src": "23588:20:6" } ] } @@ -54421,18 +54659,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2490, + "id": 2510, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2487, + "id": 2507, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2484, - "src": "23237:1:6", + "referencedDeclaration": 2504, + "src": "23460:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -54442,51 +54680,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2488, + "id": 2508, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 466, - "src": "23241:12:6", + "src": "23464:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2489, + "id": 2509, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "23241:19:6", + "src": "23464:19:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "23237:23:6", + "src": "23460:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2522, + "id": 2542, "initializationExpression": { "assignments": [ - 2484 + 2504 ], "declarations": [ { "constant": false, - "id": 2484, + "id": 2504, "mutability": "mutable", "name": "i", - "nameLocation": "23230:1:6", + "nameLocation": "23453:1:6", "nodeType": "VariableDeclaration", - "scope": 2522, - "src": "23224:7:6", + "scope": 2542, + "src": "23447:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -54494,10 +54732,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2483, + "id": 2503, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "23224:5:6", + "src": "23447:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -54506,17 +54744,17 @@ "visibility": "internal" } ], - "id": 2486, + "id": 2506, "initialValue": { "hexValue": "30", - "id": 2485, + "id": 2505, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23234:1:6", + "src": "23457:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -54524,11 +54762,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "23224:11:6" + "src": "23447:11:6" }, "loopExpression": { "expression": { - "id": 2492, + "id": 2512, "isConstant": false, "isLValue": false, "isPure": false, @@ -54536,14 +54774,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "23262:3:6", + "src": "23485:3:6", "subExpression": { - "id": 2491, + "id": 2511, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2484, - "src": "23262:1:6", + "referencedDeclaration": 2504, + "src": "23485:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -54554,27 +54792,27 @@ "typeString": "uint8" } }, - "id": 2493, + "id": 2513, "nodeType": "ExpressionStatement", - "src": "23262:3:6" + "src": "23485:3:6" }, "nodeType": "ForStatement", - "src": "23219:341:6" + "src": "23442:341:6" }, { "assignments": [ - 2527 + 2547 ], "declarations": [ { "constant": false, - "id": 2527, + "id": 2547, "mutability": "mutable", "name": "reducedArray", - "nameLocation": "23792:12:6", + "nameLocation": "24015:12:6", "nodeType": "VariableDeclaration", - "scope": 2558, - "src": "23776:28:6", + "scope": 2578, + "src": "23999:28:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -54583,18 +54821,18 @@ }, "typeName": { "baseType": { - "id": 2525, + "id": 2545, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23776:6:6", + "src": "23999:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2526, + "id": 2546, "nodeType": "ArrayTypeName", - "src": "23776:8:6", + "src": "23999:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -54603,16 +54841,16 @@ "visibility": "internal" } ], - "id": 2533, + "id": 2553, "initialValue": { "arguments": [ { - "id": 2531, + "id": 2551, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "23820:15:6", + "referencedDeclaration": 2500, + "src": "24043:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54626,38 +54864,38 @@ "typeString": "uint32" } ], - "id": 2530, + "id": 2550, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "23807:12:6", + "src": "24030:12:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint32[] memory)" }, "typeName": { "baseType": { - "id": 2528, + "id": 2548, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23811:6:6", + "src": "24034:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2529, + "id": 2549, "nodeType": "ArrayTypeName", - "src": "23811:8:6", + "src": "24034:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" } } }, - "id": 2532, + "id": 2552, "isConstant": false, "isLValue": false, "isPure": false, @@ -54665,7 +54903,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "23807:29:6", + "src": "24030:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", @@ -54673,42 +54911,42 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "23776:60:6" + "src": "23999:60:6" }, { "body": { - "id": 2552, + "id": 2572, "nodeType": "Block", - "src": "23890:59:6", + "src": "24113:59:6", "statements": [ { "expression": { - "id": 2550, + "id": 2570, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2544, + "id": 2564, "name": "reducedArray", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2527, - "src": "23904:12:6", + "referencedDeclaration": 2547, + "src": "24127:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 2546, + "id": 2566, "indexExpression": { - "id": 2545, + "id": 2565, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "23917:1:6", + "referencedDeclaration": 2555, + "src": "24140:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -54719,7 +54957,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "23904:15:6", + "src": "24127:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -54729,25 +54967,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 2547, + "id": 2567, "name": "nonZeroNonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2471, - "src": "23922:13:6", + "referencedDeclaration": 2491, + "src": "24145:13:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 2549, + "id": 2569, "indexExpression": { - "id": 2548, + "id": 2568, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "23936:1:6", + "referencedDeclaration": 2555, + "src": "24159:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -54758,21 +54996,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "23922:16:6", + "src": "24145:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23904:34:6", + "src": "24127:34:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2551, + "id": 2571, "nodeType": "ExpressionStatement", - "src": "23904:34:6" + "src": "24127:34:6" } ] }, @@ -54781,18 +55019,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2540, + "id": 2560, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2538, + "id": 2558, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "23864:1:6", + "referencedDeclaration": 2555, + "src": "24087:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -54801,38 +55039,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2539, + "id": 2559, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "23868:15:6", + "referencedDeclaration": 2500, + "src": "24091:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23864:19:6", + "src": "24087:19:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2553, + "id": 2573, "initializationExpression": { "assignments": [ - 2535 + 2555 ], "declarations": [ { "constant": false, - "id": 2535, + "id": 2555, "mutability": "mutable", "name": "i", - "nameLocation": "23857:1:6", + "nameLocation": "24080:1:6", "nodeType": "VariableDeclaration", - "scope": 2553, - "src": "23851:7:6", + "scope": 2573, + "src": "24074:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -54840,10 +55078,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2534, + "id": 2554, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "23851:5:6", + "src": "24074:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -54852,17 +55090,17 @@ "visibility": "internal" } ], - "id": 2537, + "id": 2557, "initialValue": { "hexValue": "30", - "id": 2536, + "id": 2556, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23861:1:6", + "src": "24084:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -54870,11 +55108,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "23851:11:6" + "src": "24074:11:6" }, "loopExpression": { "expression": { - "id": 2542, + "id": 2562, "isConstant": false, "isLValue": false, "isPure": false, @@ -54882,14 +55120,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "23885:3:6", + "src": "24108:3:6", "subExpression": { - "id": 2541, + "id": 2561, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "23885:1:6", + "referencedDeclaration": 2555, + "src": "24108:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -54900,27 +55138,27 @@ "typeString": "uint8" } }, - "id": 2543, + "id": 2563, "nodeType": "ExpressionStatement", - "src": "23885:3:6" + "src": "24108:3:6" }, "nodeType": "ForStatement", - "src": "23846:103:6" + "src": "24069:103:6" }, { "expression": { - "id": 2556, + "id": 2576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2554, + "id": 2574, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 466, - "src": "23958:12:6", + "src": "24181:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" @@ -54929,80 +55167,80 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2555, + "id": 2575, "name": "reducedArray", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2527, - "src": "23973:12:6", + "referencedDeclaration": 2547, + "src": "24196:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "src": "23958:27:6", + "src": "24181:27:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2557, + "id": 2577, "nodeType": "ExpressionStatement", - "src": "23958:27:6" + "src": "24181:27:6" } ] }, "documentation": { - "id": 2433, + "id": 2453, "nodeType": "StructuredDocumentation", - "src": "22564:249:6", + "src": "22787:249:6", "text": "This function removes all tracked nonce values correspond to interval blocks that are older than block.timestamp - REVEAL_MAX_DELAY. In doing so, extraneous data in the blockchain is removed, and both nonces and nonceTracker are bounded in size." }, - "id": 2559, + "id": 2579, "implemented": true, "kind": "function", "modifiers": [], "name": "_cleanupNonces", - "nameLocation": "22827:14:6", + "nameLocation": "23050:14:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2434, + "id": 2454, "nodeType": "ParameterList", "parameters": [], - "src": "22841:2:6" + "src": "23064:2:6" }, "returnParameters": { - "id": 2435, + "id": 2455, "nodeType": "ParameterList", "parameters": [], - "src": "22853:0:6" + "src": "23076:0:6" }, - "scope": 2592, - "src": "22818:1174:6", + "scope": 2612, + "src": "23041:1174:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2590, + "id": 2610, "nodeType": "Block", - "src": "24046:162:6", + "src": "24269:162:6", "statements": [ { "assignments": [ - 2565 + 2585 ], "declarations": [ { "constant": false, - "id": 2565, + "id": 2585, "mutability": "mutable", "name": "v", - "nameLocation": "24062:1:6", + "nameLocation": "24285:1:6", "nodeType": "VariableDeclaration", - "scope": 2590, - "src": "24056:7:6", + "scope": 2610, + "src": "24279:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -55010,10 +55248,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2564, + "id": 2584, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "24056:5:6", + "src": "24279:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -55022,28 +55260,28 @@ "visibility": "internal" } ], - "id": 2569, + "id": 2589, "initialValue": { "baseExpression": { - "id": 2566, + "id": 2586, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 463, - "src": "24066:6:6", + "src": "24289:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 2568, + "id": 2588, "indexExpression": { - "id": 2567, + "id": 2587, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "24073:5:6", + "referencedDeclaration": 2581, + "src": "24296:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -55054,14 +55292,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "24066:13:6", + "src": "24289:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "24056:23:6" + "src": "24279:23:6" }, { "condition": { @@ -55069,18 +55307,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 2572, + "id": 2592, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2570, + "id": 2590, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2565, - "src": "24093:1:6", + "referencedDeclaration": 2585, + "src": "24316:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -55090,44 +55328,44 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 2571, + "id": 2591, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "24098:1:6", + "src": "24321:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "24093:6:6", + "src": "24316:6:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2580, + "id": 2600, "nodeType": "IfStatement", - "src": "24089:61:6", + "src": "24312:61:6", "trueBody": { - "id": 2579, + "id": 2599, "nodeType": "Block", - "src": "24101:49:6", + "src": "24324:49:6", "statements": [ { "expression": { "arguments": [ { - "id": 2576, + "id": 2596, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "24133:5:6", + "referencedDeclaration": 2581, + "src": "24356:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -55142,31 +55380,31 @@ } ], "expression": { - "id": 2573, + "id": 2593, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 466, - "src": "24115:12:6", + "src": "24338:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2575, + "id": 2595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "24115:17:6", + "src": "24338:17:6", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint32_$dyn_storage_ptr_$_t_uint32_$returns$__$bound_to$_t_array$_t_uint32_$dyn_storage_ptr_$", "typeString": "function (uint32[] storage pointer,uint32)" } }, - "id": 2577, + "id": 2597, "isConstant": false, "isLValue": false, "isPure": false, @@ -55174,53 +55412,53 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "24115:24:6", + "src": "24338:24:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2578, + "id": 2598, "nodeType": "ExpressionStatement", - "src": "24115:24:6" + "src": "24338:24:6" } ] } }, { - "id": 2589, + "id": 2609, "nodeType": "UncheckedBlock", - "src": "24155:47:6", + "src": "24378:47:6", "statements": [ { "expression": { - "id": 2587, + "id": 2607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2581, + "id": 2601, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 463, - "src": "24174:6:6", + "src": "24397:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 2583, + "id": 2603, "indexExpression": { - "id": 2582, + "id": 2602, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "24181:5:6", + "referencedDeclaration": 2581, + "src": "24404:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -55231,7 +55469,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "24174:13:6", + "src": "24397:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -55244,18 +55482,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 2586, + "id": 2606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2584, + "id": 2604, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2565, - "src": "24190:1:6", + "referencedDeclaration": 2585, + "src": "24413:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -55265,60 +55503,60 @@ "operator": "+", "rightExpression": { "hexValue": "31", - "id": 2585, + "id": 2605, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "24194:1:6", + "src": "24417:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "24190:5:6", + "src": "24413:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "24174:21:6", + "src": "24397:21:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2588, + "id": 2608, "nodeType": "ExpressionStatement", - "src": "24174:21:6" + "src": "24397:21:6" } ] } ] }, - "id": 2591, + "id": 2611, "implemented": true, "kind": "function", "modifiers": [], "name": "_incrementNonce", - "nameLocation": "24007:15:6", + "nameLocation": "24230:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2562, + "id": 2582, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2561, + "id": 2581, "mutability": "mutable", "name": "index", - "nameLocation": "24030:5:6", + "nameLocation": "24253:5:6", "nodeType": "VariableDeclaration", - "scope": 2591, - "src": "24023:12:6", + "scope": 2611, + "src": "24246:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -55326,10 +55564,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2560, + "id": 2580, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "24023:6:6", + "src": "24246:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -55338,27 +55576,27 @@ "visibility": "internal" } ], - "src": "24022:14:6" + "src": "24245:14:6" }, "returnParameters": { - "id": 2563, + "id": 2583, "nodeType": "ParameterList", "parameters": [], - "src": "24046:0:6" + "src": "24269:0:6" }, - "scope": 2592, - "src": "23998:210:6", + "scope": 2612, + "src": "24221:210:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" } ], - "scope": 2593, - "src": "151:24059:6", + "scope": 2613, + "src": "151:24282:6", "usedErrors": [] } ], - "src": "39:24172:6" + "src": "39:24395:6" }, "legacyAST": { "absolutePath": "project:/contracts/ONEWallet.sol", @@ -55382,13 +55620,13 @@ 374 ], "ONEWallet": [ - 2592 + 2612 ], "TokenTracker": [ - 3860 + 3880 ] }, - "id": 2593, + "id": 2613, "license": "Apache-2.0", "nodeType": "SourceUnit", "nodes": [ @@ -55409,8 +55647,8 @@ "id": 389, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2593, - "sourceUnit": 3861, + "scope": 2613, + "sourceUnit": 3881, "src": "64:28:6", "symbolAliases": [], "unitAlias": "" @@ -55421,7 +55659,7 @@ "id": 390, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", - "scope": 2593, + "scope": 2613, "sourceUnit": 241, "src": "93:56:6", "symbolAliases": [], @@ -55435,7 +55673,7 @@ "id": 391, "name": "TokenTracker", "nodeType": "IdentifierPath", - "referencedDeclaration": 3860, + "referencedDeclaration": 3880, "src": "173:12:6" }, "id": 392, @@ -55446,10 +55684,10 @@ "contractDependencies": [], "contractKind": "contract", "fullyImplemented": true, - "id": 2592, + "id": 2612, "linearizedBaseContracts": [ - 2592, - 3860, + 2612, + 3880, 162, 386, 374 @@ -55959,7 +56197,7 @@ "name": "root", "nameLocation": "921:4:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "903:22:6", "stateVariable": true, "storageLocation": "default", @@ -55986,7 +56224,7 @@ "name": "height", "nameLocation": "1185:6:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1169:22:6", "stateVariable": true, "storageLocation": "default", @@ -56013,7 +56251,7 @@ "name": "interval", "nameLocation": "1284:8:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1268:24:6", "stateVariable": true, "storageLocation": "default", @@ -56040,7 +56278,7 @@ "name": "t0", "nameLocation": "1357:2:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1340:19:6", "stateVariable": true, "storageLocation": "default", @@ -56067,7 +56305,7 @@ "name": "lifespan", "nameLocation": "1440:8:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1423:25:6", "stateVariable": true, "storageLocation": "default", @@ -56094,7 +56332,7 @@ "name": "maxOperationsPerInterval", "nameLocation": "1531:24:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1515:40:6", "stateVariable": true, "storageLocation": "default", @@ -56121,7 +56359,7 @@ "name": "_numLeaves", "nameLocation": "1727:10:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1710:27:6", "stateVariable": true, "storageLocation": "default", @@ -56154,7 +56392,7 @@ "name": "lastResortAddress", "nameLocation": "1814:17:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1798:33:6", "stateVariable": true, "storageLocation": "default", @@ -56182,7 +56420,7 @@ "name": "dailyLimit", "nameLocation": "1943:10:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "1935:18:6", "stateVariable": true, "storageLocation": "default", @@ -56209,7 +56447,7 @@ "name": "spentToday", "nameLocation": "2059:10:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "2051:18:6", "stateVariable": true, "storageLocation": "default", @@ -56236,7 +56474,7 @@ "name": "lastTransferDay", "nameLocation": "2278:15:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "2271:22:6", "stateVariable": true, "storageLocation": "default", @@ -56269,7 +56507,7 @@ "name": "nonces", "nameLocation": "2348:6:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "2323:31:6", "stateVariable": true, "storageLocation": "default", @@ -56315,7 +56553,7 @@ "name": "nonceTracker", "nameLocation": "2548:12:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "2539:21:6", "stateVariable": true, "storageLocation": "default", @@ -56351,7 +56589,7 @@ "name": "REVEAL_MAX_DELAY", "nameLocation": "2982:16:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "2966:37:6", "stateVariable": true, "storageLocation": "default", @@ -56394,7 +56632,7 @@ "name": "SECONDS_PER_DAY", "nameLocation": "3025:15:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "3009:39:6", "stateVariable": true, "storageLocation": "default", @@ -56437,7 +56675,7 @@ "name": "AUTO_RECOVERY_TRIGGER_AMOUNT", "nameLocation": "3071:28:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "3054:55:6", "stateVariable": true, "storageLocation": "default", @@ -56481,7 +56719,7 @@ "name": "MAX_COMMIT_SIZE", "nameLocation": "3131:15:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "3115:37:6", "stateVariable": true, "storageLocation": "default", @@ -56524,7 +56762,7 @@ "name": "majorVersion", "nameLocation": "3175:12:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "3159:34:6", "stateVariable": true, "storageLocation": "default", @@ -56567,7 +56805,7 @@ "name": "minorVersion", "nameLocation": "3259:12:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "3243:34:6", "stateVariable": true, "storageLocation": "default", @@ -56812,7 +57050,7 @@ "name": "Commit", "nameLocation": "3619:6:6", "nodeType": "StructDefinition", - "scope": 2592, + "scope": 2612, "src": "3612:155:6", "visibility": "public" }, @@ -56823,7 +57061,7 @@ "name": "commits", "nameLocation": "3783:7:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "3773:17:6", "stateVariable": true, "storageLocation": "default", @@ -56859,7 +57097,7 @@ "name": "commitLocker", "nameLocation": "4037:12:6", "nodeType": "VariableDeclaration", - "scope": 2592, + "scope": 2612, "src": "4008:41:6", "stateVariable": true, "storageLocation": "default", @@ -57674,7 +57912,7 @@ "parameters": [], "src": "4248:0:6" }, - "scope": 2592, + "scope": 2612, "src": "4057:517:6", "stateMutability": "nonpayable", "virtual": false, @@ -58088,7 +58326,7 @@ "referencedDeclaration": 4294967268, "src": "4937:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } } @@ -58096,7 +58334,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } ], @@ -58319,7 +58557,7 @@ "parameters": [], "src": "4607:0:6" }, - "scope": 2592, + "scope": 2612, "src": "4580:476:6", "stateMutability": "payable", "virtual": false, @@ -58875,7 +59113,7 @@ ], "src": "5098:6:6" }, - "scope": 2592, + "scope": 2612, "src": "5063:296:6", "stateMutability": "nonpayable", "virtual": false, @@ -59245,7 +59483,7 @@ ], "src": "5406:64:6" }, - "scope": 2592, + "scope": 2612, "src": "5365:229:6", "stateMutability": "view", "virtual": false, @@ -59380,7 +59618,7 @@ ], "src": "5644:16:6" }, - "scope": 2592, + "scope": 2612, "src": "5600:117:6", "stateMutability": "pure", "virtual": false, @@ -59515,7 +59753,7 @@ ], "src": "5775:18:6" }, - "scope": 2592, + "scope": 2612, "src": "5723:128:6", "stateMutability": "view", "virtual": false, @@ -59787,7 +60025,7 @@ ], "src": "5899:7:6" }, - "scope": 2592, + "scope": 2612, "src": "5857:155:6", "stateMutability": "view", "virtual": false, @@ -60026,7 +60264,7 @@ ], "src": "6062:68:6" }, - "scope": 2592, + "scope": 2612, "src": "6018:149:6", "stateMutability": "pure", "virtual": false, @@ -62317,7 +62555,7 @@ ], "src": "6220:86:6" }, - "scope": 2592, + "scope": 2612, "src": "6173:1283:6", "stateMutability": "view", "virtual": false, @@ -62548,7 +62786,7 @@ ], "src": "7522:32:6" }, - "scope": 2592, + "scope": 2612, "src": "7462:129:6", "stateMutability": "pure", "virtual": false, @@ -64252,7 +64490,7 @@ ], "src": "7655:86:6" }, - "scope": 2592, + "scope": 2612, "src": "7597:907:6", "stateMutability": "view", "virtual": false, @@ -64273,7 +64511,7 @@ "name": "_cleanupCommits", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2197, + "referencedDeclaration": 2199, "src": "8605:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", @@ -64900,7 +65138,7 @@ "parameters": [], "src": "8595:0:6" }, - "scope": 2592, + "scope": 2612, "src": "8510:358:6", "stateMutability": "nonpayable", "virtual": false, @@ -65027,7 +65265,7 @@ "referencedDeclaration": 4294967268, "src": "9319:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } } @@ -65035,7 +65273,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } ], @@ -65184,7 +65422,7 @@ ], "src": "9145:6:6" }, - "scope": 2592, + "scope": 2612, "src": "9110:258:6", "stateMutability": "nonpayable", "virtual": false, @@ -65706,7 +65944,7 @@ "referencedDeclaration": 4294967268, "src": "9808:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } } @@ -65714,7 +65952,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } ], @@ -65819,7 +66057,7 @@ "referencedDeclaration": 4294967268, "src": "9884:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } } @@ -65827,7 +66065,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } ], @@ -66498,7 +66736,7 @@ ], "src": "9448:6:6" }, - "scope": 2592, + "scope": 2612, "src": "9374:975:6", "stateMutability": "nonpayable", "virtual": false, @@ -66854,7 +67092,7 @@ ], "src": "10392:6:6" }, - "scope": 2592, + "scope": 2612, "src": "10355:295:6", "stateMutability": "nonpayable", "virtual": false, @@ -67113,7 +67351,7 @@ "parameters": [], "src": "10730:0:6" }, - "scope": 2592, + "scope": 2612, "src": "10656:217:6", "stateMutability": "nonpayable", "virtual": false, @@ -67128,7 +67366,7 @@ { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, "id": 1384, @@ -67144,7 +67382,7 @@ "referencedDeclaration": 1368, "src": "11038:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -67156,10 +67394,10 @@ "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "11051:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2627_$", "typeString": "type(enum TokenTracker.TokenType)" } }, @@ -67170,10 +67408,10 @@ "lValueRequested": false, "memberName": "ERC20", "nodeType": "MemberAccess", - "referencedDeclaration": 2603, + "referencedDeclaration": 2623, "src": "11051:15:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -67186,7 +67424,7 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, "id": 1453, @@ -67202,7 +67440,7 @@ "referencedDeclaration": 1368, "src": "11797:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -67214,10 +67452,10 @@ "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "11810:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2627_$", "typeString": "type(enum TokenTracker.TokenType)" } }, @@ -67228,10 +67466,10 @@ "lValueRequested": false, "memberName": "ERC721", "nodeType": "MemberAccess", - "referencedDeclaration": 2604, + "referencedDeclaration": 2624, "src": "11810:16:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -67244,7 +67482,7 @@ "falseBody": { "condition": { "commonType": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, "id": 1506, @@ -67260,7 +67498,7 @@ "referencedDeclaration": 1368, "src": "12321:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -67272,10 +67510,10 @@ "name": "TokenType", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "12334:9:6", "typeDescriptions": { - "typeIdentifier": "t_type$_t_enum$_TokenType_$2607_$", + "typeIdentifier": "t_type$_t_enum$_TokenType_$2627_$", "typeString": "type(enum TokenTracker.TokenType)" } }, @@ -67286,10 +67524,10 @@ "lValueRequested": false, "memberName": "ERC1155", "nodeType": "MemberAccess", - "referencedDeclaration": 2605, + "referencedDeclaration": 2625, "src": "12334:17:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -67326,7 +67564,7 @@ "referencedDeclaration": 1368, "src": "12504:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -67382,7 +67620,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -67406,10 +67644,10 @@ "name": "TokenTransferSucceeded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2692, + "referencedDeclaration": 2712, "src": "12481:22:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, @@ -67456,7 +67694,7 @@ "referencedDeclaration": 1368, "src": "12645:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -67524,7 +67762,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -67552,10 +67790,10 @@ "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, + "referencedDeclaration": 2699, "src": "12626:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, @@ -67636,7 +67874,7 @@ "referencedDeclaration": 1368, "src": "12767:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -67708,7 +67946,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -67736,10 +67974,10 @@ "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, + "referencedDeclaration": 2699, "src": "12748:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, @@ -67782,7 +68020,7 @@ "referencedDeclaration": 4294967268, "src": "12422:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } } @@ -67790,7 +68028,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } ], @@ -68011,7 +68249,7 @@ "referencedDeclaration": 1368, "src": "11969:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -68067,7 +68305,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -68091,10 +68329,10 @@ "name": "TokenTransferSucceeded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2692, + "referencedDeclaration": 2712, "src": "11946:22:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, @@ -68141,7 +68379,7 @@ "referencedDeclaration": 1368, "src": "12110:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -68209,7 +68447,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -68237,10 +68475,10 @@ "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, + "referencedDeclaration": 2699, "src": "12091:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, @@ -68321,7 +68559,7 @@ "referencedDeclaration": 1368, "src": "12232:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -68393,7 +68631,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -68421,10 +68659,10 @@ "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, + "referencedDeclaration": 2699, "src": "12213:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, @@ -68467,7 +68705,7 @@ "referencedDeclaration": 4294967268, "src": "11896:4:6", "typeDescriptions": { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } } @@ -68475,7 +68713,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_contract$_ONEWallet_$2592", + "typeIdentifier": "t_contract$_ONEWallet_$2612", "typeString": "contract ONEWallet" } ], @@ -68701,7 +68939,7 @@ "referencedDeclaration": 1368, "src": "11220:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -68733,7 +68971,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -68749,10 +68987,10 @@ "name": "_trackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3089, + "referencedDeclaration": 3109, "src": "11208:11:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, @@ -68786,7 +69024,7 @@ "referencedDeclaration": 1368, "src": "11306:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -68842,7 +69080,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -68866,10 +69104,10 @@ "name": "TokenTransferSucceeded", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2692, + "referencedDeclaration": 2712, "src": "11283:22:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, @@ -68912,7 +69150,7 @@ "referencedDeclaration": 1368, "src": "11445:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -68968,7 +69206,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -68992,10 +69230,10 @@ "name": "TokenTransferFailed", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2664, + "referencedDeclaration": 2684, "src": "11425:19:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256)" } }, @@ -69076,7 +69314,7 @@ "referencedDeclaration": 1368, "src": "11586:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -69144,7 +69382,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -69172,10 +69410,10 @@ "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, + "referencedDeclaration": 2699, "src": "11567:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, @@ -69256,7 +69494,7 @@ "referencedDeclaration": 1368, "src": "11708:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -69328,7 +69566,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -69356,10 +69594,10 @@ "name": "TokenTransferError", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2679, + "referencedDeclaration": 2699, "src": "11689:18:6", "typeDescriptions": { - "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_event_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,string memory)" } }, @@ -69537,7 +69775,7 @@ "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, "typeName": { @@ -69547,13 +69785,13 @@ "id": 1366, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "10903:9:6" }, - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "10903:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -69705,7 +69943,7 @@ "parameters": [], "src": "11024:0:6" }, - "scope": 2592, + "scope": 2612, "src": "10879:1973:6", "stateMutability": "nonpayable", "virtual": false, @@ -70404,7 +70642,7 @@ "referencedDeclaration": 1574, "src": "13913:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } } @@ -70412,7 +70650,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } ], @@ -71940,7 +72178,7 @@ "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, "typeName": { @@ -71950,13 +72188,13 @@ "id": 1572, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "13057:9:6" }, - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "13057:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -72163,7 +72401,7 @@ ], "src": "13193:18:6" }, - "scope": 2592, + "scope": 2612, "src": "12941:1287:6", "stateMutability": "pure", "virtual": false, @@ -72171,9 +72409,9 @@ }, { "body": { - "id": 1923, + "id": 1925, "nodeType": "Block", - "src": "14490:1631:6", + "src": "14490:1661:6", "statements": [ { "expression": { @@ -72234,7 +72472,7 @@ "name": "_isCorrectProof", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2028, + "referencedDeclaration": 2030, "src": "14500:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_array$_t_bytes32_$dyn_calldata_ptr_$_t_uint32_$_t_bytes32_$returns$__$", @@ -72482,7 +72720,7 @@ "name": "commitHash", "nameLocation": "14725:10:6", "nodeType": "VariableDeclaration", - "scope": 1923, + "scope": 1925, "src": "14717:18:6", "stateVariable": false, "storageLocation": "default", @@ -72509,7 +72747,7 @@ "name": "paramsHash", "nameLocation": "14745:10:6", "nodeType": "VariableDeclaration", - "scope": 1923, + "scope": 1925, "src": "14737:18:6", "stateVariable": false, "storageLocation": "default", @@ -72618,7 +72856,7 @@ "referencedDeclaration": 1755, "src": "14837:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -72702,7 +72940,7 @@ "typeString": "enum ONEWallet.OperationType" }, { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -72733,7 +72971,7 @@ "referencedDeclaration": 1742, "src": "14759:14:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint32_$_t_bytes32_$_t_enum$_OperationType_$493_$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes32_$_t_bytes32_$", + "typeIdentifier": "t_function_internal_pure$_t_bytes32_$_t_uint32_$_t_bytes32_$_t_enum$_OperationType_$493_$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes32_$_t_bytes32_$", "typeString": "function (bytes32,uint32,bytes32,enum ONEWallet.OperationType,enum TokenTracker.TokenType,address,uint256,address,uint256,bytes calldata) pure returns (bytes32,bytes32)" } }, @@ -72767,7 +73005,7 @@ "name": "commitIndex", "nameLocation": "14910:11:6", "nodeType": "VariableDeclaration", - "scope": 1923, + "scope": 1925, "src": "14903:18:6", "stateVariable": false, "storageLocation": "default", @@ -72788,7 +73026,7 @@ "visibility": "internal" } ], - "id": 1816, + "id": 1817, "initialValue": { "arguments": [ { @@ -72838,6 +73076,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" } + }, + { + "id": 1815, + "name": "operationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1752, + "src": "14984:13:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } } ], "expression": { @@ -72857,20 +73107,24 @@ { "typeIdentifier": "t_bytes32", "typeString": "bytes32" + }, + { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" } ], "id": 1810, "name": "_verifyReveal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2359, + "referencedDeclaration": 2370, "src": "14924:13:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint32_$_t_bytes32_$_t_bytes32_$returns$_t_uint32_$", - "typeString": "function (bytes32,uint32,bytes32,bytes32) view returns (uint32)" + "typeIdentifier": "t_function_internal_view$_t_bytes32_$_t_uint32_$_t_bytes32_$_t_bytes32_$_t_enum$_OperationType_$493_$returns$_t_uint32_$", + "typeString": "function (bytes32,uint32,bytes32,bytes32,enum ONEWallet.OperationType) view returns (uint32)" } }, - "id": 1815, + "id": 1816, "isConstant": false, "isLValue": false, "isPure": false, @@ -72878,7 +73132,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14924:59:6", + "src": "14924:74:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -72886,34 +73140,46 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "14903:80:6" + "src": "14903:95:6" }, { "expression": { "arguments": [ { - "id": 1818, + "id": 1819, "name": "commitHash", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1790, - "src": "15009:10:6", + "src": "15024:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1819, + "id": 1820, "name": "commitIndex", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1809, - "src": "15021:11:6", + "src": "15036:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } + }, + { + "id": 1821, + "name": "operationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1752, + "src": "15049:13:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } } ], "expression": { @@ -72925,20 +73191,24 @@ { "typeIdentifier": "t_uint32", "typeString": "uint32" + }, + { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" } ], - "id": 1817, + "id": 1818, "name": "_completeReveal", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2432, - "src": "14993:15:6", + "referencedDeclaration": 2452, + "src": "15008:15:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint32_$returns$__$", - "typeString": "function (bytes32,uint32)" + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint32_$_t_enum$_OperationType_$493_$returns$__$", + "typeString": "function (bytes32,uint32,enum ONEWallet.OperationType)" } }, - "id": 1820, + "id": 1822, "isConstant": false, "isLValue": false, "isPure": false, @@ -72946,16 +73216,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "14993:40:6", + "src": "15008:55:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1821, + "id": 1823, "nodeType": "ExpressionStatement", - "src": "14993:40:6" + "src": "15008:55:6" }, { "condition": { @@ -72963,18 +73233,18 @@ "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1825, + "id": 1827, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1822, + "id": 1824, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1752, - "src": "15098:13:6", + "src": "15128:13:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" @@ -72984,18 +73254,18 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1823, + "id": 1825, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 493, - "src": "15115:13:6", + "src": "15145:13:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1824, + "id": 1826, "isConstant": false, "isLValue": false, "isPure": true, @@ -73003,13 +73273,13 @@ "memberName": "TRACK", "nodeType": "MemberAccess", "referencedDeclaration": 485, - "src": "15115:19:6", + "src": "15145:19:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15098:36:6", + "src": "15128:36:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -73021,18 +73291,18 @@ "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1847, + "id": 1849, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1844, + "id": 1846, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1752, - "src": "15328:13:6", + "src": "15358:13:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" @@ -73042,18 +73312,18 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1845, + "id": 1847, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 493, - "src": "15345:13:6", + "src": "15375:13:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1846, + "id": 1848, "isConstant": false, "isLValue": false, "isPure": true, @@ -73061,13 +73331,13 @@ "memberName": "UNTRACK", "nodeType": "MemberAccess", "referencedDeclaration": 486, - "src": "15345:21:6", + "src": "15375:21:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15328:38:6", + "src": "15358:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -73079,18 +73349,18 @@ "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1869, + "id": 1871, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1866, + "id": 1868, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1752, - "src": "15564:13:6", + "src": "15594:13:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" @@ -73100,18 +73370,18 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1867, + "id": 1869, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 493, - "src": "15581:13:6", + "src": "15611:13:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1868, + "id": 1870, "isConstant": false, "isLValue": false, "isPure": true, @@ -73119,13 +73389,13 @@ "memberName": "TRANSFER_TOKEN", "nodeType": "MemberAccess", "referencedDeclaration": 487, - "src": "15581:28:6", + "src": "15611:28:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15564:45:6", + "src": "15594:45:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -73137,18 +73407,18 @@ "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1883, + "id": 1885, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1880, + "id": 1882, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1752, - "src": "15717:13:6", + "src": "15747:13:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" @@ -73158,18 +73428,18 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1881, + "id": 1883, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 493, - "src": "15734:13:6", + "src": "15764:13:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1882, + "id": 1884, "isConstant": false, "isLValue": false, "isPure": true, @@ -73177,13 +73447,13 @@ "memberName": "OVERRIDE_TRACK", "nodeType": "MemberAccess", "referencedDeclaration": 488, - "src": "15734:28:6", + "src": "15764:28:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15717:45:6", + "src": "15747:45:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -73195,18 +73465,18 @@ "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1892, + "id": 1894, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1889, + "id": 1891, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1752, - "src": "15828:13:6", + "src": "15858:13:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" @@ -73216,18 +73486,18 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1890, + "id": 1892, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 493, - "src": "15845:13:6", + "src": "15875:13:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1891, + "id": 1893, "isConstant": false, "isLValue": false, "isPure": true, @@ -73235,13 +73505,13 @@ "memberName": "TRANSFER", "nodeType": "MemberAccess", "referencedDeclaration": 489, - "src": "15845:22:6", + "src": "15875:22:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15828:39:6", + "src": "15858:39:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -73253,18 +73523,18 @@ "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1902, + "id": 1904, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1899, + "id": 1901, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1752, - "src": "15927:13:6", + "src": "15957:13:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" @@ -73274,18 +73544,18 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1900, + "id": 1902, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 493, - "src": "15944:13:6", + "src": "15974:13:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1901, + "id": 1903, "isConstant": false, "isLValue": false, "isPure": true, @@ -73293,13 +73563,13 @@ "memberName": "RECOVER", "nodeType": "MemberAccess", "referencedDeclaration": 491, - "src": "15944:21:6", + "src": "15974:21:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "15927:38:6", + "src": "15957:38:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -73311,18 +73581,18 @@ "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" }, - "id": 1910, + "id": 1912, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1907, + "id": 1909, "name": "operationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1752, - "src": "16012:13:6", + "src": "16042:13:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" @@ -73332,18 +73602,18 @@ "operator": "==", "rightExpression": { "expression": { - "id": 1908, + "id": 1910, "name": "OperationType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 493, - "src": "16029:13:6", + "src": "16059:13:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", "typeString": "type(enum ONEWallet.OperationType)" } }, - "id": 1909, + "id": 1911, "isConstant": false, "isLValue": false, "isPure": true, @@ -73351,36 +73621,36 @@ "memberName": "SET_RECOVERY_ADDRESS", "nodeType": "MemberAccess", "referencedDeclaration": 490, - "src": "16029:34:6", + "src": "16059:34:6", "typeDescriptions": { "typeIdentifier": "t_enum$_OperationType_$493", "typeString": "enum ONEWallet.OperationType" } }, - "src": "16012:51:6", + "src": "16042:51:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1916, + "id": 1918, "nodeType": "IfStatement", - "src": "16008:107:6", + "src": "16038:107:6", "trueBody": { - "id": 1915, + "id": 1917, "nodeType": "Block", - "src": "16065:50:6", + "src": "16095:50:6", "statements": [ { "expression": { "arguments": [ { - "id": 1912, + "id": 1914, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1761, - "src": "16099:4:6", + "src": "16129:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" @@ -73394,18 +73664,18 @@ "typeString": "address payable" } ], - "id": 1911, + "id": 1913, "name": "_setRecoveryAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1365, - "src": "16079:19:6", + "src": "16109:19:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$returns$__$", "typeString": "function (address payable)" } }, - "id": 1913, + "id": 1915, "isConstant": false, "isLValue": false, "isPure": false, @@ -73413,45 +73683,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16079:25:6", + "src": "16109:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1914, + "id": 1916, "nodeType": "ExpressionStatement", - "src": "16079:25:6" + "src": "16109:25:6" } ] } }, - "id": 1917, + "id": 1919, "nodeType": "IfStatement", - "src": "15923:192:6", + "src": "15953:192:6", "trueBody": { - "id": 1906, + "id": 1908, "nodeType": "Block", - "src": "15967:35:6", + "src": "15997:35:6", "statements": [ { "expression": { "arguments": [], "expression": { "argumentTypes": [], - "id": 1903, + "id": 1905, "name": "_recover", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1345, - "src": "15981:8:6", + "src": "16011:8:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$__$returns$_t_bool_$", "typeString": "function () returns (bool)" } }, - "id": 1904, + "id": 1906, "isConstant": false, "isLValue": false, "isPure": false, @@ -73459,50 +73729,50 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15981:10:6", + "src": "16011:10:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1905, + "id": 1907, "nodeType": "ExpressionStatement", - "src": "15981:10:6" + "src": "16011:10:6" } ] } }, - "id": 1918, + "id": 1920, "nodeType": "IfStatement", - "src": "15824:291:6", + "src": "15854:291:6", "trueBody": { - "id": 1898, + "id": 1900, "nodeType": "Block", - "src": "15869:48:6", + "src": "15899:48:6", "statements": [ { "expression": { "arguments": [ { - "id": 1894, + "id": 1896, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1761, - "src": "15893:4:6", + "src": "15923:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 1895, + "id": 1897, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1763, - "src": "15899:6:6", + "src": "15929:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -73520,18 +73790,18 @@ "typeString": "uint256" } ], - "id": 1893, + "id": 1895, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1314, - "src": "15883:9:6", + "src": "15913:9:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_payable_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address payable,uint256) returns (bool)" } }, - "id": 1896, + "id": 1898, "isConstant": false, "isLValue": false, "isPure": false, @@ -73539,38 +73809,38 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15883:23:6", + "src": "15913:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1897, + "id": 1899, "nodeType": "ExpressionStatement", - "src": "15883:23:6" + "src": "15913:23:6" } ] } }, - "id": 1919, + "id": 1921, "nodeType": "IfStatement", - "src": "15713:402:6", + "src": "15743:402:6", "trueBody": { - "id": 1888, + "id": 1890, "nodeType": "Block", - "src": "15764:54:6", + "src": "15794:54:6", "statements": [ { "expression": { "arguments": [ { - "id": 1885, + "id": 1887, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1765, - "src": "15802:4:6", + "src": "15832:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -73584,18 +73854,18 @@ "typeString": "bytes calldata" } ], - "id": 1884, + "id": 1886, "name": "_overrideTrackWithBytes", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3597, - "src": "15778:23:6", + "referencedDeclaration": 3617, + "src": "15808:23:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$__$", "typeString": "function (bytes calldata)" } }, - "id": 1886, + "id": 1888, "isConstant": false, "isLValue": false, "isPure": false, @@ -73603,98 +73873,98 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15778:29:6", + "src": "15808:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1887, + "id": 1889, "nodeType": "ExpressionStatement", - "src": "15778:29:6" + "src": "15808:29:6" } ] } }, - "id": 1920, + "id": 1922, "nodeType": "IfStatement", - "src": "15560:555:6", + "src": "15590:555:6", "trueBody": { - "id": 1879, + "id": 1881, "nodeType": "Block", - "src": "15611:96:6", + "src": "15641:96:6", "statements": [ { "expression": { "arguments": [ { - "id": 1871, + "id": 1873, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1755, - "src": "15640:9:6", + "src": "15670:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1872, + "id": 1874, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1757, - "src": "15651:15:6", + "src": "15681:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1873, + "id": 1875, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1759, - "src": "15668:7:6", + "src": "15698:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1874, + "id": 1876, "name": "dest", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1761, - "src": "15677:4:6", + "src": "15707:4:6", "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } }, { - "id": 1875, + "id": 1877, "name": "amount", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1763, - "src": "15683:6:6", + "src": "15713:6:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { - "id": 1876, + "id": 1878, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1765, - "src": "15691:4:6", + "src": "15721:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -73704,7 +73974,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -73728,18 +73998,18 @@ "typeString": "bytes calldata" } ], - "id": 1870, + "id": 1872, "name": "_transferToken", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1561, - "src": "15625:14:6", + "src": "15655:14:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256,address,uint256,bytes memory)" } }, - "id": 1877, + "id": 1879, "isConstant": false, "isLValue": false, "isPure": false, @@ -73747,27 +74017,27 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15625:71:6", + "src": "15655:71:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1878, + "id": 1880, "nodeType": "ExpressionStatement", - "src": "15625:71:6" + "src": "15655:71:6" } ] } }, - "id": 1921, + "id": 1923, "nodeType": "IfStatement", - "src": "15324:791:6", + "src": "15354:791:6", "trueBody": { - "id": 1865, + "id": 1867, "nodeType": "Block", - "src": "15368:186:6", + "src": "15398:186:6", "statements": [ { "condition": { @@ -73775,32 +74045,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1851, + "id": 1853, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1848, + "id": 1850, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1765, - "src": "15386:4:6", + "src": "15416:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 1849, + "id": 1851, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "15386:11:6", + "src": "15416:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -73810,41 +74080,41 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1850, + "id": 1852, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15400:1:6", + "src": "15430:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "15386:15:6", + "src": "15416:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1863, + "id": 1865, "nodeType": "Block", - "src": "15492:52:6", + "src": "15522:52:6", "statements": [ { "expression": { "arguments": [ { - "id": 1860, + "id": 1862, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1765, - "src": "15524:4:6", + "src": "15554:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -73858,18 +74128,18 @@ "typeString": "bytes calldata" } ], - "id": 1859, + "id": 1861, "name": "_multiUntrack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3813, - "src": "15510:13:6", + "referencedDeclaration": 3833, + "src": "15540:13:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$__$", "typeString": "function (bytes calldata)" } }, - "id": 1861, + "id": 1863, "isConstant": false, "isLValue": false, "isPure": false, @@ -73877,61 +74147,61 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15510:19:6", + "src": "15540:19:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1862, + "id": 1864, "nodeType": "ExpressionStatement", - "src": "15510:19:6" + "src": "15540:19:6" } ] }, - "id": 1864, + "id": 1866, "nodeType": "IfStatement", - "src": "15382:162:6", + "src": "15412:162:6", "trueBody": { - "id": 1858, + "id": 1860, "nodeType": "Block", - "src": "15403:83:6", + "src": "15433:83:6", "statements": [ { "expression": { "arguments": [ { - "id": 1853, + "id": 1855, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1755, - "src": "15435:9:6", + "src": "15465:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1854, + "id": 1856, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1757, - "src": "15446:15:6", + "src": "15476:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1855, + "id": 1857, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1759, - "src": "15463:7:6", + "src": "15493:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -73941,7 +74211,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -73953,18 +74223,18 @@ "typeString": "uint256" } ], - "id": 1852, + "id": 1854, "name": "_untrackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3307, - "src": "15421:13:6", + "referencedDeclaration": 3327, + "src": "15451:13:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 1856, + "id": 1858, "isConstant": false, "isLValue": false, "isPure": false, @@ -73972,16 +74242,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15421:50:6", + "src": "15451:50:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1857, + "id": 1859, "nodeType": "ExpressionStatement", - "src": "15421:50:6" + "src": "15451:50:6" } ] } @@ -73989,13 +74259,13 @@ ] } }, - "id": 1922, + "id": 1924, "nodeType": "IfStatement", - "src": "15094:1021:6", + "src": "15124:1021:6", "trueBody": { - "id": 1843, + "id": 1845, "nodeType": "Block", - "src": "15136:182:6", + "src": "15166:182:6", "statements": [ { "condition": { @@ -74003,32 +74273,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1829, + "id": 1831, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1826, + "id": 1828, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1765, - "src": "15154:4:6", + "src": "15184:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" } }, - "id": 1827, + "id": 1829, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "15154:11:6", + "src": "15184:11:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -74038,65 +74308,65 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 1828, + "id": 1830, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "15168:1:6", + "src": "15198:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "15154:15:6", + "src": "15184:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 1841, + "id": 1843, "nodeType": "Block", - "src": "15227:81:6", + "src": "15257:81:6", "statements": [ { "expression": { "arguments": [ { - "id": 1836, + "id": 1838, "name": "tokenType", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1755, - "src": "15257:9:6", + "src": "15287:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, { - "id": 1837, + "id": 1839, "name": "contractAddress", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1757, - "src": "15268:15:6", + "src": "15298:15:6", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { - "id": 1838, + "id": 1840, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1759, - "src": "15285:7:6", + "src": "15315:7:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -74106,7 +74376,7 @@ "expression": { "argumentTypes": [ { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, { @@ -74118,18 +74388,18 @@ "typeString": "uint256" } ], - "id": 1835, + "id": 1837, "name": "_trackToken", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3089, - "src": "15245:11:6", + "referencedDeclaration": 3109, + "src": "15275:11:6", "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2607_$_t_address_$_t_uint256_$returns$__$", + "typeIdentifier": "t_function_internal_nonpayable$_t_enum$_TokenType_$2627_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (enum TokenTracker.TokenType,address,uint256)" } }, - "id": 1839, + "id": 1841, "isConstant": false, "isLValue": false, "isPure": false, @@ -74137,37 +74407,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15245:48:6", + "src": "15275:48:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1840, + "id": 1842, "nodeType": "ExpressionStatement", - "src": "15245:48:6" + "src": "15275:48:6" } ] }, - "id": 1842, + "id": 1844, "nodeType": "IfStatement", - "src": "15150:158:6", + "src": "15180:158:6", "trueBody": { - "id": 1834, + "id": 1836, "nodeType": "Block", - "src": "15171:50:6", + "src": "15201:50:6", "statements": [ { "expression": { "arguments": [ { - "id": 1831, + "id": 1833, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 1765, - "src": "15201:4:6", + "src": "15231:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes calldata" @@ -74181,18 +74451,18 @@ "typeString": "bytes calldata" } ], - "id": 1830, + "id": 1832, "name": "_multiTrack", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 3705, - "src": "15189:11:6", + "referencedDeclaration": 3725, + "src": "15219:11:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes_calldata_ptr_$returns$__$", "typeString": "function (bytes calldata)" } }, - "id": 1832, + "id": 1834, "isConstant": false, "isLValue": false, "isPure": false, @@ -74200,16 +74470,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "15189:17:6", + "src": "15219:17:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1833, + "id": 1835, "nodeType": "ExpressionStatement", - "src": "15189:17:6" + "src": "15219:17:6" } ] } @@ -74220,7 +74490,7 @@ ] }, "functionSelector": "c34a6dad", - "id": 1924, + "id": 1926, "implemented": true, "kind": "function", "modifiers": [], @@ -74238,7 +74508,7 @@ "name": "neighbors", "nameLocation": "14270:9:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14251:28:6", "stateVariable": false, "storageLocation": "calldata", @@ -74274,7 +74544,7 @@ "name": "indexWithNonce", "nameLocation": "14288:14:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14281:21:6", "stateVariable": false, "storageLocation": "default", @@ -74301,7 +74571,7 @@ "name": "eotp", "nameLocation": "14312:4:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14304:12:6", "stateVariable": false, "storageLocation": "default", @@ -74328,7 +74598,7 @@ "name": "operationType", "nameLocation": "14340:13:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14326:27:6", "stateVariable": false, "storageLocation": "default", @@ -74362,12 +74632,12 @@ "name": "tokenType", "nameLocation": "14365:9:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14355:19:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" }, "typeName": { @@ -74377,13 +74647,13 @@ "id": 1753, "name": "TokenType", "nodeType": "IdentifierPath", - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "14355:9:6" }, - "referencedDeclaration": 2607, + "referencedDeclaration": 2627, "src": "14355:9:6", "typeDescriptions": { - "typeIdentifier": "t_enum$_TokenType_$2607", + "typeIdentifier": "t_enum$_TokenType_$2627", "typeString": "enum TokenTracker.TokenType" } }, @@ -74396,7 +74666,7 @@ "name": "contractAddress", "nameLocation": "14384:15:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14376:23:6", "stateVariable": false, "storageLocation": "default", @@ -74424,7 +74694,7 @@ "name": "tokenId", "nameLocation": "14409:7:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14401:15:6", "stateVariable": false, "storageLocation": "default", @@ -74451,7 +74721,7 @@ "name": "dest", "nameLocation": "14434:4:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14418:20:6", "stateVariable": false, "storageLocation": "default", @@ -74479,7 +74749,7 @@ "name": "amount", "nameLocation": "14448:6:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14440:14:6", "stateVariable": false, "storageLocation": "default", @@ -74506,7 +74776,7 @@ "name": "data", "nameLocation": "14471:4:6", "nodeType": "VariableDeclaration", - "scope": 1924, + "scope": 1926, "src": "14456:19:6", "stateVariable": false, "storageLocation": "calldata", @@ -74535,17 +74805,17 @@ "parameters": [], "src": "14490:0:6" }, - "scope": 2592, - "src": "14235:1886:6", + "scope": 2612, + "src": "14235:1916:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "body": { - "id": 2027, + "id": 2029, "nodeType": "Block", - "src": "16350:604:6", + "src": "16380:604:6", "statements": [ { "expression": { @@ -74555,32 +74825,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 1941, + "id": 1943, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 1936, + "id": 1938, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1928, - "src": "16368:9:6", + "referencedDeclaration": 1930, + "src": "16398:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1937, + "id": 1939, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "16368:16:6", + "src": "16398:16:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -74593,18 +74863,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1940, + "id": 1942, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1938, + "id": 1940, "name": "height", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 439, - "src": "16388:6:6", + "src": "16418:6:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -74614,27 +74884,27 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 1939, + "id": 1941, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16397:1:6", + "src": "16427:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "16388:10:6", + "src": "16418:10:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "16368:30:6", + "src": "16398:30:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -74642,14 +74912,14 @@ }, { "hexValue": "4e6f7420656e6f756768206e65696768626f72732070726f7669646564", - "id": 1942, + "id": 1944, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "16400:31:6", + "src": "16430:31:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_83d08d6dcf099c52fbe149a08cb4ffd65f3fec6dbf87dba7bc08b7a534982441", "typeString": "literal_string \"Not enough neighbors provided\"" @@ -74668,7 +74938,7 @@ "typeString": "literal_string \"Not enough neighbors provided\"" } ], - "id": 1935, + "id": 1937, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -74676,13 +74946,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "16360:7:6", + "src": "16390:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 1943, + "id": 1945, "isConstant": false, "isLValue": false, "isPure": false, @@ -74690,31 +74960,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16360:72:6", + "src": "16390:72:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 1944, + "id": 1946, "nodeType": "ExpressionStatement", - "src": "16360:72:6" + "src": "16390:72:6" }, { "assignments": [ - 1946 + 1948 ], "declarations": [ { "constant": false, - "id": 1946, + "id": 1948, "mutability": "mutable", "name": "h", - "nameLocation": "16450:1:6", + "nameLocation": "16480:1:6", "nodeType": "VariableDeclaration", - "scope": 2027, - "src": "16442:9:6", + "scope": 2029, + "src": "16472:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -74722,10 +74992,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1945, + "id": 1947, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "16442:7:6", + "src": "16472:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -74734,18 +75004,18 @@ "visibility": "internal" } ], - "id": 1954, + "id": 1956, "initialValue": { "arguments": [ { "arguments": [ { - "id": 1951, + "id": 1953, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1932, - "src": "16474:4:6", + "referencedDeclaration": 1934, + "src": "16504:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -74760,39 +75030,39 @@ } ], "expression": { - "id": 1949, + "id": 1951, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16461:5:6", + "src": "16491:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1948, + "id": 1950, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "16461:5:6", + "src": "16491:5:6", "typeDescriptions": {} } }, - "id": 1950, + "id": 1952, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "16461:12:6", + "src": "16491:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1952, + "id": 1954, "isConstant": false, "isLValue": false, "isPure": false, @@ -74800,7 +75070,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16461:18:6", + "src": "16491:18:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -74815,18 +75085,18 @@ "typeString": "bytes memory" } ], - "id": 1947, + "id": 1949, "name": "sha256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967274, - "src": "16454:6:6", + "src": "16484:6:6", "typeDescriptions": { "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1953, + "id": 1955, "isConstant": false, "isLValue": false, "isPure": false, @@ -74834,7 +75104,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16454:26:6", + "src": "16484:26:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -74842,7 +75112,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "16442:38:6" + "src": "16472:38:6" }, { "condition": { @@ -74850,18 +75120,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1959, + "id": 1961, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1955, + "id": 1957, "name": "position", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "16494:8:6", + "referencedDeclaration": 1932, + "src": "16524:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74874,18 +75144,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1958, + "id": 1960, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1956, + "id": 1958, "name": "_numLeaves", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 449, - "src": "16506:10:6", + "src": "16536:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -74895,54 +75165,54 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 1957, + "id": 1959, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16519:1:6", + "src": "16549:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "16506:14:6", + "src": "16536:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "16494:26:6", + "src": "16524:26:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 1965, + "id": 1967, "nodeType": "IfStatement", - "src": "16490:107:6", + "src": "16520:107:6", "trueBody": { - "id": 1964, + "id": 1966, "nodeType": "Block", - "src": "16522:75:6", + "src": "16552:75:6", "statements": [ { "expression": { - "id": 1962, + "id": 1964, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1960, + "id": 1962, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1946, - "src": "16578:1:6", + "referencedDeclaration": 1948, + "src": "16608:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -74951,35 +75221,35 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 1961, + "id": 1963, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1932, - "src": "16582:4:6", + "referencedDeclaration": 1934, + "src": "16612:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "16578:8:6", + "src": "16608:8:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1963, + "id": 1965, "nodeType": "ExpressionStatement", - "src": "16578:8:6" + "src": "16608:8:6" } ] } }, { "body": { - "id": 2017, + "id": 2019, "nodeType": "Block", - "src": "16645:237:6", + "src": "16675:237:6", "statements": [ { "condition": { @@ -74987,7 +75257,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1983, + "id": 1985, "isConstant": false, "isLValue": false, "isPure": false, @@ -74999,18 +75269,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 1980, + "id": 1982, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1978, + "id": 1980, "name": "position", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "16664:8:6", + "referencedDeclaration": 1932, + "src": "16694:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -75020,35 +75290,35 @@ "operator": "&", "rightExpression": { "hexValue": "30783031", - "id": 1979, + "id": 1981, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16675:4:6", + "src": "16705:4:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "0x01" }, - "src": "16664:15:6", + "src": "16694:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } } ], - "id": 1981, + "id": 1983, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", - "src": "16663:17:6", + "src": "16693:17:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -75058,45 +75328,45 @@ "operator": "==", "rightExpression": { "hexValue": "30783031", - "id": 1982, + "id": 1984, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16684:4:6", + "src": "16714:4:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "0x01" }, - "src": "16663:25:6", + "src": "16693:25:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2011, + "id": 2013, "nodeType": "Block", - "src": "16770:74:6", + "src": "16800:74:6", "statements": [ { "expression": { - "id": 2009, + "id": 2011, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1998, + "id": 2000, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1946, - "src": "16788:1:6", + "referencedDeclaration": 1948, + "src": "16818:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -75109,12 +75379,12 @@ { "arguments": [ { - "id": 2003, + "id": 2005, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1946, - "src": "16812:1:6", + "referencedDeclaration": 1948, + "src": "16842:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -75122,25 +75392,25 @@ }, { "baseExpression": { - "id": 2004, + "id": 2006, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1928, - "src": "16815:9:6", + "referencedDeclaration": 1930, + "src": "16845:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 2006, + "id": 2008, "indexExpression": { - "id": 2005, + "id": 2007, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1967, - "src": "16825:1:6", + "referencedDeclaration": 1969, + "src": "16855:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -75151,7 +75421,7 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "16815:12:6", + "src": "16845:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -75170,39 +75440,39 @@ } ], "expression": { - "id": 2001, + "id": 2003, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16799:5:6", + "src": "16829:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2000, + "id": 2002, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "16799:5:6", + "src": "16829:5:6", "typeDescriptions": {} } }, - "id": 2002, + "id": 2004, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "16799:12:6", + "src": "16829:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2007, + "id": 2009, "isConstant": false, "isLValue": false, "isPure": false, @@ -75210,7 +75480,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16799:29:6", + "src": "16829:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -75225,18 +75495,18 @@ "typeString": "bytes memory" } ], - "id": 1999, + "id": 2001, "name": "sha256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967274, - "src": "16792:6:6", + "src": "16822:6:6", "typeDescriptions": { "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2008, + "id": 2010, "isConstant": false, "isLValue": false, "isPure": false, @@ -75244,47 +75514,47 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16792:37:6", + "src": "16822:37:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "16788:41:6", + "src": "16818:41:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2010, + "id": 2012, "nodeType": "ExpressionStatement", - "src": "16788:41:6" + "src": "16818:41:6" } ] }, - "id": 2012, + "id": 2014, "nodeType": "IfStatement", - "src": "16659:185:6", + "src": "16689:185:6", "trueBody": { - "id": 1997, + "id": 1999, "nodeType": "Block", - "src": "16690:74:6", + "src": "16720:74:6", "statements": [ { "expression": { - "id": 1995, + "id": 1997, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 1984, + "id": 1986, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1946, - "src": "16708:1:6", + "referencedDeclaration": 1948, + "src": "16738:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -75298,25 +75568,25 @@ "arguments": [ { "baseExpression": { - "id": 1989, + "id": 1991, "name": "neighbors", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1928, - "src": "16732:9:6", + "referencedDeclaration": 1930, + "src": "16762:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_calldata_ptr", "typeString": "bytes32[] calldata" } }, - "id": 1991, + "id": 1993, "indexExpression": { - "id": 1990, + "id": 1992, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1967, - "src": "16742:1:6", + "referencedDeclaration": 1969, + "src": "16772:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -75327,19 +75597,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "16732:12:6", + "src": "16762:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 1992, + "id": 1994, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1946, - "src": "16746:1:6", + "referencedDeclaration": 1948, + "src": "16776:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -75358,39 +75628,39 @@ } ], "expression": { - "id": 1987, + "id": 1989, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "16719:5:6", + "src": "16749:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 1986, + "id": 1988, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "16719:5:6", + "src": "16749:5:6", "typeDescriptions": {} } }, - "id": 1988, + "id": 1990, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "16719:12:6", + "src": "16749:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 1993, + "id": 1995, "isConstant": false, "isLValue": false, "isPure": false, @@ -75398,7 +75668,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16719:29:6", + "src": "16749:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -75413,18 +75683,18 @@ "typeString": "bytes memory" } ], - "id": 1985, + "id": 1987, "name": "sha256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967274, - "src": "16712:6:6", + "src": "16742:6:6", "typeDescriptions": { "typeIdentifier": "t_function_sha256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 1994, + "id": 1996, "isConstant": false, "isLValue": false, "isPure": false, @@ -75432,40 +75702,40 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16712:37:6", + "src": "16742:37:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "16708:41:6", + "src": "16738:41:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1996, + "id": 1998, "nodeType": "ExpressionStatement", - "src": "16708:41:6" + "src": "16738:41:6" } ] } }, { "expression": { - "id": 2015, + "id": 2017, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2013, + "id": 2015, "name": "position", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1930, - "src": "16857:8:6", + "referencedDeclaration": 1932, + "src": "16887:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -75475,29 +75745,29 @@ "operator": ">>=", "rightHandSide": { "hexValue": "31", - "id": 2014, + "id": 2016, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16870:1:6", + "src": "16900:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "16857:14:6", + "src": "16887:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2016, + "id": 2018, "nodeType": "ExpressionStatement", - "src": "16857:14:6" + "src": "16887:14:6" } ] }, @@ -75506,18 +75776,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1974, + "id": 1976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1970, + "id": 1972, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1967, - "src": "16624:1:6", + "referencedDeclaration": 1969, + "src": "16654:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -75530,18 +75800,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 1973, + "id": 1975, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 1971, + "id": 1973, "name": "height", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 439, - "src": "16628:6:6", + "src": "16658:6:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -75551,47 +75821,47 @@ "operator": "-", "rightExpression": { "hexValue": "31", - "id": 1972, + "id": 1974, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16637:1:6", + "src": "16667:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "16628:10:6", + "src": "16658:10:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "16624:14:6", + "src": "16654:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2018, + "id": 2020, "initializationExpression": { "assignments": [ - 1967 + 1969 ], "declarations": [ { "constant": false, - "id": 1967, + "id": 1969, "mutability": "mutable", "name": "i", - "nameLocation": "16617:1:6", + "nameLocation": "16647:1:6", "nodeType": "VariableDeclaration", - "scope": 2018, - "src": "16611:7:6", + "scope": 2020, + "src": "16641:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -75599,10 +75869,10 @@ "typeString": "uint8" }, "typeName": { - "id": 1966, + "id": 1968, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "16611:5:6", + "src": "16641:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -75611,17 +75881,17 @@ "visibility": "internal" } ], - "id": 1969, + "id": 1971, "initialValue": { "hexValue": "30", - "id": 1968, + "id": 1970, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "16621:1:6", + "src": "16651:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -75629,11 +75899,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "16611:11:6" + "src": "16641:11:6" }, "loopExpression": { "expression": { - "id": 1976, + "id": 1978, "isConstant": false, "isLValue": false, "isPure": false, @@ -75641,14 +75911,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "16640:3:6", + "src": "16670:3:6", "subExpression": { - "id": 1975, + "id": 1977, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1967, - "src": "16640:1:6", + "referencedDeclaration": 1969, + "src": "16670:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -75659,12 +75929,12 @@ "typeString": "uint8" } }, - "id": 1977, + "id": 1979, "nodeType": "ExpressionStatement", - "src": "16640:3:6" + "src": "16670:3:6" }, "nodeType": "ForStatement", - "src": "16606:276:6" + "src": "16636:276:6" }, { "expression": { @@ -75674,18 +75944,18 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 2022, + "id": 2024, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2020, + "id": 2022, "name": "root", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 437, - "src": "16899:4:6", + "src": "16929:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -75694,18 +75964,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 2021, + "id": 2023, "name": "h", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 1946, - "src": "16907:1:6", + "referencedDeclaration": 1948, + "src": "16937:1:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "16899:9:6", + "src": "16929:9:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -75713,14 +75983,14 @@ }, { "hexValue": "50726f6f6620697320696e636f7272656374", - "id": 2023, + "id": 2025, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "16910:20:6", + "src": "16940:20:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_5515ff285a2022327bc0ffdc690388a3a1d15360640a68caecd56fe24371f01a", "typeString": "literal_string \"Proof is incorrect\"" @@ -75739,7 +76009,7 @@ "typeString": "literal_string \"Proof is incorrect\"" } ], - "id": 2019, + "id": 2021, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -75747,13 +76017,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "16891:7:6", + "src": "16921:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2024, + "id": 2026, "isConstant": false, "isLValue": false, "isPure": false, @@ -75761,51 +76031,51 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "16891:40:6", + "src": "16921:40:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2025, + "id": 2027, "nodeType": "ExpressionStatement", - "src": "16891:40:6" + "src": "16921:40:6" }, { - "functionReturnParameters": 1934, - "id": 2026, + "functionReturnParameters": 1936, + "id": 2028, "nodeType": "Return", - "src": "16941:7:6" + "src": "16971:7:6" } ] }, "documentation": { - "id": 1925, + "id": 1927, "nodeType": "StructuredDocumentation", - "src": "16127:118:6", + "src": "16157:118:6", "text": "This is just a wrapper around a modifier previously called `isCorrectProof`, to avoid \"Stack too deep\" error. Duh." }, - "id": 2028, + "id": 2030, "implemented": true, "kind": "function", "modifiers": [], "name": "_isCorrectProof", - "nameLocation": "16259:15:6", + "nameLocation": "16289:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 1933, + "id": 1935, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 1928, + "id": 1930, "mutability": "mutable", "name": "neighbors", - "nameLocation": "16294:9:6", + "nameLocation": "16324:9:6", "nodeType": "VariableDeclaration", - "scope": 2028, - "src": "16275:28:6", + "scope": 2030, + "src": "16305:28:6", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { @@ -75814,18 +76084,18 @@ }, "typeName": { "baseType": { - "id": 1926, + "id": 1928, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "16275:7:6", + "src": "16305:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 1927, + "id": 1929, "nodeType": "ArrayTypeName", - "src": "16275:9:6", + "src": "16305:9:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", "typeString": "bytes32[]" @@ -75835,13 +76105,13 @@ }, { "constant": false, - "id": 1930, + "id": 1932, "mutability": "mutable", "name": "position", - "nameLocation": "16312:8:6", + "nameLocation": "16342:8:6", "nodeType": "VariableDeclaration", - "scope": 2028, - "src": "16305:15:6", + "scope": 2030, + "src": "16335:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -75849,10 +76119,10 @@ "typeString": "uint32" }, "typeName": { - "id": 1929, + "id": 1931, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "16305:6:6", + "src": "16335:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -75862,13 +76132,13 @@ }, { "constant": false, - "id": 1932, + "id": 1934, "mutability": "mutable", "name": "eotp", - "nameLocation": "16330:4:6", + "nameLocation": "16360:4:6", "nodeType": "VariableDeclaration", - "scope": 2028, - "src": "16322:12:6", + "scope": 2030, + "src": "16352:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -75876,10 +76146,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 1931, + "id": 1933, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "16322:7:6", + "src": "16352:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -75888,40 +76158,40 @@ "visibility": "internal" } ], - "src": "16274:61:6" + "src": "16304:61:6" }, "returnParameters": { - "id": 1934, + "id": 1936, "nodeType": "ParameterList", "parameters": [], - "src": "16350:0:6" + "src": "16380:0:6" }, - "scope": 2592, - "src": "16250:704:6", + "scope": 2612, + "src": "16280:704:6", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2196, + "id": 2198, "nodeType": "Block", - "src": "17445:2493:6", + "src": "17475:2493:6", "statements": [ { "assignments": [ - 2033 + 2035 ], "declarations": [ { "constant": false, - "id": 2033, + "id": 2035, "mutability": "mutable", "name": "timelyIndex", - "nameLocation": "17462:11:6", + "nameLocation": "17492:11:6", "nodeType": "VariableDeclaration", - "scope": 2196, - "src": "17455:18:6", + "scope": 2198, + "src": "17485:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -75929,10 +76199,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2032, + "id": 2034, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "17455:6:6", + "src": "17485:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -75941,17 +76211,17 @@ "visibility": "internal" } ], - "id": 2035, + "id": 2037, "initialValue": { "hexValue": "30", - "id": 2034, + "id": 2036, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17476:1:6", + "src": "17506:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -75959,22 +76229,22 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "17455:22:6" + "src": "17485:22:6" }, { "assignments": [ - 2037 + 2039 ], "declarations": [ { "constant": false, - "id": 2037, + "id": 2039, "mutability": "mutable", "name": "bt", - "nameLocation": "17494:2:6", + "nameLocation": "17524:2:6", "nodeType": "VariableDeclaration", - "scope": 2196, - "src": "17487:9:6", + "scope": 2198, + "src": "17517:9:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -75982,10 +76252,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2036, + "id": 2038, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "17487:6:6", + "src": "17517:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -75994,30 +76264,30 @@ "visibility": "internal" } ], - "id": 2043, + "id": 2045, "initialValue": { "arguments": [ { "expression": { - "id": 2040, + "id": 2042, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "17506:5:6", + "src": "17536:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 2041, + "id": 2043, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "17506:15:6", + "src": "17536:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -76031,26 +76301,26 @@ "typeString": "uint256" } ], - "id": 2039, + "id": 2041, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "17499:6:6", + "src": "17529:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 2038, + "id": 2040, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "17499:6:6", + "src": "17529:6:6", "typeDescriptions": {} } }, - "id": 2042, + "id": 2044, "isConstant": false, "isLValue": false, "isPure": false, @@ -76058,7 +76328,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "17499:23:6", + "src": "17529:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -76066,28 +76336,28 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "17487:35:6" + "src": "17517:35:6" }, { "body": { - "id": 2090, + "id": 2092, "nodeType": "Block", - "src": "17747:879:6", + "src": "17777:879:6", "statements": [ { "assignments": [ - 2052 + 2054 ], "declarations": [ { "constant": false, - "id": 2052, + "id": 2054, "mutability": "mutable", "name": "hash", - "nameLocation": "17769:4:6", + "nameLocation": "17799:4:6", "nodeType": "VariableDeclaration", - "scope": 2090, - "src": "17761:12:6", + "scope": 2092, + "src": "17791:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -76095,10 +76365,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2051, + "id": 2053, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "17761:7:6", + "src": "17791:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -76107,28 +76377,28 @@ "visibility": "internal" } ], - "id": 2056, + "id": 2058, "initialValue": { "baseExpression": { - "id": 2053, + "id": 2055, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 507, - "src": "17776:7:6", + "src": "17806:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 2055, + "id": 2057, "indexExpression": { - "id": 2054, + "id": 2056, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "17784:11:6", + "referencedDeclaration": 2035, + "src": "17814:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76139,29 +76409,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17776:20:6", + "src": "17806:20:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "17761:35:6" + "src": "17791:35:6" }, { "assignments": [ - 2061 + 2063 ], "declarations": [ { "constant": false, - "id": 2061, + "id": 2063, "mutability": "mutable", "name": "cc", - "nameLocation": "17827:2:6", + "nameLocation": "17857:2:6", "nodeType": "VariableDeclaration", - "scope": 2090, - "src": "17810:19:6", + "scope": 2092, + "src": "17840:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -76170,25 +76440,25 @@ }, "typeName": { "baseType": { - "id": 2059, + "id": 2061, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2058, + "id": 2060, "name": "Commit", "nodeType": "IdentifierPath", "referencedDeclaration": 504, - "src": "17810:6:6" + "src": "17840:6:6" }, "referencedDeclaration": 504, - "src": "17810:6:6", + "src": "17840:6:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 2060, + "id": 2062, "nodeType": "ArrayTypeName", - "src": "17810:8:6", + "src": "17840:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" @@ -76197,28 +76467,28 @@ "visibility": "internal" } ], - "id": 2065, + "id": 2067, "initialValue": { "baseExpression": { - "id": 2062, + "id": 2064, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 513, - "src": "17832:12:6", + "src": "17862:12:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 2064, + "id": 2066, "indexExpression": { - "id": 2063, + "id": 2065, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2052, - "src": "17845:4:6", + "referencedDeclaration": 2054, + "src": "17875:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -76229,14 +76499,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "17832:18:6", + "src": "17862:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "17810:40:6" + "src": "17840:40:6" }, { "condition": { @@ -76244,32 +76514,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2069, + "id": 2071, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2066, + "id": 2068, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2061, - "src": "17966:2:6", + "referencedDeclaration": 2063, + "src": "17996:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2067, + "id": 2069, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "17966:9:6", + "src": "17996:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -76279,56 +76549,56 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 2068, + "id": 2070, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "17979:1:6", + "src": "18009:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "17966:14:6", + "src": "17996:14:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2072, + "id": 2074, "nodeType": "IfStatement", - "src": "17962:61:6", + "src": "17992:61:6", "trueBody": { - "id": 2071, + "id": 2073, "nodeType": "Block", - "src": "17982:41:6", + "src": "18012:41:6", "statements": [ { - "id": 2070, + "id": 2072, "nodeType": "Continue", - "src": "18000:8:6" + "src": "18030:8:6" } ] } }, { "assignments": [ - 2075 + 2077 ], "declarations": [ { "constant": false, - "id": 2075, + "id": 2077, "mutability": "mutable", "name": "c", - "nameLocation": "18483:1:6", + "nameLocation": "18513:1:6", "nodeType": "VariableDeclaration", - "scope": 2090, - "src": "18468:16:6", + "scope": 2092, + "src": "18498:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -76336,17 +76606,17 @@ "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 2074, + "id": 2076, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2073, + "id": 2075, "name": "Commit", "nodeType": "IdentifierPath", "referencedDeclaration": 504, - "src": "18468:6:6" + "src": "18498:6:6" }, "referencedDeclaration": 504, - "src": "18468:6:6", + "src": "18498:6:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" @@ -76355,31 +76625,31 @@ "visibility": "internal" } ], - "id": 2079, + "id": 2081, "initialValue": { "baseExpression": { - "id": 2076, + "id": 2078, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2061, - "src": "18487:2:6", + "referencedDeclaration": 2063, + "src": "18517:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2078, + "id": 2080, "indexExpression": { "hexValue": "30", - "id": 2077, + "id": 2079, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18490:1:6", + "src": "18520:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -76391,19 +76661,19 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "18487:5:6", + "src": "18517:5:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "18468:24:6" + "src": "18498:24:6" }, { - "id": 2089, + "id": 2091, "nodeType": "UncheckedBlock", - "src": "18502:114:6", + "src": "18532:114:6", "statements": [ { "condition": { @@ -76411,25 +76681,25 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2085, + "id": 2087, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2080, + "id": 2082, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2075, - "src": "18530:1:6", + "referencedDeclaration": 2077, + "src": "18560:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2081, + "id": 2083, "isConstant": false, "isLValue": true, "isPure": false, @@ -76437,7 +76707,7 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": 501, - "src": "18530:11:6", + "src": "18560:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76450,18 +76720,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2084, + "id": 2086, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2082, + "id": 2084, "name": "bt", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2037, - "src": "18545:2:6", + "referencedDeclaration": 2039, + "src": "18575:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76470,41 +76740,41 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2083, + "id": 2085, "name": "REVEAL_MAX_DELAY", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, - "src": "18550:16:6", + "src": "18580:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "18545:21:6", + "src": "18575:21:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "18530:36:6", + "src": "18560:36:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2088, + "id": 2090, "nodeType": "IfStatement", - "src": "18526:80:6", + "src": "18556:80:6", "trueBody": { - "id": 2087, + "id": 2089, "nodeType": "Block", - "src": "18568:38:6", + "src": "18598:38:6", "statements": [ { - "id": 2086, + "id": 2088, "nodeType": "Break", - "src": "18586:5:6" + "src": "18616:5:6" } ] } @@ -76518,18 +76788,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2047, + "id": 2049, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2044, + "id": 2046, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "17702:11:6", + "referencedDeclaration": 2035, + "src": "17732:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76539,40 +76809,40 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2045, + "id": 2047, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 507, - "src": "17716:7:6", + "src": "17746:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 2046, + "id": 2048, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "17716:14:6", + "src": "17746:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "17702:28:6", + "src": "17732:28:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2091, + "id": 2093, "loopExpression": { "expression": { - "id": 2049, + "id": 2051, "isConstant": false, "isLValue": false, "isPure": false, @@ -76580,14 +76850,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "17732:13:6", + "src": "17762:13:6", "subExpression": { - "id": 2048, + "id": 2050, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "17732:11:6", + "referencedDeclaration": 2035, + "src": "17762:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76598,12 +76868,12 @@ "typeString": "uint32" } }, - "id": 2050, + "id": 2052, "nodeType": "ExpressionStatement", - "src": "17732:13:6" + "src": "17762:13:6" }, "nodeType": "ForStatement", - "src": "17695:931:6" + "src": "17725:931:6" }, { "condition": { @@ -76611,18 +76881,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2094, + "id": 2096, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2092, + "id": 2094, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "18785:11:6", + "referencedDeclaration": 2035, + "src": "18815:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76632,63 +76902,63 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 2093, + "id": 2095, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "18800:1:6", + "src": "18830:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "18785:16:6", + "src": "18815:16:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2097, + "id": 2099, "nodeType": "IfStatement", - "src": "18781:159:6", + "src": "18811:159:6", "trueBody": { - "id": 2096, + "id": 2098, "nodeType": "Block", - "src": "18803:137:6", + "src": "18833:137:6", "statements": [ { - "functionReturnParameters": 2031, - "id": 2095, + "functionReturnParameters": 2033, + "id": 2097, "nodeType": "Return", - "src": "18923:7:6" + "src": "18953:7:6" } ] } }, { "body": { - "id": 2146, + "id": 2148, "nodeType": "Block", - "src": "19096:240:6", + "src": "19126:240:6", "statements": [ { "assignments": [ - 2109 + 2111 ], "declarations": [ { "constant": false, - "id": 2109, + "id": 2111, "mutability": "mutable", "name": "hash", - "nameLocation": "19118:4:6", + "nameLocation": "19148:4:6", "nodeType": "VariableDeclaration", - "scope": 2146, - "src": "19110:12:6", + "scope": 2148, + "src": "19140:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -76696,10 +76966,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2108, + "id": 2110, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "19110:7:6", + "src": "19140:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -76708,28 +76978,28 @@ "visibility": "internal" } ], - "id": 2113, + "id": 2115, "initialValue": { "baseExpression": { - "id": 2110, + "id": 2112, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 507, - "src": "19125:7:6", + "src": "19155:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 2112, + "id": 2114, "indexExpression": { - "id": 2111, + "id": 2113, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "19133:1:6", + "referencedDeclaration": 2101, + "src": "19163:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76740,29 +77010,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "19125:10:6", + "src": "19155:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "nodeType": "VariableDeclarationStatement", - "src": "19110:25:6" + "src": "19140:25:6" }, { "assignments": [ - 2118 + 2120 ], "declarations": [ { "constant": false, - "id": 2118, + "id": 2120, "mutability": "mutable", "name": "cc", - "nameLocation": "19166:2:6", + "nameLocation": "19196:2:6", "nodeType": "VariableDeclaration", - "scope": 2146, - "src": "19149:19:6", + "scope": 2148, + "src": "19179:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -76771,25 +77041,25 @@ }, "typeName": { "baseType": { - "id": 2116, + "id": 2118, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2115, + "id": 2117, "name": "Commit", "nodeType": "IdentifierPath", "referencedDeclaration": 504, - "src": "19149:6:6" + "src": "19179:6:6" }, "referencedDeclaration": 504, - "src": "19149:6:6", + "src": "19179:6:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 2117, + "id": 2119, "nodeType": "ArrayTypeName", - "src": "19149:8:6", + "src": "19179:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" @@ -76798,28 +77068,28 @@ "visibility": "internal" } ], - "id": 2122, + "id": 2124, "initialValue": { "baseExpression": { - "id": 2119, + "id": 2121, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 513, - "src": "19171:12:6", + "src": "19201:12:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 2121, + "id": 2123, "indexExpression": { - "id": 2120, + "id": 2122, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "19184:4:6", + "referencedDeclaration": 2111, + "src": "19214:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -76830,24 +77100,24 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "19171:18:6", + "src": "19201:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "19149:40:6" + "src": "19179:40:6" }, { "body": { - "id": 2139, + "id": 2141, "nodeType": "Block", - "src": "19242:45:6", + "src": "19272:45:6", "statements": [ { "expression": { - "id": 2137, + "id": 2139, "isConstant": false, "isLValue": false, "isPure": false, @@ -76855,28 +77125,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "19260:12:6", + "src": "19290:12:6", "subExpression": { "baseExpression": { - "id": 2134, + "id": 2136, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2118, - "src": "19267:2:6", + "referencedDeclaration": 2120, + "src": "19297:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2136, + "id": 2138, "indexExpression": { - "id": 2135, + "id": 2137, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, - "src": "19270:1:6", + "referencedDeclaration": 2126, + "src": "19300:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76887,7 +77157,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "19267:5:6", + "src": "19297:5:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" @@ -76898,9 +77168,9 @@ "typeString": "tuple()" } }, - "id": 2138, + "id": 2140, "nodeType": "ExpressionStatement", - "src": "19260:12:6" + "src": "19290:12:6" } ] }, @@ -76909,18 +77179,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2130, + "id": 2132, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2127, + "id": 2129, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, - "src": "19222:1:6", + "referencedDeclaration": 2126, + "src": "19252:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76930,51 +77200,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2128, + "id": 2130, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2118, - "src": "19226:2:6", + "referencedDeclaration": 2120, + "src": "19256:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2129, + "id": 2131, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "19226:9:6", + "src": "19256:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "19222:13:6", + "src": "19252:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2140, + "id": 2142, "initializationExpression": { "assignments": [ - 2124 + 2126 ], "declarations": [ { "constant": false, - "id": 2124, + "id": 2126, "mutability": "mutable", "name": "j", - "nameLocation": "19215:1:6", + "nameLocation": "19245:1:6", "nodeType": "VariableDeclaration", - "scope": 2140, - "src": "19208:8:6", + "scope": 2142, + "src": "19238:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -76982,10 +77252,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2123, + "id": 2125, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19208:6:6", + "src": "19238:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -76994,17 +77264,17 @@ "visibility": "internal" } ], - "id": 2126, + "id": 2128, "initialValue": { "hexValue": "30", - "id": 2125, + "id": 2127, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19219:1:6", + "src": "19249:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -77012,11 +77282,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "19208:12:6" + "src": "19238:12:6" }, "loopExpression": { "expression": { - "id": 2132, + "id": 2134, "isConstant": false, "isLValue": false, "isPure": false, @@ -77024,14 +77294,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "19237:3:6", + "src": "19267:3:6", "subExpression": { - "id": 2131, + "id": 2133, "name": "j", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2124, - "src": "19237:1:6", + "referencedDeclaration": 2126, + "src": "19267:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77042,16 +77312,16 @@ "typeString": "uint32" } }, - "id": 2133, + "id": 2135, "nodeType": "ExpressionStatement", - "src": "19237:3:6" + "src": "19267:3:6" }, "nodeType": "ForStatement", - "src": "19203:84:6" + "src": "19233:84:6" }, { "expression": { - "id": 2144, + "id": 2146, "isConstant": false, "isLValue": false, "isPure": false, @@ -77059,28 +77329,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "19300:25:6", + "src": "19330:25:6", "subExpression": { "baseExpression": { - "id": 2141, + "id": 2143, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 513, - "src": "19307:12:6", + "src": "19337:12:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 2143, + "id": 2145, "indexExpression": { - "id": 2142, + "id": 2144, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2109, - "src": "19320:4:6", + "referencedDeclaration": 2111, + "src": "19350:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -77091,7 +77361,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "19307:18:6", + "src": "19337:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" @@ -77102,9 +77372,9 @@ "typeString": "tuple()" } }, - "id": 2145, + "id": 2147, "nodeType": "ExpressionStatement", - "src": "19300:25:6" + "src": "19330:25:6" } ] }, @@ -77113,18 +77383,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2104, + "id": 2106, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2102, + "id": 2104, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "19074:1:6", + "referencedDeclaration": 2101, + "src": "19104:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77133,38 +77403,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2103, + "id": 2105, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "19078:11:6", + "referencedDeclaration": 2035, + "src": "19108:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19074:15:6", + "src": "19104:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2147, + "id": 2149, "initializationExpression": { "assignments": [ - 2099 + 2101 ], "declarations": [ { "constant": false, - "id": 2099, + "id": 2101, "mutability": "mutable", "name": "i", - "nameLocation": "19067:1:6", + "nameLocation": "19097:1:6", "nodeType": "VariableDeclaration", - "scope": 2147, - "src": "19060:8:6", + "scope": 2149, + "src": "19090:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -77172,10 +77442,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2098, + "id": 2100, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19060:6:6", + "src": "19090:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77184,17 +77454,17 @@ "visibility": "internal" } ], - "id": 2101, + "id": 2103, "initialValue": { "hexValue": "30", - "id": 2100, + "id": 2102, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19071:1:6", + "src": "19101:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -77202,11 +77472,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "19060:12:6" + "src": "19090:12:6" }, "loopExpression": { "expression": { - "id": 2106, + "id": 2108, "isConstant": false, "isLValue": false, "isPure": false, @@ -77214,14 +77484,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "19091:3:6", + "src": "19121:3:6", "subExpression": { - "id": 2105, + "id": 2107, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2099, - "src": "19091:1:6", + "referencedDeclaration": 2101, + "src": "19121:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77232,27 +77502,27 @@ "typeString": "uint32" } }, - "id": 2107, + "id": 2109, "nodeType": "ExpressionStatement", - "src": "19091:3:6" + "src": "19121:3:6" }, "nodeType": "ForStatement", - "src": "19055:281:6" + "src": "19085:281:6" }, { "assignments": [ - 2149 + 2151 ], "declarations": [ { "constant": false, - "id": 2149, + "id": 2151, "mutability": "mutable", "name": "len", - "nameLocation": "19528:3:6", + "nameLocation": "19558:3:6", "nodeType": "VariableDeclaration", - "scope": 2196, - "src": "19521:10:6", + "scope": 2198, + "src": "19551:10:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -77260,10 +77530,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2148, + "id": 2150, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19521:6:6", + "src": "19551:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77272,30 +77542,30 @@ "visibility": "internal" } ], - "id": 2155, + "id": 2157, "initialValue": { "arguments": [ { "expression": { - "id": 2152, + "id": 2154, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 507, - "src": "19541:7:6", + "src": "19571:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 2153, + "id": 2155, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "19541:14:6", + "src": "19571:14:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -77309,26 +77579,26 @@ "typeString": "uint256" } ], - "id": 2151, + "id": 2153, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "19534:6:6", + "src": "19564:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 2150, + "id": 2152, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19534:6:6", + "src": "19564:6:6", "typeDescriptions": {} } }, - "id": 2154, + "id": 2156, "isConstant": false, "isLValue": false, "isPure": false, @@ -77336,7 +77606,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19534:22:6", + "src": "19564:22:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -77344,57 +77614,57 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "19521:35:6" + "src": "19551:35:6" }, { "body": { - "id": 2177, + "id": 2179, "nodeType": "Block", - "src": "19609:91:6", + "src": "19639:91:6", "statements": [ { - "id": 2176, + "id": 2178, "nodeType": "UncheckedBlock", - "src": "19619:71:6", + "src": "19649:71:6", "statements": [ { "expression": { - "id": 2174, + "id": 2176, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2166, + "id": 2168, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 507, - "src": "19642:7:6", + "src": "19672:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 2170, + "id": 2172, "indexExpression": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2169, + "id": 2171, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2167, + "id": 2169, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2157, - "src": "19650:1:6", + "referencedDeclaration": 2159, + "src": "19680:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77403,18 +77673,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2168, + "id": 2170, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "19654:11:6", + "referencedDeclaration": 2035, + "src": "19684:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19650:15:6", + "src": "19680:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77425,7 +77695,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "19642:24:6", + "src": "19672:24:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -77435,25 +77705,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 2171, + "id": 2173, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 507, - "src": "19669:7:6", + "src": "19699:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 2173, + "id": 2175, "indexExpression": { - "id": 2172, + "id": 2174, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2157, - "src": "19677:1:6", + "referencedDeclaration": 2159, + "src": "19707:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77464,21 +77734,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "19669:10:6", + "src": "19699:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "19642:37:6", + "src": "19672:37:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "id": 2175, + "id": 2177, "nodeType": "ExpressionStatement", - "src": "19642:37:6" + "src": "19672:37:6" } ] } @@ -77489,18 +77759,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2162, + "id": 2164, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2160, + "id": 2162, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2157, - "src": "19595:1:6", + "referencedDeclaration": 2159, + "src": "19625:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77509,38 +77779,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2161, + "id": 2163, "name": "len", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2149, - "src": "19599:3:6", + "referencedDeclaration": 2151, + "src": "19629:3:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19595:7:6", + "src": "19625:7:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2178, + "id": 2180, "initializationExpression": { "assignments": [ - 2157 + 2159 ], "declarations": [ { "constant": false, - "id": 2157, + "id": 2159, "mutability": "mutable", "name": "i", - "nameLocation": "19578:1:6", + "nameLocation": "19608:1:6", "nodeType": "VariableDeclaration", - "scope": 2178, - "src": "19571:8:6", + "scope": 2180, + "src": "19601:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -77548,10 +77818,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2156, + "id": 2158, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19571:6:6", + "src": "19601:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77560,25 +77830,25 @@ "visibility": "internal" } ], - "id": 2159, + "id": 2161, "initialValue": { - "id": 2158, + "id": 2160, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "19582:11:6", + "referencedDeclaration": 2035, + "src": "19612:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "19571:22:6" + "src": "19601:22:6" }, "loopExpression": { "expression": { - "id": 2164, + "id": 2166, "isConstant": false, "isLValue": false, "isPure": false, @@ -77586,14 +77856,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "19604:3:6", + "src": "19634:3:6", "subExpression": { - "id": 2163, + "id": 2165, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2157, - "src": "19604:1:6", + "referencedDeclaration": 2159, + "src": "19634:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77604,18 +77874,18 @@ "typeString": "uint32" } }, - "id": 2165, + "id": 2167, "nodeType": "ExpressionStatement", - "src": "19604:3:6" + "src": "19634:3:6" }, "nodeType": "ForStatement", - "src": "19566:134:6" + "src": "19596:134:6" }, { "body": { - "id": 2194, + "id": 2196, "nodeType": "Block", - "src": "19750:38:6", + "src": "19780:38:6", "statements": [ { "expression": { @@ -77623,31 +77893,31 @@ "expression": { "argumentTypes": [], "expression": { - "id": 2189, + "id": 2191, "name": "commits", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 507, - "src": "19764:7:6", + "src": "19794:7:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", "typeString": "bytes32[] storage ref" } }, - "id": 2191, + "id": 2193, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "pop", "nodeType": "MemberAccess", - "src": "19764:11:6", + "src": "19794:11:6", "typeDescriptions": { "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_bytes32_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_bytes32_$dyn_storage_ptr_$", "typeString": "function (bytes32[] storage pointer)" } }, - "id": 2192, + "id": 2194, "isConstant": false, "isLValue": false, "isPure": false, @@ -77655,16 +77925,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "19764:13:6", + "src": "19794:13:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2193, + "id": 2195, "nodeType": "ExpressionStatement", - "src": "19764:13:6" + "src": "19794:13:6" } ] }, @@ -77673,18 +77943,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2185, + "id": 2187, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2183, + "id": 2185, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2180, - "src": "19728:1:6", + "referencedDeclaration": 2182, + "src": "19758:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77693,38 +77963,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2184, + "id": 2186, "name": "timelyIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2033, - "src": "19732:11:6", + "referencedDeclaration": 2035, + "src": "19762:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "19728:15:6", + "src": "19758:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2195, + "id": 2197, "initializationExpression": { "assignments": [ - 2180 + 2182 ], "declarations": [ { "constant": false, - "id": 2180, + "id": 2182, "mutability": "mutable", "name": "i", - "nameLocation": "19721:1:6", + "nameLocation": "19751:1:6", "nodeType": "VariableDeclaration", - "scope": 2195, - "src": "19714:8:6", + "scope": 2197, + "src": "19744:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -77732,10 +78002,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2179, + "id": 2181, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19714:6:6", + "src": "19744:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77744,17 +78014,17 @@ "visibility": "internal" } ], - "id": 2182, + "id": 2184, "initialValue": { "hexValue": "30", - "id": 2181, + "id": 2183, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "19725:1:6", + "src": "19755:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -77762,11 +78032,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "19714:12:6" + "src": "19744:12:6" }, "loopExpression": { "expression": { - "id": 2187, + "id": 2189, "isConstant": false, "isLValue": false, "isPure": false, @@ -77774,14 +78044,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "19745:3:6", + "src": "19775:3:6", "subExpression": { - "id": 2186, + "id": 2188, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2180, - "src": "19745:1:6", + "referencedDeclaration": 2182, + "src": "19775:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77792,51 +78062,51 @@ "typeString": "uint32" } }, - "id": 2188, + "id": 2190, "nodeType": "ExpressionStatement", - "src": "19745:3:6" + "src": "19775:3:6" }, "nodeType": "ForStatement", - "src": "19709:79:6" + "src": "19739:79:6" } ] }, "documentation": { - "id": 2029, + "id": 2031, "nodeType": "StructuredDocumentation", - "src": "16960:444:6", + "src": "16990:444:6", "text": "Remove old commits from storage, where the commit's timestamp is older than block.timestamp - REVEAL_MAX_DELAY. The purpose is to remove dangling data from blockchain, and prevent commits grow unbounded. This is executed at commit time. The committer pays for the gas of this cleanup. Therefore, any attacker who intend to spam commits would be disincentivized. The attacker would not succeed in preventing any normal operation by the user." }, - "id": 2197, + "id": 2199, "implemented": true, "kind": "function", "modifiers": [], "name": "_cleanupCommits", - "nameLocation": "17418:15:6", + "nameLocation": "17448:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2030, + "id": 2032, "nodeType": "ParameterList", "parameters": [], - "src": "17433:2:6" + "src": "17463:2:6" }, "returnParameters": { - "id": 2031, + "id": 2033, "nodeType": "ParameterList", "parameters": [], - "src": "17445:0:6" + "src": "17475:0:6" }, - "scope": 2592, - "src": "17409:2529:6", + "scope": 2612, + "src": "17439:2529:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2214, + "id": 2216, "nodeType": "Block", - "src": "20021:79:6", + "src": "20051:79:6", "statements": [ { "expression": { @@ -77844,7 +78114,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2212, + "id": 2214, "isConstant": false, "isLValue": false, "isPure": false, @@ -77854,7 +78124,7 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2210, + "id": 2212, "isConstant": false, "isLValue": false, "isPure": false, @@ -77863,25 +78133,25 @@ "arguments": [ { "expression": { - "id": 2206, + "id": 2208, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "20045:5:6", + "src": "20075:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 2207, + "id": 2209, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "20045:15:6", + "src": "20075:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -77895,26 +78165,26 @@ "typeString": "uint256" } ], - "id": 2205, + "id": 2207, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20038:6:6", + "src": "20068:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 2204, + "id": 2206, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "20038:6:6", + "src": "20068:6:6", "typeDescriptions": {} } }, - "id": 2208, + "id": 2210, "isConstant": false, "isLValue": false, "isPure": false, @@ -77922,7 +78192,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20038:23:6", + "src": "20068:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -77932,18 +78202,18 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2209, + "id": 2211, "name": "commitTime", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2199, - "src": "20064:10:6", + "referencedDeclaration": 2201, + "src": "20094:10:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "20038:36:6", + "src": "20068:36:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -77952,50 +78222,50 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2211, + "id": 2213, "name": "REVEAL_MAX_DELAY", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, - "src": "20077:16:6", + "src": "20107:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "20038:55:6", + "src": "20068:55:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "functionReturnParameters": 2203, - "id": 2213, + "functionReturnParameters": 2205, + "id": 2215, "nodeType": "Return", - "src": "20031:62:6" + "src": "20061:62:6" } ] }, - "id": 2215, + "id": 2217, "implemented": true, "kind": "function", "modifiers": [], "name": "_isRevealTimely", - "nameLocation": "19953:15:6", + "nameLocation": "19983:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2200, + "id": 2202, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2199, + "id": 2201, "mutability": "mutable", "name": "commitTime", - "nameLocation": "19976:10:6", + "nameLocation": "20006:10:6", "nodeType": "VariableDeclaration", - "scope": 2215, - "src": "19969:17:6", + "scope": 2217, + "src": "19999:17:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -78003,10 +78273,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2198, + "id": 2200, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "19969:6:6", + "src": "19999:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78015,21 +78285,21 @@ "visibility": "internal" } ], - "src": "19968:19:6" + "src": "19998:19:6" }, "returnParameters": { - "id": 2203, + "id": 2205, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2202, + "id": 2204, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2215, - "src": "20011:4:6", + "scope": 2217, + "src": "20041:4:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -78037,10 +78307,10 @@ "typeString": "bool" }, "typeName": { - "id": 2201, + "id": 2203, "name": "bool", "nodeType": "ElementaryTypeName", - "src": "20011:4:6", + "src": "20041:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -78049,34 +78319,34 @@ "visibility": "internal" } ], - "src": "20010:6:6" + "src": "20040:6:6" }, - "scope": 2592, - "src": "19944:156:6", + "scope": 2612, + "src": "19974:156:6", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2358, + "id": 2369, "nodeType": "Block", - "src": "20515:1499:6", + "src": "20574:1587:6", "statements": [ { "assignments": [ - 2230 + 2235 ], "declarations": [ { "constant": false, - "id": 2230, + "id": 2235, "mutability": "mutable", "name": "index", - "nameLocation": "20532:5:6", + "nameLocation": "20591:5:6", "nodeType": "VariableDeclaration", - "scope": 2358, - "src": "20525:12:6", + "scope": 2369, + "src": "20584:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -78084,10 +78354,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2229, + "id": 2234, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "20525:6:6", + "src": "20584:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78096,24 +78366,24 @@ "visibility": "internal" } ], - "id": 2234, + "id": 2239, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2233, + "id": 2238, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2231, + "id": 2236, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2220, - "src": "20540:14:6", + "referencedDeclaration": 2222, + "src": "20599:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78122,40 +78392,40 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2232, + "id": 2237, "name": "maxOperationsPerInterval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 447, - "src": "20557:24:6", + "src": "20616:24:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "20540:41:6", + "src": "20599:41:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "20525:56:6" + "src": "20584:56:6" }, { "assignments": [ - 2236 + 2241 ], "declarations": [ { "constant": false, - "id": 2236, + "id": 2241, "mutability": "mutable", "name": "nonce", - "nameLocation": "20597:5:6", + "nameLocation": "20656:5:6", "nodeType": "VariableDeclaration", - "scope": 2358, - "src": "20591:11:6", + "scope": 2369, + "src": "20650:11:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -78163,10 +78433,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2235, + "id": 2240, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "20591:5:6", + "src": "20650:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -78175,7 +78445,7 @@ "visibility": "internal" } ], - "id": 2243, + "id": 2248, "initialValue": { "arguments": [ { @@ -78183,18 +78453,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2241, + "id": 2246, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2239, + "id": 2244, "name": "indexWithNonce", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2220, - "src": "20611:14:6", + "referencedDeclaration": 2222, + "src": "20670:14:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78203,18 +78473,18 @@ "nodeType": "BinaryOperation", "operator": "%", "rightExpression": { - "id": 2240, + "id": 2245, "name": "maxOperationsPerInterval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 447, - "src": "20628:24:6", + "src": "20687:24:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "20611:41:6", + "src": "20670:41:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78228,26 +78498,26 @@ "typeString": "uint32" } ], - "id": 2238, + "id": 2243, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20605:5:6", + "src": "20664:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint8_$", "typeString": "type(uint8)" }, "typeName": { - "id": 2237, + "id": 2242, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "20605:5:6", + "src": "20664:5:6", "typeDescriptions": {} } }, - "id": 2242, + "id": 2247, "isConstant": false, "isLValue": false, "isPure": false, @@ -78255,7 +78525,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20605:48:6", + "src": "20664:48:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint8", @@ -78263,22 +78533,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "20591:62:6" + "src": "20650:62:6" }, { "assignments": [ - 2248 + 2253 ], "declarations": [ { "constant": false, - "id": 2248, + "id": 2253, "mutability": "mutable", "name": "cc", - "nameLocation": "20680:2:6", + "nameLocation": "20739:2:6", "nodeType": "VariableDeclaration", - "scope": 2358, - "src": "20663:19:6", + "scope": 2369, + "src": "20722:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -78287,25 +78557,25 @@ }, "typeName": { "baseType": { - "id": 2246, + "id": 2251, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2245, + "id": 2250, "name": "Commit", "nodeType": "IdentifierPath", "referencedDeclaration": 504, - "src": "20663:6:6" + "src": "20722:6:6" }, "referencedDeclaration": 504, - "src": "20663:6:6", + "src": "20722:6:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 2247, + "id": 2252, "nodeType": "ArrayTypeName", - "src": "20663:8:6", + "src": "20722:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" @@ -78314,28 +78584,28 @@ "visibility": "internal" } ], - "id": 2252, + "id": 2257, "initialValue": { "baseExpression": { - "id": 2249, + "id": 2254, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 513, - "src": "20685:12:6", + "src": "20744:12:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 2251, + "id": 2256, "indexExpression": { - "id": 2250, + "id": 2255, "name": "hash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2218, - "src": "20698:4:6", + "referencedDeclaration": 2220, + "src": "20757:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -78346,14 +78616,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20685:18:6", + "src": "20744:18:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "20663:40:6" + "src": "20722:40:6" }, { "expression": { @@ -78363,32 +78633,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2257, + "id": 2262, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2254, + "id": 2259, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "20721:2:6", + "referencedDeclaration": 2253, + "src": "20780:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2255, + "id": 2260, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "20721:9:6", + "src": "20780:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -78398,21 +78668,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2256, + "id": 2261, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20733:1:6", + "src": "20792:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "20721:13:6", + "src": "20780:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -78420,14 +78690,14 @@ }, { "hexValue": "4e6f20636f6d6d697420666f756e64", - "id": 2258, + "id": 2263, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "20736:17:6", + "src": "20795:17:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_38f47be26bf822ff597a5cbffa2774ecae1ceaa169f734b7db0a07fb62c9547a", "typeString": "literal_string \"No commit found\"" @@ -78446,7 +78716,7 @@ "typeString": "literal_string \"No commit found\"" } ], - "id": 2253, + "id": 2258, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -78454,13 +78724,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "20713:7:6", + "src": "20772:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2259, + "id": 2264, "isConstant": false, "isLValue": false, "isPure": false, @@ -78468,37 +78738,37 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20713:41:6", + "src": "20772:41:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2260, + "id": 2265, "nodeType": "ExpressionStatement", - "src": "20713:41:6" + "src": "20772:41:6" }, { "body": { - "id": 2352, + "id": 2363, "nodeType": "Block", - "src": "20803:1170:6", + "src": "20862:1258:6", "statements": [ { "assignments": [ - 2274 + 2279 ], "declarations": [ { "constant": false, - "id": 2274, + "id": 2279, "mutability": "mutable", "name": "c", - "nameLocation": "20832:1:6", + "nameLocation": "20891:1:6", "nodeType": "VariableDeclaration", - "scope": 2352, - "src": "20817:16:6", + "scope": 2363, + "src": "20876:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -78506,17 +78776,17 @@ "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 2273, + "id": 2278, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2272, + "id": 2277, "name": "Commit", "nodeType": "IdentifierPath", "referencedDeclaration": 504, - "src": "20817:6:6" + "src": "20876:6:6" }, "referencedDeclaration": 504, - "src": "20817:6:6", + "src": "20876:6:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" @@ -78525,28 +78795,28 @@ "visibility": "internal" } ], - "id": 2278, + "id": 2283, "initialValue": { "baseExpression": { - "id": 2275, + "id": 2280, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "20836:2:6", + "referencedDeclaration": 2253, + "src": "20895:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2277, + "id": 2282, "indexExpression": { - "id": 2276, + "id": 2281, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "20839:1:6", + "referencedDeclaration": 2267, + "src": "20898:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -78557,29 +78827,29 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "20836:5:6", + "src": "20895:5:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "20817:24:6" + "src": "20876:24:6" }, { "assignments": [ - 2280 + 2285 ], "declarations": [ { "constant": false, - "id": 2280, + "id": 2285, "mutability": "mutable", "name": "expectedVerificationHash", - "nameLocation": "20863:24:6", + "nameLocation": "20922:24:6", "nodeType": "VariableDeclaration", - "scope": 2352, - "src": "20855:32:6", + "scope": 2363, + "src": "20914:32:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -78587,10 +78857,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2279, + "id": 2284, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "20855:7:6", + "src": "20914:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -78599,25 +78869,25 @@ "visibility": "internal" } ], - "id": 2290, + "id": 2295, "initialValue": { "arguments": [ { "arguments": [ { "expression": { - "id": 2285, + "id": 2290, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2274, - "src": "20913:1:6", + "referencedDeclaration": 2279, + "src": "20972:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2286, + "id": 2291, "isConstant": false, "isLValue": true, "isPure": false, @@ -78625,19 +78895,19 @@ "memberName": "paramsHash", "nodeType": "MemberAccess", "referencedDeclaration": 497, - "src": "20913:12:6", + "src": "20972:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, { - "id": 2287, + "id": 2292, "name": "eotp", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2224, - "src": "20927:4:6", + "referencedDeclaration": 2226, + "src": "20986:4:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -78656,39 +78926,39 @@ } ], "expression": { - "id": 2283, + "id": 2288, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "20900:5:6", + "src": "20959:5:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { - "id": 2282, + "id": 2287, "name": "bytes", "nodeType": "ElementaryTypeName", - "src": "20900:5:6", + "src": "20959:5:6", "typeDescriptions": {} } }, - "id": 2284, + "id": 2289, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "concat", "nodeType": "MemberAccess", - "src": "20900:12:6", + "src": "20959:12:6", "typeDescriptions": { "typeIdentifier": "t_function_bytesconcat_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, - "id": 2288, + "id": 2293, "isConstant": false, "isLValue": false, "isPure": false, @@ -78696,7 +78966,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20900:32:6", + "src": "20959:32:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", @@ -78711,18 +78981,18 @@ "typeString": "bytes memory" } ], - "id": 2281, + "id": 2286, "name": "keccak256", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967288, - "src": "20890:9:6", + "src": "20949:9:6", "typeDescriptions": { "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$", "typeString": "function (bytes memory) pure returns (bytes32)" } }, - "id": 2289, + "id": 2294, "isConstant": false, "isLValue": false, "isPure": false, @@ -78730,7 +79000,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "20890:43:6", + "src": "20949:43:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes32", @@ -78738,7 +79008,7 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "20855:78:6" + "src": "20914:78:6" }, { "condition": { @@ -78746,25 +79016,25 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 2294, + "id": 2299, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2291, + "id": 2296, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2274, - "src": "20951:1:6", + "referencedDeclaration": 2279, + "src": "21010:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2292, + "id": 2297, "isConstant": false, "isLValue": true, "isPure": false, @@ -78772,7 +79042,7 @@ "memberName": "verificationHash", "nodeType": "MemberAccess", "referencedDeclaration": 499, - "src": "20951:18:6", + "src": "21010:18:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -78781,35 +79051,35 @@ "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { - "id": 2293, + "id": 2298, "name": "expectedVerificationHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2280, - "src": "20973:24:6", + "referencedDeclaration": 2285, + "src": "21032:24:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "20951:46:6", + "src": "21010:46:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2297, + "id": 2302, "nodeType": "IfStatement", - "src": "20947:134:6", + "src": "21006:134:6", "trueBody": { - "id": 2296, + "id": 2301, "nodeType": "Block", - "src": "20999:82:6", + "src": "21058:82:6", "statements": [ { - "id": 2295, + "id": 2300, "nodeType": "Continue", - "src": "21058:8:6" + "src": "21117:8:6" } ] } @@ -78822,25 +79092,25 @@ "typeIdentifier": "t_bytes32", "typeString": "bytes32" }, - "id": 2302, + "id": 2307, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2299, + "id": 2304, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2274, - "src": "21102:1:6", + "referencedDeclaration": 2279, + "src": "21161:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2300, + "id": 2305, "isConstant": false, "isLValue": true, "isPure": false, @@ -78848,7 +79118,7 @@ "memberName": "paramsHash", "nodeType": "MemberAccess", "referencedDeclaration": 497, - "src": "21102:12:6", + "src": "21161:12:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -78857,18 +79127,18 @@ "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { - "id": 2301, + "id": 2306, "name": "paramsHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2222, - "src": "21118:10:6", + "referencedDeclaration": 2224, + "src": "21177:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, - "src": "21102:26:6", + "src": "21161:26:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -78876,14 +79146,14 @@ }, { "hexValue": "506172616d657465722068617368206d69736d61746368", - "id": 2303, + "id": 2308, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21130:25:6", + "src": "21189:25:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_3430d3063c70bc84041a3bb75a9010a8e7685d878f7521f09ab01e30ea2f9f24", "typeString": "literal_string \"Parameter hash mismatch\"" @@ -78902,417 +79172,7 @@ "typeString": "literal_string \"Parameter hash mismatch\"" } ], - "id": 2298, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "21094:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2304, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21094:62:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2305, - "nodeType": "ExpressionStatement", - "src": "21094:62:6" - }, - { - "assignments": [ - 2307 - ], - "declarations": [ - { - "constant": false, - "id": 2307, - "mutability": "mutable", - "name": "counter", - "nameLocation": "21177:7:6", - "nodeType": "VariableDeclaration", - "scope": 2352, - "src": "21170:14:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2306, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "21170:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 2314, - "initialValue": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2313, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2311, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "expression": { - "id": 2308, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2274, - "src": "21187:1:6", - "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", - "typeString": "struct ONEWallet.Commit storage pointer" - } - }, - "id": 2309, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 501, - "src": "21187:11:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 2310, - "name": "interval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 441, - "src": "21201:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "21187:22:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 2312, - "name": "t0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "21212:2:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "21187:27:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21170:44:6" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "id": 2318, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2316, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2307, - "src": "21236:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "==", - "rightExpression": { - "id": 2317, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2230, - "src": "21247:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "21236:16:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "496e646578202d2074696d657374616d70206d69736d61746368", - "id": 2319, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21254:28:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80", - "typeString": "literal_string \"Index - timestamp mismatch\"" - }, - "value": "Index - timestamp mismatch" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80", - "typeString": "literal_string \"Index - timestamp mismatch\"" - } - ], - "id": 2315, - "name": "require", - "nodeType": "Identifier", - "overloadedDeclarations": [ - 4294967278, - 4294967278 - ], - "referencedDeclaration": 4294967278, - "src": "21228:7:6", - "typeDescriptions": { - "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", - "typeString": "function (bool,string memory) pure" - } - }, - "id": 2320, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "21228:55:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2321, - "nodeType": "ExpressionStatement", - "src": "21228:55:6" - }, - { - "assignments": [ - 2323 - ], - "declarations": [ - { - "constant": false, - "id": 2323, - "mutability": "mutable", - "name": "expectedNonce", - "nameLocation": "21303:13:6", - "nodeType": "VariableDeclaration", - "scope": 2352, - "src": "21297:19:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "typeName": { - "id": 2322, - "name": "uint8", - "nodeType": "ElementaryTypeName", - "src": "21297:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "visibility": "internal" - } - ], - "id": 2327, - "initialValue": { - "baseExpression": { - "id": 2324, - "name": "nonces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 463, - "src": "21319:6:6", - "typeDescriptions": { - "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", - "typeString": "mapping(uint32 => uint8)" - } - }, - "id": 2326, - "indexExpression": { - "id": 2325, - "name": "counter", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2307, - "src": "21326:7:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "isConstant": false, - "isLValue": true, - "isPure": false, - "lValueRequested": false, - "nodeType": "IndexAccess", - "src": "21319:15:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "21297:37:6" - }, - { - "expression": { - "arguments": [ - { - "commonType": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - }, - "id": 2331, - "isConstant": false, - "isLValue": false, - "isPure": false, - "lValueRequested": false, - "leftExpression": { - "id": 2329, - "name": "nonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2236, - "src": "21356:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "nodeType": "BinaryOperation", - "operator": ">=", - "rightExpression": { - "id": 2330, - "name": "expectedNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2323, - "src": "21365:13:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } - }, - "src": "21356:22:6", - "typeDescriptions": { - "typeIdentifier": "t_bool", - "typeString": "bool" - } - }, - { - "hexValue": "4e6f6e636520746f6f206c6f77", - "id": 2332, - "isConstant": false, - "isLValue": false, - "isPure": true, - "kind": "string", - "lValueRequested": false, - "nodeType": "Literal", - "src": "21380:15:6", - "typeDescriptions": { - "typeIdentifier": "t_stringliteral_0d3a5f34c29e81aa7bbfe59ba3e3db3006ac807af6a54ad3cac7463abb5d83b0", - "typeString": "literal_string \"Nonce too low\"" - }, - "value": "Nonce too low" - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_bool", - "typeString": "bool" - }, - { - "typeIdentifier": "t_stringliteral_0d3a5f34c29e81aa7bbfe59ba3e3db3006ac807af6a54ad3cac7463abb5d83b0", - "typeString": "literal_string \"Nonce too low\"" - } - ], - "id": 2328, + "id": 2303, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -79320,13 +79180,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "21348:7:6", + "src": "21153:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2333, + "id": 2309, "isConstant": false, "isLValue": false, "isPure": false, @@ -79334,22 +79194,501 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21348:48:6", + "src": "21153:62:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2334, + "id": 2310, "nodeType": "ExpressionStatement", - "src": "21348:48:6" + "src": "21153:62:6" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + }, + "id": 2314, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2311, + "name": "operationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "21233:13:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 2312, + "name": "OperationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 493, + "src": "21250:13:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", + "typeString": "type(enum ONEWallet.OperationType)" + } + }, + "id": 2313, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "RECOVER", + "nodeType": "MemberAccess", + "referencedDeclaration": 491, + "src": "21250:21:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } + }, + "src": "21233:38:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2345, + "nodeType": "IfStatement", + "src": "21229:315:6", + "trueBody": { + "id": 2344, + "nodeType": "Block", + "src": "21273:271:6", + "statements": [ + { + "assignments": [ + 2316 + ], + "declarations": [ + { + "constant": false, + "id": 2316, + "mutability": "mutable", + "name": "counter", + "nameLocation": "21298:7:6", + "nodeType": "VariableDeclaration", + "scope": 2344, + "src": "21291:14:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2315, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "21291:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "visibility": "internal" + } + ], + "id": 2323, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 2317, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2279, + "src": "21308:1:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", + "typeString": "struct ONEWallet.Commit storage pointer" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": 501, + "src": "21308:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2319, + "name": "interval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 441, + "src": "21322:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "21308:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2321, + "name": "t0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 443, + "src": "21333:2:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "21308:27:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21291:44:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2325, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "21361:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2326, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2235, + "src": "21372:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "21361:16:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e646578202d2074696d657374616d70206d69736d61746368", + "id": 2328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21379:28:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80", + "typeString": "literal_string \"Index - timestamp mismatch\"" + }, + "value": "Index - timestamp mismatch" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_52d0f8312a7e3bda426de31c2e4c71a1ad4900f389f87f89d2a2eb06a0683b80", + "typeString": "literal_string \"Index - timestamp mismatch\"" + } + ], + "id": 2324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "21353:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21353:55:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2330, + "nodeType": "ExpressionStatement", + "src": "21353:55:6" + }, + { + "assignments": [ + 2332 + ], + "declarations": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "expectedNonce", + "nameLocation": "21432:13:6", + "nodeType": "VariableDeclaration", + "scope": 2344, + "src": "21426:19:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 2331, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "21426:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 2336, + "initialValue": { + "baseExpression": { + "id": 2333, + "name": "nonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 463, + "src": "21448:6:6", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", + "typeString": "mapping(uint32 => uint8)" + } + }, + "id": 2335, + "indexExpression": { + "id": 2334, + "name": "counter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2316, + "src": "21455:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "21448:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "21426:37:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 2340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2338, + "name": "nonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2241, + "src": "21489:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 2339, + "name": "expectedNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2332, + "src": "21498:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "21489:22:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4e6f6e636520746f6f206c6f77", + "id": 2341, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21513:15:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_0d3a5f34c29e81aa7bbfe59ba3e3db3006ac807af6a54ad3cac7463abb5d83b0", + "typeString": "literal_string \"Nonce too low\"" + }, + "value": "Nonce too low" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_0d3a5f34c29e81aa7bbfe59ba3e3db3006ac807af6a54ad3cac7463abb5d83b0", + "typeString": "literal_string \"Nonce too low\"" + } + ], + "id": 2337, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "21481:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21481:48:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2343, + "nodeType": "ExpressionStatement", + "src": "21481:48:6" + } + ] + } }, { "expression": { "arguments": [ { - "id": 2338, + "id": 2349, "isConstant": false, "isLValue": false, "isPure": false, @@ -79357,21 +79696,21 @@ "nodeType": "UnaryOperation", "operator": "!", "prefix": true, - "src": "21418:12:6", + "src": "21565:12:6", "subExpression": { "expression": { - "id": 2336, + "id": 2347, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2274, - "src": "21419:1:6", + "referencedDeclaration": 2279, + "src": "21566:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2337, + "id": 2348, "isConstant": false, "isLValue": true, "isPure": false, @@ -79379,7 +79718,7 @@ "memberName": "completed", "nodeType": "MemberAccess", "referencedDeclaration": 503, - "src": "21419:11:6", + "src": "21566:11:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -79392,14 +79731,14 @@ }, { "hexValue": "436f6d6d697420616c726561647920636f6d706c65746564", - "id": 2339, + "id": 2350, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21432:26:6", + "src": "21579:26:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_2d6af051cc9bdd806c60b20e274721a89fb9a7025afbe00dde07d3201c4068b2", "typeString": "literal_string \"Commit already completed\"" @@ -79418,7 +79757,7 @@ "typeString": "literal_string \"Commit already completed\"" } ], - "id": 2335, + "id": 2346, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -79426,13 +79765,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "21410:7:6", + "src": "21557:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2340, + "id": 2351, "isConstant": false, "isLValue": false, "isPure": false, @@ -79440,16 +79779,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21410:49:6", + "src": "21557:49:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2341, + "id": 2352, "nodeType": "ExpressionStatement", - "src": "21410:49:6" + "src": "21557:49:6" }, { "expression": { @@ -79458,18 +79797,18 @@ "arguments": [ { "expression": { - "id": 2344, + "id": 2355, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2274, - "src": "21908:1:6", + "referencedDeclaration": 2279, + "src": "22055:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2345, + "id": 2356, "isConstant": false, "isLValue": true, "isPure": false, @@ -79477,7 +79816,7 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": 501, - "src": "21908:11:6", + "src": "22055:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -79491,18 +79830,18 @@ "typeString": "uint32" } ], - "id": 2343, + "id": 2354, "name": "_isRevealTimely", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2215, - "src": "21892:15:6", + "referencedDeclaration": 2217, + "src": "22039:15:6", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint32_$returns$_t_bool_$", "typeString": "function (uint32) view returns (bool)" } }, - "id": 2346, + "id": 2357, "isConstant": false, "isLValue": false, "isPure": false, @@ -79510,7 +79849,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21892:28:6", + "src": "22039:28:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", @@ -79519,14 +79858,14 @@ }, { "hexValue": "52657665616c20746f6f206c617465", - "id": 2347, + "id": 2358, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21922:17:6", + "src": "22069:17:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_286e638d23bc87ce733fb0202708f485eb6091553feef3d943a83966c37e7639", "typeString": "literal_string \"Reveal too late\"" @@ -79545,7 +79884,7 @@ "typeString": "literal_string \"Reveal too late\"" } ], - "id": 2342, + "id": 2353, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -79553,13 +79892,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "21884:7:6", + "src": "22031:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2348, + "id": 2359, "isConstant": false, "isLValue": false, "isPure": false, @@ -79567,34 +79906,34 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21884:56:6", + "src": "22031:56:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2349, + "id": 2360, "nodeType": "ExpressionStatement", - "src": "21884:56:6" + "src": "22031:56:6" }, { "expression": { - "id": 2350, + "id": 2361, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "21961:1:6", + "referencedDeclaration": 2267, + "src": "22108:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "functionReturnParameters": 2228, - "id": 2351, + "functionReturnParameters": 2233, + "id": 2362, "nodeType": "Return", - "src": "21954:8:6" + "src": "22101:8:6" } ] }, @@ -79603,18 +79942,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2268, + "id": 2273, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2265, + "id": 2270, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "20783:1:6", + "referencedDeclaration": 2267, + "src": "20842:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -79624,51 +79963,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2266, + "id": 2271, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2248, - "src": "20787:2:6", + "referencedDeclaration": 2253, + "src": "20846:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2267, + "id": 2272, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "20787:9:6", + "src": "20846:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "20783:13:6", + "src": "20842:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2353, + "id": 2364, "initializationExpression": { "assignments": [ - 2262 + 2267 ], "declarations": [ { "constant": false, - "id": 2262, + "id": 2267, "mutability": "mutable", "name": "i", - "nameLocation": "20776:1:6", + "nameLocation": "20835:1:6", "nodeType": "VariableDeclaration", - "scope": 2353, - "src": "20769:8:6", + "scope": 2364, + "src": "20828:8:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -79676,10 +80015,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2261, + "id": 2266, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "20769:6:6", + "src": "20828:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -79688,17 +80027,17 @@ "visibility": "internal" } ], - "id": 2264, + "id": 2269, "initialValue": { "hexValue": "30", - "id": 2263, + "id": 2268, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "20780:1:6", + "src": "20839:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -79706,11 +80045,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "20769:12:6" + "src": "20828:12:6" }, "loopExpression": { "expression": { - "id": 2270, + "id": 2275, "isConstant": false, "isLValue": false, "isPure": false, @@ -79718,14 +80057,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "20798:3:6", + "src": "20857:3:6", "subExpression": { - "id": 2269, + "id": 2274, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2262, - "src": "20798:1:6", + "referencedDeclaration": 2267, + "src": "20857:1:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -79736,26 +80075,26 @@ "typeString": "uint32" } }, - "id": 2271, + "id": 2276, "nodeType": "ExpressionStatement", - "src": "20798:3:6" + "src": "20857:3:6" }, "nodeType": "ForStatement", - "src": "20764:1209:6" + "src": "20823:1297:6" }, { "expression": { "arguments": [ { "hexValue": "4e6f2076616c696420636f6d6d6974", - "id": 2355, + "id": 2366, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "21989:17:6", + "src": "22136:17:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c3972966c6b890cd04bd250ec8fd05d1950759334a3d8fa4e9bb3d0693e9952d", "typeString": "literal_string \"No valid commit\"" @@ -79770,7 +80109,7 @@ "typeString": "literal_string \"No valid commit\"" } ], - "id": 2354, + "id": 2365, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -79778,13 +80117,13 @@ 4294967277 ], "referencedDeclaration": 4294967277, - "src": "21982:6:6", + "src": "22129:6:6", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, - "id": 2356, + "id": 2367, "isConstant": false, "isLValue": false, "isPure": false, @@ -79792,45 +80131,45 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "21982:25:6", + "src": "22129:25:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2357, + "id": 2368, "nodeType": "ExpressionStatement", - "src": "21982:25:6" + "src": "22129:25:6" } ] }, "documentation": { - "id": 2216, + "id": 2218, "nodeType": "StructuredDocumentation", - "src": "20106:275:6", + "src": "20136:275:6", "text": "This function verifies that the first valid entry with respect to the given `eotp` in `commitLocker[hash]` matches the provided `paramsHash` and `verificationHash`. An entry is valid with respect to `eotp` iff `h3(entry.paramsHash . eotp)` equals `entry.verificationHash`" }, - "id": 2359, + "id": 2370, "implemented": true, "kind": "function", "modifiers": [], "name": "_verifyReveal", - "nameLocation": "20395:13:6", + "nameLocation": "20425:13:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2225, + "id": 2230, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2218, + "id": 2220, "mutability": "mutable", "name": "hash", - "nameLocation": "20417:4:6", + "nameLocation": "20447:4:6", "nodeType": "VariableDeclaration", - "scope": 2359, - "src": "20409:12:6", + "scope": 2370, + "src": "20439:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -79838,10 +80177,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2217, + "id": 2219, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "20409:7:6", + "src": "20439:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -79851,13 +80190,13 @@ }, { "constant": false, - "id": 2220, + "id": 2222, "mutability": "mutable", "name": "indexWithNonce", - "nameLocation": "20430:14:6", + "nameLocation": "20460:14:6", "nodeType": "VariableDeclaration", - "scope": 2359, - "src": "20423:21:6", + "scope": 2370, + "src": "20453:21:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -79865,10 +80204,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2219, + "id": 2221, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "20423:6:6", + "src": "20453:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -79878,13 +80217,13 @@ }, { "constant": false, - "id": 2222, + "id": 2224, "mutability": "mutable", "name": "paramsHash", - "nameLocation": "20454:10:6", + "nameLocation": "20484:10:6", "nodeType": "VariableDeclaration", - "scope": 2359, - "src": "20446:18:6", + "scope": 2370, + "src": "20476:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -79892,10 +80231,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2221, + "id": 2223, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "20446:7:6", + "src": "20476:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -79905,13 +80244,13 @@ }, { "constant": false, - "id": 2224, + "id": 2226, "mutability": "mutable", "name": "eotp", - "nameLocation": "20474:4:6", + "nameLocation": "20504:4:6", "nodeType": "VariableDeclaration", - "scope": 2359, - "src": "20466:12:6", + "scope": 2370, + "src": "20496:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -79919,33 +80258,67 @@ "typeString": "bytes32" }, "typeName": { - "id": 2223, + "id": 2225, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "20466:7:6", + "src": "20496:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" } }, "visibility": "internal" + }, + { + "constant": false, + "id": 2229, + "mutability": "mutable", + "name": "operationType", + "nameLocation": "20524:13:6", + "nodeType": "VariableDeclaration", + "scope": 2370, + "src": "20510:27:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + }, + "typeName": { + "id": 2228, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2227, + "name": "OperationType", + "nodeType": "IdentifierPath", + "referencedDeclaration": 493, + "src": "20510:13:6" + }, + "referencedDeclaration": 493, + "src": "20510:13:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } + }, + "visibility": "internal" } ], - "src": "20408:71:6" + "src": "20438:100:6" }, "returnParameters": { - "id": 2228, + "id": 2233, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2227, + "id": 2232, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", - "scope": 2359, - "src": "20503:6:6", + "scope": 2370, + "src": "20562:6:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -79953,10 +80326,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2226, + "id": 2231, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "20503:6:6", + "src": "20562:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -79965,34 +80338,34 @@ "visibility": "internal" } ], - "src": "20502:8:6" + "src": "20561:8:6" }, - "scope": 2592, - "src": "20386:1628:6", + "scope": 2612, + "src": "20416:1745:6", "stateMutability": "view", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2431, + "id": 2451, "nodeType": "Block", - "src": "22094:464:6", + "src": "22270:511:6", "statements": [ { "assignments": [ - 2370 + 2384 ], "declarations": [ { "constant": false, - "id": 2370, + "id": 2384, "mutability": "mutable", "name": "cc", - "nameLocation": "22121:2:6", + "nameLocation": "22297:2:6", "nodeType": "VariableDeclaration", - "scope": 2431, - "src": "22104:19:6", + "scope": 2451, + "src": "22280:19:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -80001,25 +80374,25 @@ }, "typeName": { "baseType": { - "id": 2368, + "id": 2382, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2367, + "id": 2381, "name": "Commit", "nodeType": "IdentifierPath", "referencedDeclaration": 504, - "src": "22104:6:6" + "src": "22280:6:6" }, "referencedDeclaration": 504, - "src": "22104:6:6", + "src": "22280:6:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" } }, - "id": 2369, + "id": 2383, "nodeType": "ArrayTypeName", - "src": "22104:8:6", + "src": "22280:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit[]" @@ -80028,28 +80401,28 @@ "visibility": "internal" } ], - "id": 2374, + "id": 2388, "initialValue": { "baseExpression": { - "id": 2371, + "id": 2385, "name": "commitLocker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 513, - "src": "22126:12:6", + "src": "22302:12:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes32_$_t_array$_t_struct$_Commit_$504_storage_$dyn_storage_$", "typeString": "mapping(bytes32 => struct ONEWallet.Commit storage ref[] storage ref)" } }, - "id": 2373, + "id": 2387, "indexExpression": { - "id": 2372, + "id": 2386, "name": "commitHash", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2361, - "src": "22139:10:6", + "referencedDeclaration": 2372, + "src": "22315:10:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -80060,14 +80433,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "22126:24:6", + "src": "22302:24:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage", "typeString": "struct ONEWallet.Commit storage ref[] storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "22104:46:6" + "src": "22280:46:6" }, { "expression": { @@ -80077,32 +80450,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2379, + "id": 2393, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2376, + "id": 2390, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2370, - "src": "22168:2:6", + "referencedDeclaration": 2384, + "src": "22344:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2377, + "id": 2391, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "22168:9:6", + "src": "22344:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -80112,21 +80485,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2378, + "id": 2392, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "22180:1:6", + "src": "22356:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "22168:13:6", + "src": "22344:13:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -80134,14 +80507,14 @@ }, { "hexValue": "496e76616c696420636f6d6d69742068617368", - "id": 2380, + "id": 2394, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "22183:21:6", + "src": "22359:21:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_8a9c0db4284cd81d8eaef3d877f21bcccab643ae503f9d63f7eb3ad5aacbe749", "typeString": "literal_string \"Invalid commit hash\"" @@ -80160,7 +80533,7 @@ "typeString": "literal_string \"Invalid commit hash\"" } ], - "id": 2375, + "id": 2389, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -80168,13 +80541,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "22160:7:6", + "src": "22336:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2381, + "id": 2395, "isConstant": false, "isLValue": false, "isPure": false, @@ -80182,16 +80555,16 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "22160:45:6", + "src": "22336:45:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2382, + "id": 2396, "nodeType": "ExpressionStatement", - "src": "22160:45:6" + "src": "22336:45:6" }, { "expression": { @@ -80201,32 +80574,32 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2387, + "id": 2401, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2384, + "id": 2398, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2370, - "src": "22223:2:6", + "referencedDeclaration": 2384, + "src": "22399:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2385, + "id": 2399, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "22223:9:6", + "src": "22399:9:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -80235,18 +80608,18 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 2386, + "id": 2400, "name": "commitIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "22235:11:6", + "referencedDeclaration": 2374, + "src": "22411:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22223:23:6", + "src": "22399:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -80254,14 +80627,14 @@ }, { "hexValue": "496e76616c696420636f6d6d6974496e646578", - "id": 2388, + "id": 2402, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "22248:21:6", + "src": "22424:21:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_dd8f27f99c8575d947c48310b46d36796c8df82285fc83fecd33510610055413", "typeString": "literal_string \"Invalid commitIndex\"" @@ -80280,7 +80653,7 @@ "typeString": "literal_string \"Invalid commitIndex\"" } ], - "id": 2383, + "id": 2397, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -80288,13 +80661,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "22215:7:6", + "src": "22391:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2389, + "id": 2403, "isConstant": false, "isLValue": false, "isPure": false, @@ -80302,31 +80675,31 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "22215:55:6", + "src": "22391:55:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2390, + "id": 2404, "nodeType": "ExpressionStatement", - "src": "22215:55:6" + "src": "22391:55:6" }, { "assignments": [ - 2393 + 2407 ], "declarations": [ { "constant": false, - "id": 2393, + "id": 2407, "mutability": "mutable", "name": "c", - "nameLocation": "22295:1:6", + "nameLocation": "22471:1:6", "nodeType": "VariableDeclaration", - "scope": 2431, - "src": "22280:16:6", + "scope": 2451, + "src": "22456:16:6", "stateVariable": false, "storageLocation": "storage", "typeDescriptions": { @@ -80334,17 +80707,17 @@ "typeString": "struct ONEWallet.Commit" }, "typeName": { - "id": 2392, + "id": 2406, "nodeType": "UserDefinedTypeName", "pathNode": { - "id": 2391, + "id": 2405, "name": "Commit", "nodeType": "IdentifierPath", "referencedDeclaration": 504, - "src": "22280:6:6" + "src": "22456:6:6" }, "referencedDeclaration": 504, - "src": "22280:6:6", + "src": "22456:6:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit" @@ -80353,28 +80726,28 @@ "visibility": "internal" } ], - "id": 2397, + "id": 2411, "initialValue": { "baseExpression": { - "id": 2394, + "id": 2408, "name": "cc", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2370, - "src": "22299:2:6", + "referencedDeclaration": 2384, + "src": "22475:2:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_struct$_Commit_$504_storage_$dyn_storage_ptr", "typeString": "struct ONEWallet.Commit storage ref[] storage pointer" } }, - "id": 2396, + "id": 2410, "indexExpression": { - "id": 2395, + "id": 2409, "name": "commitIndex", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2363, - "src": "22302:11:6", + "referencedDeclaration": 2374, + "src": "22478:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -80385,14 +80758,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "22299:15:6", + "src": "22475:15:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage", "typeString": "struct ONEWallet.Commit storage ref" } }, "nodeType": "VariableDeclarationStatement", - "src": "22280:34:6" + "src": "22456:34:6" }, { "expression": { @@ -80402,25 +80775,25 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2402, + "id": 2416, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { - "id": 2399, + "id": 2413, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2393, - "src": "22332:1:6", + "referencedDeclaration": 2407, + "src": "22508:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2400, + "id": 2414, "isConstant": false, "isLValue": true, "isPure": false, @@ -80428,7 +80801,7 @@ "memberName": "timestamp", "nodeType": "MemberAccess", "referencedDeclaration": 501, - "src": "22332:11:6", + "src": "22508:11:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -80438,21 +80811,21 @@ "operator": ">", "rightExpression": { "hexValue": "30", - "id": 2401, + "id": 2415, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "22346:1:6", + "src": "22522:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "22332:15:6", + "src": "22508:15:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -80460,14 +80833,14 @@ }, { "hexValue": "496e76616c696420636f6d6d69742074696d657374616d70", - "id": 2403, + "id": 2417, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", - "src": "22349:26:6", + "src": "22525:26:6", "typeDescriptions": { "typeIdentifier": "t_stringliteral_791866c3f9c9c03c601447bf48dd4e0bd3f849759626f2144adccf6e77c6e64d", "typeString": "literal_string \"Invalid commit timestamp\"" @@ -80486,7 +80859,7 @@ "typeString": "literal_string \"Invalid commit timestamp\"" } ], - "id": 2398, + "id": 2412, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ @@ -80494,13 +80867,13 @@ 4294967278 ], "referencedDeclaration": 4294967278, - "src": "22324:7:6", + "src": "22500:7:6", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, - "id": 2404, + "id": 2418, "isConstant": false, "isLValue": false, "isPure": false, @@ -80508,294 +80881,363 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "22324:52:6", + "src": "22500:52:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2405, + "id": 2419, "nodeType": "ExpressionStatement", - "src": "22324:52:6" + "src": "22500:52:6" }, { - "assignments": [ - 2407 - ], - "declarations": [ - { - "constant": false, - "id": 2407, - "mutability": "mutable", - "name": "index", - "nameLocation": "22422:5:6", - "nodeType": "VariableDeclaration", - "scope": 2431, - "src": "22415:12:6", - "stateVariable": false, - "storageLocation": "default", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - }, - "typeName": { - "id": 2406, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "22415:6:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "visibility": "internal" - } - ], - "id": 2417, - "initialValue": { + "condition": { "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" }, - "id": 2416, + "id": 2423, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "commonType": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "id": 2420, + "name": "operationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2377, + "src": "22566:13:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 2421, + "name": "OperationType", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 493, + "src": "22583:13:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_enum$_OperationType_$493_$", + "typeString": "type(enum ONEWallet.OperationType)" + } }, - "id": 2414, + "id": 2422, "isConstant": false, "isLValue": false, - "isPure": false, + "isPure": true, "lValueRequested": false, - "leftExpression": { - "arguments": [ + "memberName": "RECOVER", + "nodeType": "MemberAccess", + "referencedDeclaration": 491, + "src": "22583:21:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } + }, + "src": "22566:38:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2444, + "nodeType": "IfStatement", + "src": "22562:185:6", + "trueBody": { + "id": 2443, + "nodeType": "Block", + "src": "22606:141:6", + "statements": [ + { + "assignments": [ + 2425 + ], + "declarations": [ { - "expression": { - "id": 2410, - "name": "c", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2393, - "src": "22437:1:6", + "constant": false, + "id": 2425, + "mutability": "mutable", + "name": "index", + "nameLocation": "22627:5:6", + "nodeType": "VariableDeclaration", + "scope": 2443, + "src": "22620:12:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "typeName": { + "id": 2424, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "22620:6:6", "typeDescriptions": { - "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", - "typeString": "struct ONEWallet.Commit storage pointer" + "typeIdentifier": "t_uint32", + "typeString": "uint32" } }, - "id": 2411, + "visibility": "internal" + } + ], + "id": 2435, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + }, + "id": 2432, "isConstant": false, - "isLValue": true, + "isLValue": false, "isPure": false, "lValueRequested": false, - "memberName": "timestamp", - "nodeType": "MemberAccess", - "referencedDeclaration": 501, - "src": "22437:11:6", + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 2428, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2407, + "src": "22642:1:6", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", + "typeString": "struct ONEWallet.Commit storage pointer" + } + }, + "id": 2429, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "timestamp", + "nodeType": "MemberAccess", + "referencedDeclaration": 501, + "src": "22642:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 2427, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22635:6:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint32_$", + "typeString": "type(uint32)" + }, + "typeName": { + "id": 2426, + "name": "uint32", + "nodeType": "ElementaryTypeName", + "src": "22635:6:6", + "typeDescriptions": {} + } + }, + "id": 2430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22635:19:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 2431, + "name": "interval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 441, + "src": "22657:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "22635:30:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 2433, + "name": "t0", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 443, + "src": "22668:2:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + }, + "src": "22635:35:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" } - ], + }, + "nodeType": "VariableDeclarationStatement", + "src": "22620:50:6" + }, + { "expression": { - "argumentTypes": [ + "arguments": [ { - "typeIdentifier": "t_uint32", - "typeString": "uint32" + "id": 2437, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2425, + "src": "22700:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } } ], - "id": 2409, + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint32", + "typeString": "uint32" + } + ], + "id": 2436, + "name": "_incrementNonce", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2611, + "src": "22684:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", + "typeString": "function (uint32)" + } + }, + "id": 2438, "isConstant": false, "isLValue": false, - "isPure": true, + "isPure": false, + "kind": "functionCall", "lValueRequested": false, - "nodeType": "ElementaryTypeNameExpression", - "src": "22430:6:6", + "names": [], + "nodeType": "FunctionCall", + "src": "22684:22:6", + "tryCall": false, "typeDescriptions": { - "typeIdentifier": "t_type$_t_uint32_$", - "typeString": "type(uint32)" - }, - "typeName": { - "id": 2408, - "name": "uint32", - "nodeType": "ElementaryTypeName", - "src": "22430:6:6", - "typeDescriptions": {} + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" } }, - "id": 2412, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "typeConversion", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22430:19:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "/", - "rightExpression": { - "id": 2413, - "name": "interval", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 441, - "src": "22452:8:6", - "typeDescriptions": { - "typeIdentifier": "t_uint8", - "typeString": "uint8" - } + "id": 2439, + "nodeType": "ExpressionStatement", + "src": "22684:22:6" }, - "src": "22430:30:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "BinaryOperation", - "operator": "-", - "rightExpression": { - "id": 2415, - "name": "t0", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 443, - "src": "22463:2:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "src": "22430:35:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - }, - "nodeType": "VariableDeclarationStatement", - "src": "22415:50:6" - }, - { - "expression": { - "arguments": [ { - "id": 2419, - "name": "index", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2407, - "src": "22491:5:6", - "typeDescriptions": { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - } - ], - "expression": { - "argumentTypes": [ - { - "typeIdentifier": "t_uint32", - "typeString": "uint32" - } - ], - "id": 2418, - "name": "_incrementNonce", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2591, - "src": "22475:15:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$returns$__$", - "typeString": "function (uint32)" - } - }, - "id": 2420, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22475:22:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2421, - "nodeType": "ExpressionStatement", - "src": "22475:22:6" - }, - { - "expression": { - "arguments": [], - "expression": { - "argumentTypes": [], - "id": 2422, - "name": "_cleanupNonces", - "nodeType": "Identifier", - "overloadedDeclarations": [], - "referencedDeclaration": 2559, - "src": "22507:14:6", - "typeDescriptions": { - "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", - "typeString": "function ()" + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2440, + "name": "_cleanupNonces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2579, + "src": "22720:14:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22720:16:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2442, + "nodeType": "ExpressionStatement", + "src": "22720:16:6" } - }, - "id": 2423, - "isConstant": false, - "isLValue": false, - "isPure": false, - "kind": "functionCall", - "lValueRequested": false, - "names": [], - "nodeType": "FunctionCall", - "src": "22507:16:6", - "tryCall": false, - "typeDescriptions": { - "typeIdentifier": "t_tuple$__$", - "typeString": "tuple()" - } - }, - "id": 2424, - "nodeType": "ExpressionStatement", - "src": "22507:16:6" + ] + } }, { "expression": { - "id": 2429, + "id": 2449, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "expression": { - "id": 2425, + "id": 2445, "name": "c", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2393, - "src": "22533:1:6", + "referencedDeclaration": 2407, + "src": "22756:1:6", "typeDescriptions": { "typeIdentifier": "t_struct$_Commit_$504_storage_ptr", "typeString": "struct ONEWallet.Commit storage pointer" } }, - "id": 2427, + "id": 2447, "isConstant": false, "isLValue": true, "isPure": false, @@ -80803,7 +81245,7 @@ "memberName": "completed", "nodeType": "MemberAccess", "referencedDeclaration": 503, - "src": "22533:11:6", + "src": "22756:11:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" @@ -80813,52 +81255,52 @@ "operator": "=", "rightHandSide": { "hexValue": "74727565", - "id": 2428, + "id": 2448, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", - "src": "22547:4:6", + "src": "22770:4:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, - "src": "22533:18:6", + "src": "22756:18:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2430, + "id": 2450, "nodeType": "ExpressionStatement", - "src": "22533:18:6" + "src": "22756:18:6" } ] }, - "id": 2432, + "id": 2452, "implemented": true, "kind": "function", "modifiers": [], "name": "_completeReveal", - "nameLocation": "22029:15:6", + "nameLocation": "22176:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2364, + "id": 2378, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2361, + "id": 2372, "mutability": "mutable", "name": "commitHash", - "nameLocation": "22053:10:6", + "nameLocation": "22200:10:6", "nodeType": "VariableDeclaration", - "scope": 2432, - "src": "22045:18:6", + "scope": 2452, + "src": "22192:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -80866,10 +81308,10 @@ "typeString": "bytes32" }, "typeName": { - "id": 2360, + "id": 2371, "name": "bytes32", "nodeType": "ElementaryTypeName", - "src": "22045:7:6", + "src": "22192:7:6", "typeDescriptions": { "typeIdentifier": "t_bytes32", "typeString": "bytes32" @@ -80879,13 +81321,13 @@ }, { "constant": false, - "id": 2363, + "id": 2374, "mutability": "mutable", "name": "commitIndex", - "nameLocation": "22072:11:6", + "nameLocation": "22219:11:6", "nodeType": "VariableDeclaration", - "scope": 2432, - "src": "22065:18:6", + "scope": 2452, + "src": "22212:18:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -80893,52 +81335,86 @@ "typeString": "uint32" }, "typeName": { - "id": 2362, + "id": 2373, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22065:6:6", + "src": "22212:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "visibility": "internal" + }, + { + "constant": false, + "id": 2377, + "mutability": "mutable", + "name": "operationType", + "nameLocation": "22246:13:6", + "nodeType": "VariableDeclaration", + "scope": 2452, + "src": "22232:27:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + }, + "typeName": { + "id": 2376, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 2375, + "name": "OperationType", + "nodeType": "IdentifierPath", + "referencedDeclaration": 493, + "src": "22232:13:6" + }, + "referencedDeclaration": 493, + "src": "22232:13:6", + "typeDescriptions": { + "typeIdentifier": "t_enum$_OperationType_$493", + "typeString": "enum ONEWallet.OperationType" + } + }, + "visibility": "internal" } ], - "src": "22044:40:6" + "src": "22191:69:6" }, "returnParameters": { - "id": 2365, + "id": 2379, "nodeType": "ParameterList", "parameters": [], - "src": "22094:0:6" + "src": "22270:0:6" }, - "scope": 2592, - "src": "22020:538:6", + "scope": 2612, + "src": "22167:614:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2558, + "id": 2578, "nodeType": "Block", - "src": "22853:1139:6", + "src": "23076:1139:6", "statements": [ { "assignments": [ - 2437 + 2457 ], "declarations": [ { "constant": false, - "id": 2437, + "id": 2457, "mutability": "mutable", "name": "tMin", - "nameLocation": "22870:4:6", + "nameLocation": "23093:4:6", "nodeType": "VariableDeclaration", - "scope": 2558, - "src": "22863:11:6", + "scope": 2578, + "src": "23086:11:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -80946,10 +81422,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2436, + "id": 2456, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22863:6:6", + "src": "23086:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -80958,13 +81434,13 @@ "visibility": "internal" } ], - "id": 2445, + "id": 2465, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2444, + "id": 2464, "isConstant": false, "isLValue": false, "isPure": false, @@ -80973,25 +81449,25 @@ "arguments": [ { "expression": { - "id": 2440, + "id": 2460, "name": "block", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 4294967292, - "src": "22884:5:6", + "src": "23107:5:6", "typeDescriptions": { "typeIdentifier": "t_magic_block", "typeString": "block" } }, - "id": 2441, + "id": 2461, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "timestamp", "nodeType": "MemberAccess", - "src": "22884:15:6", + "src": "23107:15:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -81005,26 +81481,26 @@ "typeString": "uint256" } ], - "id": 2439, + "id": 2459, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", - "src": "22877:6:6", + "src": "23100:6:6", "typeDescriptions": { "typeIdentifier": "t_type$_t_uint32_$", "typeString": "type(uint32)" }, "typeName": { - "id": 2438, + "id": 2458, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22877:6:6", + "src": "23100:6:6", "typeDescriptions": {} } }, - "id": 2442, + "id": 2462, "isConstant": false, "isLValue": false, "isPure": false, @@ -81032,7 +81508,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "22877:23:6", + "src": "23100:23:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_uint32", @@ -81042,40 +81518,40 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2443, + "id": 2463, "name": "REVEAL_MAX_DELAY", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 469, - "src": "22903:16:6", + "src": "23126:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "22877:42:6", + "src": "23100:42:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "22863:56:6" + "src": "23086:56:6" }, { "assignments": [ - 2447 + 2467 ], "declarations": [ { "constant": false, - "id": 2447, + "id": 2467, "mutability": "mutable", "name": "indexMinUnadjusted", - "nameLocation": "22936:18:6", + "nameLocation": "23159:18:6", "nodeType": "VariableDeclaration", - "scope": 2558, - "src": "22929:25:6", + "scope": 2578, + "src": "23152:25:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -81083,10 +81559,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2446, + "id": 2466, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22929:6:6", + "src": "23152:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -81095,24 +81571,24 @@ "visibility": "internal" } ], - "id": 2451, + "id": 2471, "initialValue": { "commonType": { "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2450, + "id": 2470, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2448, + "id": 2468, "name": "tMin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2437, - "src": "22957:4:6", + "referencedDeclaration": 2457, + "src": "23180:4:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -81121,40 +81597,40 @@ "nodeType": "BinaryOperation", "operator": "/", "rightExpression": { - "id": 2449, + "id": 2469, "name": "interval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 441, - "src": "22964:8:6", + "src": "23187:8:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "22957:15:6", + "src": "23180:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "22929:43:6" + "src": "23152:43:6" }, { "assignments": [ - 2453 + 2473 ], "declarations": [ { "constant": false, - "id": 2453, + "id": 2473, "mutability": "mutable", "name": "indexMin", - "nameLocation": "22989:8:6", + "nameLocation": "23212:8:6", "nodeType": "VariableDeclaration", - "scope": 2558, - "src": "22982:15:6", + "scope": 2578, + "src": "23205:15:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -81162,10 +81638,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2452, + "id": 2472, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "22982:6:6", + "src": "23205:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -81174,17 +81650,17 @@ "visibility": "internal" } ], - "id": 2455, + "id": 2475, "initialValue": { "hexValue": "30", - "id": 2454, + "id": 2474, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23000:1:6", + "src": "23223:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -81192,7 +81668,7 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "22982:19:6" + "src": "23205:19:6" }, { "condition": { @@ -81200,18 +81676,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2458, + "id": 2478, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2456, + "id": 2476, "name": "indexMinUnadjusted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2447, - "src": "23015:18:6", + "referencedDeclaration": 2467, + "src": "23238:18:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -81220,45 +81696,45 @@ "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { - "id": 2457, + "id": 2477, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 443, - "src": "23036:2:6", + "src": "23259:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23015:23:6", + "src": "23238:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2466, + "id": 2486, "nodeType": "IfStatement", - "src": "23011:88:6", + "src": "23234:88:6", "trueBody": { - "id": 2465, + "id": 2485, "nodeType": "Block", - "src": "23040:59:6", + "src": "23263:59:6", "statements": [ { "expression": { - "id": 2463, + "id": 2483, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2459, + "id": 2479, "name": "indexMin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2453, - "src": "23054:8:6", + "referencedDeclaration": 2473, + "src": "23277:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -81271,18 +81747,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2462, + "id": 2482, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2460, + "id": 2480, "name": "indexMinUnadjusted", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2447, - "src": "23065:18:6", + "referencedDeclaration": 2467, + "src": "23288:18:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -81291,50 +81767,50 @@ "nodeType": "BinaryOperation", "operator": "-", "rightExpression": { - "id": 2461, + "id": 2481, "name": "t0", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 443, - "src": "23086:2:6", + "src": "23309:2:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23065:23:6", + "src": "23288:23:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23054:34:6", + "src": "23277:34:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2464, + "id": 2484, "nodeType": "ExpressionStatement", - "src": "23054:34:6" + "src": "23277:34:6" } ] } }, { "assignments": [ - 2471 + 2491 ], "declarations": [ { "constant": false, - "id": 2471, + "id": 2491, "mutability": "mutable", "name": "nonZeroNonces", - "nameLocation": "23124:13:6", + "nameLocation": "23347:13:6", "nodeType": "VariableDeclaration", - "scope": 2558, - "src": "23108:29:6", + "scope": 2578, + "src": "23331:29:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -81343,18 +81819,18 @@ }, "typeName": { "baseType": { - "id": 2469, + "id": 2489, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23108:6:6", + "src": "23331:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2470, + "id": 2490, "nodeType": "ArrayTypeName", - "src": "23108:8:6", + "src": "23331:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -81363,30 +81839,30 @@ "visibility": "internal" } ], - "id": 2478, + "id": 2498, "initialValue": { "arguments": [ { "expression": { - "id": 2475, + "id": 2495, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 466, - "src": "23153:12:6", + "src": "23376:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2476, + "id": 2496, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "23153:19:6", + "src": "23376:19:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" @@ -81400,38 +81876,38 @@ "typeString": "uint256" } ], - "id": 2474, + "id": 2494, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "23140:12:6", + "src": "23363:12:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint32[] memory)" }, "typeName": { "baseType": { - "id": 2472, + "id": 2492, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23144:6:6", + "src": "23367:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2473, + "id": 2493, "nodeType": "ArrayTypeName", - "src": "23144:8:6", + "src": "23367:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" } } }, - "id": 2477, + "id": 2497, "isConstant": false, "isLValue": false, "isPure": false, @@ -81439,7 +81915,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "23140:33:6", + "src": "23363:33:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", @@ -81447,22 +81923,22 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "23108:65:6" + "src": "23331:65:6" }, { "assignments": [ - 2480 + 2500 ], "declarations": [ { "constant": false, - "id": 2480, + "id": 2500, "mutability": "mutable", "name": "numValidIndices", - "nameLocation": "23190:15:6", + "nameLocation": "23413:15:6", "nodeType": "VariableDeclaration", - "scope": 2558, - "src": "23183:22:6", + "scope": 2578, + "src": "23406:22:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -81470,10 +81946,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2479, + "id": 2499, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23183:6:6", + "src": "23406:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -81482,17 +81958,17 @@ "visibility": "internal" } ], - "id": 2482, + "id": 2502, "initialValue": { "hexValue": "30", - "id": 2481, + "id": 2501, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23208:1:6", + "src": "23431:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -81500,28 +81976,28 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "23183:26:6" + "src": "23406:26:6" }, { "body": { - "id": 2521, + "id": 2541, "nodeType": "Block", - "src": "23267:293:6", + "src": "23490:293:6", "statements": [ { "assignments": [ - 2495 + 2515 ], "declarations": [ { "constant": false, - "id": 2495, + "id": 2515, "mutability": "mutable", "name": "index", - "nameLocation": "23288:5:6", + "nameLocation": "23511:5:6", "nodeType": "VariableDeclaration", - "scope": 2521, - "src": "23281:12:6", + "scope": 2541, + "src": "23504:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -81529,10 +82005,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2494, + "id": 2514, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23281:6:6", + "src": "23504:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -81541,28 +82017,28 @@ "visibility": "internal" } ], - "id": 2499, + "id": 2519, "initialValue": { "baseExpression": { - "id": 2496, + "id": 2516, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 466, - "src": "23296:12:6", + "src": "23519:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2498, + "id": 2518, "indexExpression": { - "id": 2497, + "id": 2517, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2484, - "src": "23309:1:6", + "referencedDeclaration": 2504, + "src": "23532:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -81573,14 +82049,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "23296:15:6", + "src": "23519:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, "nodeType": "VariableDeclarationStatement", - "src": "23281:30:6" + "src": "23504:30:6" }, { "condition": { @@ -81588,18 +82064,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2502, + "id": 2522, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2500, + "id": 2520, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "23329:5:6", + "referencedDeclaration": 2515, + "src": "23552:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -81608,56 +82084,56 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2501, + "id": 2521, "name": "indexMin", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2453, - "src": "23337:8:6", + "referencedDeclaration": 2473, + "src": "23560:8:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23329:16:6", + "src": "23552:16:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { - "id": 2519, + "id": 2539, "nodeType": "Block", - "src": "23406:144:6", + "src": "23629:144:6", "statements": [ { "expression": { - "id": 2513, + "id": 2533, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2509, + "id": 2529, "name": "nonZeroNonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2471, - "src": "23424:13:6", + "referencedDeclaration": 2491, + "src": "23647:13:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 2511, + "id": 2531, "indexExpression": { - "id": 2510, + "id": 2530, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "23438:15:6", + "referencedDeclaration": 2500, + "src": "23661:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -81668,7 +82144,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "23424:30:6", + "src": "23647:30:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -81677,35 +82153,35 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2512, + "id": 2532, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "23457:5:6", + "referencedDeclaration": 2515, + "src": "23680:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23424:38:6", + "src": "23647:38:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2514, + "id": 2534, "nodeType": "ExpressionStatement", - "src": "23424:38:6" + "src": "23647:38:6" }, { - "id": 2518, + "id": 2538, "nodeType": "UncheckedBlock", - "src": "23476:60:6", + "src": "23699:60:6", "statements": [ { "expression": { - "id": 2516, + "id": 2536, "isConstant": false, "isLValue": false, "isPure": false, @@ -81713,14 +82189,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "23504:17:6", + "src": "23727:17:6", "subExpression": { - "id": 2515, + "id": 2535, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "23504:15:6", + "referencedDeclaration": 2500, + "src": "23727:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -81731,25 +82207,25 @@ "typeString": "uint32" } }, - "id": 2517, + "id": 2537, "nodeType": "ExpressionStatement", - "src": "23504:17:6" + "src": "23727:17:6" } ] } ] }, - "id": 2520, + "id": 2540, "nodeType": "IfStatement", - "src": "23325:225:6", + "src": "23548:225:6", "trueBody": { - "id": 2508, + "id": 2528, "nodeType": "Block", - "src": "23347:53:6", + "src": "23570:53:6", "statements": [ { "expression": { - "id": 2506, + "id": 2526, "isConstant": false, "isLValue": false, "isPure": false, @@ -81757,28 +82233,28 @@ "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, - "src": "23365:20:6", + "src": "23588:20:6", "subExpression": { "baseExpression": { - "id": 2503, + "id": 2523, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 463, - "src": "23372:6:6", + "src": "23595:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 2505, + "id": 2525, "indexExpression": { - "id": 2504, + "id": 2524, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2495, - "src": "23379:5:6", + "referencedDeclaration": 2515, + "src": "23602:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -81789,7 +82265,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "23372:13:6", + "src": "23595:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -81800,9 +82276,9 @@ "typeString": "tuple()" } }, - "id": 2507, + "id": 2527, "nodeType": "ExpressionStatement", - "src": "23365:20:6" + "src": "23588:20:6" } ] } @@ -81814,18 +82290,18 @@ "typeIdentifier": "t_uint256", "typeString": "uint256" }, - "id": 2490, + "id": 2510, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2487, + "id": 2507, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2484, - "src": "23237:1:6", + "referencedDeclaration": 2504, + "src": "23460:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -81835,51 +82311,51 @@ "operator": "<", "rightExpression": { "expression": { - "id": 2488, + "id": 2508, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 466, - "src": "23241:12:6", + "src": "23464:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2489, + "id": 2509, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "length", "nodeType": "MemberAccess", - "src": "23241:19:6", + "src": "23464:19:6", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, - "src": "23237:23:6", + "src": "23460:23:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2522, + "id": 2542, "initializationExpression": { "assignments": [ - 2484 + 2504 ], "declarations": [ { "constant": false, - "id": 2484, + "id": 2504, "mutability": "mutable", "name": "i", - "nameLocation": "23230:1:6", + "nameLocation": "23453:1:6", "nodeType": "VariableDeclaration", - "scope": 2522, - "src": "23224:7:6", + "scope": 2542, + "src": "23447:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -81887,10 +82363,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2483, + "id": 2503, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "23224:5:6", + "src": "23447:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -81899,17 +82375,17 @@ "visibility": "internal" } ], - "id": 2486, + "id": 2506, "initialValue": { "hexValue": "30", - "id": 2485, + "id": 2505, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23234:1:6", + "src": "23457:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -81917,11 +82393,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "23224:11:6" + "src": "23447:11:6" }, "loopExpression": { "expression": { - "id": 2492, + "id": 2512, "isConstant": false, "isLValue": false, "isPure": false, @@ -81929,14 +82405,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "23262:3:6", + "src": "23485:3:6", "subExpression": { - "id": 2491, + "id": 2511, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2484, - "src": "23262:1:6", + "referencedDeclaration": 2504, + "src": "23485:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -81947,27 +82423,27 @@ "typeString": "uint8" } }, - "id": 2493, + "id": 2513, "nodeType": "ExpressionStatement", - "src": "23262:3:6" + "src": "23485:3:6" }, "nodeType": "ForStatement", - "src": "23219:341:6" + "src": "23442:341:6" }, { "assignments": [ - 2527 + 2547 ], "declarations": [ { "constant": false, - "id": 2527, + "id": 2547, "mutability": "mutable", "name": "reducedArray", - "nameLocation": "23792:12:6", + "nameLocation": "24015:12:6", "nodeType": "VariableDeclaration", - "scope": 2558, - "src": "23776:28:6", + "scope": 2578, + "src": "23999:28:6", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { @@ -81976,18 +82452,18 @@ }, "typeName": { "baseType": { - "id": 2525, + "id": 2545, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23776:6:6", + "src": "23999:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2526, + "id": 2546, "nodeType": "ArrayTypeName", - "src": "23776:8:6", + "src": "23999:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" @@ -81996,16 +82472,16 @@ "visibility": "internal" } ], - "id": 2533, + "id": 2553, "initialValue": { "arguments": [ { - "id": 2531, + "id": 2551, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "23820:15:6", + "referencedDeclaration": 2500, + "src": "24043:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -82019,38 +82495,38 @@ "typeString": "uint32" } ], - "id": 2530, + "id": 2550, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "NewExpression", - "src": "23807:12:6", + "src": "24030:12:6", "typeDescriptions": { "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint32_$dyn_memory_ptr_$", "typeString": "function (uint256) pure returns (uint32[] memory)" }, "typeName": { "baseType": { - "id": 2528, + "id": 2548, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "23811:6:6", + "src": "24034:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2529, + "id": 2549, "nodeType": "ArrayTypeName", - "src": "23811:8:6", + "src": "24034:8:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage_ptr", "typeString": "uint32[]" } } }, - "id": 2532, + "id": 2552, "isConstant": false, "isLValue": false, "isPure": false, @@ -82058,7 +82534,7 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "23807:29:6", + "src": "24030:29:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", @@ -82066,42 +82542,42 @@ } }, "nodeType": "VariableDeclarationStatement", - "src": "23776:60:6" + "src": "23999:60:6" }, { "body": { - "id": 2552, + "id": 2572, "nodeType": "Block", - "src": "23890:59:6", + "src": "24113:59:6", "statements": [ { "expression": { - "id": 2550, + "id": 2570, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2544, + "id": 2564, "name": "reducedArray", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2527, - "src": "23904:12:6", + "referencedDeclaration": 2547, + "src": "24127:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 2546, + "id": 2566, "indexExpression": { - "id": 2545, + "id": 2565, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "23917:1:6", + "referencedDeclaration": 2555, + "src": "24140:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -82112,7 +82588,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "23904:15:6", + "src": "24127:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -82122,25 +82598,25 @@ "operator": "=", "rightHandSide": { "baseExpression": { - "id": 2547, + "id": 2567, "name": "nonZeroNonces", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2471, - "src": "23922:13:6", + "referencedDeclaration": 2491, + "src": "24145:13:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "id": 2549, + "id": 2569, "indexExpression": { - "id": 2548, + "id": 2568, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "23936:1:6", + "referencedDeclaration": 2555, + "src": "24159:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -82151,21 +82627,21 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "23922:16:6", + "src": "24145:16:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23904:34:6", + "src": "24127:34:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "id": 2551, + "id": 2571, "nodeType": "ExpressionStatement", - "src": "23904:34:6" + "src": "24127:34:6" } ] }, @@ -82174,18 +82650,18 @@ "typeIdentifier": "t_uint32", "typeString": "uint32" }, - "id": 2540, + "id": 2560, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2538, + "id": 2558, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "23864:1:6", + "referencedDeclaration": 2555, + "src": "24087:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -82194,38 +82670,38 @@ "nodeType": "BinaryOperation", "operator": "<", "rightExpression": { - "id": 2539, + "id": 2559, "name": "numValidIndices", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2480, - "src": "23868:15:6", + "referencedDeclaration": 2500, + "src": "24091:15:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" } }, - "src": "23864:19:6", + "src": "24087:19:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2553, + "id": 2573, "initializationExpression": { "assignments": [ - 2535 + 2555 ], "declarations": [ { "constant": false, - "id": 2535, + "id": 2555, "mutability": "mutable", "name": "i", - "nameLocation": "23857:1:6", + "nameLocation": "24080:1:6", "nodeType": "VariableDeclaration", - "scope": 2553, - "src": "23851:7:6", + "scope": 2573, + "src": "24074:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -82233,10 +82709,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2534, + "id": 2554, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "23851:5:6", + "src": "24074:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -82245,17 +82721,17 @@ "visibility": "internal" } ], - "id": 2537, + "id": 2557, "initialValue": { "hexValue": "30", - "id": 2536, + "id": 2556, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "23861:1:6", + "src": "24084:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" @@ -82263,11 +82739,11 @@ "value": "0" }, "nodeType": "VariableDeclarationStatement", - "src": "23851:11:6" + "src": "24074:11:6" }, "loopExpression": { "expression": { - "id": 2542, + "id": 2562, "isConstant": false, "isLValue": false, "isPure": false, @@ -82275,14 +82751,14 @@ "nodeType": "UnaryOperation", "operator": "++", "prefix": false, - "src": "23885:3:6", + "src": "24108:3:6", "subExpression": { - "id": 2541, + "id": 2561, "name": "i", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2535, - "src": "23885:1:6", + "referencedDeclaration": 2555, + "src": "24108:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -82293,27 +82769,27 @@ "typeString": "uint8" } }, - "id": 2543, + "id": 2563, "nodeType": "ExpressionStatement", - "src": "23885:3:6" + "src": "24108:3:6" }, "nodeType": "ForStatement", - "src": "23846:103:6" + "src": "24069:103:6" }, { "expression": { - "id": 2556, + "id": 2576, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { - "id": 2554, + "id": 2574, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 466, - "src": "23958:12:6", + "src": "24181:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" @@ -82322,80 +82798,80 @@ "nodeType": "Assignment", "operator": "=", "rightHandSide": { - "id": 2555, + "id": 2575, "name": "reducedArray", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2527, - "src": "23973:12:6", + "referencedDeclaration": 2547, + "src": "24196:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_memory_ptr", "typeString": "uint32[] memory" } }, - "src": "23958:27:6", + "src": "24181:27:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2557, + "id": 2577, "nodeType": "ExpressionStatement", - "src": "23958:27:6" + "src": "24181:27:6" } ] }, "documentation": { - "id": 2433, + "id": 2453, "nodeType": "StructuredDocumentation", - "src": "22564:249:6", + "src": "22787:249:6", "text": "This function removes all tracked nonce values correspond to interval blocks that are older than block.timestamp - REVEAL_MAX_DELAY. In doing so, extraneous data in the blockchain is removed, and both nonces and nonceTracker are bounded in size." }, - "id": 2559, + "id": 2579, "implemented": true, "kind": "function", "modifiers": [], "name": "_cleanupNonces", - "nameLocation": "22827:14:6", + "nameLocation": "23050:14:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2434, + "id": 2454, "nodeType": "ParameterList", "parameters": [], - "src": "22841:2:6" + "src": "23064:2:6" }, "returnParameters": { - "id": 2435, + "id": 2455, "nodeType": "ParameterList", "parameters": [], - "src": "22853:0:6" + "src": "23076:0:6" }, - "scope": 2592, - "src": "22818:1174:6", + "scope": 2612, + "src": "23041:1174:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, { "body": { - "id": 2590, + "id": 2610, "nodeType": "Block", - "src": "24046:162:6", + "src": "24269:162:6", "statements": [ { "assignments": [ - 2565 + 2585 ], "declarations": [ { "constant": false, - "id": 2565, + "id": 2585, "mutability": "mutable", "name": "v", - "nameLocation": "24062:1:6", + "nameLocation": "24285:1:6", "nodeType": "VariableDeclaration", - "scope": 2590, - "src": "24056:7:6", + "scope": 2610, + "src": "24279:7:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -82403,10 +82879,10 @@ "typeString": "uint8" }, "typeName": { - "id": 2564, + "id": 2584, "name": "uint8", "nodeType": "ElementaryTypeName", - "src": "24056:5:6", + "src": "24279:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -82415,28 +82891,28 @@ "visibility": "internal" } ], - "id": 2569, + "id": 2589, "initialValue": { "baseExpression": { - "id": 2566, + "id": 2586, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 463, - "src": "24066:6:6", + "src": "24289:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 2568, + "id": 2588, "indexExpression": { - "id": 2567, + "id": 2587, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "24073:5:6", + "referencedDeclaration": 2581, + "src": "24296:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -82447,14 +82923,14 @@ "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", - "src": "24066:13:6", + "src": "24289:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, "nodeType": "VariableDeclarationStatement", - "src": "24056:23:6" + "src": "24279:23:6" }, { "condition": { @@ -82462,18 +82938,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 2572, + "id": 2592, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2570, + "id": 2590, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2565, - "src": "24093:1:6", + "referencedDeclaration": 2585, + "src": "24316:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -82483,44 +82959,44 @@ "operator": "==", "rightExpression": { "hexValue": "30", - "id": 2571, + "id": 2591, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "24098:1:6", + "src": "24321:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, - "src": "24093:6:6", + "src": "24316:6:6", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, - "id": 2580, + "id": 2600, "nodeType": "IfStatement", - "src": "24089:61:6", + "src": "24312:61:6", "trueBody": { - "id": 2579, + "id": 2599, "nodeType": "Block", - "src": "24101:49:6", + "src": "24324:49:6", "statements": [ { "expression": { "arguments": [ { - "id": 2576, + "id": 2596, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "24133:5:6", + "referencedDeclaration": 2581, + "src": "24356:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -82535,31 +83011,31 @@ } ], "expression": { - "id": 2573, + "id": 2593, "name": "nonceTracker", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 466, - "src": "24115:12:6", + "src": "24338:12:6", "typeDescriptions": { "typeIdentifier": "t_array$_t_uint32_$dyn_storage", "typeString": "uint32[] storage ref" } }, - "id": 2575, + "id": 2595, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "push", "nodeType": "MemberAccess", - "src": "24115:17:6", + "src": "24338:17:6", "typeDescriptions": { "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint32_$dyn_storage_ptr_$_t_uint32_$returns$__$bound_to$_t_array$_t_uint32_$dyn_storage_ptr_$", "typeString": "function (uint32[] storage pointer,uint32)" } }, - "id": 2577, + "id": 2597, "isConstant": false, "isLValue": false, "isPure": false, @@ -82567,53 +83043,53 @@ "lValueRequested": false, "names": [], "nodeType": "FunctionCall", - "src": "24115:24:6", + "src": "24338:24:6", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, - "id": 2578, + "id": 2598, "nodeType": "ExpressionStatement", - "src": "24115:24:6" + "src": "24338:24:6" } ] } }, { - "id": 2589, + "id": 2609, "nodeType": "UncheckedBlock", - "src": "24155:47:6", + "src": "24378:47:6", "statements": [ { "expression": { - "id": 2587, + "id": 2607, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { - "id": 2581, + "id": 2601, "name": "nonces", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 463, - "src": "24174:6:6", + "src": "24397:6:6", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint32_$_t_uint8_$", "typeString": "mapping(uint32 => uint8)" } }, - "id": 2583, + "id": 2603, "indexExpression": { - "id": 2582, + "id": 2602, "name": "index", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2561, - "src": "24181:5:6", + "referencedDeclaration": 2581, + "src": "24404:5:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -82624,7 +83100,7 @@ "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", - "src": "24174:13:6", + "src": "24397:13:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -82637,18 +83113,18 @@ "typeIdentifier": "t_uint8", "typeString": "uint8" }, - "id": 2586, + "id": 2606, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { - "id": 2584, + "id": 2604, "name": "v", "nodeType": "Identifier", "overloadedDeclarations": [], - "referencedDeclaration": 2565, - "src": "24190:1:6", + "referencedDeclaration": 2585, + "src": "24413:1:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" @@ -82658,60 +83134,60 @@ "operator": "+", "rightExpression": { "hexValue": "31", - "id": 2585, + "id": 2605, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", - "src": "24194:1:6", + "src": "24417:1:6", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, - "src": "24190:5:6", + "src": "24413:5:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "src": "24174:21:6", + "src": "24397:21:6", "typeDescriptions": { "typeIdentifier": "t_uint8", "typeString": "uint8" } }, - "id": 2588, + "id": 2608, "nodeType": "ExpressionStatement", - "src": "24174:21:6" + "src": "24397:21:6" } ] } ] }, - "id": 2591, + "id": 2611, "implemented": true, "kind": "function", "modifiers": [], "name": "_incrementNonce", - "nameLocation": "24007:15:6", + "nameLocation": "24230:15:6", "nodeType": "FunctionDefinition", "parameters": { - "id": 2562, + "id": 2582, "nodeType": "ParameterList", "parameters": [ { "constant": false, - "id": 2561, + "id": 2581, "mutability": "mutable", "name": "index", - "nameLocation": "24030:5:6", + "nameLocation": "24253:5:6", "nodeType": "VariableDeclaration", - "scope": 2591, - "src": "24023:12:6", + "scope": 2611, + "src": "24246:12:6", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { @@ -82719,10 +83195,10 @@ "typeString": "uint32" }, "typeName": { - "id": 2560, + "id": 2580, "name": "uint32", "nodeType": "ElementaryTypeName", - "src": "24023:6:6", + "src": "24246:6:6", "typeDescriptions": { "typeIdentifier": "t_uint32", "typeString": "uint32" @@ -82731,27 +83207,27 @@ "visibility": "internal" } ], - "src": "24022:14:6" + "src": "24245:14:6" }, "returnParameters": { - "id": 2563, + "id": 2583, "nodeType": "ParameterList", "parameters": [], - "src": "24046:0:6" + "src": "24269:0:6" }, - "scope": 2592, - "src": "23998:210:6", + "scope": 2612, + "src": "24221:210:6", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" } ], - "scope": 2593, - "src": "151:24059:6", + "scope": 2613, + "src": "151:24282:6", "usedErrors": [] } ], - "src": "39:24172:6" + "src": "39:24395:6" }, "compiler": { "name": "solc", @@ -82759,7 +83235,7 @@ }, "networks": {}, "schemaVersion": "3.4.2", - "updatedAt": "2021-08-05T09:45:29.841Z", + "updatedAt": "2021-08-05T10:36:55.344Z", "devdoc": { "kind": "dev", "methods": { From dcce7a23d2a02a7717dcd8a097045b25bc824d21 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 03:39:36 -0700 Subject: [PATCH 36/59] fix bug with computeRecoveryHash --- code/lib/onewallet.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/lib/onewallet.js b/code/lib/onewallet.js index 7409a836..2d8042bb 100644 --- a/code/lib/onewallet.js +++ b/code/lib/onewallet.js @@ -183,7 +183,7 @@ const computeEOTP = async ({ otp, otp2, rand = null, hseed, nonce = 0, hasher = } const computeRecoveryHash = (rseed, input) => { - rseed = rseed || new Uint8Array(new BigUint64Array([0, Date.now()]).buffer) + rseed = rseed || new Uint8Array(new BigUint64Array([0n, BigInt(Date.now())]).buffer) input = input || new Uint8Array(32) // eslint-disable-next-line new-cap const aes = new AES.ModeOfOperation.ctr(rseed) From 8fc1c243ded0fcfd3f30fa34853f93f033e9944e Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 03:39:50 -0700 Subject: [PATCH 37/59] new recovery flow --- code/lib/api/flow.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/code/lib/api/flow.js b/code/lib/api/flow.js index f1c7fa41..4a21caf1 100644 --- a/code/lib/api/flow.js +++ b/code/lib/api/flow.js @@ -14,11 +14,10 @@ const EotpBuilders = { return ONE.computeEOTP({ otp: encodedOtp, otp2: encodedOtp2, rand, nonce, hseed: ONEUtil.hexToBytes(hseed) }) }, recovery: async ({ wallet, layers }) => { + // eslint-disable-next-line no-unused-vars const { hseed, effectiveTime } = wallet - const index = ONEUtil.timeToIndex({ effectiveTime }) - const leaf = layers[0].subarray(index * 32, index * 32 + 32).slice() - const { eotp } = ONE.bruteforceEOTP({ hseed: ONEUtil.hexToBytes(hseed), leaf }) - return eotp + const leaf = layers[0].subarray(layers[0].length - 32, layers[0].length) + return leaf } } From dfcc39b498d255add9e3bd8edf3cb64dacbffa24 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 03:40:03 -0700 Subject: [PATCH 38/59] new recovery test; all tests passing --- code/test/wallet.js | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/code/test/wallet.js b/code/test/wallet.js index 2c9bd20a..b4e50f41 100644 --- a/code/test/wallet.js +++ b/code/test/wallet.js @@ -4,6 +4,7 @@ const ONEUtil = require('../lib/util') const ONEDebugger = require('../lib/debug') const ONE = require('../lib/onewallet') const ONEConstants = require('../lib/constants') +const Flow = require('../lib/api/flow') const INTERVAL = 30000 const DURATION = INTERVAL * 8 @@ -22,7 +23,7 @@ contract('ONEWallet', (accounts) => { const ONE_ETH = unit.toWei('1', 'ether') // eslint-disable-next-line no-unused-vars const TWO_ETH = unit.toWei('2', 'ether') - it('must create wallet with expected parameters', async () => { + it('Wallet_Create: must create wallet with expected parameters', async () => { const purse = web3.eth.accounts.create() const { seed, @@ -71,7 +72,7 @@ contract('ONEWallet', (accounts) => { assert.equal(ONE_CENT, balance, 'Wallet has correct balance') }) - it('must commit and reveal a transfer successfully', async () => { + it('Wallet_CommitReveal: must commit and reveal a transfer successfully', async () => { const purse = web3.eth.accounts.create() const { seed, hseed, wallet, root, client: { layers } } = await TestUtil.createWallet({ effectiveTime: EFFECTIVE_TIME, @@ -144,7 +145,7 @@ contract('ONEWallet', (accounts) => { assert.equal(ONE_CENT / 2, purseBalance, 'Purse has correct balance') }) - it('must respect daily limit', async () => { + it('Wallet_DailyLimit: must respect daily limit', async () => { const purse = web3.eth.accounts.create() const { seed, hseed, wallet, client: { layers } } = await TestUtil.createWallet({ effectiveTime: EFFECTIVE_TIME, @@ -180,9 +181,9 @@ contract('ONEWallet', (accounts) => { assert.equal(0, purseBalance, 'Purse has 0 balance') }) - it('must recover funds to last resort address', async () => { + it('Wallet_Recover: must recover funds to recovery address without using otp', async () => { const purse = web3.eth.accounts.create() - const { seed, hseed, wallet, client: { layers } } = await TestUtil.createWallet({ + const { hseed, wallet, client: { layers } } = await TestUtil.createWallet({ effectiveTime: EFFECTIVE_TIME, duration: DURATION, maxOperationsPerInterval: SLOT_SIZE, @@ -194,20 +195,21 @@ contract('ONEWallet', (accounts) => { to: wallet.address, value: ONE_DIME }) - const otp = ONEUtil.genOTP({ seed }) - const index = ONEUtil.timeToIndex({ effectiveTime: EFFECTIVE_TIME }) - const eotp = await ONE.computeEOTP({ otp, hseed }) + const index = 2 ** (layers.length - 1) - 1 + const eotp = await Flow.EotpBuilders.recovery({ wallet, layers }) const neighbors = ONE.selectMerkleNeighbors({ layers, index }) const neighbor = neighbors[0] const { hash: commitHash } = ONE.computeCommitHash({ neighbor, index, eotp }) - const { hash: recoveryHash } = ONE.computeRecoveryHash() + const { hash: recoveryHash, bytes: recoveryData } = ONE.computeRecoveryHash(null, hseed) const { hash: verificationHash } = ONE.computeVerificationHash({ paramsHash: recoveryHash, eotp }) const neighborsEncoded = neighbors.map(ONEUtil.hexString) await wallet.commit(ONEUtil.hexString(commitHash), ONEUtil.hexString(recoveryHash), ONEUtil.hexString(verificationHash)) - await wallet.reveal( + const tx = await wallet.reveal( neighborsEncoded, index, ONEUtil.hexString(eotp), - ONEConstants.OperationType.RECOVER, ONEConstants.TokenType.NONE, ONEConstants.EmptyAddress, 0, ONEConstants.EmptyAddress, HALF_DIME, '0x' + ONEConstants.OperationType.RECOVER, ONEConstants.TokenType.NONE, ONEConstants.EmptyAddress, 0, ONEConstants.EmptyAddress, HALF_DIME, ONEUtil.hexString(recoveryData) ) + Logger.debug('tx', tx) + assert.ok(tx.tx, 'Transaction must succeed') const walletBalance = await web3.eth.getBalance(wallet.address) const purseBalance = await web3.eth.getBalance(purse.address) assert.equal(0, walletBalance, 'Wallet has 0 balance') From 57ef96b526947e373132936d7766b2d30367c41c Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 04:09:33 -0700 Subject: [PATCH 39/59] minor --- code/test/client.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/test/client.js b/code/test/client.js index 048ce0ab..abdf272b 100644 --- a/code/test/client.js +++ b/code/test/client.js @@ -203,6 +203,7 @@ contract('ONEWallet', (accounts) => { const transferTest = async ({ hasher = ONEUtil.sha256b }) => { const effectiveTime = Math.floor(Date.now() / INTERVAL) * INTERVAL - DURATION / 2 + const randomness = 16 const purse = web3.eth.accounts.create() const { @@ -227,7 +228,7 @@ contract('ONEWallet', (accounts) => { maxOperationsPerInterval: SLOT_SIZE, lastResortAddress: ONEConstants.EmptyAddress, dailyLimit: ONE_ETH, - randomness: 16, + randomness, hasher, doubleOtp: true, }) @@ -254,7 +255,7 @@ contract('ONEWallet', (accounts) => { const index = ONEUtil.timeToIndex({ effectiveTime }) const leaf = leaves.subarray(index * 32, index * 32 + 32) Logger.debug(`otp=${ONEUtil.decodeOtp(otp)} otp2=${ONEUtil.decodeOtp(otp2)} index=${index}. Recovering rand...`) - const rand = await ONE.recoverRandomness({ hseed, otp, otp2, randomness: 16, hasher, leaf }) + const rand = await ONE.recoverRandomness({ hseed, otp, otp2, randomness, hasher, leaf }) Logger.debug(`rand=${rand} recovered`) assert.ok(rand !== null, 'Recover randomness must succeed') const neighbors = ONE.selectMerkleNeighbors({ layers, index }) From f4346b8e7f3ba09f3c8d9e53c458abced8f9149e Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 04:17:49 -0700 Subject: [PATCH 40/59] clean up --- code/lib/onewallet.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/lib/onewallet.js b/code/lib/onewallet.js index 2d8042bb..47bef590 100644 --- a/code/lib/onewallet.js +++ b/code/lib/onewallet.js @@ -169,14 +169,10 @@ const computeEOTP = async ({ otp, otp2, rand = null, hseed, nonce = 0, hasher = if (otp2) { buffer.set(otp2, hseed.length + 6) } - console.log('otp', otp, hexView(otp)) - console.log('otp2', otp2, hexView(otp2)) - console.log('buffer', buffer, hexView(buffer)) if (rand !== null) { const rb = new Uint8Array(4) const rv = new DataView(rb.buffer) rv.setUint32(0, rand, false) - console.log('rb', rb) buffer.set(rb, 28) } return hasher(buffer) From ace8dd773e18bdb6f4f50ff189e7a00851d5aeb7 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 04:17:53 -0700 Subject: [PATCH 41/59] ditto --- code/client/src/pages/Show.jsx | 6 ------ 1 file changed, 6 deletions(-) diff --git a/code/client/src/pages/Show.jsx b/code/client/src/pages/Show.jsx index 8e160aa6..8e03c6de 100644 --- a/code/client/src/pages/Show.jsx +++ b/code/client/src/pages/Show.jsx @@ -168,18 +168,12 @@ const Show = () => { const prepareValidation = ({ checkAmount = true, checkDest = true, checkOtp = true } = {}) => { let rawAmount - const otp = util.parseOtp(otpInput) - const otp2 = util.parseOtp(otp2Input) - const invalidOtp = !otp - const invalidOtp2 = wallet.doubleOtp && !otp2 - // Ensure valid address for both 0x and one1 formats const dest = util.safeExec(util.normalizedAddress, [transferTo], handleAddressError) - if (checkDest && !dest) { return } From ca1f770931d32d243301eec19f77f71a3f6941e7 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 04:20:00 -0700 Subject: [PATCH 42/59] ONE Wallet -> 1wallet --- code/client/src/pages/Create.jsx | 14 +++++++------- code/client/src/pages/Restore.jsx | 4 ++-- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/code/client/src/pages/Create.jsx b/code/client/src/pages/Create.jsx index 294b4277..1cfcb949 100644 --- a/code/client/src/pages/Create.jsx +++ b/code/client/src/pages/Create.jsx @@ -246,7 +246,7 @@ const Create = () => { - Next, we will set up a ONE Wallet that expires in a year. When the wallet expires, you may create a new wallet and transfer the funds. The funds can also be recovered to an address you set later. + Next, we will set up a 1wallet that expires in a year. When the wallet expires, you may create a new wallet and transfer the funds. The funds can also be recovered to an address you set later. setDurationVisible(true)}>Need more time? {durationVisible && @@ -263,7 +263,7 @@ const Create = () => { {/* Now, scan the QR code with your Google Authenticator */} - Create Your ONE Wallet + Create Your 1wallet You need the 6-digit code from Google authenticator to transfer funds. You can restore your wallet using Google authenticator on any device. {qrCodeData && } @@ -295,8 +295,8 @@ const Create = () => { - Create Your ONE Wallet - Scan using your Google Authenticator to setup the second code + Create Your 1wallet (Enhanced Security) + Scan with your Google Authenticator to setup the second code {secondOtpQrCodeData && } @@ -317,7 +317,7 @@ const Create = () => { - Prepare Your ONE Wallet + Prepare Your 1wallet {/* */} @@ -370,7 +370,7 @@ const Create = () => { percent={progress} /> - + Securing the wallet Preparing signatures @@ -382,7 +382,7 @@ const Create = () => { No private key. No mnemonic. Simple and Secure. - To learn more, visit ONE Wallet Wiki + To learn more, visit 1wallet Wiki In Beta, your wallet is subject to a daily spending limit of {WalletConstants.defaultDailyLimit} ONE diff --git a/code/client/src/pages/Restore.jsx b/code/client/src/pages/Restore.jsx index 05b37b21..f90e2ea1 100644 --- a/code/client/src/pages/Restore.jsx +++ b/code/client/src/pages/Restore.jsx @@ -64,7 +64,7 @@ const Restore = () => { const params = MigrationPayload.decode(Buffer.from(data, 'base64')).otpParameters const filteredParams = params.filter(e => e.issuer === 'ONE Wallet' || e.issuer === 'Harmony') if (filteredParams.length > 1) { - message.error('You selected more than 1 ONE Wallet code to export. Please reselect on Google Authenticator') + message.error('You selected more than one authenticator entry to export. Please reselect on Google Authenticator') return } const { secret, name } = filteredParams[0] @@ -249,7 +249,7 @@ const Restore = () => { percent={progress} /> - + Recomputing proofs for each time interval Preparing hashes for verification From dc6405794e05d129e47bfb3705ba06c5b195e84c Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 04:25:23 -0700 Subject: [PATCH 43/59] otp entry name change --- code/client/src/pages/Create.jsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/client/src/pages/Create.jsx b/code/client/src/pages/Create.jsx index 1cfcb949..431b7651 100644 --- a/code/client/src/pages/Create.jsx +++ b/code/client/src/pages/Create.jsx @@ -109,7 +109,7 @@ const Create = () => { useEffect(() => { (async function () { const otpUri = getQRCodeUri(seed, name) - const secondOtpUri = getQRCodeUri(seed2, `${name} (2nd)`) + const secondOtpUri = getQRCodeUri(seed2, `${name} - 2nd`) const otpQrCodeData = await qrcode.toDataURL(otpUri, { errorCorrectionLevel: 'low', width: isMobile ? 192 : 256 }) const secondOtpQrCodeData = await qrcode.toDataURL(secondOtpUri, { errorCorrectionLevel: 'low', width: isMobile ? 192 : 256 }) setQRCodeData(otpQrCodeData) @@ -272,7 +272,7 @@ const Create = () => { - After you are done, type in the 6-digit code from Google authenticator. + After you are done, type in the 6-digit code from Google authenticator.
Look for Harmony ({name})
{ - Create Your 1wallet (Enhanced Security) + Create Your 1wallet (second code) Scan with your Google Authenticator to setup the second code {secondOtpQrCodeData && } @@ -304,7 +304,7 @@ const Create = () => { - Type in the second 6-digit code from Google authenticator. + Type in the second 6-digit code from Google authenticator.
Look for Harmony ({name} - 2nd)
Date: Thu, 5 Aug 2021 04:27:22 -0700 Subject: [PATCH 44/59] text update --- code/client/src/pages/Create.jsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/client/src/pages/Create.jsx b/code/client/src/pages/Create.jsx index 431b7651..4f549ec0 100644 --- a/code/client/src/pages/Create.jsx +++ b/code/client/src/pages/Create.jsx @@ -272,7 +272,8 @@ const Create = () => {
- After you are done, type in the 6-digit code from Google authenticator.
Look for Harmony ({name})
+ After you are done, type in the 6-digit code from Google authenticator + Code for Harmony ({name}) {
- Type in the second 6-digit code from Google authenticator.
Look for Harmony ({name} - 2nd)
+ Type in the second 6-digit code from Google authenticator + Code for Harmony ({name} - 2nd) Date: Thu, 5 Aug 2021 04:32:09 -0700 Subject: [PATCH 45/59] better syntax for computeRecoveryHash --- code/lib/onewallet.js | 10 +++++----- code/test/wallet.js | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/code/lib/onewallet.js b/code/lib/onewallet.js index 47bef590..d864e1d0 100644 --- a/code/lib/onewallet.js +++ b/code/lib/onewallet.js @@ -178,12 +178,12 @@ const computeEOTP = async ({ otp, otp2, rand = null, hseed, nonce = 0, hasher = return hasher(buffer) } -const computeRecoveryHash = (rseed, input) => { - rseed = rseed || new Uint8Array(new BigUint64Array([0n, BigInt(Date.now())]).buffer) - input = input || new Uint8Array(32) +const computeRecoveryHash = ({ randomSeed, hseed }) => { + randomSeed = randomSeed || new Uint8Array(new BigUint64Array([0n, BigInt(Date.now())]).buffer) + hseed = hseed || new Uint8Array(32) // eslint-disable-next-line new-cap - const aes = new AES.ModeOfOperation.ctr(rseed) - const bytes = aes.encrypt(input) + const aes = new AES.ModeOfOperation.ctr(randomSeed) + const bytes = aes.encrypt(hseed) return { hash: keccak(bytes), bytes } } diff --git a/code/test/wallet.js b/code/test/wallet.js index b4e50f41..dad1d551 100644 --- a/code/test/wallet.js +++ b/code/test/wallet.js @@ -200,7 +200,7 @@ contract('ONEWallet', (accounts) => { const neighbors = ONE.selectMerkleNeighbors({ layers, index }) const neighbor = neighbors[0] const { hash: commitHash } = ONE.computeCommitHash({ neighbor, index, eotp }) - const { hash: recoveryHash, bytes: recoveryData } = ONE.computeRecoveryHash(null, hseed) + const { hash: recoveryHash, bytes: recoveryData } = ONE.computeRecoveryHash({ hseed }) const { hash: verificationHash } = ONE.computeVerificationHash({ paramsHash: recoveryHash, eotp }) const neighborsEncoded = neighbors.map(ONEUtil.hexString) await wallet.commit(ONEUtil.hexString(commitHash), ONEUtil.hexString(recoveryHash), ONEUtil.hexString(verificationHash)) From e213814ebbf5902f7090d1286bc5bcbf59fe41b2 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 05:05:04 -0700 Subject: [PATCH 46/59] v8 contract --- code/build/contracts/ONEWallet.json | 44 ++++++++++++++--------------- code/contracts/ONEWallet.sol | 4 +-- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/code/build/contracts/ONEWallet.json b/code/build/contracts/ONEWallet.json index b883c284..3efb18b1 100644 --- a/code/build/contracts/ONEWallet.json +++ b/code/build/contracts/ONEWallet.json @@ -904,9 +904,9 @@ "type": "function" } ], - "metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root_\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"height_\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"interval_\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"t0_\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"lifespan_\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"maxOperationsPerInterval_\",\"type\":\"uint8\"},{\"internalType\":\"address payable\",\"name\":\"lastResortAddress_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"dailyLimit_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"AutoRecoveryTriggered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"current\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"ExceedDailyLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"InsufficientFund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"LastResortAddressNotSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"PaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"PaymentSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ReceivedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"RecoveryFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenNotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenTracked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"TokenTransferError\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenUntracked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"UnknownTransferError\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"verificationHash\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"findCommit\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllCommits\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCommits\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentSpending\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInfo\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrackedTokens\",\"outputs\":[{\"internalType\":\"enum TokenTracker.TokenType[]\",\"name\":\"\",\"type\":\"uint8[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVersion\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"lookupCommit\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"retire\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"neighbors\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32\",\"name\":\"indexWithNonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"eotp\",\"type\":\"bytes32\"},{\"internalType\":\"enum ONEWallet.OperationType\",\"name\":\"operationType\",\"type\":\"uint8\"},{\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"dest\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"reveal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/ONEWallet.sol\":\"ONEWallet\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xfce1eb6398eae0e2b50251140866a70a3106193f101972c878bba1dbf44929ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f0709c3f462b28b400f57db181254ad970967c3b49a8948ef5e05929b106ffe\",\"dweb:/ipfs/QmNe3sRmPKw1T7q7m733tk7tFKpi3jo9PCisDPMbjeg3kJ\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x7de6e64d4a8075e803a972cc77c4c91463e0c3777e4110eacfb5d4a71759b2fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b3b09ef36374c1c104ee896797dadf2e81466d2143b481d3f1ddc7d9f3873\",\"dweb:/ipfs/QmSWtqs28RHDezRWBbmEfqiPYwsGTKj44NRbuxvZ96cqMU\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\",\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf101e8720213560fab41104d53b3cc7ba0456ef3a98455aa7f022391783144a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e7820bcf567e6892d937c3cb10db263a4042e446799bca602535868d822384e\",\"dweb:/ipfs/QmPG2oeDjKncqsEeyYGjAN7CwAJmMgHterXGGnpzhha4z7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xd9517254724276e2e8de3769183c1f738f445f0095c26fd9b86d3c6687e887b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e604bcdcd5e5b2fb299ad09769cde6db19d5aa1929d1b5e939234a0f10d7eb8\",\"dweb:/ipfs/Qmd8hXE3GZfBHuWx3RNiYgFW2ci7KvHtib8DiwzJ2dgo9V\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xa28007762d9da9db878dd421960c8cb9a10471f47ab5c1b3309bfe48e9e79ff4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://796ab6e88af7bf0e78def0f059310c903af6a312b565344e0ff524a0f26e81c6\",\"dweb:/ipfs/QmcsVgLgzWdor3UnAztUkXKNGcysm1MPneWksF72AvnwBx\"]},\"project:/contracts/ONEWallet.sol\":{\"keccak256\":\"0x2053288cb89b882fb5fb435952055eac827f8cacb27ab76ae693cf92ceac6161\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4ed8af3d81cf96976394b0589764e14a814f2fa78092c0bd720aee2c71265ee2\",\"dweb:/ipfs/QmcpGvbaZZAoMpp5ziUUQmyQaXFA6RabL7zChbfQHR2am8\"]},\"project:/contracts/TokenTracker.sol\":{\"keccak256\":\"0x153e8bd4263b7b071e5c4e9e44f5da2afb16c74207e8a6a071c837721de1747b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5550ad4a2929a9216432939182544a355ccfa1fdc04566497d4215d08171d115\",\"dweb:/ipfs/QmRkCR7qmJP6oLqFs7FbAZNgQUV9PNRLweP4Kkv3L81AW7\"]}},\"version\":1}", - "bytecode": "0x6101606040523480156200001257600080fd5b506040516200559538038062005595833981016040819052620000359162000117565b60808890527fff0000000000000000000000000000000000000000000000000000000000000060f888811b821660a05287811b821660c0526001600160e01b031960e088811b8216815287901b1661010052600280546001600160a01b0386166001600160a01b0319909116179055600383905584901b1661012052620000be600188620002d2565b620000cb90600262000204565b60e01b6001600160e01b03191661014052506200030e9650505050505050565b805163ffffffff811681146200010057600080fd5b919050565b805160ff811681146200010057600080fd5b600080600080600080600080610100898b03121562000134578384fd5b885197506200014660208a0162000105565b96506200015660408a0162000105565b95506200016660608a01620000eb565b94506200017660808a01620000eb565b93506200018660a08a0162000105565b60c08a01519093506001600160a01b0381168114620001a3578283fd5b8092505060e089015190509295985092959890939650565b600181815b80851115620001fc578160001904821115620001e057620001e0620002f8565b80851615620001ee57918102915b93841c9390800290620001c0565b509250929050565b60006200021560ff8416836200021c565b9392505050565b6000826200022d57506001620002cc565b816200023c57506000620002cc565b8160018114620002555760028114620002605762000280565b6001915050620002cc565b60ff841115620002745762000274620002f8565b50506001821b620002cc565b5060208310610133831016604e8410600b8410161715620002a5575081810a620002cc565b620002b18383620001bb565b8060001904821115620002c857620002c8620002f8565b0290505b92915050565b600060ff821660ff841680821015620002ef57620002ef620002f8565b90039392505050565b634e487b7160e01b600052601160045260246000fd5b60805160a05160f81c60c05160f81c60e05160e01c6101005160e01c6101205160f81c6101405160e01c61519c620003f9600039600081816110ec0152611d880152600081816103b20152818161220301526122340152600081816103900152610e6201526000818161036e01528181610e84015281816113d3015281816123c60152818161274c01528181613cd30152613d0a01526000818161034c01528181610eaa015281816113f9015281816123ee015281816127740152613ca701526000818161032a01528181611c990152611dcc0152600081816103080152611f78015261519c6000f3fe6080604052600436106100f75760003560e01c8063a17027e11161008a578063d087d28811610059578063d087d288146104d5578063d87458a3146104fc578063e4e5b2581461051c578063f23a6e611461053c57600080fd5b8063a17027e11461045a578063a4874d7714610480578063bc197c8114610495578063c34a6dad146104b557600080fd5b80632293d3fb116100c65780632293d3fb1461029e5780632f1f7520146102cb5780635a9b0b89146102f0578063695def4c1461043657600080fd5b806301ffc9a7146101c05780630d8e6e2c146101f5578063150b7a02146102175780631cf4ea051461025057600080fd5b366101bb57604080513481523360208201527fa26ab80e902f2055a125714fc6f2eb15df2a09c7fe39c7fc71204ffba72109db910160405180910390a1670de0b6b3a7640000341461014557005b6002546001600160a01b0316331461015957005b6002546001600160a01b031661016b57005b3330141561017557005b6040513381527f0cbe1fea4becf04af2176bbef0c9c53d439d30a05a197aacc38bb4a2873222e39060200160405180910390a16101b061055c565b6101b957600080fd5b005b600080fd5b3480156101cc57600080fd5b506101e06101db366004614904565b6105bb565b60405190151581526020015b60405180910390f35b34801561020157600080fd5b50604080516007815260036020820152016101ec565b34801561022357600080fd5b506102376102323660046146b4565b61060d565b6040516001600160e01b031990911681526020016101ec565b34801561025c57600080fd5b5061027061026b3660046148a9565b610674565b6040516101ec9493929190938452602084019290925263ffffffff1660408301521515606082015260800190565b3480156102aa57600080fd5b506004546005546040805192835263ffffffff9091166020830152016101ec565b3480156102d757600080fd5b506102e06106ba565b6040516101ec9493929190614be6565b3480156102fc57600080fd5b506103e06002546003547f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0390911691565b6040805198895260ff97881660208a01529587169588019590955263ffffffff9384166060880152919092166080860152921660a08401526001600160a01b0390911660c083015260e0820152610100016101ec565b34801561044257600080fd5b5061044b6106f7565b6040516101ec93929190614c33565b34801561046657600080fd5b5061046f6109e5565b6040516101ec959493929190614b85565b34801561048c57600080fd5b506101e0610e59565b3480156104a157600080fd5b506102376104b03660046145fa565b610fc7565b3480156104c157600080fd5b506101b96104d036600461479d565b6110d9565b3480156104e157600080fd5b506104ea6113ce565b60405160ff90911681526020016101ec565b34801561050857600080fd5b5061046f6105173660046148a9565b611447565b34801561052857600080fd5b506101b96105373660046148d9565b6117b9565b34801561054857600080fd5b50610237610557366004614724565b6118da565b60025460405160009182916001600160a01b039091169047908381818185875af1925050503d80600081146105ad576040519150601f19603f3d011682016040523d82523d6000602084013e6105b2565b606091505b50909392505050565b60006001600160e01b031982166301ffc9a760e01b14806105ec57506001600160e01b0319821663f23a6e6160e01b145b8061060757506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161064d989796959493929190614db6565b60405180910390a161066160013386611941565b50630a85bd0160e11b5b95945050505050565b60008060008060405162461bcd60e51b81526004016106b1906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b60405180910390fd5b60608060608060405162461bcd60e51b81526004016106b1906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b606080606060006001805490506001600160401b0381111561072957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610752578160200160208202803683370190505b506001549091506000906001600160401b0381111561078157634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156107aa578160200160208202803683370190505b506001549091506000906001600160401b038111156107d957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610802578160200160208202803683370190505b50905060005b60015463ffffffff821610156109d85760018163ffffffff168154811061083f57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061087e57634e487b7160e01b600052603260045260246000fd5b602002602001019060038111156108a557634e487b7160e01b600052602160045260246000fd5b908160038111156108c657634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106108f157634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff168151811061093c57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061098357634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff16815181106109bb57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806109d081615007565b915050610808565b5091959094509092509050565b60608060608060606000805b60085463ffffffff82161015610a6f5760006009600060088463ffffffff1681548110610a2e57634e487b7160e01b600052603260045260246000fd5b906000526020600020015481526020019081526020016000209050808054905083610a599190614e98565b9250508080610a6790615007565b9150506109f1565b5060008163ffffffff166001600160401b03811115610a9e57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610ac7578160200160208202803683370190505b50905060008263ffffffff166001600160401b03811115610af857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b21578160200160208202803683370190505b50905060008363ffffffff166001600160401b03811115610b5257634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b7b578160200160208202803683370190505b50905060008463ffffffff166001600160401b03811115610bac57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610bd5578160200160208202803683370190505b50905060008563ffffffff166001600160401b03811115610c0657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c2f578160200160208202803683370190505b5090506000805b60085463ffffffff82161015610e465760006009600060088463ffffffff1681548110610c7357634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020905060005b815463ffffffff82161015610e31576000828263ffffffff1681548110610cc857634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201905080600001548a8663ffffffff1681518110610d0357634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154898663ffffffff1681518110610d3a57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154888663ffffffff1681518110610d7157634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154875163ffffffff918216918991908816908110610dae57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16868663ffffffff1681518110610e0057634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015284610e1a81615007565b955050508080610e2990615007565b915050610c91565b50508080610e3e90615007565b915050610c36565b50949b939a509198509650945092505050565b600063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000610ed060ff7f00000000000000000000000000000000000000000000000000000000000000001642614ec0565b610eda9190614f59565b63ffffffff1611610f235760405162461bcd60e51b8152602060048201526013602482015272546f6f206561726c7920746f2072657469726560681b60448201526064016106b1565b6002546001600160a01b0316610f7b5760405162461bcd60e51b815260206004820152601e60248201527f4c617374207265736f72742061646472657373206973206e6f7420736574000060448201526064016106b1565b610f8361055c565b610fc15760405162461bcd60e51b815260206004820152600f60248201526e149958dbdd995c9e4819985a5b1959608a1b60448201526064016106b1565b50600190565b6000805b63ffffffff81168711156110c3573063f23a6e618b8b8b8b63ffffffff871681811061100757634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061103457634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161105e96959493929190614af9565b602060405180830381600087803b15801561107857600080fd5b505af115801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b09190614920565b50806110bb81615007565b915050610fcb565b5063bc197c8160e01b9998505050505050505050565b6110e58c8c8c8c611c92565b61111060017f0000000000000000000000000000000000000000000000000000000000000000614f59565b63ffffffff168a63ffffffff16141561119e57600688600781111561114557634e487b7160e01b600052602160045260246000fd5b1461119e5760405162461bcd60e51b815260206004820152602360248201527f4c617374206f7065726174696f6e20726573657276656420666f72207265636f6044820152623b32b960e91b60648201526084016106b1565b6000806111db8e8e60008181106111c557634e487b7160e01b600052603260045260246000fd5b905060200201358d8d8d8d8d8d8d8d8d8d611fe1565b9150915060006111ee838e848f8f6121f9565b90506111fb83828d6125eb565b60008b600781111561121d57634e487b7160e01b600052602160045260246000fd5b14156112435783156112385761123385856127db565b6113bd565b6112338a8a8a611941565b60018b600781111561126557634e487b7160e01b600052602160045260246000fd5b141561128657831561127c576112338a8a8a61296b565b6112338585612fb9565b60028b60078111156112a857634e487b7160e01b600052602160045260246000fd5b14156112f2576112338a8a8a8a8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061308f92505050565b60038b600781111561131457634e487b7160e01b600052602160045260246000fd5b141561132457611233858561340b565b60048b600781111561134657634e487b7160e01b600052602160045260246000fd5b141561135c5761135687876135d3565b506113bd565b60068b600781111561137e57634e487b7160e01b600052602160045260246000fd5b141561138c576113566137f5565b60058b60078111156113ae57634e487b7160e01b600052602160045260246000fd5b14156113bd576113bd87613872565b505050505050505050505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000061141f60ff7f00000000000000000000000000000000000000000000000000000000000000001642614ed4565b6114299190614f59565b63ffffffff1660009081526006602052604090205460ff1692915050565b600081815260096020526040812080546060928392839283928392916001600160401b0381111561148857634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114b1578160200160208202803683370190505b5082549091506000906001600160401b038111156114df57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611508578160200160208202803683370190505b5083549091506000906001600160401b0381111561153657634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561155f578160200160208202803683370190505b5084549091506000906001600160401b0381111561158d57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156115b6578160200160208202803683370190505b5085549091506000906001600160401b038111156115e457634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561160d578160200160208202803683370190505b50905060005b865463ffffffff821610156117a5576000878263ffffffff168154811061164a57634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060000154878363ffffffff168151811061168557634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154868363ffffffff16815181106116bc57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154858363ffffffff16815181106116f357634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154845163ffffffff91821691869190851690811061173057634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16838363ffffffff168151811061178257634e487b7160e01b600052603260045260246000fd5b91151560209283029190910190910152508061179d81615007565b915050611613565b50939b929a50909850965090945092505050565b6117c16138f8565b6040805160a0810182528481526020810184905290810182905263ffffffff42166060820152600060808201526008546078116118335760405162461bcd60e51b815260206004820152601060248201526f546f6f206d616e7920636f6d6d69747360801b60448201526064016106b1565b6008805460018181019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018590556000948552600960209081526040808720805480850182559088529682902084516004909802019687559083015191860191909155810151600285015560608101516003909401805460809092015115156401000000000264ffffffffff1990921663ffffffff90951694909417179092555050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a898960405161191a989796959493929190614db6565b60405180910390a161192e60023387611941565b5063f23a6e6160e01b9695505050505050565b600083600381111561196357634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915015611b485760005b60008281526020819052604090205463ffffffff82161015611b46576000828152602081905260408120805463ffffffff8416908110611a0c57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115611a3957634e487b7160e01b600052602160045260246000fd5b60018281548110611a5a57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115611a8d57634e487b7160e01b600052602160045260246000fd5b14611a985750611b34565b8360018281548110611aba57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414611ad75750611b34565b846001600160a01b031660018281548110611b0257634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614611b2c5750611b34565b505050505050565b80611b3e81615007565b9150506119bc565b505b60006040518060600160405280866003811115611b7557634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff191690836003811115611c1a57634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a290611c8390879087908790614cc4565b60405180910390a15050505050565b611cbd60017f0000000000000000000000000000000000000000000000000000000000000000614f7e565b60ff168314611d0e5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420656e6f756768206e65696768626f72732070726f766964656400000060448201526064016106b1565b6000600282604051602001611d2591815260200190565b60408051601f1981840301815290829052611d3f91614aa0565b602060405180830381855afa158015611d5c573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611d7f91906148c1565b9050611dac60017f0000000000000000000000000000000000000000000000000000000000000000614f59565b63ffffffff168363ffffffff161415611dc25750805b60005b611df060017f0000000000000000000000000000000000000000000000000000000000000000614f7e565b60ff168160ff161015611f745760018085161415611eb057600286868360ff16818110611e2d57634e487b7160e01b600052603260045260246000fd5b9050602002013583604051602001611e4f929190918252602082015260400190565b60408051601f1981840301815290829052611e6991614aa0565b602060405180830381855afa158015611e86573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ea991906148c1565b9150611f54565b60028287878460ff16818110611ed657634e487b7160e01b600052603260045260246000fd5b90506020020135604051602001611ef7929190918252602082015260400190565b60408051601f1981840301815290829052611f1191614aa0565b602060405180830381855afa158015611f2e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611f5191906148c1565b91505b60018463ffffffff16901c93508080611f6c9061502b565b915050611dc5565b50807f000000000000000000000000000000000000000000000000000000000000000014611fd95760405162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81a5b98dbdc9c9958dd60721b60448201526064016106b1565b505b50505050565b60008060008d8d60e01b6001600160e01b0319168d604051602001612019939291909283526020830191909152604082015260600190565b60408051601f1981840301815291905280516020909101209050600060048c600781111561205757634e487b7160e01b600052602160045260246000fd5b141561209a576040805160608a811b6001600160601b0319166020830152918101899052015b6040516020818303038152906040528051906020012090506121e5565b60068c60078111156120bc57634e487b7160e01b600052602160045260246000fd5b14156120e15785856040516120d2929190614a90565b604051809103902090506121e5565b60058c600781111561210357634e487b7160e01b600052602160045260246000fd5b141561212757604080516001600160601b031960608b901b1660208201520161207d565b60008c600781111561214957634e487b7160e01b600052602160045260246000fd5b8c600381111561216957634e487b7160e01b600052602160045260246000fd5b60001b8c60601b6001600160601b0319168c60001b8c60601b6001600160601b0319168c60001b8c8c6040516020016121a9989796959493929190614a53565b6040516020818303038152906040529050806040516020016121cb9190614aa0565b604051602081830303815290604052805190602001209150505b909e909d509b505050505050505050505050565b60008061222960ff7f00000000000000000000000000000000000000000000000000000000000000001687614ed4565b9050600061225a60ff7f0000000000000000000000000000000000000000000000000000000000000000168861504b565b60008981526009602052604090208054919250906122ac5760405162461bcd60e51b815260206004820152600f60248201526e139bc818dbdb5b5a5d08199bdd5b99608a1b60448201526064016106b1565b60005b815463ffffffff821610156125b0576000828263ffffffff16815481106122e657634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190506000816001015489604051602001612318929190918252602082015260400190565b6040516020818303038152906040528051906020012090508082600201541461234257505061259e565b898260010154146123955760405162461bcd60e51b815260206004820152601760248201527f506172616d657465722068617368206d69736d6174636800000000000000000060448201526064016106b1565b60068860078111156123b757634e487b7160e01b600052602160045260246000fd5b146124e15760038201546000907f00000000000000000000000000000000000000000000000000000000000000009061241a9060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614ed4565b6124249190614f59565b90508663ffffffff168163ffffffff16146124815760405162461bcd60e51b815260206004820152601a60248201527f496e646578202d2074696d657374616d70206d69736d6174636800000000000060448201526064016106b1565b63ffffffff811660009081526006602052604090205460ff9081169087168111156124de5760405162461bcd60e51b815260206004820152600d60248201526c4e6f6e636520746f6f206c6f7760981b60448201526064016106b1565b50505b6003820154640100000000900460ff161561253e5760405162461bcd60e51b815260206004820152601860248201527f436f6d6d697420616c726561647920636f6d706c65746564000000000000000060448201526064016106b1565b60038201546125529063ffffffff16613bd3565b6125905760405162461bcd60e51b815260206004820152600f60248201526e52657665616c20746f6f206c61746560881b60448201526064016106b1565b82965050505050505061066b565b806125a881615007565b9150506122af565b5060405162461bcd60e51b815260206004820152600f60248201526e139bc81d985b1a590818dbdb5b5a5d608a1b60448201526064016106b1565b6000838152600960205260409020805461263d5760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e840d0c2e6d606b1b60448201526064016106b1565b805463ffffffff8416106126895760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e892dcc8caf606b1b60448201526064016106b1565b6000818463ffffffff16815481106126b157634e487b7160e01b600052603260045260246000fd5b60009182526020909120600490910201600381015490915063ffffffff1661271b5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420636f6d6d69742074696d657374616d70000000000000000060448201526064016106b1565b600683600781111561273d57634e487b7160e01b600052602160045260246000fd5b146127bf5760038101546000907f0000000000000000000000000000000000000000000000000000000000000000906127a09060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614ed4565b6127aa9190614f59565b90506127b581613bee565b6127bd613c8f565b505b600301805464ff00000000191664010000000017905550505050565b60006127e8606083614ec0565b9050816127f6826060614f16565b63ffffffff16146128195760405162461bcd60e51b81526004016106b190614e14565b60005b8163ffffffff168163ffffffff161015611fdb5760006128ac8585612842856060614f16565b63ffffffff1690612854866060614f16565b61285f906020614e98565b63ffffffff169261287293929190614e58565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f6a92505050565b60038111156128cb57634e487b7160e01b600052602160045260246000fd5b9050600061290786866128df866060614f16565b6128ea906020614e98565b63ffffffff16906128fc876060614f16565b61285f906034614e98565b60601c9050600061294887878660606129209190614f16565b61292b906040614e98565b63ffffffff169061293d886060614f16565b61285f906060614e98565b9050612955838383611941565b505050808061296390615007565b91505061281c565b600083600381111561298d57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f1981840301815291815281516020928301206000818152928390529120549091506129e85750505050565b60005b60008281526020819052604090205463ffffffff82161015612f77576000828152602081905260408120805463ffffffff8416908110612a3b57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115612a6857634e487b7160e01b600052602160045260246000fd5b60018281548110612a8957634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612abc57634e487b7160e01b600052602160045260246000fd5b14612ac75750612f65565b8360018281548110612ae957634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414612b065750612f65565b846001600160a01b031660018281548110612b3157634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614612b5b5750612f65565b60018054600091612b6b91614f42565b905060018181548110612b8e57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160018381548110612bbd57634e487b7160e01b600052603260045260246000fd5b6000918252602090912082546002909202018054909160ff1690829060ff19166001836003811115612bff57634e487b7160e01b600052602160045260246000fd5b021790555081548154610100600160a81b031916610100918290046001600160a01b03169091021781556001918201549082015580546000919084908110612c5757634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612c8a57634e487b7160e01b600052602160045260246000fd5b6001805485908110612cac57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b031660601b6001600160601b03191660018581548110612cff57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015460001b604051602001612d37939291909283526020830191909152604082015260600190565b6040516020818303038152906040528051906020012090506001805480612d6e57634e487b7160e01b600052603160045260246000fd5b60008281526020812060026000199093019283020180546001600160a81b031916815560010181905591555b60008281526020819052604090205463ffffffff82161015612e5657826000808481526020019081526020016000208263ffffffff1681548110612dee57634e487b7160e01b600052603260045260246000fd5b90600052602060002001541415612e4457836000808481526020019081526020016000208263ffffffff1681548110612e3757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b80612e4e81615007565b915050612d9a565b5060008581526020819052604090208054612e7390600190614f42565b81548110612e9157634e487b7160e01b600052603260045260246000fd5b90600052602060002001546000808781526020019081526020016000208481548110612ecd57634e487b7160e01b600052603260045260246000fd5b9060005260206000200181905550600080868152602001908152602001600020805480612f0a57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590557f166bc904e3b7f8699e175923a2635944dd9ac0dc817927aac60d854d23a82b9b888888604051612f5393929190614cc4565b60405180910390a15050505050505050565b80612f6f81615007565b9150506129eb565b507ffc773cf3883ef83133327fbc62fe0a7c3c96add34a1781cae66ba5de7efa3f5f848484604051612fab93929190614cc4565b60405180910390a150505050565b6000612fc6606083614ec0565b905081612fd4826060614f16565b63ffffffff1614612ff75760405162461bcd60e51b81526004016106b190614e14565b60005b8163ffffffff168163ffffffff161015611fdb5760006130208585612842856060614f16565b600381111561303f57634e487b7160e01b600052602160045260246000fd5b9050600061305386866128df866060614f16565b60601c9050600061306c87878660606129209190614f16565b905061307983838361296b565b505050808061308790615007565b915050612ffa565b60008660038111156130b157634e487b7160e01b600052602160045260246000fd5b14156132695760405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905286169063a9059cbb90604401602060405180830381600087803b15801561310157600080fd5b505af1925050508015613131575060408051601f3d908101601f1916820190925261312e91810190614882565b60015b6131ea5761313d61509a565b806308c379a014156131a457506131526150b2565b8061315d57506131a6565b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba87878787878660405161319696959493929190614d27565b60405180910390a150611b2c565b505b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba86868686866040516131dd959493929190614d6e565b60405180910390a1611b2c565b8015613232576131fb878787611941565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b318787878787604051613196959493929190614cec565b7f75a36803468aca74d964b22522480470a7a3f2121daa5994c2a937aec85d23298787878787604051613196959493929190614cec565b600186600381111561328b57634e487b7160e01b600052602160045260246000fd5b141561333157604051635c46a7ef60e11b81526001600160a01b0386169063b88d4fde906132c3903090879089908790600401614abc565b600060405180830381600087803b1580156132dd57600080fd5b505af19250505080156132ee575060015b6132fa5761313d61509a565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516131dd959493929190614cec565b600286600381111561335357634e487b7160e01b600052602160045260246000fd5b1415611b2c57604051637921219560e11b81526001600160a01b0386169063f242432a9061338d9030908790899088908890600401614b40565b600060405180830381600087803b1580156133a757600080fd5b505af19250505080156133b8575060015b6133c45761313d61509a565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516133fb959493929190614cec565b60405180910390a1505050505050565b6000613418606083614ec0565b905081613426826060614f16565b63ffffffff16146134495760405162461bcd60e51b81526004016106b190614e14565b60008163ffffffff166001600160401b0381111561347757634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156134c257816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816134955790505b50905060005b8263ffffffff168163ffffffff1610156135c95760006134ee8686612842856060614f16565b600381111561350d57634e487b7160e01b600052602160045260246000fd5b9050600061352187876128df866060614f16565b60601c9050600061353a88888660606129209190614f16565b60001c9050604051806060016040528084600381111561356a57634e487b7160e01b600052602160045260246000fd5b8152602001836001600160a01b0316815260200182815250858563ffffffff16815181106135a857634e487b7160e01b600052603260045260246000fd5b602002602001018190525050505080806135c190615007565b9150506134c8565b50611fdb81613ff6565b6000806135e36201518042614ec0565b60055490915063ffffffff90811690821611156136155760006004556005805463ffffffff191663ffffffff83161790555b600354836004546136269190614e80565b111561368b576003546004546040805186815260208101939093528201526001600160a01b03851660608201527f705f289c5579ebb63d8c90ed39a42a76ded07641efe4f445a9a97d1e95c75c68906080015b60405180910390a16000915050610607565b824710156136db57604080518481524760208201526001600160a01b038616918101919091527fd90084f259c3c1dbd378c6c23cff1383005852e0d9829773e15afdbaf15fb7d890606001613679565b82600460008282546136ed9190614e80565b90915550506040516000906001600160a01b0386169085908381818185875af1925050503d806000811461373d576040519150601f19603f3d011682016040523d82523d6000602084013e613742565b606091505b50509050806137a957836004600082825461375d9190614f42565b90915550506040516001600160a01b03861681527f2c7068ca7f82b1436494678e109b299bc751ccbb88d560f7c011b48dfdb2117b9060200160405180910390a1600092505050610607565b604080518581526001600160a01b03871660208201527f8f4636f285a9a17fe3479ab47bb7a5deadaf9b2295a16c3965f55fa48e542d1f910160405180910390a1506001949350505050565b6002546000906001600160a01b0316613837576040517fc27dbdcf29e2a161f0420d399444129801e578bafe157fef0370098459e082bf90600090a150600090565b61383f61055c565b610fc1576040517fa3a244603d968c02ebd2017f990d4e077cf0381929976be2a0cb07076147a56f90600090a150600090565b6002546001600160a01b0316156138d65760405162461bcd60e51b815260206004820152602260248201527f4c617374207265736f7274206164647265737320697320616c72656164792073604482015261195d60f21b60648201526084016106b1565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000425b60085463ffffffff831610156139ce57600060088363ffffffff168154811061393557634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260409091208054919250906139615750506139bc565b60008160008154811061398457634e487b7160e01b600052603260045260246000fd5b6000918252602090912060036004909202019081015490915063ffffffff603b19860181169116106139b8575050506139ce565b5050505b816139c681615007565b9250506138fc565b63ffffffff82166139dd575050565b60005b8263ffffffff168163ffffffff161015613ae057600060088263ffffffff1681548110613a1d57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260408220909250905b815463ffffffff82161015613ab357818163ffffffff1681548110613a7157634e487b7160e01b600052603260045260246000fd5b600091825260208220600490910201818155600181018290556002810191909155600301805464ffffffffff1916905580613aab81615007565b915050613a3c565b506000828152600960205260408120613acb916143b1565b50508080613ad890615007565b9150506139e0565b50600854825b8163ffffffff168163ffffffff161015613b735760088163ffffffff1681548110613b2157634e487b7160e01b600052603260045260246000fd5b9060005260206000200154600885830363ffffffff1681548110613b5557634e487b7160e01b600052603260045260246000fd5b60009182526020909120015580613b6b81615007565b915050613ae6565b5060005b8363ffffffff168163ffffffff161015611fdb576008805480613baa57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558080613bcb90615007565b915050613b77565b6000603c613be18342614f59565b63ffffffff161092915050565b63ffffffff811660009081526006602052604090205460ff1680613c62576007805460018101825560008290527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68860088204018054919092166004026101000a63ffffffff81810219909216918516021790555b63ffffffff919091166000908152600660205260409020805460ff1916600190920160ff16919091179055565b6000613c9c603c42614f59565b90506000613ccd60ff7f00000000000000000000000000000000000000000000000000000000000000001683614ed4565b905060007f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff161115613d3257613d2f7f000000000000000000000000000000000000000000000000000000000000000083614f59565b90505b6007546000906001600160401b03811115613d5d57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613d86578160200160208202803683370190505b5090506000805b60075460ff82161015613e6957600060078260ff1681548110613dc057634e487b7160e01b600052603260045260246000fd5b6000918252602090912060088204015460079091166004026101000a900463ffffffff90811691508516811015613e135763ffffffff81166000908152600660205260409020805460ff19169055613e56565b80848463ffffffff1681518110613e3a57634e487b7160e01b600052603260045260246000fd5b63ffffffff909216602092830291909101909101526001909201915b5080613e618161502b565b915050613d8d565b5060008163ffffffff166001600160401b03811115613e9857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613ec1578160200160208202803683370190505b50905060005b8263ffffffff168160ff161015613f4d57838160ff1681518110613efb57634e487b7160e01b600052603260045260246000fd5b6020026020010151828260ff1681518110613f2657634e487b7160e01b600052603260045260246000fd5b63ffffffff9092166020928302919091019091015280613f458161502b565b915050613ec7565b508051613f619060079060208401906143d5565b50505050505050565b6000815160001415613f7e57506000919050565b602082511115613fc75760405162461bcd60e51b8152602060048201526014602482015273696e70757420627974657320746f6f206c6f6e6760601b60448201526064016106b1565b60008083516020613fd89190614f42565b613fe3906008614ef7565b60209490940151841c90931b9392505050565b60005b60015463ffffffff8216101561416957600060018263ffffffff168154811061403257634e487b7160e01b600052603260045260246000fd5b600091825260208220600290910201546001805460ff90921693509063ffffffff851690811061407257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b03169050600060018463ffffffff16815481106140c257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154905060008360038111156140f857634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905290822090925061415291614484565b50505050808061416190615007565b915050613ff9565b50614176600160006144a2565b60005b81518163ffffffff1610156143ad576000828263ffffffff16815181106141b057634e487b7160e01b600052603260045260246000fd5b60200260200101516000015190506000838363ffffffff16815181106141e657634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000848463ffffffff168151811061421c57634e487b7160e01b600052603260045260246000fd5b6020026020010151604001519050600083600381111561424c57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b031916918301919091528101839052608001604051602081830303815290604052805190602001209050600060405180606001604052808660038111156142bb57634e487b7160e01b600052602160045260246000fd5b81526001600160a01b03861660208201526040018490526001805480820182556000829052825160029091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805493945084939092839160ff19169083600381111561433957634e487b7160e01b600052602160045260246000fd5b021790555060208281015182546001600160a01b0390911661010002610100600160a81b03199091161782556040928301516001928301556000948552848152918420805491820181558452922063ffffffff8716920191909155508392506143a59150829050615007565b915050614179565b5050565b50805460008255600402906000526020600020908101906143d291906144c3565b50565b828054828255906000526020600020906007016008900481019282156144745791602002820160005b8382111561444257835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026143fe565b80156144725782816101000a81549063ffffffff0219169055600401602081600301049283019260010302614442565b505b506144809291506144f5565b5090565b50805460008255906000526020600020908101906143d291906144f5565b50805460008255600202906000526020600020908101906143d2919061450a565b5b8082111561448057600080825560018201819055600282015560038101805464ffffffffff191690556004016144c4565b5b8082111561448057600081556001016144f6565b5b808211156144805780546001600160a81b03191681556000600182015560020161450b565b803561453b8161513b565b919050565b60008083601f840112614551578182fd5b5081356001600160401b03811115614567578182fd5b6020830191508360208260051b850101111561458257600080fd5b9250929050565b60008083601f84011261459a578182fd5b5081356001600160401b038111156145b0578182fd5b60208301915083602082850101111561458257600080fd5b80356008811061453b57600080fd5b80356004811061453b57600080fd5b803563ffffffff8116811461453b57600080fd5b60008060008060008060008060a0898b031215614615578384fd5b88356146208161513b565b975060208901356146308161513b565b965060408901356001600160401b038082111561464b578586fd5b6146578c838d01614540565b909850965060608b013591508082111561466f578586fd5b61467b8c838d01614540565b909650945060808b0135915080821115614693578384fd5b506146a08b828c01614589565b999c989b5096995094979396929594505050565b6000806000806000608086880312156146cb578081fd5b85356146d68161513b565b945060208601356146e68161513b565b93506040860135925060608601356001600160401b03811115614707578182fd5b61471388828901614589565b969995985093965092949392505050565b60008060008060008060a0878903121561473c578182fd5b86356147478161513b565b955060208701356147578161513b565b9450604087013593506060870135925060808701356001600160401b0381111561477f578283fd5b61478b89828a01614589565b979a9699509497509295939492505050565b6000806000806000806000806000806000806101408d8f0312156147bf578384fd5b6001600160401b038d3511156147d3578384fd5b6147e08e8e358f01614540565b909c509a506147f160208e016145e6565b995060408d0135985061480660608e016145c8565b975061481460808e016145d7565b965061482260a08e01614530565b955060c08d0135945061483760e08e01614530565b93506101008d013592506001600160401b036101208e01351115614859578081fd5b61486a8e6101208f01358f01614589565b81935080925050509295989b509295989b509295989b565b600060208284031215614893578081fd5b815180151581146148a2578182fd5b9392505050565b6000602082840312156148ba578081fd5b5035919050565b6000602082840312156148d2578081fd5b5051919050565b6000806000606084860312156148ed578081fd5b505081359360208301359350604090920135919050565b600060208284031215614915578081fd5b81356148a281615150565b600060208284031215614931578081fd5b81516148a281615150565b6000815180845260208085019450808401835b8381101561496d57815115158752958201959082019060010161494f565b509495945050505050565b6000815180845260208085019450808401835b8381101561496d5781518752958201959082019060010161498b565b6000815180845260208085019450808401835b8381101561496d57815163ffffffff16875295820195908201906001016149ba565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008151808452614a1d816020860160208601614fa1565b601f01601f19169290920160200192915050565b60048110614a4f57634e487b7160e01b600052602160045260246000fd5b9052565b8881528760208201528660408201528560608201528460808201528360a0820152818360c08301376000910160c001908152979650505050505050565b8183823760009101908152919050565b60008251614ab2818460208701614fa1565b9190910192915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614aef90830184614a05565b9695505050505050565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090614b3490830184866149dc565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614b7a90830184614a05565b979650505050505050565b60a081526000614b9860a0830188614978565b8281036020840152614baa8188614978565b90508281036040840152614bbe8187614978565b90508281036060840152614bd281866149a7565b90508281036080840152614b34818561493c565b608081526000614bf96080830187614978565b8281036020840152614c0b8187614978565b90508281036040840152614c1f81866149a7565b90508281036060840152614b7a818561493c565b606080825284519082018190526000906020906080840190828801845b82811015614c7357614c63848351614a31565b9284019290840190600101614c50565b50505083810382850152855180825286830191830190845b81811015614cb05783516001600160a01b031683529284019291840191600101614c8b565b50508481036040860152614b348187614978565b60608101614cd28286614a31565b6001600160a01b0393909316602082015260400152919050565b60a08101614cfa8288614a31565b6001600160a01b039586166020830152604082019490945291909316606082015260800191909152919050565b614d318188614a31565b6001600160a01b03868116602083015260408201869052841660608201526080810183905260c060a08201819052600090614b3490830184614a05565b614d788187614a31565b6001600160a01b039485166020820152604081019390935292166060820152608081019190915260c060a0820181905260009082015260e001919050565b614dc0818a614a31565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090614e0690830184866149dc565b9a9950505050505050505050565b60208082526024908201527f64617461206d7573742068617665206c656e677468206d756c7469706c65207460408201526337901c9b60e11b606082015260800190565b60008085851115614e67578182fd5b83861115614e73578182fd5b5050820193919092039150565b60008219821115614e9357614e9361506e565b500190565b600063ffffffff808316818516808303821115614eb757614eb761506e565b01949350505050565b600082614ecf57614ecf615084565b500490565b600063ffffffff80841680614eeb57614eeb615084565b92169190910492915050565b6000816000190483118215151615614f1157614f1161506e565b500290565b600063ffffffff80831681851681830481118215151615614f3957614f3961506e565b02949350505050565b600082821015614f5457614f5461506e565b500390565b600063ffffffff83811690831681811015614f7657614f7661506e565b039392505050565b600060ff821660ff841680821015614f9857614f9861506e565b90039392505050565b60005b83811015614fbc578181015183820152602001614fa4565b83811115611fdb5750506000910152565b601f8201601f191681016001600160401b038111828210171561500057634e487b7160e01b600052604160045260246000fd5b6040525050565b600063ffffffff808316818114156150215761502161506e565b6001019392505050565b600060ff821660ff8114156150425761504261506e565b60010192915050565b600063ffffffff8084168061506257615062615084565b92169190910692915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600060033d11156150af57600481823e5160e01c5b90565b600060443d10156150c05790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156150ef57505050505090565b82850191508151818111156151075750505050505090565b843d87010160208285010111156151215750505050505090565b61513060208286010187614fcd565b509095945050505050565b6001600160a01b03811681146143d257600080fd5b6001600160e01b0319811681146143d257600080fdfea2646970667358221220d4809935f437d7d15449611a5bc85c2febf695a4c5f623dbe1237f3199c19cee64736f6c63430008040033", - "deployedBytecode": "0x6080604052600436106100f75760003560e01c8063a17027e11161008a578063d087d28811610059578063d087d288146104d5578063d87458a3146104fc578063e4e5b2581461051c578063f23a6e611461053c57600080fd5b8063a17027e11461045a578063a4874d7714610480578063bc197c8114610495578063c34a6dad146104b557600080fd5b80632293d3fb116100c65780632293d3fb1461029e5780632f1f7520146102cb5780635a9b0b89146102f0578063695def4c1461043657600080fd5b806301ffc9a7146101c05780630d8e6e2c146101f5578063150b7a02146102175780631cf4ea051461025057600080fd5b366101bb57604080513481523360208201527fa26ab80e902f2055a125714fc6f2eb15df2a09c7fe39c7fc71204ffba72109db910160405180910390a1670de0b6b3a7640000341461014557005b6002546001600160a01b0316331461015957005b6002546001600160a01b031661016b57005b3330141561017557005b6040513381527f0cbe1fea4becf04af2176bbef0c9c53d439d30a05a197aacc38bb4a2873222e39060200160405180910390a16101b061055c565b6101b957600080fd5b005b600080fd5b3480156101cc57600080fd5b506101e06101db366004614904565b6105bb565b60405190151581526020015b60405180910390f35b34801561020157600080fd5b50604080516007815260036020820152016101ec565b34801561022357600080fd5b506102376102323660046146b4565b61060d565b6040516001600160e01b031990911681526020016101ec565b34801561025c57600080fd5b5061027061026b3660046148a9565b610674565b6040516101ec9493929190938452602084019290925263ffffffff1660408301521515606082015260800190565b3480156102aa57600080fd5b506004546005546040805192835263ffffffff9091166020830152016101ec565b3480156102d757600080fd5b506102e06106ba565b6040516101ec9493929190614be6565b3480156102fc57600080fd5b506103e06002546003547f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0390911691565b6040805198895260ff97881660208a01529587169588019590955263ffffffff9384166060880152919092166080860152921660a08401526001600160a01b0390911660c083015260e0820152610100016101ec565b34801561044257600080fd5b5061044b6106f7565b6040516101ec93929190614c33565b34801561046657600080fd5b5061046f6109e5565b6040516101ec959493929190614b85565b34801561048c57600080fd5b506101e0610e59565b3480156104a157600080fd5b506102376104b03660046145fa565b610fc7565b3480156104c157600080fd5b506101b96104d036600461479d565b6110d9565b3480156104e157600080fd5b506104ea6113ce565b60405160ff90911681526020016101ec565b34801561050857600080fd5b5061046f6105173660046148a9565b611447565b34801561052857600080fd5b506101b96105373660046148d9565b6117b9565b34801561054857600080fd5b50610237610557366004614724565b6118da565b60025460405160009182916001600160a01b039091169047908381818185875af1925050503d80600081146105ad576040519150601f19603f3d011682016040523d82523d6000602084013e6105b2565b606091505b50909392505050565b60006001600160e01b031982166301ffc9a760e01b14806105ec57506001600160e01b0319821663f23a6e6160e01b145b8061060757506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161064d989796959493929190614db6565b60405180910390a161066160013386611941565b50630a85bd0160e11b5b95945050505050565b60008060008060405162461bcd60e51b81526004016106b1906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b60405180910390fd5b60608060608060405162461bcd60e51b81526004016106b1906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b606080606060006001805490506001600160401b0381111561072957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610752578160200160208202803683370190505b506001549091506000906001600160401b0381111561078157634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156107aa578160200160208202803683370190505b506001549091506000906001600160401b038111156107d957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610802578160200160208202803683370190505b50905060005b60015463ffffffff821610156109d85760018163ffffffff168154811061083f57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061087e57634e487b7160e01b600052603260045260246000fd5b602002602001019060038111156108a557634e487b7160e01b600052602160045260246000fd5b908160038111156108c657634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106108f157634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff168151811061093c57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061098357634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff16815181106109bb57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806109d081615007565b915050610808565b5091959094509092509050565b60608060608060606000805b60085463ffffffff82161015610a6f5760006009600060088463ffffffff1681548110610a2e57634e487b7160e01b600052603260045260246000fd5b906000526020600020015481526020019081526020016000209050808054905083610a599190614e98565b9250508080610a6790615007565b9150506109f1565b5060008163ffffffff166001600160401b03811115610a9e57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610ac7578160200160208202803683370190505b50905060008263ffffffff166001600160401b03811115610af857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b21578160200160208202803683370190505b50905060008363ffffffff166001600160401b03811115610b5257634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b7b578160200160208202803683370190505b50905060008463ffffffff166001600160401b03811115610bac57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610bd5578160200160208202803683370190505b50905060008563ffffffff166001600160401b03811115610c0657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c2f578160200160208202803683370190505b5090506000805b60085463ffffffff82161015610e465760006009600060088463ffffffff1681548110610c7357634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020905060005b815463ffffffff82161015610e31576000828263ffffffff1681548110610cc857634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201905080600001548a8663ffffffff1681518110610d0357634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154898663ffffffff1681518110610d3a57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154888663ffffffff1681518110610d7157634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154875163ffffffff918216918991908816908110610dae57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16868663ffffffff1681518110610e0057634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015284610e1a81615007565b955050508080610e2990615007565b915050610c91565b50508080610e3e90615007565b915050610c36565b50949b939a509198509650945092505050565b600063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000610ed060ff7f00000000000000000000000000000000000000000000000000000000000000001642614ec0565b610eda9190614f59565b63ffffffff1611610f235760405162461bcd60e51b8152602060048201526013602482015272546f6f206561726c7920746f2072657469726560681b60448201526064016106b1565b6002546001600160a01b0316610f7b5760405162461bcd60e51b815260206004820152601e60248201527f4c617374207265736f72742061646472657373206973206e6f7420736574000060448201526064016106b1565b610f8361055c565b610fc15760405162461bcd60e51b815260206004820152600f60248201526e149958dbdd995c9e4819985a5b1959608a1b60448201526064016106b1565b50600190565b6000805b63ffffffff81168711156110c3573063f23a6e618b8b8b8b63ffffffff871681811061100757634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061103457634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161105e96959493929190614af9565b602060405180830381600087803b15801561107857600080fd5b505af115801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b09190614920565b50806110bb81615007565b915050610fcb565b5063bc197c8160e01b9998505050505050505050565b6110e58c8c8c8c611c92565b61111060017f0000000000000000000000000000000000000000000000000000000000000000614f59565b63ffffffff168a63ffffffff16141561119e57600688600781111561114557634e487b7160e01b600052602160045260246000fd5b1461119e5760405162461bcd60e51b815260206004820152602360248201527f4c617374206f7065726174696f6e20726573657276656420666f72207265636f6044820152623b32b960e91b60648201526084016106b1565b6000806111db8e8e60008181106111c557634e487b7160e01b600052603260045260246000fd5b905060200201358d8d8d8d8d8d8d8d8d8d611fe1565b9150915060006111ee838e848f8f6121f9565b90506111fb83828d6125eb565b60008b600781111561121d57634e487b7160e01b600052602160045260246000fd5b14156112435783156112385761123385856127db565b6113bd565b6112338a8a8a611941565b60018b600781111561126557634e487b7160e01b600052602160045260246000fd5b141561128657831561127c576112338a8a8a61296b565b6112338585612fb9565b60028b60078111156112a857634e487b7160e01b600052602160045260246000fd5b14156112f2576112338a8a8a8a8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061308f92505050565b60038b600781111561131457634e487b7160e01b600052602160045260246000fd5b141561132457611233858561340b565b60048b600781111561134657634e487b7160e01b600052602160045260246000fd5b141561135c5761135687876135d3565b506113bd565b60068b600781111561137e57634e487b7160e01b600052602160045260246000fd5b141561138c576113566137f5565b60058b60078111156113ae57634e487b7160e01b600052602160045260246000fd5b14156113bd576113bd87613872565b505050505050505050505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000061141f60ff7f00000000000000000000000000000000000000000000000000000000000000001642614ed4565b6114299190614f59565b63ffffffff1660009081526006602052604090205460ff1692915050565b600081815260096020526040812080546060928392839283928392916001600160401b0381111561148857634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114b1578160200160208202803683370190505b5082549091506000906001600160401b038111156114df57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611508578160200160208202803683370190505b5083549091506000906001600160401b0381111561153657634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561155f578160200160208202803683370190505b5084549091506000906001600160401b0381111561158d57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156115b6578160200160208202803683370190505b5085549091506000906001600160401b038111156115e457634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561160d578160200160208202803683370190505b50905060005b865463ffffffff821610156117a5576000878263ffffffff168154811061164a57634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060000154878363ffffffff168151811061168557634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154868363ffffffff16815181106116bc57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154858363ffffffff16815181106116f357634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154845163ffffffff91821691869190851690811061173057634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16838363ffffffff168151811061178257634e487b7160e01b600052603260045260246000fd5b91151560209283029190910190910152508061179d81615007565b915050611613565b50939b929a50909850965090945092505050565b6117c16138f8565b6040805160a0810182528481526020810184905290810182905263ffffffff42166060820152600060808201526008546078116118335760405162461bcd60e51b815260206004820152601060248201526f546f6f206d616e7920636f6d6d69747360801b60448201526064016106b1565b6008805460018181019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018590556000948552600960209081526040808720805480850182559088529682902084516004909802019687559083015191860191909155810151600285015560608101516003909401805460809092015115156401000000000264ffffffffff1990921663ffffffff90951694909417179092555050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a898960405161191a989796959493929190614db6565b60405180910390a161192e60023387611941565b5063f23a6e6160e01b9695505050505050565b600083600381111561196357634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915015611b485760005b60008281526020819052604090205463ffffffff82161015611b46576000828152602081905260408120805463ffffffff8416908110611a0c57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115611a3957634e487b7160e01b600052602160045260246000fd5b60018281548110611a5a57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115611a8d57634e487b7160e01b600052602160045260246000fd5b14611a985750611b34565b8360018281548110611aba57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414611ad75750611b34565b846001600160a01b031660018281548110611b0257634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614611b2c5750611b34565b505050505050565b80611b3e81615007565b9150506119bc565b505b60006040518060600160405280866003811115611b7557634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff191690836003811115611c1a57634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a290611c8390879087908790614cc4565b60405180910390a15050505050565b611cbd60017f0000000000000000000000000000000000000000000000000000000000000000614f7e565b60ff168314611d0e5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420656e6f756768206e65696768626f72732070726f766964656400000060448201526064016106b1565b6000600282604051602001611d2591815260200190565b60408051601f1981840301815290829052611d3f91614aa0565b602060405180830381855afa158015611d5c573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611d7f91906148c1565b9050611dac60017f0000000000000000000000000000000000000000000000000000000000000000614f59565b63ffffffff168363ffffffff161415611dc25750805b60005b611df060017f0000000000000000000000000000000000000000000000000000000000000000614f7e565b60ff168160ff161015611f745760018085161415611eb057600286868360ff16818110611e2d57634e487b7160e01b600052603260045260246000fd5b9050602002013583604051602001611e4f929190918252602082015260400190565b60408051601f1981840301815290829052611e6991614aa0565b602060405180830381855afa158015611e86573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ea991906148c1565b9150611f54565b60028287878460ff16818110611ed657634e487b7160e01b600052603260045260246000fd5b90506020020135604051602001611ef7929190918252602082015260400190565b60408051601f1981840301815290829052611f1191614aa0565b602060405180830381855afa158015611f2e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611f5191906148c1565b91505b60018463ffffffff16901c93508080611f6c9061502b565b915050611dc5565b50807f000000000000000000000000000000000000000000000000000000000000000014611fd95760405162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81a5b98dbdc9c9958dd60721b60448201526064016106b1565b505b50505050565b60008060008d8d60e01b6001600160e01b0319168d604051602001612019939291909283526020830191909152604082015260600190565b60408051601f1981840301815291905280516020909101209050600060048c600781111561205757634e487b7160e01b600052602160045260246000fd5b141561209a576040805160608a811b6001600160601b0319166020830152918101899052015b6040516020818303038152906040528051906020012090506121e5565b60068c60078111156120bc57634e487b7160e01b600052602160045260246000fd5b14156120e15785856040516120d2929190614a90565b604051809103902090506121e5565b60058c600781111561210357634e487b7160e01b600052602160045260246000fd5b141561212757604080516001600160601b031960608b901b1660208201520161207d565b60008c600781111561214957634e487b7160e01b600052602160045260246000fd5b8c600381111561216957634e487b7160e01b600052602160045260246000fd5b60001b8c60601b6001600160601b0319168c60001b8c60601b6001600160601b0319168c60001b8c8c6040516020016121a9989796959493929190614a53565b6040516020818303038152906040529050806040516020016121cb9190614aa0565b604051602081830303815290604052805190602001209150505b909e909d509b505050505050505050505050565b60008061222960ff7f00000000000000000000000000000000000000000000000000000000000000001687614ed4565b9050600061225a60ff7f0000000000000000000000000000000000000000000000000000000000000000168861504b565b60008981526009602052604090208054919250906122ac5760405162461bcd60e51b815260206004820152600f60248201526e139bc818dbdb5b5a5d08199bdd5b99608a1b60448201526064016106b1565b60005b815463ffffffff821610156125b0576000828263ffffffff16815481106122e657634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190506000816001015489604051602001612318929190918252602082015260400190565b6040516020818303038152906040528051906020012090508082600201541461234257505061259e565b898260010154146123955760405162461bcd60e51b815260206004820152601760248201527f506172616d657465722068617368206d69736d6174636800000000000000000060448201526064016106b1565b60068860078111156123b757634e487b7160e01b600052602160045260246000fd5b146124e15760038201546000907f00000000000000000000000000000000000000000000000000000000000000009061241a9060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614ed4565b6124249190614f59565b90508663ffffffff168163ffffffff16146124815760405162461bcd60e51b815260206004820152601a60248201527f496e646578202d2074696d657374616d70206d69736d6174636800000000000060448201526064016106b1565b63ffffffff811660009081526006602052604090205460ff9081169087168111156124de5760405162461bcd60e51b815260206004820152600d60248201526c4e6f6e636520746f6f206c6f7760981b60448201526064016106b1565b50505b6003820154640100000000900460ff161561253e5760405162461bcd60e51b815260206004820152601860248201527f436f6d6d697420616c726561647920636f6d706c65746564000000000000000060448201526064016106b1565b60038201546125529063ffffffff16613bd3565b6125905760405162461bcd60e51b815260206004820152600f60248201526e52657665616c20746f6f206c61746560881b60448201526064016106b1565b82965050505050505061066b565b806125a881615007565b9150506122af565b5060405162461bcd60e51b815260206004820152600f60248201526e139bc81d985b1a590818dbdb5b5a5d608a1b60448201526064016106b1565b6000838152600960205260409020805461263d5760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e840d0c2e6d606b1b60448201526064016106b1565b805463ffffffff8416106126895760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e892dcc8caf606b1b60448201526064016106b1565b6000818463ffffffff16815481106126b157634e487b7160e01b600052603260045260246000fd5b60009182526020909120600490910201600381015490915063ffffffff1661271b5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420636f6d6d69742074696d657374616d70000000000000000060448201526064016106b1565b600683600781111561273d57634e487b7160e01b600052602160045260246000fd5b146127bf5760038101546000907f0000000000000000000000000000000000000000000000000000000000000000906127a09060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614ed4565b6127aa9190614f59565b90506127b581613bee565b6127bd613c8f565b505b600301805464ff00000000191664010000000017905550505050565b60006127e8606083614ec0565b9050816127f6826060614f16565b63ffffffff16146128195760405162461bcd60e51b81526004016106b190614e14565b60005b8163ffffffff168163ffffffff161015611fdb5760006128ac8585612842856060614f16565b63ffffffff1690612854866060614f16565b61285f906020614e98565b63ffffffff169261287293929190614e58565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f6a92505050565b60038111156128cb57634e487b7160e01b600052602160045260246000fd5b9050600061290786866128df866060614f16565b6128ea906020614e98565b63ffffffff16906128fc876060614f16565b61285f906034614e98565b60601c9050600061294887878660606129209190614f16565b61292b906040614e98565b63ffffffff169061293d886060614f16565b61285f906060614e98565b9050612955838383611941565b505050808061296390615007565b91505061281c565b600083600381111561298d57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f1981840301815291815281516020928301206000818152928390529120549091506129e85750505050565b60005b60008281526020819052604090205463ffffffff82161015612f77576000828152602081905260408120805463ffffffff8416908110612a3b57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115612a6857634e487b7160e01b600052602160045260246000fd5b60018281548110612a8957634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612abc57634e487b7160e01b600052602160045260246000fd5b14612ac75750612f65565b8360018281548110612ae957634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414612b065750612f65565b846001600160a01b031660018281548110612b3157634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614612b5b5750612f65565b60018054600091612b6b91614f42565b905060018181548110612b8e57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160018381548110612bbd57634e487b7160e01b600052603260045260246000fd5b6000918252602090912082546002909202018054909160ff1690829060ff19166001836003811115612bff57634e487b7160e01b600052602160045260246000fd5b021790555081548154610100600160a81b031916610100918290046001600160a01b03169091021781556001918201549082015580546000919084908110612c5757634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612c8a57634e487b7160e01b600052602160045260246000fd5b6001805485908110612cac57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b031660601b6001600160601b03191660018581548110612cff57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015460001b604051602001612d37939291909283526020830191909152604082015260600190565b6040516020818303038152906040528051906020012090506001805480612d6e57634e487b7160e01b600052603160045260246000fd5b60008281526020812060026000199093019283020180546001600160a81b031916815560010181905591555b60008281526020819052604090205463ffffffff82161015612e5657826000808481526020019081526020016000208263ffffffff1681548110612dee57634e487b7160e01b600052603260045260246000fd5b90600052602060002001541415612e4457836000808481526020019081526020016000208263ffffffff1681548110612e3757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b80612e4e81615007565b915050612d9a565b5060008581526020819052604090208054612e7390600190614f42565b81548110612e9157634e487b7160e01b600052603260045260246000fd5b90600052602060002001546000808781526020019081526020016000208481548110612ecd57634e487b7160e01b600052603260045260246000fd5b9060005260206000200181905550600080868152602001908152602001600020805480612f0a57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590557f166bc904e3b7f8699e175923a2635944dd9ac0dc817927aac60d854d23a82b9b888888604051612f5393929190614cc4565b60405180910390a15050505050505050565b80612f6f81615007565b9150506129eb565b507ffc773cf3883ef83133327fbc62fe0a7c3c96add34a1781cae66ba5de7efa3f5f848484604051612fab93929190614cc4565b60405180910390a150505050565b6000612fc6606083614ec0565b905081612fd4826060614f16565b63ffffffff1614612ff75760405162461bcd60e51b81526004016106b190614e14565b60005b8163ffffffff168163ffffffff161015611fdb5760006130208585612842856060614f16565b600381111561303f57634e487b7160e01b600052602160045260246000fd5b9050600061305386866128df866060614f16565b60601c9050600061306c87878660606129209190614f16565b905061307983838361296b565b505050808061308790615007565b915050612ffa565b60008660038111156130b157634e487b7160e01b600052602160045260246000fd5b14156132695760405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905286169063a9059cbb90604401602060405180830381600087803b15801561310157600080fd5b505af1925050508015613131575060408051601f3d908101601f1916820190925261312e91810190614882565b60015b6131ea5761313d61509a565b806308c379a014156131a457506131526150b2565b8061315d57506131a6565b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba87878787878660405161319696959493929190614d27565b60405180910390a150611b2c565b505b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba86868686866040516131dd959493929190614d6e565b60405180910390a1611b2c565b8015613232576131fb878787611941565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b318787878787604051613196959493929190614cec565b7f75a36803468aca74d964b22522480470a7a3f2121daa5994c2a937aec85d23298787878787604051613196959493929190614cec565b600186600381111561328b57634e487b7160e01b600052602160045260246000fd5b141561333157604051635c46a7ef60e11b81526001600160a01b0386169063b88d4fde906132c3903090879089908790600401614abc565b600060405180830381600087803b1580156132dd57600080fd5b505af19250505080156132ee575060015b6132fa5761313d61509a565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516131dd959493929190614cec565b600286600381111561335357634e487b7160e01b600052602160045260246000fd5b1415611b2c57604051637921219560e11b81526001600160a01b0386169063f242432a9061338d9030908790899088908890600401614b40565b600060405180830381600087803b1580156133a757600080fd5b505af19250505080156133b8575060015b6133c45761313d61509a565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516133fb959493929190614cec565b60405180910390a1505050505050565b6000613418606083614ec0565b905081613426826060614f16565b63ffffffff16146134495760405162461bcd60e51b81526004016106b190614e14565b60008163ffffffff166001600160401b0381111561347757634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156134c257816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816134955790505b50905060005b8263ffffffff168163ffffffff1610156135c95760006134ee8686612842856060614f16565b600381111561350d57634e487b7160e01b600052602160045260246000fd5b9050600061352187876128df866060614f16565b60601c9050600061353a88888660606129209190614f16565b60001c9050604051806060016040528084600381111561356a57634e487b7160e01b600052602160045260246000fd5b8152602001836001600160a01b0316815260200182815250858563ffffffff16815181106135a857634e487b7160e01b600052603260045260246000fd5b602002602001018190525050505080806135c190615007565b9150506134c8565b50611fdb81613ff6565b6000806135e36201518042614ec0565b60055490915063ffffffff90811690821611156136155760006004556005805463ffffffff191663ffffffff83161790555b600354836004546136269190614e80565b111561368b576003546004546040805186815260208101939093528201526001600160a01b03851660608201527f705f289c5579ebb63d8c90ed39a42a76ded07641efe4f445a9a97d1e95c75c68906080015b60405180910390a16000915050610607565b824710156136db57604080518481524760208201526001600160a01b038616918101919091527fd90084f259c3c1dbd378c6c23cff1383005852e0d9829773e15afdbaf15fb7d890606001613679565b82600460008282546136ed9190614e80565b90915550506040516000906001600160a01b0386169085908381818185875af1925050503d806000811461373d576040519150601f19603f3d011682016040523d82523d6000602084013e613742565b606091505b50509050806137a957836004600082825461375d9190614f42565b90915550506040516001600160a01b03861681527f2c7068ca7f82b1436494678e109b299bc751ccbb88d560f7c011b48dfdb2117b9060200160405180910390a1600092505050610607565b604080518581526001600160a01b03871660208201527f8f4636f285a9a17fe3479ab47bb7a5deadaf9b2295a16c3965f55fa48e542d1f910160405180910390a1506001949350505050565b6002546000906001600160a01b0316613837576040517fc27dbdcf29e2a161f0420d399444129801e578bafe157fef0370098459e082bf90600090a150600090565b61383f61055c565b610fc1576040517fa3a244603d968c02ebd2017f990d4e077cf0381929976be2a0cb07076147a56f90600090a150600090565b6002546001600160a01b0316156138d65760405162461bcd60e51b815260206004820152602260248201527f4c617374207265736f7274206164647265737320697320616c72656164792073604482015261195d60f21b60648201526084016106b1565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000425b60085463ffffffff831610156139ce57600060088363ffffffff168154811061393557634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260409091208054919250906139615750506139bc565b60008160008154811061398457634e487b7160e01b600052603260045260246000fd5b6000918252602090912060036004909202019081015490915063ffffffff603b19860181169116106139b8575050506139ce565b5050505b816139c681615007565b9250506138fc565b63ffffffff82166139dd575050565b60005b8263ffffffff168163ffffffff161015613ae057600060088263ffffffff1681548110613a1d57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260408220909250905b815463ffffffff82161015613ab357818163ffffffff1681548110613a7157634e487b7160e01b600052603260045260246000fd5b600091825260208220600490910201818155600181018290556002810191909155600301805464ffffffffff1916905580613aab81615007565b915050613a3c565b506000828152600960205260408120613acb916143b1565b50508080613ad890615007565b9150506139e0565b50600854825b8163ffffffff168163ffffffff161015613b735760088163ffffffff1681548110613b2157634e487b7160e01b600052603260045260246000fd5b9060005260206000200154600885830363ffffffff1681548110613b5557634e487b7160e01b600052603260045260246000fd5b60009182526020909120015580613b6b81615007565b915050613ae6565b5060005b8363ffffffff168163ffffffff161015611fdb576008805480613baa57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558080613bcb90615007565b915050613b77565b6000603c613be18342614f59565b63ffffffff161092915050565b63ffffffff811660009081526006602052604090205460ff1680613c62576007805460018101825560008290527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68860088204018054919092166004026101000a63ffffffff81810219909216918516021790555b63ffffffff919091166000908152600660205260409020805460ff1916600190920160ff16919091179055565b6000613c9c603c42614f59565b90506000613ccd60ff7f00000000000000000000000000000000000000000000000000000000000000001683614ed4565b905060007f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff161115613d3257613d2f7f000000000000000000000000000000000000000000000000000000000000000083614f59565b90505b6007546000906001600160401b03811115613d5d57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613d86578160200160208202803683370190505b5090506000805b60075460ff82161015613e6957600060078260ff1681548110613dc057634e487b7160e01b600052603260045260246000fd5b6000918252602090912060088204015460079091166004026101000a900463ffffffff90811691508516811015613e135763ffffffff81166000908152600660205260409020805460ff19169055613e56565b80848463ffffffff1681518110613e3a57634e487b7160e01b600052603260045260246000fd5b63ffffffff909216602092830291909101909101526001909201915b5080613e618161502b565b915050613d8d565b5060008163ffffffff166001600160401b03811115613e9857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613ec1578160200160208202803683370190505b50905060005b8263ffffffff168160ff161015613f4d57838160ff1681518110613efb57634e487b7160e01b600052603260045260246000fd5b6020026020010151828260ff1681518110613f2657634e487b7160e01b600052603260045260246000fd5b63ffffffff9092166020928302919091019091015280613f458161502b565b915050613ec7565b508051613f619060079060208401906143d5565b50505050505050565b6000815160001415613f7e57506000919050565b602082511115613fc75760405162461bcd60e51b8152602060048201526014602482015273696e70757420627974657320746f6f206c6f6e6760601b60448201526064016106b1565b60008083516020613fd89190614f42565b613fe3906008614ef7565b60209490940151841c90931b9392505050565b60005b60015463ffffffff8216101561416957600060018263ffffffff168154811061403257634e487b7160e01b600052603260045260246000fd5b600091825260208220600290910201546001805460ff90921693509063ffffffff851690811061407257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b03169050600060018463ffffffff16815481106140c257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154905060008360038111156140f857634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905290822090925061415291614484565b50505050808061416190615007565b915050613ff9565b50614176600160006144a2565b60005b81518163ffffffff1610156143ad576000828263ffffffff16815181106141b057634e487b7160e01b600052603260045260246000fd5b60200260200101516000015190506000838363ffffffff16815181106141e657634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000848463ffffffff168151811061421c57634e487b7160e01b600052603260045260246000fd5b6020026020010151604001519050600083600381111561424c57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b031916918301919091528101839052608001604051602081830303815290604052805190602001209050600060405180606001604052808660038111156142bb57634e487b7160e01b600052602160045260246000fd5b81526001600160a01b03861660208201526040018490526001805480820182556000829052825160029091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805493945084939092839160ff19169083600381111561433957634e487b7160e01b600052602160045260246000fd5b021790555060208281015182546001600160a01b0390911661010002610100600160a81b03199091161782556040928301516001928301556000948552848152918420805491820181558452922063ffffffff8716920191909155508392506143a59150829050615007565b915050614179565b5050565b50805460008255600402906000526020600020908101906143d291906144c3565b50565b828054828255906000526020600020906007016008900481019282156144745791602002820160005b8382111561444257835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026143fe565b80156144725782816101000a81549063ffffffff0219169055600401602081600301049283019260010302614442565b505b506144809291506144f5565b5090565b50805460008255906000526020600020908101906143d291906144f5565b50805460008255600202906000526020600020908101906143d2919061450a565b5b8082111561448057600080825560018201819055600282015560038101805464ffffffffff191690556004016144c4565b5b8082111561448057600081556001016144f6565b5b808211156144805780546001600160a81b03191681556000600182015560020161450b565b803561453b8161513b565b919050565b60008083601f840112614551578182fd5b5081356001600160401b03811115614567578182fd5b6020830191508360208260051b850101111561458257600080fd5b9250929050565b60008083601f84011261459a578182fd5b5081356001600160401b038111156145b0578182fd5b60208301915083602082850101111561458257600080fd5b80356008811061453b57600080fd5b80356004811061453b57600080fd5b803563ffffffff8116811461453b57600080fd5b60008060008060008060008060a0898b031215614615578384fd5b88356146208161513b565b975060208901356146308161513b565b965060408901356001600160401b038082111561464b578586fd5b6146578c838d01614540565b909850965060608b013591508082111561466f578586fd5b61467b8c838d01614540565b909650945060808b0135915080821115614693578384fd5b506146a08b828c01614589565b999c989b5096995094979396929594505050565b6000806000806000608086880312156146cb578081fd5b85356146d68161513b565b945060208601356146e68161513b565b93506040860135925060608601356001600160401b03811115614707578182fd5b61471388828901614589565b969995985093965092949392505050565b60008060008060008060a0878903121561473c578182fd5b86356147478161513b565b955060208701356147578161513b565b9450604087013593506060870135925060808701356001600160401b0381111561477f578283fd5b61478b89828a01614589565b979a9699509497509295939492505050565b6000806000806000806000806000806000806101408d8f0312156147bf578384fd5b6001600160401b038d3511156147d3578384fd5b6147e08e8e358f01614540565b909c509a506147f160208e016145e6565b995060408d0135985061480660608e016145c8565b975061481460808e016145d7565b965061482260a08e01614530565b955060c08d0135945061483760e08e01614530565b93506101008d013592506001600160401b036101208e01351115614859578081fd5b61486a8e6101208f01358f01614589565b81935080925050509295989b509295989b509295989b565b600060208284031215614893578081fd5b815180151581146148a2578182fd5b9392505050565b6000602082840312156148ba578081fd5b5035919050565b6000602082840312156148d2578081fd5b5051919050565b6000806000606084860312156148ed578081fd5b505081359360208301359350604090920135919050565b600060208284031215614915578081fd5b81356148a281615150565b600060208284031215614931578081fd5b81516148a281615150565b6000815180845260208085019450808401835b8381101561496d57815115158752958201959082019060010161494f565b509495945050505050565b6000815180845260208085019450808401835b8381101561496d5781518752958201959082019060010161498b565b6000815180845260208085019450808401835b8381101561496d57815163ffffffff16875295820195908201906001016149ba565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008151808452614a1d816020860160208601614fa1565b601f01601f19169290920160200192915050565b60048110614a4f57634e487b7160e01b600052602160045260246000fd5b9052565b8881528760208201528660408201528560608201528460808201528360a0820152818360c08301376000910160c001908152979650505050505050565b8183823760009101908152919050565b60008251614ab2818460208701614fa1565b9190910192915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614aef90830184614a05565b9695505050505050565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090614b3490830184866149dc565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614b7a90830184614a05565b979650505050505050565b60a081526000614b9860a0830188614978565b8281036020840152614baa8188614978565b90508281036040840152614bbe8187614978565b90508281036060840152614bd281866149a7565b90508281036080840152614b34818561493c565b608081526000614bf96080830187614978565b8281036020840152614c0b8187614978565b90508281036040840152614c1f81866149a7565b90508281036060840152614b7a818561493c565b606080825284519082018190526000906020906080840190828801845b82811015614c7357614c63848351614a31565b9284019290840190600101614c50565b50505083810382850152855180825286830191830190845b81811015614cb05783516001600160a01b031683529284019291840191600101614c8b565b50508481036040860152614b348187614978565b60608101614cd28286614a31565b6001600160a01b0393909316602082015260400152919050565b60a08101614cfa8288614a31565b6001600160a01b039586166020830152604082019490945291909316606082015260800191909152919050565b614d318188614a31565b6001600160a01b03868116602083015260408201869052841660608201526080810183905260c060a08201819052600090614b3490830184614a05565b614d788187614a31565b6001600160a01b039485166020820152604081019390935292166060820152608081019190915260c060a0820181905260009082015260e001919050565b614dc0818a614a31565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090614e0690830184866149dc565b9a9950505050505050505050565b60208082526024908201527f64617461206d7573742068617665206c656e677468206d756c7469706c65207460408201526337901c9b60e11b606082015260800190565b60008085851115614e67578182fd5b83861115614e73578182fd5b5050820193919092039150565b60008219821115614e9357614e9361506e565b500190565b600063ffffffff808316818516808303821115614eb757614eb761506e565b01949350505050565b600082614ecf57614ecf615084565b500490565b600063ffffffff80841680614eeb57614eeb615084565b92169190910492915050565b6000816000190483118215151615614f1157614f1161506e565b500290565b600063ffffffff80831681851681830481118215151615614f3957614f3961506e565b02949350505050565b600082821015614f5457614f5461506e565b500390565b600063ffffffff83811690831681811015614f7657614f7661506e565b039392505050565b600060ff821660ff841680821015614f9857614f9861506e565b90039392505050565b60005b83811015614fbc578181015183820152602001614fa4565b83811115611fdb5750506000910152565b601f8201601f191681016001600160401b038111828210171561500057634e487b7160e01b600052604160045260246000fd5b6040525050565b600063ffffffff808316818114156150215761502161506e565b6001019392505050565b600060ff821660ff8114156150425761504261506e565b60010192915050565b600063ffffffff8084168061506257615062615084565b92169190910692915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600060033d11156150af57600481823e5160e01c5b90565b600060443d10156150c05790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156150ef57505050505090565b82850191508151818111156151075750505050505090565b843d87010160208285010111156151215750505050505090565b61513060208286010187614fcd565b509095945050505050565b6001600160a01b03811681146143d257600080fd5b6001600160e01b0319811681146143d257600080fdfea2646970667358221220d4809935f437d7d15449611a5bc85c2febf695a4c5f623dbe1237f3199c19cee64736f6c63430008040033", + "metadata": "{\"compiler\":{\"version\":\"0.8.4+commit.c7e474f2\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"root_\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"height_\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"interval_\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"t0_\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"lifespan_\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"maxOperationsPerInterval_\",\"type\":\"uint8\"},{\"internalType\":\"address payable\",\"name\":\"lastResortAddress_\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"dailyLimit_\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"AutoRecoveryTriggered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"limit\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"current\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"ExceedDailyLimit\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"InsufficientFund\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"LastResortAddressNotSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"}],\"name\":\"PaymentReceived\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"PaymentSent\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"tokenContract\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ReceivedToken\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"RecoveryFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenNotFound\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenTracked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"TokenTransferError\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"TokenTransferSucceeded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"TokenUntracked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"dest\",\"type\":\"address\"}],\"name\":\"UnknownTransferError\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"paramsHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"verificationHash\",\"type\":\"bytes32\"}],\"name\":\"commit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"findCommit\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllCommits\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCommits\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getCurrentSpending\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getInfo\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNonce\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrackedTokens\",\"outputs\":[{\"internalType\":\"enum TokenTracker.TokenType[]\",\"name\":\"\",\"type\":\"uint8[]\"},{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getVersion\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"hash\",\"type\":\"bytes32\"}],\"name\":\"lookupCommit\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"bytes32[]\",\"name\":\"\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32[]\",\"name\":\"\",\"type\":\"uint32[]\"},{\"internalType\":\"bool[]\",\"name\":\"\",\"type\":\"bool[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"retire\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"neighbors\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint32\",\"name\":\"indexWithNonce\",\"type\":\"uint32\"},{\"internalType\":\"bytes32\",\"name\":\"eotp\",\"type\":\"bytes32\"},{\"internalType\":\"enum ONEWallet.OperationType\",\"name\":\"operationType\",\"type\":\"uint8\"},{\"internalType\":\"enum TokenTracker.TokenType\",\"name\":\"tokenType\",\"type\":\"uint8\"},{\"internalType\":\"address\",\"name\":\"contractAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address payable\",\"name\":\"dest\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"reveal\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/ONEWallet.sol\":\"ONEWallet\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xfce1eb6398eae0e2b50251140866a70a3106193f101972c878bba1dbf44929ec\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f0709c3f462b28b400f57db181254ad970967c3b49a8948ef5e05929b106ffe\",\"dweb:/ipfs/QmNe3sRmPKw1T7q7m733tk7tFKpi3jo9PCisDPMbjeg3kJ\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x7de6e64d4a8075e803a972cc77c4c91463e0c3777e4110eacfb5d4a71759b2fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b3b09ef36374c1c104ee896797dadf2e81466d2143b481d3f1ddc7d9f3873\",\"dweb:/ipfs/QmSWtqs28RHDezRWBbmEfqiPYwsGTKj44NRbuxvZ96cqMU\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x027b891937d20ccf213fdb9c31531574256de774bda99d3a70ecef6e1913ed2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://087318b21c528119f649899f5b5580566dd8d7b0303d4904bd0e8580c3545f14\",\"dweb:/ipfs/Qmbn5Mj7aUn8hJuQ8VrQjjEXRsXyJKykgnjR9p4C3nfLtL\"]},\"@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xf101e8720213560fab41104d53b3cc7ba0456ef3a98455aa7f022391783144a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3e7820bcf567e6892d937c3cb10db263a4042e446799bca602535868d822384e\",\"dweb:/ipfs/QmPG2oeDjKncqsEeyYGjAN7CwAJmMgHterXGGnpzhha4z7\"]},\"@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xd9517254724276e2e8de3769183c1f738f445f0095c26fd9b86d3c6687e887b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e604bcdcd5e5b2fb299ad09769cde6db19d5aa1929d1b5e939234a0f10d7eb8\",\"dweb:/ipfs/Qmd8hXE3GZfBHuWx3RNiYgFW2ci7KvHtib8DiwzJ2dgo9V\"]},\"@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xa28007762d9da9db878dd421960c8cb9a10471f47ab5c1b3309bfe48e9e79ff4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://796ab6e88af7bf0e78def0f059310c903af6a312b565344e0ff524a0f26e81c6\",\"dweb:/ipfs/QmcsVgLgzWdor3UnAztUkXKNGcysm1MPneWksF72AvnwBx\"]},\"project:/contracts/ONEWallet.sol\":{\"keccak256\":\"0x6250dc3ba020eda38911ae234c25cc7e7d151d56da5554f6340e2a7c87021112\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://e67ea7518cb9aaade20713f029eb41a8039ddae667c3f257b1cf72a1ebed9cd6\",\"dweb:/ipfs/QmZVAn6p9xtfQ9hrchN7AmFFNw84C3C6HK5NyoLNFfaqvd\"]},\"project:/contracts/TokenTracker.sol\":{\"keccak256\":\"0x153e8bd4263b7b071e5c4e9e44f5da2afb16c74207e8a6a071c837721de1747b\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5550ad4a2929a9216432939182544a355ccfa1fdc04566497d4215d08171d115\",\"dweb:/ipfs/QmRkCR7qmJP6oLqFs7FbAZNgQUV9PNRLweP4Kkv3L81AW7\"]}},\"version\":1}", + "bytecode": "0x6101606040523480156200001257600080fd5b506040516200559538038062005595833981016040819052620000359162000117565b60808890527fff0000000000000000000000000000000000000000000000000000000000000060f888811b821660a05287811b821660c0526001600160e01b031960e088811b8216815287901b1661010052600280546001600160a01b0386166001600160a01b0319909116179055600383905584901b1661012052620000be600188620002d2565b620000cb90600262000204565b60e01b6001600160e01b03191661014052506200030e9650505050505050565b805163ffffffff811681146200010057600080fd5b919050565b805160ff811681146200010057600080fd5b600080600080600080600080610100898b03121562000134578384fd5b885197506200014660208a0162000105565b96506200015660408a0162000105565b95506200016660608a01620000eb565b94506200017660808a01620000eb565b93506200018660a08a0162000105565b60c08a01519093506001600160a01b0381168114620001a3578283fd5b8092505060e089015190509295985092959890939650565b600181815b80851115620001fc578160001904821115620001e057620001e0620002f8565b80851615620001ee57918102915b93841c9390800290620001c0565b509250929050565b60006200021560ff8416836200021c565b9392505050565b6000826200022d57506001620002cc565b816200023c57506000620002cc565b8160018114620002555760028114620002605762000280565b6001915050620002cc565b60ff841115620002745762000274620002f8565b50506001821b620002cc565b5060208310610133831016604e8410600b8410161715620002a5575081810a620002cc565b620002b18383620001bb565b8060001904821115620002c857620002c8620002f8565b0290505b92915050565b600060ff821660ff841680821015620002ef57620002ef620002f8565b90039392505050565b634e487b7160e01b600052601160045260246000fd5b60805160a05160f81c60c05160f81c60e05160e01c6101005160e01c6101205160f81c6101405160e01c61519c620003f9600039600081816110ec0152611d880152600081816103b20152818161220301526122340152600081816103900152610e6201526000818161036e01528181610e84015281816113d3015281816123c60152818161274c01528181613cd30152613d0a01526000818161034c01528181610eaa015281816113f9015281816123ee015281816127740152613ca701526000818161032a01528181611c990152611dcc0152600081816103080152611f78015261519c6000f3fe6080604052600436106100f75760003560e01c8063a17027e11161008a578063d087d28811610059578063d087d288146104d5578063d87458a3146104fc578063e4e5b2581461051c578063f23a6e611461053c57600080fd5b8063a17027e11461045a578063a4874d7714610480578063bc197c8114610495578063c34a6dad146104b557600080fd5b80632293d3fb116100c65780632293d3fb1461029e5780632f1f7520146102cb5780635a9b0b89146102f0578063695def4c1461043657600080fd5b806301ffc9a7146101c05780630d8e6e2c146101f5578063150b7a02146102175780631cf4ea051461025057600080fd5b366101bb57604080513481523360208201527fa26ab80e902f2055a125714fc6f2eb15df2a09c7fe39c7fc71204ffba72109db910160405180910390a1670de0b6b3a7640000341461014557005b6002546001600160a01b0316331461015957005b6002546001600160a01b031661016b57005b3330141561017557005b6040513381527f0cbe1fea4becf04af2176bbef0c9c53d439d30a05a197aacc38bb4a2873222e39060200160405180910390a16101b061055c565b6101b957600080fd5b005b600080fd5b3480156101cc57600080fd5b506101e06101db366004614904565b6105bb565b60405190151581526020015b60405180910390f35b34801561020157600080fd5b50604080516008815260006020820152016101ec565b34801561022357600080fd5b506102376102323660046146b4565b61060d565b6040516001600160e01b031990911681526020016101ec565b34801561025c57600080fd5b5061027061026b3660046148a9565b610674565b6040516101ec9493929190938452602084019290925263ffffffff1660408301521515606082015260800190565b3480156102aa57600080fd5b506004546005546040805192835263ffffffff9091166020830152016101ec565b3480156102d757600080fd5b506102e06106ba565b6040516101ec9493929190614be6565b3480156102fc57600080fd5b506103e06002546003547f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0390911691565b6040805198895260ff97881660208a01529587169588019590955263ffffffff9384166060880152919092166080860152921660a08401526001600160a01b0390911660c083015260e0820152610100016101ec565b34801561044257600080fd5b5061044b6106f7565b6040516101ec93929190614c33565b34801561046657600080fd5b5061046f6109e5565b6040516101ec959493929190614b85565b34801561048c57600080fd5b506101e0610e59565b3480156104a157600080fd5b506102376104b03660046145fa565b610fc7565b3480156104c157600080fd5b506101b96104d036600461479d565b6110d9565b3480156104e157600080fd5b506104ea6113ce565b60405160ff90911681526020016101ec565b34801561050857600080fd5b5061046f6105173660046148a9565b611447565b34801561052857600080fd5b506101b96105373660046148d9565b6117b9565b34801561054857600080fd5b50610237610557366004614724565b6118da565b60025460405160009182916001600160a01b039091169047908381818185875af1925050503d80600081146105ad576040519150601f19603f3d011682016040523d82523d6000602084013e6105b2565b606091505b50909392505050565b60006001600160e01b031982166301ffc9a760e01b14806105ec57506001600160e01b0319821663f23a6e6160e01b145b8061060757506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161064d989796959493929190614db6565b60405180910390a161066160013386611941565b50630a85bd0160e11b5b95945050505050565b60008060008060405162461bcd60e51b81526004016106b1906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b60405180910390fd5b60608060608060405162461bcd60e51b81526004016106b1906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b606080606060006001805490506001600160401b0381111561072957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610752578160200160208202803683370190505b506001549091506000906001600160401b0381111561078157634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156107aa578160200160208202803683370190505b506001549091506000906001600160401b038111156107d957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610802578160200160208202803683370190505b50905060005b60015463ffffffff821610156109d85760018163ffffffff168154811061083f57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061087e57634e487b7160e01b600052603260045260246000fd5b602002602001019060038111156108a557634e487b7160e01b600052602160045260246000fd5b908160038111156108c657634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106108f157634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff168151811061093c57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061098357634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff16815181106109bb57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806109d081615007565b915050610808565b5091959094509092509050565b60608060608060606000805b60085463ffffffff82161015610a6f5760006009600060088463ffffffff1681548110610a2e57634e487b7160e01b600052603260045260246000fd5b906000526020600020015481526020019081526020016000209050808054905083610a599190614e98565b9250508080610a6790615007565b9150506109f1565b5060008163ffffffff166001600160401b03811115610a9e57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610ac7578160200160208202803683370190505b50905060008263ffffffff166001600160401b03811115610af857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b21578160200160208202803683370190505b50905060008363ffffffff166001600160401b03811115610b5257634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b7b578160200160208202803683370190505b50905060008463ffffffff166001600160401b03811115610bac57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610bd5578160200160208202803683370190505b50905060008563ffffffff166001600160401b03811115610c0657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c2f578160200160208202803683370190505b5090506000805b60085463ffffffff82161015610e465760006009600060088463ffffffff1681548110610c7357634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020905060005b815463ffffffff82161015610e31576000828263ffffffff1681548110610cc857634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201905080600001548a8663ffffffff1681518110610d0357634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154898663ffffffff1681518110610d3a57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154888663ffffffff1681518110610d7157634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154875163ffffffff918216918991908816908110610dae57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16868663ffffffff1681518110610e0057634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015284610e1a81615007565b955050508080610e2990615007565b915050610c91565b50508080610e3e90615007565b915050610c36565b50949b939a509198509650945092505050565b600063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000610ed060ff7f00000000000000000000000000000000000000000000000000000000000000001642614ec0565b610eda9190614f59565b63ffffffff1611610f235760405162461bcd60e51b8152602060048201526013602482015272546f6f206561726c7920746f2072657469726560681b60448201526064016106b1565b6002546001600160a01b0316610f7b5760405162461bcd60e51b815260206004820152601e60248201527f4c617374207265736f72742061646472657373206973206e6f7420736574000060448201526064016106b1565b610f8361055c565b610fc15760405162461bcd60e51b815260206004820152600f60248201526e149958dbdd995c9e4819985a5b1959608a1b60448201526064016106b1565b50600190565b6000805b63ffffffff81168711156110c3573063f23a6e618b8b8b8b63ffffffff871681811061100757634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061103457634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161105e96959493929190614af9565b602060405180830381600087803b15801561107857600080fd5b505af115801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b09190614920565b50806110bb81615007565b915050610fcb565b5063bc197c8160e01b9998505050505050505050565b6110e58c8c8c8c611c92565b61111060017f0000000000000000000000000000000000000000000000000000000000000000614f59565b63ffffffff168a63ffffffff16141561119e57600688600781111561114557634e487b7160e01b600052602160045260246000fd5b1461119e5760405162461bcd60e51b815260206004820152602360248201527f4c617374206f7065726174696f6e20726573657276656420666f72207265636f6044820152623b32b960e91b60648201526084016106b1565b6000806111db8e8e60008181106111c557634e487b7160e01b600052603260045260246000fd5b905060200201358d8d8d8d8d8d8d8d8d8d611fe1565b9150915060006111ee838e848f8f6121f9565b90506111fb83828d6125eb565b60008b600781111561121d57634e487b7160e01b600052602160045260246000fd5b14156112435783156112385761123385856127db565b6113bd565b6112338a8a8a611941565b60018b600781111561126557634e487b7160e01b600052602160045260246000fd5b141561128657831561127c576112338a8a8a61296b565b6112338585612fb9565b60028b60078111156112a857634e487b7160e01b600052602160045260246000fd5b14156112f2576112338a8a8a8a8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061308f92505050565b60038b600781111561131457634e487b7160e01b600052602160045260246000fd5b141561132457611233858561340b565b60048b600781111561134657634e487b7160e01b600052602160045260246000fd5b141561135c5761135687876135d3565b506113bd565b60068b600781111561137e57634e487b7160e01b600052602160045260246000fd5b141561138c576113566137f5565b60058b60078111156113ae57634e487b7160e01b600052602160045260246000fd5b14156113bd576113bd87613872565b505050505050505050505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000061141f60ff7f00000000000000000000000000000000000000000000000000000000000000001642614ed4565b6114299190614f59565b63ffffffff1660009081526006602052604090205460ff1692915050565b600081815260096020526040812080546060928392839283928392916001600160401b0381111561148857634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114b1578160200160208202803683370190505b5082549091506000906001600160401b038111156114df57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611508578160200160208202803683370190505b5083549091506000906001600160401b0381111561153657634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561155f578160200160208202803683370190505b5084549091506000906001600160401b0381111561158d57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156115b6578160200160208202803683370190505b5085549091506000906001600160401b038111156115e457634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561160d578160200160208202803683370190505b50905060005b865463ffffffff821610156117a5576000878263ffffffff168154811061164a57634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060000154878363ffffffff168151811061168557634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154868363ffffffff16815181106116bc57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154858363ffffffff16815181106116f357634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154845163ffffffff91821691869190851690811061173057634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16838363ffffffff168151811061178257634e487b7160e01b600052603260045260246000fd5b91151560209283029190910190910152508061179d81615007565b915050611613565b50939b929a50909850965090945092505050565b6117c16138f8565b6040805160a0810182528481526020810184905290810182905263ffffffff42166060820152600060808201526008546078116118335760405162461bcd60e51b815260206004820152601060248201526f546f6f206d616e7920636f6d6d69747360801b60448201526064016106b1565b6008805460018181019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018590556000948552600960209081526040808720805480850182559088529682902084516004909802019687559083015191860191909155810151600285015560608101516003909401805460809092015115156401000000000264ffffffffff1990921663ffffffff90951694909417179092555050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a898960405161191a989796959493929190614db6565b60405180910390a161192e60023387611941565b5063f23a6e6160e01b9695505050505050565b600083600381111561196357634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915015611b485760005b60008281526020819052604090205463ffffffff82161015611b46576000828152602081905260408120805463ffffffff8416908110611a0c57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115611a3957634e487b7160e01b600052602160045260246000fd5b60018281548110611a5a57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115611a8d57634e487b7160e01b600052602160045260246000fd5b14611a985750611b34565b8360018281548110611aba57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414611ad75750611b34565b846001600160a01b031660018281548110611b0257634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614611b2c5750611b34565b505050505050565b80611b3e81615007565b9150506119bc565b505b60006040518060600160405280866003811115611b7557634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff191690836003811115611c1a57634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a290611c8390879087908790614cc4565b60405180910390a15050505050565b611cbd60017f0000000000000000000000000000000000000000000000000000000000000000614f7e565b60ff168314611d0e5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420656e6f756768206e65696768626f72732070726f766964656400000060448201526064016106b1565b6000600282604051602001611d2591815260200190565b60408051601f1981840301815290829052611d3f91614aa0565b602060405180830381855afa158015611d5c573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611d7f91906148c1565b9050611dac60017f0000000000000000000000000000000000000000000000000000000000000000614f59565b63ffffffff168363ffffffff161415611dc25750805b60005b611df060017f0000000000000000000000000000000000000000000000000000000000000000614f7e565b60ff168160ff161015611f745760018085161415611eb057600286868360ff16818110611e2d57634e487b7160e01b600052603260045260246000fd5b9050602002013583604051602001611e4f929190918252602082015260400190565b60408051601f1981840301815290829052611e6991614aa0565b602060405180830381855afa158015611e86573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ea991906148c1565b9150611f54565b60028287878460ff16818110611ed657634e487b7160e01b600052603260045260246000fd5b90506020020135604051602001611ef7929190918252602082015260400190565b60408051601f1981840301815290829052611f1191614aa0565b602060405180830381855afa158015611f2e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611f5191906148c1565b91505b60018463ffffffff16901c93508080611f6c9061502b565b915050611dc5565b50807f000000000000000000000000000000000000000000000000000000000000000014611fd95760405162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81a5b98dbdc9c9958dd60721b60448201526064016106b1565b505b50505050565b60008060008d8d60e01b6001600160e01b0319168d604051602001612019939291909283526020830191909152604082015260600190565b60408051601f1981840301815291905280516020909101209050600060048c600781111561205757634e487b7160e01b600052602160045260246000fd5b141561209a576040805160608a811b6001600160601b0319166020830152918101899052015b6040516020818303038152906040528051906020012090506121e5565b60068c60078111156120bc57634e487b7160e01b600052602160045260246000fd5b14156120e15785856040516120d2929190614a90565b604051809103902090506121e5565b60058c600781111561210357634e487b7160e01b600052602160045260246000fd5b141561212757604080516001600160601b031960608b901b1660208201520161207d565b60008c600781111561214957634e487b7160e01b600052602160045260246000fd5b8c600381111561216957634e487b7160e01b600052602160045260246000fd5b60001b8c60601b6001600160601b0319168c60001b8c60601b6001600160601b0319168c60001b8c8c6040516020016121a9989796959493929190614a53565b6040516020818303038152906040529050806040516020016121cb9190614aa0565b604051602081830303815290604052805190602001209150505b909e909d509b505050505050505050505050565b60008061222960ff7f00000000000000000000000000000000000000000000000000000000000000001687614ed4565b9050600061225a60ff7f0000000000000000000000000000000000000000000000000000000000000000168861504b565b60008981526009602052604090208054919250906122ac5760405162461bcd60e51b815260206004820152600f60248201526e139bc818dbdb5b5a5d08199bdd5b99608a1b60448201526064016106b1565b60005b815463ffffffff821610156125b0576000828263ffffffff16815481106122e657634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190506000816001015489604051602001612318929190918252602082015260400190565b6040516020818303038152906040528051906020012090508082600201541461234257505061259e565b898260010154146123955760405162461bcd60e51b815260206004820152601760248201527f506172616d657465722068617368206d69736d6174636800000000000000000060448201526064016106b1565b60068860078111156123b757634e487b7160e01b600052602160045260246000fd5b146124e15760038201546000907f00000000000000000000000000000000000000000000000000000000000000009061241a9060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614ed4565b6124249190614f59565b90508663ffffffff168163ffffffff16146124815760405162461bcd60e51b815260206004820152601a60248201527f496e646578202d2074696d657374616d70206d69736d6174636800000000000060448201526064016106b1565b63ffffffff811660009081526006602052604090205460ff9081169087168111156124de5760405162461bcd60e51b815260206004820152600d60248201526c4e6f6e636520746f6f206c6f7760981b60448201526064016106b1565b50505b6003820154640100000000900460ff161561253e5760405162461bcd60e51b815260206004820152601860248201527f436f6d6d697420616c726561647920636f6d706c65746564000000000000000060448201526064016106b1565b60038201546125529063ffffffff16613bd3565b6125905760405162461bcd60e51b815260206004820152600f60248201526e52657665616c20746f6f206c61746560881b60448201526064016106b1565b82965050505050505061066b565b806125a881615007565b9150506122af565b5060405162461bcd60e51b815260206004820152600f60248201526e139bc81d985b1a590818dbdb5b5a5d608a1b60448201526064016106b1565b6000838152600960205260409020805461263d5760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e840d0c2e6d606b1b60448201526064016106b1565b805463ffffffff8416106126895760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e892dcc8caf606b1b60448201526064016106b1565b6000818463ffffffff16815481106126b157634e487b7160e01b600052603260045260246000fd5b60009182526020909120600490910201600381015490915063ffffffff1661271b5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420636f6d6d69742074696d657374616d70000000000000000060448201526064016106b1565b600683600781111561273d57634e487b7160e01b600052602160045260246000fd5b146127bf5760038101546000907f0000000000000000000000000000000000000000000000000000000000000000906127a09060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614ed4565b6127aa9190614f59565b90506127b581613bee565b6127bd613c8f565b505b600301805464ff00000000191664010000000017905550505050565b60006127e8606083614ec0565b9050816127f6826060614f16565b63ffffffff16146128195760405162461bcd60e51b81526004016106b190614e14565b60005b8163ffffffff168163ffffffff161015611fdb5760006128ac8585612842856060614f16565b63ffffffff1690612854866060614f16565b61285f906020614e98565b63ffffffff169261287293929190614e58565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f6a92505050565b60038111156128cb57634e487b7160e01b600052602160045260246000fd5b9050600061290786866128df866060614f16565b6128ea906020614e98565b63ffffffff16906128fc876060614f16565b61285f906034614e98565b60601c9050600061294887878660606129209190614f16565b61292b906040614e98565b63ffffffff169061293d886060614f16565b61285f906060614e98565b9050612955838383611941565b505050808061296390615007565b91505061281c565b600083600381111561298d57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f1981840301815291815281516020928301206000818152928390529120549091506129e85750505050565b60005b60008281526020819052604090205463ffffffff82161015612f77576000828152602081905260408120805463ffffffff8416908110612a3b57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115612a6857634e487b7160e01b600052602160045260246000fd5b60018281548110612a8957634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612abc57634e487b7160e01b600052602160045260246000fd5b14612ac75750612f65565b8360018281548110612ae957634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414612b065750612f65565b846001600160a01b031660018281548110612b3157634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614612b5b5750612f65565b60018054600091612b6b91614f42565b905060018181548110612b8e57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160018381548110612bbd57634e487b7160e01b600052603260045260246000fd5b6000918252602090912082546002909202018054909160ff1690829060ff19166001836003811115612bff57634e487b7160e01b600052602160045260246000fd5b021790555081548154610100600160a81b031916610100918290046001600160a01b03169091021781556001918201549082015580546000919084908110612c5757634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612c8a57634e487b7160e01b600052602160045260246000fd5b6001805485908110612cac57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b031660601b6001600160601b03191660018581548110612cff57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015460001b604051602001612d37939291909283526020830191909152604082015260600190565b6040516020818303038152906040528051906020012090506001805480612d6e57634e487b7160e01b600052603160045260246000fd5b60008281526020812060026000199093019283020180546001600160a81b031916815560010181905591555b60008281526020819052604090205463ffffffff82161015612e5657826000808481526020019081526020016000208263ffffffff1681548110612dee57634e487b7160e01b600052603260045260246000fd5b90600052602060002001541415612e4457836000808481526020019081526020016000208263ffffffff1681548110612e3757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b80612e4e81615007565b915050612d9a565b5060008581526020819052604090208054612e7390600190614f42565b81548110612e9157634e487b7160e01b600052603260045260246000fd5b90600052602060002001546000808781526020019081526020016000208481548110612ecd57634e487b7160e01b600052603260045260246000fd5b9060005260206000200181905550600080868152602001908152602001600020805480612f0a57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590557f166bc904e3b7f8699e175923a2635944dd9ac0dc817927aac60d854d23a82b9b888888604051612f5393929190614cc4565b60405180910390a15050505050505050565b80612f6f81615007565b9150506129eb565b507ffc773cf3883ef83133327fbc62fe0a7c3c96add34a1781cae66ba5de7efa3f5f848484604051612fab93929190614cc4565b60405180910390a150505050565b6000612fc6606083614ec0565b905081612fd4826060614f16565b63ffffffff1614612ff75760405162461bcd60e51b81526004016106b190614e14565b60005b8163ffffffff168163ffffffff161015611fdb5760006130208585612842856060614f16565b600381111561303f57634e487b7160e01b600052602160045260246000fd5b9050600061305386866128df866060614f16565b60601c9050600061306c87878660606129209190614f16565b905061307983838361296b565b505050808061308790615007565b915050612ffa565b60008660038111156130b157634e487b7160e01b600052602160045260246000fd5b14156132695760405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905286169063a9059cbb90604401602060405180830381600087803b15801561310157600080fd5b505af1925050508015613131575060408051601f3d908101601f1916820190925261312e91810190614882565b60015b6131ea5761313d61509a565b806308c379a014156131a457506131526150b2565b8061315d57506131a6565b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba87878787878660405161319696959493929190614d27565b60405180910390a150611b2c565b505b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba86868686866040516131dd959493929190614d6e565b60405180910390a1611b2c565b8015613232576131fb878787611941565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b318787878787604051613196959493929190614cec565b7f75a36803468aca74d964b22522480470a7a3f2121daa5994c2a937aec85d23298787878787604051613196959493929190614cec565b600186600381111561328b57634e487b7160e01b600052602160045260246000fd5b141561333157604051635c46a7ef60e11b81526001600160a01b0386169063b88d4fde906132c3903090879089908790600401614abc565b600060405180830381600087803b1580156132dd57600080fd5b505af19250505080156132ee575060015b6132fa5761313d61509a565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516131dd959493929190614cec565b600286600381111561335357634e487b7160e01b600052602160045260246000fd5b1415611b2c57604051637921219560e11b81526001600160a01b0386169063f242432a9061338d9030908790899088908890600401614b40565b600060405180830381600087803b1580156133a757600080fd5b505af19250505080156133b8575060015b6133c45761313d61509a565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516133fb959493929190614cec565b60405180910390a1505050505050565b6000613418606083614ec0565b905081613426826060614f16565b63ffffffff16146134495760405162461bcd60e51b81526004016106b190614e14565b60008163ffffffff166001600160401b0381111561347757634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156134c257816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816134955790505b50905060005b8263ffffffff168163ffffffff1610156135c95760006134ee8686612842856060614f16565b600381111561350d57634e487b7160e01b600052602160045260246000fd5b9050600061352187876128df866060614f16565b60601c9050600061353a88888660606129209190614f16565b60001c9050604051806060016040528084600381111561356a57634e487b7160e01b600052602160045260246000fd5b8152602001836001600160a01b0316815260200182815250858563ffffffff16815181106135a857634e487b7160e01b600052603260045260246000fd5b602002602001018190525050505080806135c190615007565b9150506134c8565b50611fdb81613ff6565b6000806135e36201518042614ec0565b60055490915063ffffffff90811690821611156136155760006004556005805463ffffffff191663ffffffff83161790555b600354836004546136269190614e80565b111561368b576003546004546040805186815260208101939093528201526001600160a01b03851660608201527f705f289c5579ebb63d8c90ed39a42a76ded07641efe4f445a9a97d1e95c75c68906080015b60405180910390a16000915050610607565b824710156136db57604080518481524760208201526001600160a01b038616918101919091527fd90084f259c3c1dbd378c6c23cff1383005852e0d9829773e15afdbaf15fb7d890606001613679565b82600460008282546136ed9190614e80565b90915550506040516000906001600160a01b0386169085908381818185875af1925050503d806000811461373d576040519150601f19603f3d011682016040523d82523d6000602084013e613742565b606091505b50509050806137a957836004600082825461375d9190614f42565b90915550506040516001600160a01b03861681527f2c7068ca7f82b1436494678e109b299bc751ccbb88d560f7c011b48dfdb2117b9060200160405180910390a1600092505050610607565b604080518581526001600160a01b03871660208201527f8f4636f285a9a17fe3479ab47bb7a5deadaf9b2295a16c3965f55fa48e542d1f910160405180910390a1506001949350505050565b6002546000906001600160a01b0316613837576040517fc27dbdcf29e2a161f0420d399444129801e578bafe157fef0370098459e082bf90600090a150600090565b61383f61055c565b610fc1576040517fa3a244603d968c02ebd2017f990d4e077cf0381929976be2a0cb07076147a56f90600090a150600090565b6002546001600160a01b0316156138d65760405162461bcd60e51b815260206004820152602260248201527f4c617374207265736f7274206164647265737320697320616c72656164792073604482015261195d60f21b60648201526084016106b1565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000425b60085463ffffffff831610156139ce57600060088363ffffffff168154811061393557634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260409091208054919250906139615750506139bc565b60008160008154811061398457634e487b7160e01b600052603260045260246000fd5b6000918252602090912060036004909202019081015490915063ffffffff603b19860181169116106139b8575050506139ce565b5050505b816139c681615007565b9250506138fc565b63ffffffff82166139dd575050565b60005b8263ffffffff168163ffffffff161015613ae057600060088263ffffffff1681548110613a1d57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260408220909250905b815463ffffffff82161015613ab357818163ffffffff1681548110613a7157634e487b7160e01b600052603260045260246000fd5b600091825260208220600490910201818155600181018290556002810191909155600301805464ffffffffff1916905580613aab81615007565b915050613a3c565b506000828152600960205260408120613acb916143b1565b50508080613ad890615007565b9150506139e0565b50600854825b8163ffffffff168163ffffffff161015613b735760088163ffffffff1681548110613b2157634e487b7160e01b600052603260045260246000fd5b9060005260206000200154600885830363ffffffff1681548110613b5557634e487b7160e01b600052603260045260246000fd5b60009182526020909120015580613b6b81615007565b915050613ae6565b5060005b8363ffffffff168163ffffffff161015611fdb576008805480613baa57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558080613bcb90615007565b915050613b77565b6000603c613be18342614f59565b63ffffffff161092915050565b63ffffffff811660009081526006602052604090205460ff1680613c62576007805460018101825560008290527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68860088204018054919092166004026101000a63ffffffff81810219909216918516021790555b63ffffffff919091166000908152600660205260409020805460ff1916600190920160ff16919091179055565b6000613c9c603c42614f59565b90506000613ccd60ff7f00000000000000000000000000000000000000000000000000000000000000001683614ed4565b905060007f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff161115613d3257613d2f7f000000000000000000000000000000000000000000000000000000000000000083614f59565b90505b6007546000906001600160401b03811115613d5d57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613d86578160200160208202803683370190505b5090506000805b60075460ff82161015613e6957600060078260ff1681548110613dc057634e487b7160e01b600052603260045260246000fd5b6000918252602090912060088204015460079091166004026101000a900463ffffffff90811691508516811015613e135763ffffffff81166000908152600660205260409020805460ff19169055613e56565b80848463ffffffff1681518110613e3a57634e487b7160e01b600052603260045260246000fd5b63ffffffff909216602092830291909101909101526001909201915b5080613e618161502b565b915050613d8d565b5060008163ffffffff166001600160401b03811115613e9857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613ec1578160200160208202803683370190505b50905060005b8263ffffffff168160ff161015613f4d57838160ff1681518110613efb57634e487b7160e01b600052603260045260246000fd5b6020026020010151828260ff1681518110613f2657634e487b7160e01b600052603260045260246000fd5b63ffffffff9092166020928302919091019091015280613f458161502b565b915050613ec7565b508051613f619060079060208401906143d5565b50505050505050565b6000815160001415613f7e57506000919050565b602082511115613fc75760405162461bcd60e51b8152602060048201526014602482015273696e70757420627974657320746f6f206c6f6e6760601b60448201526064016106b1565b60008083516020613fd89190614f42565b613fe3906008614ef7565b60209490940151841c90931b9392505050565b60005b60015463ffffffff8216101561416957600060018263ffffffff168154811061403257634e487b7160e01b600052603260045260246000fd5b600091825260208220600290910201546001805460ff90921693509063ffffffff851690811061407257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b03169050600060018463ffffffff16815481106140c257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154905060008360038111156140f857634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905290822090925061415291614484565b50505050808061416190615007565b915050613ff9565b50614176600160006144a2565b60005b81518163ffffffff1610156143ad576000828263ffffffff16815181106141b057634e487b7160e01b600052603260045260246000fd5b60200260200101516000015190506000838363ffffffff16815181106141e657634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000848463ffffffff168151811061421c57634e487b7160e01b600052603260045260246000fd5b6020026020010151604001519050600083600381111561424c57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b031916918301919091528101839052608001604051602081830303815290604052805190602001209050600060405180606001604052808660038111156142bb57634e487b7160e01b600052602160045260246000fd5b81526001600160a01b03861660208201526040018490526001805480820182556000829052825160029091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805493945084939092839160ff19169083600381111561433957634e487b7160e01b600052602160045260246000fd5b021790555060208281015182546001600160a01b0390911661010002610100600160a81b03199091161782556040928301516001928301556000948552848152918420805491820181558452922063ffffffff8716920191909155508392506143a59150829050615007565b915050614179565b5050565b50805460008255600402906000526020600020908101906143d291906144c3565b50565b828054828255906000526020600020906007016008900481019282156144745791602002820160005b8382111561444257835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026143fe565b80156144725782816101000a81549063ffffffff0219169055600401602081600301049283019260010302614442565b505b506144809291506144f5565b5090565b50805460008255906000526020600020908101906143d291906144f5565b50805460008255600202906000526020600020908101906143d2919061450a565b5b8082111561448057600080825560018201819055600282015560038101805464ffffffffff191690556004016144c4565b5b8082111561448057600081556001016144f6565b5b808211156144805780546001600160a81b03191681556000600182015560020161450b565b803561453b8161513b565b919050565b60008083601f840112614551578182fd5b5081356001600160401b03811115614567578182fd5b6020830191508360208260051b850101111561458257600080fd5b9250929050565b60008083601f84011261459a578182fd5b5081356001600160401b038111156145b0578182fd5b60208301915083602082850101111561458257600080fd5b80356008811061453b57600080fd5b80356004811061453b57600080fd5b803563ffffffff8116811461453b57600080fd5b60008060008060008060008060a0898b031215614615578384fd5b88356146208161513b565b975060208901356146308161513b565b965060408901356001600160401b038082111561464b578586fd5b6146578c838d01614540565b909850965060608b013591508082111561466f578586fd5b61467b8c838d01614540565b909650945060808b0135915080821115614693578384fd5b506146a08b828c01614589565b999c989b5096995094979396929594505050565b6000806000806000608086880312156146cb578081fd5b85356146d68161513b565b945060208601356146e68161513b565b93506040860135925060608601356001600160401b03811115614707578182fd5b61471388828901614589565b969995985093965092949392505050565b60008060008060008060a0878903121561473c578182fd5b86356147478161513b565b955060208701356147578161513b565b9450604087013593506060870135925060808701356001600160401b0381111561477f578283fd5b61478b89828a01614589565b979a9699509497509295939492505050565b6000806000806000806000806000806000806101408d8f0312156147bf578384fd5b6001600160401b038d3511156147d3578384fd5b6147e08e8e358f01614540565b909c509a506147f160208e016145e6565b995060408d0135985061480660608e016145c8565b975061481460808e016145d7565b965061482260a08e01614530565b955060c08d0135945061483760e08e01614530565b93506101008d013592506001600160401b036101208e01351115614859578081fd5b61486a8e6101208f01358f01614589565b81935080925050509295989b509295989b509295989b565b600060208284031215614893578081fd5b815180151581146148a2578182fd5b9392505050565b6000602082840312156148ba578081fd5b5035919050565b6000602082840312156148d2578081fd5b5051919050565b6000806000606084860312156148ed578081fd5b505081359360208301359350604090920135919050565b600060208284031215614915578081fd5b81356148a281615150565b600060208284031215614931578081fd5b81516148a281615150565b6000815180845260208085019450808401835b8381101561496d57815115158752958201959082019060010161494f565b509495945050505050565b6000815180845260208085019450808401835b8381101561496d5781518752958201959082019060010161498b565b6000815180845260208085019450808401835b8381101561496d57815163ffffffff16875295820195908201906001016149ba565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008151808452614a1d816020860160208601614fa1565b601f01601f19169290920160200192915050565b60048110614a4f57634e487b7160e01b600052602160045260246000fd5b9052565b8881528760208201528660408201528560608201528460808201528360a0820152818360c08301376000910160c001908152979650505050505050565b8183823760009101908152919050565b60008251614ab2818460208701614fa1565b9190910192915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614aef90830184614a05565b9695505050505050565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090614b3490830184866149dc565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614b7a90830184614a05565b979650505050505050565b60a081526000614b9860a0830188614978565b8281036020840152614baa8188614978565b90508281036040840152614bbe8187614978565b90508281036060840152614bd281866149a7565b90508281036080840152614b34818561493c565b608081526000614bf96080830187614978565b8281036020840152614c0b8187614978565b90508281036040840152614c1f81866149a7565b90508281036060840152614b7a818561493c565b606080825284519082018190526000906020906080840190828801845b82811015614c7357614c63848351614a31565b9284019290840190600101614c50565b50505083810382850152855180825286830191830190845b81811015614cb05783516001600160a01b031683529284019291840191600101614c8b565b50508481036040860152614b348187614978565b60608101614cd28286614a31565b6001600160a01b0393909316602082015260400152919050565b60a08101614cfa8288614a31565b6001600160a01b039586166020830152604082019490945291909316606082015260800191909152919050565b614d318188614a31565b6001600160a01b03868116602083015260408201869052841660608201526080810183905260c060a08201819052600090614b3490830184614a05565b614d788187614a31565b6001600160a01b039485166020820152604081019390935292166060820152608081019190915260c060a0820181905260009082015260e001919050565b614dc0818a614a31565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090614e0690830184866149dc565b9a9950505050505050505050565b60208082526024908201527f64617461206d7573742068617665206c656e677468206d756c7469706c65207460408201526337901c9b60e11b606082015260800190565b60008085851115614e67578182fd5b83861115614e73578182fd5b5050820193919092039150565b60008219821115614e9357614e9361506e565b500190565b600063ffffffff808316818516808303821115614eb757614eb761506e565b01949350505050565b600082614ecf57614ecf615084565b500490565b600063ffffffff80841680614eeb57614eeb615084565b92169190910492915050565b6000816000190483118215151615614f1157614f1161506e565b500290565b600063ffffffff80831681851681830481118215151615614f3957614f3961506e565b02949350505050565b600082821015614f5457614f5461506e565b500390565b600063ffffffff83811690831681811015614f7657614f7661506e565b039392505050565b600060ff821660ff841680821015614f9857614f9861506e565b90039392505050565b60005b83811015614fbc578181015183820152602001614fa4565b83811115611fdb5750506000910152565b601f8201601f191681016001600160401b038111828210171561500057634e487b7160e01b600052604160045260246000fd5b6040525050565b600063ffffffff808316818114156150215761502161506e565b6001019392505050565b600060ff821660ff8114156150425761504261506e565b60010192915050565b600063ffffffff8084168061506257615062615084565b92169190910692915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600060033d11156150af57600481823e5160e01c5b90565b600060443d10156150c05790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156150ef57505050505090565b82850191508151818111156151075750505050505090565b843d87010160208285010111156151215750505050505090565b61513060208286010187614fcd565b509095945050505050565b6001600160a01b03811681146143d257600080fd5b6001600160e01b0319811681146143d257600080fdfea264697066735822122048a742a1d4797711bed772e05a1dd00a9b20ebf7516fa8e654fd3522f73fea3a64736f6c63430008040033", + "deployedBytecode": "0x6080604052600436106100f75760003560e01c8063a17027e11161008a578063d087d28811610059578063d087d288146104d5578063d87458a3146104fc578063e4e5b2581461051c578063f23a6e611461053c57600080fd5b8063a17027e11461045a578063a4874d7714610480578063bc197c8114610495578063c34a6dad146104b557600080fd5b80632293d3fb116100c65780632293d3fb1461029e5780632f1f7520146102cb5780635a9b0b89146102f0578063695def4c1461043657600080fd5b806301ffc9a7146101c05780630d8e6e2c146101f5578063150b7a02146102175780631cf4ea051461025057600080fd5b366101bb57604080513481523360208201527fa26ab80e902f2055a125714fc6f2eb15df2a09c7fe39c7fc71204ffba72109db910160405180910390a1670de0b6b3a7640000341461014557005b6002546001600160a01b0316331461015957005b6002546001600160a01b031661016b57005b3330141561017557005b6040513381527f0cbe1fea4becf04af2176bbef0c9c53d439d30a05a197aacc38bb4a2873222e39060200160405180910390a16101b061055c565b6101b957600080fd5b005b600080fd5b3480156101cc57600080fd5b506101e06101db366004614904565b6105bb565b60405190151581526020015b60405180910390f35b34801561020157600080fd5b50604080516008815260006020820152016101ec565b34801561022357600080fd5b506102376102323660046146b4565b61060d565b6040516001600160e01b031990911681526020016101ec565b34801561025c57600080fd5b5061027061026b3660046148a9565b610674565b6040516101ec9493929190938452602084019290925263ffffffff1660408301521515606082015260800190565b3480156102aa57600080fd5b506004546005546040805192835263ffffffff9091166020830152016101ec565b3480156102d757600080fd5b506102e06106ba565b6040516101ec9493929190614be6565b3480156102fc57600080fd5b506103e06002546003547f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000927f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0390911691565b6040805198895260ff97881660208a01529587169588019590955263ffffffff9384166060880152919092166080860152921660a08401526001600160a01b0390911660c083015260e0820152610100016101ec565b34801561044257600080fd5b5061044b6106f7565b6040516101ec93929190614c33565b34801561046657600080fd5b5061046f6109e5565b6040516101ec959493929190614b85565b34801561048c57600080fd5b506101e0610e59565b3480156104a157600080fd5b506102376104b03660046145fa565b610fc7565b3480156104c157600080fd5b506101b96104d036600461479d565b6110d9565b3480156104e157600080fd5b506104ea6113ce565b60405160ff90911681526020016101ec565b34801561050857600080fd5b5061046f6105173660046148a9565b611447565b34801561052857600080fd5b506101b96105373660046148d9565b6117b9565b34801561054857600080fd5b50610237610557366004614724565b6118da565b60025460405160009182916001600160a01b039091169047908381818185875af1925050503d80600081146105ad576040519150601f19603f3d011682016040523d82523d6000602084013e6105b2565b606091505b50909392505050565b60006001600160e01b031982166301ffc9a760e01b14806105ec57506001600160e01b0319821663f23a6e6160e01b145b8061060757506001600160e01b03198216630a85bd0160e11b145b92915050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60018087338a89898960405161064d989796959493929190614db6565b60405180910390a161066160013386611941565b50630a85bd0160e11b5b95945050505050565b60008060008060405162461bcd60e51b81526004016106b1906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b60405180910390fd5b60608060608060405162461bcd60e51b81526004016106b1906020808252600a908201526911195c1c9958d85d195960b21b604082015260600190565b606080606060006001805490506001600160401b0381111561072957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610752578160200160208202803683370190505b506001549091506000906001600160401b0381111561078157634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156107aa578160200160208202803683370190505b506001549091506000906001600160401b038111156107d957634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610802578160200160208202803683370190505b50905060005b60015463ffffffff821610156109d85760018163ffffffff168154811061083f57634e487b7160e01b600052603260045260246000fd5b6000918252602090912060029091020154845160ff90911690859063ffffffff841690811061087e57634e487b7160e01b600052603260045260246000fd5b602002602001019060038111156108a557634e487b7160e01b600052602160045260246000fd5b908160038111156108c657634e487b7160e01b600052602160045260246000fd5b8152505060018163ffffffff16815481106108f157634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b0316838263ffffffff168151811061093c57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060018163ffffffff168154811061098357634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154828263ffffffff16815181106109bb57634e487b7160e01b600052603260045260246000fd5b6020908102919091010152806109d081615007565b915050610808565b5091959094509092509050565b60608060608060606000805b60085463ffffffff82161015610a6f5760006009600060088463ffffffff1681548110610a2e57634e487b7160e01b600052603260045260246000fd5b906000526020600020015481526020019081526020016000209050808054905083610a599190614e98565b9250508080610a6790615007565b9150506109f1565b5060008163ffffffff166001600160401b03811115610a9e57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610ac7578160200160208202803683370190505b50905060008263ffffffff166001600160401b03811115610af857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b21578160200160208202803683370190505b50905060008363ffffffff166001600160401b03811115610b5257634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610b7b578160200160208202803683370190505b50905060008463ffffffff166001600160401b03811115610bac57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610bd5578160200160208202803683370190505b50905060008563ffffffff166001600160401b03811115610c0657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610c2f578160200160208202803683370190505b5090506000805b60085463ffffffff82161015610e465760006009600060088463ffffffff1681548110610c7357634e487b7160e01b600052603260045260246000fd5b90600052602060002001548152602001908152602001600020905060005b815463ffffffff82161015610e31576000828263ffffffff1681548110610cc857634e487b7160e01b600052603260045260246000fd5b9060005260206000209060040201905080600001548a8663ffffffff1681518110610d0357634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154898663ffffffff1681518110610d3a57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154888663ffffffff1681518110610d7157634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154875163ffffffff918216918991908816908110610dae57634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16868663ffffffff1681518110610e0057634e487b7160e01b600052603260045260246000fd5b9115156020928302919091019091015284610e1a81615007565b955050508080610e2990615007565b915050610c91565b50508080610e3e90615007565b915050610c36565b50949b939a509198509650945092505050565b600063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000167f0000000000000000000000000000000000000000000000000000000000000000610ed060ff7f00000000000000000000000000000000000000000000000000000000000000001642614ec0565b610eda9190614f59565b63ffffffff1611610f235760405162461bcd60e51b8152602060048201526013602482015272546f6f206561726c7920746f2072657469726560681b60448201526064016106b1565b6002546001600160a01b0316610f7b5760405162461bcd60e51b815260206004820152601e60248201527f4c617374207265736f72742061646472657373206973206e6f7420736574000060448201526064016106b1565b610f8361055c565b610fc15760405162461bcd60e51b815260206004820152600f60248201526e149958dbdd995c9e4819985a5b1959608a1b60448201526064016106b1565b50600190565b6000805b63ffffffff81168711156110c3573063f23a6e618b8b8b8b63ffffffff871681811061100757634e487b7160e01b600052603260045260246000fd5b905060200201358a8a8763ffffffff1681811061103457634e487b7160e01b600052603260045260246000fd5b9050602002013589896040518763ffffffff1660e01b815260040161105e96959493929190614af9565b602060405180830381600087803b15801561107857600080fd5b505af115801561108c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110b09190614920565b50806110bb81615007565b915050610fcb565b5063bc197c8160e01b9998505050505050505050565b6110e58c8c8c8c611c92565b61111060017f0000000000000000000000000000000000000000000000000000000000000000614f59565b63ffffffff168a63ffffffff16141561119e57600688600781111561114557634e487b7160e01b600052602160045260246000fd5b1461119e5760405162461bcd60e51b815260206004820152602360248201527f4c617374206f7065726174696f6e20726573657276656420666f72207265636f6044820152623b32b960e91b60648201526084016106b1565b6000806111db8e8e60008181106111c557634e487b7160e01b600052603260045260246000fd5b905060200201358d8d8d8d8d8d8d8d8d8d611fe1565b9150915060006111ee838e848f8f6121f9565b90506111fb83828d6125eb565b60008b600781111561121d57634e487b7160e01b600052602160045260246000fd5b14156112435783156112385761123385856127db565b6113bd565b6112338a8a8a611941565b60018b600781111561126557634e487b7160e01b600052602160045260246000fd5b141561128657831561127c576112338a8a8a61296b565b6112338585612fb9565b60028b60078111156112a857634e487b7160e01b600052602160045260246000fd5b14156112f2576112338a8a8a8a8a8a8a8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061308f92505050565b60038b600781111561131457634e487b7160e01b600052602160045260246000fd5b141561132457611233858561340b565b60048b600781111561134657634e487b7160e01b600052602160045260246000fd5b141561135c5761135687876135d3565b506113bd565b60068b600781111561137e57634e487b7160e01b600052602160045260246000fd5b141561138c576113566137f5565b60058b60078111156113ae57634e487b7160e01b600052602160045260246000fd5b14156113bd576113bd87613872565b505050505050505050505050505050565b6000807f000000000000000000000000000000000000000000000000000000000000000061141f60ff7f00000000000000000000000000000000000000000000000000000000000000001642614ed4565b6114299190614f59565b63ffffffff1660009081526006602052604090205460ff1692915050565b600081815260096020526040812080546060928392839283928392916001600160401b0381111561148857634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156114b1578160200160208202803683370190505b5082549091506000906001600160401b038111156114df57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015611508578160200160208202803683370190505b5083549091506000906001600160401b0381111561153657634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561155f578160200160208202803683370190505b5084549091506000906001600160401b0381111561158d57634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156115b6578160200160208202803683370190505b5085549091506000906001600160401b038111156115e457634e487b7160e01b600052604160045260246000fd5b60405190808252806020026020018201604052801561160d578160200160208202803683370190505b50905060005b865463ffffffff821610156117a5576000878263ffffffff168154811061164a57634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190508060000154878363ffffffff168151811061168557634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060010154868363ffffffff16815181106116bc57634e487b7160e01b600052603260045260246000fd5b6020026020010181815250508060020154858363ffffffff16815181106116f357634e487b7160e01b600052603260045260246000fd5b60209081029190910101526003810154845163ffffffff91821691869190851690811061173057634e487b7160e01b600052603260045260246000fd5b602002602001019063ffffffff16908163ffffffff16815250508060030160049054906101000a900460ff16838363ffffffff168151811061178257634e487b7160e01b600052603260045260246000fd5b91151560209283029190910190910152508061179d81615007565b915050611613565b50939b929a50909850965090945092505050565b6117c16138f8565b6040805160a0810182528481526020810184905290810182905263ffffffff42166060820152600060808201526008546078116118335760405162461bcd60e51b815260206004820152601060248201526f546f6f206d616e7920636f6d6d69747360801b60448201526064016106b1565b6008805460018181019092557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee3018590556000948552600960209081526040808720805480850182559088529682902084516004909802019687559083015191860191909155810151600285015560608101516003909401805460809092015115156401000000000264ffffffffff1990921663ffffffff90951694909417179092555050565b60007feb7a68d5a205eea79480f44587fe8146ae15b7e92582967fd1b1b119c9b60efa60028588338b8a898960405161191a989796959493929190614db6565b60405180910390a161192e60023387611941565b5063f23a6e6160e01b9695505050505050565b600083600381111561196357634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905291205490915015611b485760005b60008281526020819052604090205463ffffffff82161015611b46576000828152602081905260408120805463ffffffff8416908110611a0c57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115611a3957634e487b7160e01b600052602160045260246000fd5b60018281548110611a5a57634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115611a8d57634e487b7160e01b600052602160045260246000fd5b14611a985750611b34565b8360018281548110611aba57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414611ad75750611b34565b846001600160a01b031660018281548110611b0257634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614611b2c5750611b34565b505050505050565b80611b3e81615007565b9150506119bc565b505b60006040518060600160405280866003811115611b7557634e487b7160e01b600052602160045260246000fd5b81526001600160a01b038616602080830191909152604091820186905260008581528082529182206001805482548083018455928552928420909101919091558054808201825591819052825160029092027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180549394508493909291839160ff191690836003811115611c1a57634e487b7160e01b600052602160045260246000fd5b0217905550602082015181546001600160a01b0390911661010002610100600160a81b0319909116178155604091820151600190910155517f7e1890e95e59ca252ad98a9bbeeb8c7f6ce5269f06ecb4f0cb5ebcee5770c2a290611c8390879087908790614cc4565b60405180910390a15050505050565b611cbd60017f0000000000000000000000000000000000000000000000000000000000000000614f7e565b60ff168314611d0e5760405162461bcd60e51b815260206004820152601d60248201527f4e6f7420656e6f756768206e65696768626f72732070726f766964656400000060448201526064016106b1565b6000600282604051602001611d2591815260200190565b60408051601f1981840301815290829052611d3f91614aa0565b602060405180830381855afa158015611d5c573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611d7f91906148c1565b9050611dac60017f0000000000000000000000000000000000000000000000000000000000000000614f59565b63ffffffff168363ffffffff161415611dc25750805b60005b611df060017f0000000000000000000000000000000000000000000000000000000000000000614f7e565b60ff168160ff161015611f745760018085161415611eb057600286868360ff16818110611e2d57634e487b7160e01b600052603260045260246000fd5b9050602002013583604051602001611e4f929190918252602082015260400190565b60408051601f1981840301815290829052611e6991614aa0565b602060405180830381855afa158015611e86573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611ea991906148c1565b9150611f54565b60028287878460ff16818110611ed657634e487b7160e01b600052603260045260246000fd5b90506020020135604051602001611ef7929190918252602082015260400190565b60408051601f1981840301815290829052611f1191614aa0565b602060405180830381855afa158015611f2e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190611f5191906148c1565b91505b60018463ffffffff16901c93508080611f6c9061502b565b915050611dc5565b50807f000000000000000000000000000000000000000000000000000000000000000014611fd95760405162461bcd60e51b8152602060048201526012602482015271141c9bdbd9881a5cc81a5b98dbdc9c9958dd60721b60448201526064016106b1565b505b50505050565b60008060008d8d60e01b6001600160e01b0319168d604051602001612019939291909283526020830191909152604082015260600190565b60408051601f1981840301815291905280516020909101209050600060048c600781111561205757634e487b7160e01b600052602160045260246000fd5b141561209a576040805160608a811b6001600160601b0319166020830152918101899052015b6040516020818303038152906040528051906020012090506121e5565b60068c60078111156120bc57634e487b7160e01b600052602160045260246000fd5b14156120e15785856040516120d2929190614a90565b604051809103902090506121e5565b60058c600781111561210357634e487b7160e01b600052602160045260246000fd5b141561212757604080516001600160601b031960608b901b1660208201520161207d565b60008c600781111561214957634e487b7160e01b600052602160045260246000fd5b8c600381111561216957634e487b7160e01b600052602160045260246000fd5b60001b8c60601b6001600160601b0319168c60001b8c60601b6001600160601b0319168c60001b8c8c6040516020016121a9989796959493929190614a53565b6040516020818303038152906040529050806040516020016121cb9190614aa0565b604051602081830303815290604052805190602001209150505b909e909d509b505050505050505050505050565b60008061222960ff7f00000000000000000000000000000000000000000000000000000000000000001687614ed4565b9050600061225a60ff7f0000000000000000000000000000000000000000000000000000000000000000168861504b565b60008981526009602052604090208054919250906122ac5760405162461bcd60e51b815260206004820152600f60248201526e139bc818dbdb5b5a5d08199bdd5b99608a1b60448201526064016106b1565b60005b815463ffffffff821610156125b0576000828263ffffffff16815481106122e657634e487b7160e01b600052603260045260246000fd5b906000526020600020906004020190506000816001015489604051602001612318929190918252602082015260400190565b6040516020818303038152906040528051906020012090508082600201541461234257505061259e565b898260010154146123955760405162461bcd60e51b815260206004820152601760248201527f506172616d657465722068617368206d69736d6174636800000000000000000060448201526064016106b1565b60068860078111156123b757634e487b7160e01b600052602160045260246000fd5b146124e15760038201546000907f00000000000000000000000000000000000000000000000000000000000000009061241a9060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614ed4565b6124249190614f59565b90508663ffffffff168163ffffffff16146124815760405162461bcd60e51b815260206004820152601a60248201527f496e646578202d2074696d657374616d70206d69736d6174636800000000000060448201526064016106b1565b63ffffffff811660009081526006602052604090205460ff9081169087168111156124de5760405162461bcd60e51b815260206004820152600d60248201526c4e6f6e636520746f6f206c6f7760981b60448201526064016106b1565b50505b6003820154640100000000900460ff161561253e5760405162461bcd60e51b815260206004820152601860248201527f436f6d6d697420616c726561647920636f6d706c65746564000000000000000060448201526064016106b1565b60038201546125529063ffffffff16613bd3565b6125905760405162461bcd60e51b815260206004820152600f60248201526e52657665616c20746f6f206c61746560881b60448201526064016106b1565b82965050505050505061066b565b806125a881615007565b9150506122af565b5060405162461bcd60e51b815260206004820152600f60248201526e139bc81d985b1a590818dbdb5b5a5d608a1b60448201526064016106b1565b6000838152600960205260409020805461263d5760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e840d0c2e6d606b1b60448201526064016106b1565b805463ffffffff8416106126895760405162461bcd60e51b8152602060048201526013602482015272092dcecc2d8d2c840c6dedadad2e892dcc8caf606b1b60448201526064016106b1565b6000818463ffffffff16815481106126b157634e487b7160e01b600052603260045260246000fd5b60009182526020909120600490910201600381015490915063ffffffff1661271b5760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420636f6d6d69742074696d657374616d70000000000000000060448201526064016106b1565b600683600781111561273d57634e487b7160e01b600052602160045260246000fd5b146127bf5760038101546000907f0000000000000000000000000000000000000000000000000000000000000000906127a09060ff7f0000000000000000000000000000000000000000000000000000000000000000169063ffffffff16614ed4565b6127aa9190614f59565b90506127b581613bee565b6127bd613c8f565b505b600301805464ff00000000191664010000000017905550505050565b60006127e8606083614ec0565b9050816127f6826060614f16565b63ffffffff16146128195760405162461bcd60e51b81526004016106b190614e14565b60005b8163ffffffff168163ffffffff161015611fdb5760006128ac8585612842856060614f16565b63ffffffff1690612854866060614f16565b61285f906020614e98565b63ffffffff169261287293929190614e58565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613f6a92505050565b60038111156128cb57634e487b7160e01b600052602160045260246000fd5b9050600061290786866128df866060614f16565b6128ea906020614e98565b63ffffffff16906128fc876060614f16565b61285f906034614e98565b60601c9050600061294887878660606129209190614f16565b61292b906040614e98565b63ffffffff169061293d886060614f16565b61285f906060614e98565b9050612955838383611941565b505050808061296390615007565b91505061281c565b600083600381111561298d57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f1981840301815291815281516020928301206000818152928390529120549091506129e85750505050565b60005b60008281526020819052604090205463ffffffff82161015612f77576000828152602081905260408120805463ffffffff8416908110612a3b57634e487b7160e01b600052603260045260246000fd5b90600052602060002001549050856003811115612a6857634e487b7160e01b600052602160045260246000fd5b60018281548110612a8957634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612abc57634e487b7160e01b600052602160045260246000fd5b14612ac75750612f65565b8360018281548110612ae957634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015414612b065750612f65565b846001600160a01b031660018281548110612b3157634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015461010090046001600160a01b031614612b5b5750612f65565b60018054600091612b6b91614f42565b905060018181548110612b8e57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160018381548110612bbd57634e487b7160e01b600052603260045260246000fd5b6000918252602090912082546002909202018054909160ff1690829060ff19166001836003811115612bff57634e487b7160e01b600052602160045260246000fd5b021790555081548154610100600160a81b031916610100918290046001600160a01b03169091021781556001918201549082015580546000919084908110612c5757634e487b7160e01b600052603260045260246000fd5b600091825260209091206002909102015460ff166003811115612c8a57634e487b7160e01b600052602160045260246000fd5b6001805485908110612cac57634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b031660601b6001600160601b03191660018581548110612cff57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015460001b604051602001612d37939291909283526020830191909152604082015260600190565b6040516020818303038152906040528051906020012090506001805480612d6e57634e487b7160e01b600052603160045260246000fd5b60008281526020812060026000199093019283020180546001600160a81b031916815560010181905591555b60008281526020819052604090205463ffffffff82161015612e5657826000808481526020019081526020016000208263ffffffff1681548110612dee57634e487b7160e01b600052603260045260246000fd5b90600052602060002001541415612e4457836000808481526020019081526020016000208263ffffffff1681548110612e3757634e487b7160e01b600052603260045260246000fd5b6000918252602090912001555b80612e4e81615007565b915050612d9a565b5060008581526020819052604090208054612e7390600190614f42565b81548110612e9157634e487b7160e01b600052603260045260246000fd5b90600052602060002001546000808781526020019081526020016000208481548110612ecd57634e487b7160e01b600052603260045260246000fd5b9060005260206000200181905550600080868152602001908152602001600020805480612f0a57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590557f166bc904e3b7f8699e175923a2635944dd9ac0dc817927aac60d854d23a82b9b888888604051612f5393929190614cc4565b60405180910390a15050505050505050565b80612f6f81615007565b9150506129eb565b507ffc773cf3883ef83133327fbc62fe0a7c3c96add34a1781cae66ba5de7efa3f5f848484604051612fab93929190614cc4565b60405180910390a150505050565b6000612fc6606083614ec0565b905081612fd4826060614f16565b63ffffffff1614612ff75760405162461bcd60e51b81526004016106b190614e14565b60005b8163ffffffff168163ffffffff161015611fdb5760006130208585612842856060614f16565b600381111561303f57634e487b7160e01b600052602160045260246000fd5b9050600061305386866128df866060614f16565b60601c9050600061306c87878660606129209190614f16565b905061307983838361296b565b505050808061308790615007565b915050612ffa565b60008660038111156130b157634e487b7160e01b600052602160045260246000fd5b14156132695760405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905286169063a9059cbb90604401602060405180830381600087803b15801561310157600080fd5b505af1925050508015613131575060408051601f3d908101601f1916820190925261312e91810190614882565b60015b6131ea5761313d61509a565b806308c379a014156131a457506131526150b2565b8061315d57506131a6565b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba87878787878660405161319696959493929190614d27565b60405180910390a150611b2c565b505b7fb2c309e26e7b2de22ddccb000bdb486012c32f2d701ded2884bad91974065cba86868686866040516131dd959493929190614d6e565b60405180910390a1611b2c565b8015613232576131fb878787611941565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b318787878787604051613196959493929190614cec565b7f75a36803468aca74d964b22522480470a7a3f2121daa5994c2a937aec85d23298787878787604051613196959493929190614cec565b600186600381111561328b57634e487b7160e01b600052602160045260246000fd5b141561333157604051635c46a7ef60e11b81526001600160a01b0386169063b88d4fde906132c3903090879089908790600401614abc565b600060405180830381600087803b1580156132dd57600080fd5b505af19250505080156132ee575060015b6132fa5761313d61509a565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516131dd959493929190614cec565b600286600381111561335357634e487b7160e01b600052602160045260246000fd5b1415611b2c57604051637921219560e11b81526001600160a01b0386169063f242432a9061338d9030908790899088908890600401614b40565b600060405180830381600087803b1580156133a757600080fd5b505af19250505080156133b8575060015b6133c45761313d61509a565b7f1b7af2671454aac8f59a0b294dd30d582e2df89a6efef446afd125b268795b3186868686866040516133fb959493929190614cec565b60405180910390a1505050505050565b6000613418606083614ec0565b905081613426826060614f16565b63ffffffff16146134495760405162461bcd60e51b81526004016106b190614e14565b60008163ffffffff166001600160401b0381111561347757634e487b7160e01b600052604160045260246000fd5b6040519080825280602002602001820160405280156134c257816020015b60408051606081018252600080825260208083018290529282015282526000199092019101816134955790505b50905060005b8263ffffffff168163ffffffff1610156135c95760006134ee8686612842856060614f16565b600381111561350d57634e487b7160e01b600052602160045260246000fd5b9050600061352187876128df866060614f16565b60601c9050600061353a88888660606129209190614f16565b60001c9050604051806060016040528084600381111561356a57634e487b7160e01b600052602160045260246000fd5b8152602001836001600160a01b0316815260200182815250858563ffffffff16815181106135a857634e487b7160e01b600052603260045260246000fd5b602002602001018190525050505080806135c190615007565b9150506134c8565b50611fdb81613ff6565b6000806135e36201518042614ec0565b60055490915063ffffffff90811690821611156136155760006004556005805463ffffffff191663ffffffff83161790555b600354836004546136269190614e80565b111561368b576003546004546040805186815260208101939093528201526001600160a01b03851660608201527f705f289c5579ebb63d8c90ed39a42a76ded07641efe4f445a9a97d1e95c75c68906080015b60405180910390a16000915050610607565b824710156136db57604080518481524760208201526001600160a01b038616918101919091527fd90084f259c3c1dbd378c6c23cff1383005852e0d9829773e15afdbaf15fb7d890606001613679565b82600460008282546136ed9190614e80565b90915550506040516000906001600160a01b0386169085908381818185875af1925050503d806000811461373d576040519150601f19603f3d011682016040523d82523d6000602084013e613742565b606091505b50509050806137a957836004600082825461375d9190614f42565b90915550506040516001600160a01b03861681527f2c7068ca7f82b1436494678e109b299bc751ccbb88d560f7c011b48dfdb2117b9060200160405180910390a1600092505050610607565b604080518581526001600160a01b03871660208201527f8f4636f285a9a17fe3479ab47bb7a5deadaf9b2295a16c3965f55fa48e542d1f910160405180910390a1506001949350505050565b6002546000906001600160a01b0316613837576040517fc27dbdcf29e2a161f0420d399444129801e578bafe157fef0370098459e082bf90600090a150600090565b61383f61055c565b610fc1576040517fa3a244603d968c02ebd2017f990d4e077cf0381929976be2a0cb07076147a56f90600090a150600090565b6002546001600160a01b0316156138d65760405162461bcd60e51b815260206004820152602260248201527f4c617374207265736f7274206164647265737320697320616c72656164792073604482015261195d60f21b60648201526084016106b1565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000425b60085463ffffffff831610156139ce57600060088363ffffffff168154811061393557634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260409091208054919250906139615750506139bc565b60008160008154811061398457634e487b7160e01b600052603260045260246000fd5b6000918252602090912060036004909202019081015490915063ffffffff603b19860181169116106139b8575050506139ce565b5050505b816139c681615007565b9250506138fc565b63ffffffff82166139dd575050565b60005b8263ffffffff168163ffffffff161015613ae057600060088263ffffffff1681548110613a1d57634e487b7160e01b600052603260045260246000fd5b6000918252602080832090910154808352600990915260408220909250905b815463ffffffff82161015613ab357818163ffffffff1681548110613a7157634e487b7160e01b600052603260045260246000fd5b600091825260208220600490910201818155600181018290556002810191909155600301805464ffffffffff1916905580613aab81615007565b915050613a3c565b506000828152600960205260408120613acb916143b1565b50508080613ad890615007565b9150506139e0565b50600854825b8163ffffffff168163ffffffff161015613b735760088163ffffffff1681548110613b2157634e487b7160e01b600052603260045260246000fd5b9060005260206000200154600885830363ffffffff1681548110613b5557634e487b7160e01b600052603260045260246000fd5b60009182526020909120015580613b6b81615007565b915050613ae6565b5060005b8363ffffffff168163ffffffff161015611fdb576008805480613baa57634e487b7160e01b600052603160045260246000fd5b600190038181906000526020600020016000905590558080613bcb90615007565b915050613b77565b6000603c613be18342614f59565b63ffffffff161092915050565b63ffffffff811660009081526006602052604090205460ff1680613c62576007805460018101825560008290527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c68860088204018054919092166004026101000a63ffffffff81810219909216918516021790555b63ffffffff919091166000908152600660205260409020805460ff1916600190920160ff16919091179055565b6000613c9c603c42614f59565b90506000613ccd60ff7f00000000000000000000000000000000000000000000000000000000000000001683614ed4565b905060007f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff161115613d3257613d2f7f000000000000000000000000000000000000000000000000000000000000000083614f59565b90505b6007546000906001600160401b03811115613d5d57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613d86578160200160208202803683370190505b5090506000805b60075460ff82161015613e6957600060078260ff1681548110613dc057634e487b7160e01b600052603260045260246000fd5b6000918252602090912060088204015460079091166004026101000a900463ffffffff90811691508516811015613e135763ffffffff81166000908152600660205260409020805460ff19169055613e56565b80848463ffffffff1681518110613e3a57634e487b7160e01b600052603260045260246000fd5b63ffffffff909216602092830291909101909101526001909201915b5080613e618161502b565b915050613d8d565b5060008163ffffffff166001600160401b03811115613e9857634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015613ec1578160200160208202803683370190505b50905060005b8263ffffffff168160ff161015613f4d57838160ff1681518110613efb57634e487b7160e01b600052603260045260246000fd5b6020026020010151828260ff1681518110613f2657634e487b7160e01b600052603260045260246000fd5b63ffffffff9092166020928302919091019091015280613f458161502b565b915050613ec7565b508051613f619060079060208401906143d5565b50505050505050565b6000815160001415613f7e57506000919050565b602082511115613fc75760405162461bcd60e51b8152602060048201526014602482015273696e70757420627974657320746f6f206c6f6e6760601b60448201526064016106b1565b60008083516020613fd89190614f42565b613fe3906008614ef7565b60209490940151841c90931b9392505050565b60005b60015463ffffffff8216101561416957600060018263ffffffff168154811061403257634e487b7160e01b600052603260045260246000fd5b600091825260208220600290910201546001805460ff90921693509063ffffffff851690811061407257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000160019054906101000a90046001600160a01b03169050600060018463ffffffff16815481106140c257634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160010154905060008360038111156140f857634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b03191691830191909152810183905260800160408051601f19818403018152918152815160209283012060008181529283905290822090925061415291614484565b50505050808061416190615007565b915050613ff9565b50614176600160006144a2565b60005b81518163ffffffff1610156143ad576000828263ffffffff16815181106141b057634e487b7160e01b600052603260045260246000fd5b60200260200101516000015190506000838363ffffffff16815181106141e657634e487b7160e01b600052603260045260246000fd5b60200260200101516020015190506000848463ffffffff168151811061421c57634e487b7160e01b600052603260045260246000fd5b6020026020010151604001519050600083600381111561424c57634e487b7160e01b600052602160045260246000fd5b604080516020810192909252606085811b6001600160601b031916918301919091528101839052608001604051602081830303815290604052805190602001209050600060405180606001604052808660038111156142bb57634e487b7160e01b600052602160045260246000fd5b81526001600160a01b03861660208201526040018490526001805480820182556000829052825160029091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601805493945084939092839160ff19169083600381111561433957634e487b7160e01b600052602160045260246000fd5b021790555060208281015182546001600160a01b0390911661010002610100600160a81b03199091161782556040928301516001928301556000948552848152918420805491820181558452922063ffffffff8716920191909155508392506143a59150829050615007565b915050614179565b5050565b50805460008255600402906000526020600020908101906143d291906144c3565b50565b828054828255906000526020600020906007016008900481019282156144745791602002820160005b8382111561444257835183826101000a81548163ffffffff021916908363ffffffff16021790555092602001926004016020816003010492830192600103026143fe565b80156144725782816101000a81549063ffffffff0219169055600401602081600301049283019260010302614442565b505b506144809291506144f5565b5090565b50805460008255906000526020600020908101906143d291906144f5565b50805460008255600202906000526020600020908101906143d2919061450a565b5b8082111561448057600080825560018201819055600282015560038101805464ffffffffff191690556004016144c4565b5b8082111561448057600081556001016144f6565b5b808211156144805780546001600160a81b03191681556000600182015560020161450b565b803561453b8161513b565b919050565b60008083601f840112614551578182fd5b5081356001600160401b03811115614567578182fd5b6020830191508360208260051b850101111561458257600080fd5b9250929050565b60008083601f84011261459a578182fd5b5081356001600160401b038111156145b0578182fd5b60208301915083602082850101111561458257600080fd5b80356008811061453b57600080fd5b80356004811061453b57600080fd5b803563ffffffff8116811461453b57600080fd5b60008060008060008060008060a0898b031215614615578384fd5b88356146208161513b565b975060208901356146308161513b565b965060408901356001600160401b038082111561464b578586fd5b6146578c838d01614540565b909850965060608b013591508082111561466f578586fd5b61467b8c838d01614540565b909650945060808b0135915080821115614693578384fd5b506146a08b828c01614589565b999c989b5096995094979396929594505050565b6000806000806000608086880312156146cb578081fd5b85356146d68161513b565b945060208601356146e68161513b565b93506040860135925060608601356001600160401b03811115614707578182fd5b61471388828901614589565b969995985093965092949392505050565b60008060008060008060a0878903121561473c578182fd5b86356147478161513b565b955060208701356147578161513b565b9450604087013593506060870135925060808701356001600160401b0381111561477f578283fd5b61478b89828a01614589565b979a9699509497509295939492505050565b6000806000806000806000806000806000806101408d8f0312156147bf578384fd5b6001600160401b038d3511156147d3578384fd5b6147e08e8e358f01614540565b909c509a506147f160208e016145e6565b995060408d0135985061480660608e016145c8565b975061481460808e016145d7565b965061482260a08e01614530565b955060c08d0135945061483760e08e01614530565b93506101008d013592506001600160401b036101208e01351115614859578081fd5b61486a8e6101208f01358f01614589565b81935080925050509295989b509295989b509295989b565b600060208284031215614893578081fd5b815180151581146148a2578182fd5b9392505050565b6000602082840312156148ba578081fd5b5035919050565b6000602082840312156148d2578081fd5b5051919050565b6000806000606084860312156148ed578081fd5b505081359360208301359350604090920135919050565b600060208284031215614915578081fd5b81356148a281615150565b600060208284031215614931578081fd5b81516148a281615150565b6000815180845260208085019450808401835b8381101561496d57815115158752958201959082019060010161494f565b509495945050505050565b6000815180845260208085019450808401835b8381101561496d5781518752958201959082019060010161498b565b6000815180845260208085019450808401835b8381101561496d57815163ffffffff16875295820195908201906001016149ba565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60008151808452614a1d816020860160208601614fa1565b601f01601f19169290920160200192915050565b60048110614a4f57634e487b7160e01b600052602160045260246000fd5b9052565b8881528760208201528660408201528560608201528460808201528360a0820152818360c08301376000910160c001908152979650505050505050565b8183823760009101908152919050565b60008251614ab2818460208701614fa1565b9190910192915050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090614aef90830184614a05565b9695505050505050565b6001600160a01b03878116825286166020820152604081018590526060810184905260a060808201819052600090614b3490830184866149dc565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090614b7a90830184614a05565b979650505050505050565b60a081526000614b9860a0830188614978565b8281036020840152614baa8188614978565b90508281036040840152614bbe8187614978565b90508281036060840152614bd281866149a7565b90508281036080840152614b34818561493c565b608081526000614bf96080830187614978565b8281036020840152614c0b8187614978565b90508281036040840152614c1f81866149a7565b90508281036060840152614b7a818561493c565b606080825284519082018190526000906020906080840190828801845b82811015614c7357614c63848351614a31565b9284019290840190600101614c50565b50505083810382850152855180825286830191830190845b81811015614cb05783516001600160a01b031683529284019291840191600101614c8b565b50508481036040860152614b348187614978565b60608101614cd28286614a31565b6001600160a01b0393909316602082015260400152919050565b60a08101614cfa8288614a31565b6001600160a01b039586166020830152604082019490945291909316606082015260800191909152919050565b614d318188614a31565b6001600160a01b03868116602083015260408201869052841660608201526080810183905260c060a08201819052600090614b3490830184614a05565b614d788187614a31565b6001600160a01b039485166020820152604081019390935292166060820152608081019190915260c060a0820181905260009082015260e001919050565b614dc0818a614a31565b602081018890526001600160a01b03878116604083015286811660608301528516608082015260a0810184905260e060c08201819052600090614e0690830184866149dc565b9a9950505050505050505050565b60208082526024908201527f64617461206d7573742068617665206c656e677468206d756c7469706c65207460408201526337901c9b60e11b606082015260800190565b60008085851115614e67578182fd5b83861115614e73578182fd5b5050820193919092039150565b60008219821115614e9357614e9361506e565b500190565b600063ffffffff808316818516808303821115614eb757614eb761506e565b01949350505050565b600082614ecf57614ecf615084565b500490565b600063ffffffff80841680614eeb57614eeb615084565b92169190910492915050565b6000816000190483118215151615614f1157614f1161506e565b500290565b600063ffffffff80831681851681830481118215151615614f3957614f3961506e565b02949350505050565b600082821015614f5457614f5461506e565b500390565b600063ffffffff83811690831681811015614f7657614f7661506e565b039392505050565b600060ff821660ff841680821015614f9857614f9861506e565b90039392505050565b60005b83811015614fbc578181015183820152602001614fa4565b83811115611fdb5750506000910152565b601f8201601f191681016001600160401b038111828210171561500057634e487b7160e01b600052604160045260246000fd5b6040525050565b600063ffffffff808316818114156150215761502161506e565b6001019392505050565b600060ff821660ff8114156150425761504261506e565b60010192915050565b600063ffffffff8084168061506257615062615084565b92169190910692915050565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b600060033d11156150af57600481823e5160e01c5b90565b600060443d10156150c05790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156150ef57505050505090565b82850191508151818111156151075750505050505090565b843d87010160208285010111156151215750505050505090565b61513060208286010187614fcd565b509095945050505050565b6001600160a01b03811681146143d257600080fd5b6001600160e01b0319811681146143d257600080fdfea264697066735822122048a742a1d4797711bed772e05a1dd00a9b20ebf7516fa8e654fd3522f73fea3a64736f6c63430008040033", "immutableReferences": { "437": [ { @@ -27964,8 +27964,8 @@ } ], "sourceMap": "151:24282:6:-:0;;;4057:517;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4258:12;;;;4280:16;;;;;;;;;4306:20;;;;;;;-1:-1:-1;;;;;;4336:8:6;;;;;;;;4354:20;;;;;;4384:17;:38;;-1:-1:-1;;;;;4384:38:6;;-1:-1:-1;;;;;;4384:38:6;;;;;;4432:10;:24;;;4466:52;;;;;;4554:11;4384:38;4289:7;4554:11;:::i;:::-;4548:18;;:1;:18;:::i;:::-;4528:39;;-1:-1:-1;;;;;;4528:39:6;;;-1:-1:-1;151:24282:6;;-1:-1:-1;;;;;;;151:24282:6;14:167:8;92:13;;145:10;134:22;;124:33;;114:2;;171:1;168;161:12;114:2;73:108;;;:::o;186:160::-;263:13;;316:4;305:16;;295:27;;285:2;;336:1;333;326:12;351:854;484:6;492;500;508;516;524;532;540;593:3;581:9;572:7;568:23;564:33;561:2;;;615:6;607;600:22;561:2;649:9;643:16;633:26;;678:47;721:2;710:9;706:18;678:47;:::i;:::-;668:57;;744:47;787:2;776:9;772:18;744:47;:::i;:::-;734:57;;810:48;854:2;843:9;839:18;810:48;:::i;:::-;800:58;;877:49;921:3;910:9;906:19;877:49;:::i;:::-;867:59;;945:48;988:3;977:9;973:19;945:48;:::i;:::-;1036:3;1021:19;;1015:26;935:58;;-1:-1:-1;;;;;;1070:31:8;;1060:42;;1050:2;;1121:6;1113;1106:22;1050:2;1149:5;1139:15;;;1194:3;1183:9;1179:19;1173:26;1163:36;;551:654;;;;;;;;;;;:::o;1210:422::-;1299:1;1342:5;1299:1;1356:270;1377:7;1367:8;1364:21;1356:270;;;1436:4;1432:1;1428:6;1424:17;1418:4;1415:27;1412:2;;;1445:18;;:::i;:::-;1495:7;1485:8;1481:22;1478:2;;;1515:16;;;;1478:2;1594:22;;;;1554:15;;;;1356:270;;;1360:3;1274:358;;;;;:::o;1637:140::-;1695:5;1724:47;1765:4;1755:8;1751:19;1745:4;1724:47;:::i;:::-;1715:56;1705:72;-1:-1:-1;;;1705:72:8:o;1782:806::-;1831:5;1861:8;1851:2;;-1:-1:-1;1902:1:8;1916:5;;1851:2;1950:4;1940:2;;-1:-1:-1;1987:1:8;2001:5;;1940:2;2032:4;2050:1;2045:59;;;;2118:1;2113:130;;;;2025:218;;2045:59;2075:1;2066:10;;2089:5;;;2113:130;2150:3;2140:8;2137:17;2134:2;;;2157:18;;:::i;:::-;-1:-1:-1;;2213:1:8;2199:16;;2228:5;;2025:218;;2327:2;2317:8;2314:16;2308:3;2302:4;2299:13;2295:36;2289:2;2279:8;2276:16;2271:2;2265:4;2262:12;2258:35;2255:77;2252:2;;;-1:-1:-1;2364:19:8;;;2396:5;;2252:2;2443:34;2468:8;2462:4;2443:34;:::i;:::-;2513:6;2509:1;2505:6;2501:19;2492:7;2489:32;2486:2;;;2524:18;;:::i;:::-;2562:20;;-1:-1:-1;1841:747:8;;;;;:::o;2593:195::-;2631:4;2668;2665:1;2661:12;2700:4;2697:1;2693:12;2725:3;2720;2717:12;2714:2;;;2732:18;;:::i;:::-;2769:13;;;2640:148;-1:-1:-1;;;2640:148:8:o;2793:127::-;2854:10;2849:3;2845:20;2842:1;2835:31;2885:4;2882:1;2875:15;2909:4;2906:1;2899:15;2825:95;151:24282:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", - "deployedSourceMap": "151:24282:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4622:38;;;4638:9;30559:25:8;;4649:10:6;30615:2:8;30600:18;;30593:60;4622:38:6;;30532:18:8;4622:38:6;;;;;;;3102:7;4674:9;:41;4670:78;;151:24282;4670:78;4775:17;;-1:-1:-1;;;;;4775:17:6;4761:10;:31;4757:68;;151:24282;4757:68;4838:17;;-1:-1:-1;;;;;4838:17:6;4834:68;;151:24282;4834:68;4915:10;4937:4;4915:27;4911:64;;;151:24282;4911:64;4989:33;;5011:10;11859:51:8;;4989:33:6;;11847:2:8;11832:18;4989:33:6;;;;;;;5040:8;:6;:8::i;:::-;5032:17;;;;;;151:24282;;;;;3101:270:7;;;;;;;;;;-1:-1:-1;3101:270:7;;;;;:::i;:::-;;:::i;:::-;;;17567:14:8;;17560:22;17542:41;;17530:2;17515:18;3101:270:7;;;;;;;;5600:117:6;;;;;;;;;;-1:-1:-1;5600:117:6;;;3190:3;32191:34:8;;3274:3:6;32256:2:8;32241:18;;32234:43;32135:18;5600:117:6;32117:166:8;3460:374:7;;;;;;;;;;-1:-1:-1;3460:374:7;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;18951:33:8;;;18933:52;;18921:2;18906:18;3460:374:7;18888:103:8;7462:129:6;;;;;;;;;;-1:-1:-1;7462:129:6;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;17817:25:8;;;17873:2;17858:18;;17851:34;;;;17933:10;17921:23;17916:2;17901:18;;17894:51;17988:14;17981:22;17976:2;17961:18;;17954:50;17804:3;17789:19;;17771:239;5723:128:6;;;;;;;;;;-1:-1:-1;5816:10:6;;5828:15;;5723:128;;;31125:25:8;;;5828:15:6;;;;31181:2:8;31166:18;;31159:34;31098:18;5723:128:6;31080:119:8;6018:149:6;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;5365:229::-;;;;;;;;;;;;5557:17;;5576:10;;5493:4;;5499:6;;5507:8;;5517:2;;5521:8;;5531:24;;-1:-1:-1;;;;;5557:17:6;;;;5365:229;;;;;18342:25:8;;;18415:4;18403:17;;;18398:2;18383:18;;18376:45;18457:17;;;18437:18;;;18430:45;;;;18494:10;18540:15;;;18535:2;18520:18;;18513:43;18593:15;;;;18587:3;18572:19;;18565:44;18646:17;;18640:3;18625:19;;18618:46;-1:-1:-1;;;;;18701:32:8;;;18695:3;18680:19;;18673:61;18765:3;18750:19;;18743:35;18329:3;18314:19;5365:229:6;18296:488:8;3840:652:7;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;6173:1283:6:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;5063:296::-;;;;;;;;;;;;;:::i;2728:367:7:-;;;;;;;;;;-1:-1:-1;2728:367:7;;;;;:::i;:::-;;:::i;14235:1916:6:-;;;;;;;;;;-1:-1:-1;14235:1916:6;;;;;:::i;:::-;;:::i;5857:155::-;;;;;;;;;;;;;:::i;:::-;;;32460:4:8;32448:17;;;32430:36;;32418:2;32403:18;5857:155:6;32385:87:8;7597:907:6;;;;;;;;;;-1:-1:-1;7597:907:6;;;;;:::i;:::-;;:::i;8510:358::-;;;;;;;;;;-1:-1:-1;8510:358:6;;;;;:::i;:::-;;:::i;2332:390:7:-;;;;;;;;;;-1:-1:-1;2332:390:7;;;;;:::i;:::-;;:::i;9110:258:6:-;9280:17;;:57;;9146:4;;;;-1:-1:-1;;;;;9280:17:6;;;;9311:21;;9146:4;9280:57;9146:4;9280:57;9311:21;9280:17;:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9262:75:6;;9110:258;-1:-1:-1;;;9110:258:6:o;3101:270:7:-;3180:4;-1:-1:-1;;;;;;3203:46:7;;-1:-1:-1;;;3203:46:7;;:104;;-1:-1:-1;;;;;;;3261:46:7;;-1:-1:-1;;;3261:46:7;3203:104;:161;;;-1:-1:-1;;;;;;;3319:45:7;;-1:-1:-1;;;3319:45:7;3203:161;3196:168;3101:270;-1:-1:-1;;3101:270:7:o;3460:374::-;3621:6;3643:77;3657:16;3675:1;3678:4;3684:10;3696:8;3706:7;3715:4;;3643:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;3730:50;3742:16;3760:10;3772:7;3730:11;:50::i;:::-;-1:-1:-1;;;;3460:374:7;;;;;;;;:::o;7462:129:6:-;7523:7;7532;7541:6;7549:4;7564:20;;-1:-1:-1;;;7564:20:6;;;;;;28749:2:8;28731:21;;;28788:2;28768:18;;;28761:30;-1:-1:-1;;;28822:2:8;28807:18;;28800:40;28872:2;28857:18;;28721:160;7564:20:6;;;;;;;;6018:149;6063:16;6081;6099:15;6116:13;6140:20;;-1:-1:-1;;;6140:20:6;;;;;;28749:2:8;28731:21;;;28788:2;28768:18;;;28761:30;-1:-1:-1;;;28822:2:8;28807:18;;28800:40;28872:2;28857:18;;28721:160;3840:652:7;3891:18;3911:16;3929;3956:29;4004:13;:20;;;;-1:-1:-1;;;;;3988:37:7;;;;;-1:-1:-1;;;3988:37:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3988:37:7;-1:-1:-1;4086:13:7;:20;3956:69;;-1:-1:-1;4035:34:7;;-1:-1:-1;;;;;4072:35:7;;;;;-1:-1:-1;;;4072:35:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4072:35:7;-1:-1:-1;4159:13:7;:20;4035:72;;-1:-1:-1;4117:25:7;;-1:-1:-1;;;;;4145:35:7;;;;;-1:-1:-1;;;4145:35:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4145:35:7;;4117:63;;4195:8;4190:238;4213:13;:20;4209:24;;;;4190:238;;;4270:13;4284:1;4270:16;;;;;;;;-1:-1:-1;;;4270:16:7;;;;;;;;;;;;;;;;;;;;;;:26;4254:13;;4270:26;;;;;4254:10;;:13;;;;;;;;-1:-1:-1;;;4254:13:7;;;;;;;;;;;;;;:42;;;;;;;-1:-1:-1;;;4254:42:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;4254:42:7;;;;;;;;;;;;;4333:13;4347:1;4333:16;;;;;;;;-1:-1:-1;;;4333:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;4333:32:7;4310:17;4328:1;4310:20;;;;;;;;-1:-1:-1;;;4310:20:7;;;;;;;;;;;;;;:55;-1:-1:-1;;;;;4310:55:7;;;-1:-1:-1;;;;;4310:55:7;;;;;4393:13;4407:1;4393:16;;;;;;;;-1:-1:-1;;;4393:16:7;;;;;;;;;;;;;;;;;;;:24;;;4379:8;4388:1;4379:11;;;;;;;;-1:-1:-1;;;4379:11:7;;;;;;;;;;;;;;;;;;:38;4235:3;;;;:::i;:::-;;;;4190:238;;;-1:-1:-1;4445:10:7;;4457:17;;-1:-1:-1;4476:8:7;;-1:-1:-1;3840:652:7;-1:-1:-1;3840:652:7:o;6173:1283:6:-;6221:16;6239;6257;6275:15;6292:13;6321:17;6357:8;6352:160;6375:7;:14;6371:18;;;;6352:160;;;6410:19;6432:12;:24;6445:7;6453:1;6445:10;;;;;;;;-1:-1:-1;;;6445:10:6;;;;;;;;;;;;;;;;;6432:24;;;;;;;;;;;6410:46;;6491:2;:9;;;;6470:31;;;;;:::i;:::-;;;6352:160;6391:3;;;;;:::i;:::-;;;;6352:160;;;;6521:23;6561:10;6547:25;;-1:-1:-1;;;;;6547:25:6;;;;;-1:-1:-1;;;6547:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6547:25:6;;6521:51;;6582:28;6627:10;6613:25;;-1:-1:-1;;;;;6613:25:6;;;;;-1:-1:-1;;;6613:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6613:25:6;;6582:56;;6648:35;6700:10;6686:25;;-1:-1:-1;;;;;6686:25:6;;;;;-1:-1:-1;;;6686:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6686:25:6;;6648:63;;6721:26;6763:10;6750:24;;-1:-1:-1;;;;;6750:24:6;;;;;-1:-1:-1;;;6750:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6750:24:6;;6721:53;;6784:23;6821:10;6810:22;;-1:-1:-1;;;;;6810:22:6;;;;;-1:-1:-1;;;6810:22:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6810:22:6;;6784:48;;6842:12;6873:8;6868:501;6891:7;:14;6887:18;;;;6868:501;;;6926:19;6948:12;:24;6961:7;6969:1;6961:10;;;;;;;;-1:-1:-1;;;6961:10:6;;;;;;;;;;;;;;;;;6948:24;;;;;;;;;;;6926:46;;6991:8;6986:373;7009:9;;7005:13;;;;6986:373;;;7043:16;7062:2;7065:1;7062:5;;;;;;;;-1:-1:-1;;;7062:5:6;;;;;;;;;;;;;;;;;;;7043:24;;7101:1;:6;;;7085;7092:5;7085:13;;;;;;;;-1:-1:-1;;;7085:13:6;;;;;;;;;;;;;;:22;;;;;7146:1;:12;;;7125:11;7137:5;7125:18;;;;;;;;-1:-1:-1;;;7125:18:6;;;;;;;;;;;;;;:33;;;;;7204:1;:18;;;7176;7195:5;7176:25;;;;;;;;-1:-1:-1;;;7176:25:6;;;;;;;;;;;;;;;;;;:46;7260:11;;;;7240:17;;7260:11;;;;;7240:10;;:17;;;;;;;;-1:-1:-1;;;7240:17:6;;;;;;;;;;;;;;:31;;;;;;;;;;;7308:1;:11;;;;;;;;;;;;7289:9;7299:5;7289:16;;;;;;;;-1:-1:-1;;;7289:16:6;;;;;;;;;:30;;;:16;;;;;;;;;;;:30;7337:7;;;;:::i;:::-;;;;6986:373;7020:3;;;;;:::i;:::-;;;;6986:373;;;;6868:501;6907:3;;;;;:::i;:::-;;;;6868:501;;;-1:-1:-1;7386:6:6;;7394:11;;-1:-1:-1;7407:18:6;;-1:-1:-1;7407:18:6;-1:-1:-1;7394:11:6;-1:-1:-1;6173:1283:6;-1:-1:-1;;;6173:1283:6:o;5063:296::-;5099:4;5127:50;5169:8;5127:50;5164:2;5134:26;;5152:8;5134:26;:15;:26;:::i;:::-;5127:39;;;;:::i;:::-;:50;;;5119:82;;;;-1:-1:-1;;;5119:82:6;;25891:2:8;5119:82:6;;;25873:21:8;25930:2;25910:18;;;25903:30;-1:-1:-1;;;25949:18:8;;;25942:49;26008:18;;5119:82:6;25863:169:8;5119:82:6;5219:17;;-1:-1:-1;;;;;5219:17:6;5211:74;;;;-1:-1:-1;;;5211:74:6;;23790:2:8;5211:74:6;;;23772:21:8;23829:2;23809:18;;;23802:30;23868:32;23848:18;;;23841:60;23918:18;;5211:74:6;23762:180:8;5211:74:6;5303:8;:6;:8::i;:::-;5295:36;;;;-1:-1:-1;;;5295:36:6;;28057:2:8;5295:36:6;;;28039:21:8;28096:2;28076:18;;;28069:30;-1:-1:-1;;;28115:18:8;;;28108:45;28170:18;;5295:36:6;28029:165:8;5295:36:6;-1:-1:-1;5348:4:6;;5063:296::o;2728:367:7:-;2891:6;;2908:128;2927:14;;;;-1:-1:-1;2908:128:7;;;2962:4;:22;2985:8;2995:4;3001:3;;:6;;;;;;;;-1:-1:-1;;;3001:6:7;;;;;;;;;;;;;;;3009;;3016:1;3009:9;;;;;;;-1:-1:-1;;;3009:9:7;;;;;;;;;;;;;;;3020:4;;2962:63;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2943:3:7;;;;:::i;:::-;;;;2908:128;;;-1:-1:-1;;;;3052:36:7;2728:367;-1:-1:-1;;;;;;;;;2728:367:7:o;14235:1916:6:-;14500:48;14516:9;;14527:14;14543:4;14500:15;:48::i;:::-;14580:14;14593:1;14580:10;:14;:::i;:::-;14562:32;;:14;:32;;;14558:149;;;14635:21;14618:13;:38;;;;;;-1:-1:-1;;;14618:38:6;;;;;;;;;;14610:86;;;;-1:-1:-1;;;14610:86:6;;30183:2:8;14610:86:6;;;30165:21:8;30222:2;30202:18;;;30195:30;30261:34;30241:18;;;30234:62;-1:-1:-1;;;30312:18:8;;;30305:33;30355:19;;14610:86:6;30155:225:8;14610:86:6;14717:18;14737;14759:134;14774:9;;14784:1;14774:12;;;;;-1:-1:-1;;;14774:12:6;;;;;;;;;;;;;;;14788:14;14804:4;14822:13;14837:9;14848:15;14865:7;14874:4;14880:6;14888:4;;14759:14;:134::i;:::-;14716:177;;;;14903:18;14924:74;14938:10;14950:14;14966:10;14978:4;14984:13;14924;:74::i;:::-;14903:95;;15008:55;15024:10;15036:11;15049:13;15008:15;:55::i;:::-;15145:19;15128:13;:36;;;;;;-1:-1:-1;;;15128:36:6;;;;;;;;;;15124:1021;;;15184:15;;15180:158;;15219:17;15231:4;;15219:11;:17::i;:::-;15124:1021;;15180:158;15275:48;15287:9;15298:15;15315:7;15275:11;:48::i;15124:1021::-;15375:21;15358:13;:38;;;;;;-1:-1:-1;;;15358:38:6;;;;;;;;;;15354:791;;;15416:15;;15412:162;;15451:50;15465:9;15476:15;15493:7;15451:13;:50::i;15412:162::-;15540:19;15554:4;;15540:13;:19::i;15354:791::-;15611:28;15594:13;:45;;;;;;-1:-1:-1;;;15594:45:6;;;;;;;;;;15590:555;;;15655:71;15670:9;15681:15;15698:7;15707:4;15713:6;15721:4;;15655:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15655:14:6;;-1:-1:-1;;;15655:71:6:i;15590:555::-;15764:28;15747:13;:45;;;;;;-1:-1:-1;;;15747:45:6;;;;;;;;;;15743:402;;;15808:29;15832:4;;15808:23;:29::i;15743:402::-;15875:22;15858:13;:39;;;;;;-1:-1:-1;;;15858:39:6;;;;;;;;;;15854:291;;;15913:23;15923:4;15929:6;15913:9;:23::i;:::-;;15854:291;;;15974:21;15957:13;:38;;;;;;-1:-1:-1;;;15957:38:6;;;;;;;;;;15953:192;;;16011:10;:8;:10::i;15953:192::-;16059:34;16042:13;:51;;;;;;-1:-1:-1;;;16042:51:6;;;;;;;;;;16038:107;;;16109:25;16129:4;16109:19;:25::i;:::-;14235:1916;;;;;;;;;;;;;;;:::o;5857:155::-;5900:5;;5973:2;5936:34;;5962:8;5936:34;5943:15;5936:34;:::i;:::-;:39;;;;:::i;:::-;5992:13;;;;;;:6;:13;;;;;;;;;5857:155;-1:-1:-1;;5857:155:6:o;7597:907::-;7751:19;7773:18;;;:12;:18;;;;;7841:9;;7656:16;;;;;;;;;;7773:18;-1:-1:-1;;;;;7827:24:6;;;;;-1:-1:-1;;;7827:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7827:24:6;-1:-1:-1;7906:9:6;;7801:50;;-1:-1:-1;7861:28:6;;-1:-1:-1;;;;;7892:24:6;;;;;-1:-1:-1;;;7892:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7892:24:6;-1:-1:-1;7978:9:6;;7861:55;;-1:-1:-1;7926:35:6;;-1:-1:-1;;;;;7964:24:6;;;;;-1:-1:-1;;;7964:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7964:24:6;-1:-1:-1;8040:9:6;;7926:62;;-1:-1:-1;7998:26:6;;-1:-1:-1;;;;;8027:23:6;;;;;-1:-1:-1;;;8027:23:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8027:23:6;-1:-1:-1;8097:9:6;;7998:52;;-1:-1:-1;8060:23:6;;-1:-1:-1;;;;;8086:21:6;;;;;-1:-1:-1;;;8086:21:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8086:21:6;;8060:47;;8122:8;8117:300;8140:9;;8136:13;;;;8117:300;;;8170:16;8189:2;8192:1;8189:5;;;;;;;;-1:-1:-1;;;8189:5:6;;;;;;;;;;;;;;;;;;;8170:24;;8220:1;:6;;;8208;8215:1;8208:9;;;;;;;;-1:-1:-1;;;8208:9:6;;;;;;;;;;;;;;:18;;;;;8257:1;:12;;;8240:11;8252:1;8240:14;;;;;;;;-1:-1:-1;;;8240:14:6;;;;;;;;;;;;;;:29;;;;;8307:1;:18;;;8283;8302:1;8283:21;;;;;;;;-1:-1:-1;;;8283:21:6;;;;;;;;;;;;;;;;;;:42;8355:11;;;;8339:13;;8355:11;;;;;8339:10;;:13;;;;;;;;-1:-1:-1;;;8339:13:6;;;;;;;;;;;;;;:27;;;;;;;;;;;8395:1;:11;;;;;;;;;;;;8380:9;8390:1;8380:12;;;;;;;;-1:-1:-1;;;8380:12:6;;;;;;;;;:26;;;:12;;;;;;;;;;;:26;-1:-1:-1;8151:3:6;;;;:::i;:::-;;;;8117:300;;;-1:-1:-1;8434:6:6;;8442:11;;-1:-1:-1;8455:18:6;;-1:-1:-1;8442:11:6;-1:-1:-1;8434:6:6;;-1:-1:-1;7597:907:6;-1:-1:-1;;;7597:907:6:o;8510:358::-;8605:17;:15;:17::i;:::-;8651:74;;;;;;;;;;;;;;;;;;;;;;;;8701:15;8651:74;;;;;8632:16;8651:74;;;;8743:7;:14;3149:3;-1:-1:-1;8735:61:6;;;;-1:-1:-1;;;8735:61:6;;23103:2:8;8735:61:6;;;23085:21:8;23142:2;23122:18;;;23115:30;-1:-1:-1;;;23161:18:8;;;23154:46;23217:18;;8735:61:6;23075:166:8;8735:61:6;8806:7;:18;;;;;;;;;;;;;;-1:-1:-1;8834:18:6;;;:12;8806:18;8834;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8834:27:6;;;;;;;;;;;;;;;-1:-1:-1;;8510:358:6:o;2332:390:7:-;2512:6;2534:77;2548:17;2567:5;2574:4;2580:10;2592:8;2602:2;2606:4;;2534:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;2621:46;2633:17;2652:10;2664:2;2621:11;:46::i;:::-;-1:-1:-1;;;;2332:390:7;;;;;;;;:::o;4500:1030::-;4603:11;4656:9;4648:18;;;;;;-1:-1:-1;;;4648:18:7;;;;;;;;;4627:94;;;;;;10133:19:8;;;;4677:24:7;;;;-1:-1:-1;;;;;;4669:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;4627:94:7;;;-1:-1:-1;;4627:94:7;;;;;;;;;4617:105;;4627:94;4617:105;;;;4772:1;4736:26;;;;;;;;;:33;4617:105;;-1:-1:-1;4736:37:7;4732:549;;4794:8;4789:482;4812:21;:26;;;;;;;;;;:33;4808:37;;;;4789:482;;;4870:9;4882:26;;;;;;;;;;:29;;;;;;;;;;-1:-1:-1;;;4882:29:7;;;;;;;;;;;;;;;;;4870:41;;4963:9;4933:39;;;;;;-1:-1:-1;;;4933:39:7;;;;;;;;;:13;4947:1;4933:16;;;;;;-1:-1:-1;;;4933:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;:39;;;;;;-1:-1:-1;;;4933:39:7;;;;;;;;;;4929:53;;4974:8;;;4929:53;5032:7;5004:13;5018:1;5004:16;;;;;;-1:-1:-1;;;5004:16:7;;;;;;;;;;;;;;;;;;;:24;;;:35;5000:49;;5041:8;;;5000:49;5107:15;-1:-1:-1;;;;;5071:51:7;:13;5085:1;5071:16;;;;;;-1:-1:-1;;;5071:16:7;;;;;;;;;;;;;;;;;;;;;;:32;;;;-1:-1:-1;;;;;5071:32:7;:51;5067:65;;5124:8;;;5067:65;5250:7;;;4500:1030;;;:::o;4789:482::-;4847:3;;;;:::i;:::-;;;;4789:482;;;;4732:549;5290:22;5315:49;;;;;;;;5328:9;5315:49;;;;;;-1:-1:-1;;;5315:49:7;;;;;;;;;;;-1:-1:-1;;;;;5315:49:7;;;;;;;;;;;;;;;;;-1:-1:-1;5374:26:7;;;;;;;;;5406:13;:20;;5374:53;;;;;;;;;;;;;;;;;;;;5437:22;;;;;;;;;;;;;;;;;;;;;5290:74;;-1:-1:-1;5290:74:7;;5437:22;;;;;-1:-1:-1;;5437:22:7;;;;;;;;;-1:-1:-1;;;5437:22:7;;;;;;;;;;;;;-1:-1:-1;5437:22:7;;;;;;-1:-1:-1;;;;;5437:22:7;;;;;-1:-1:-1;;;;;;5437:22:7;;;;;;;;;;;;;;;;5474:49;;;;;5487:9;;5498:15;;5515:7;;5474:49;:::i;:::-;;;;;;;;4500:1030;;;;;:::o;16280:704:6:-;16418:10;16427:1;16418:6;:10;:::i;:::-;16398:30;;;;16390:72;;;;-1:-1:-1;;;16390:72:6;;27699:2:8;16390:72:6;;;27681:21:8;27738:2;27718:18;;;27711:30;27777:31;27757:18;;;27750:59;27826:18;;16390:72:6;27671:179:8;16390:72:6;16472:9;16484:26;16504:4;16491:18;;;;;;9638:19:8;;9682:2;9673:12;;9628:63;16491:18:6;;;;-1:-1:-1;;16491:18:6;;;;;;;;;;16484:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16472:38;-1:-1:-1;16536:14:6;16549:1;16536:10;:14;:::i;:::-;16524:26;;:8;:26;;;16520:107;;;-1:-1:-1;16612:4:6;16520:107;16641:7;16636:276;16658:10;16667:1;16658:6;:10;:::i;:::-;16654:14;;:1;:14;;;16636:276;;;16705:4;16694:15;;;16693:25;16689:185;;;16742:37;16762:9;;16772:1;16762:12;;;;;;;-1:-1:-1;;;16762:12:6;;;;;;;;;;;;;;;16776:1;16749:29;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;16749:29:6;;;;-1:-1:-1;;16749:29:6;;;;;;;;;;16742:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16738:41;;16689:185;;;16822:37;16842:1;16845:9;;16855:1;16845:12;;;;;;;-1:-1:-1;;;16845:12:6;;;;;;;;;;;;;;;16829:29;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;16829:29:6;;;;-1:-1:-1;;16829:29:6;;;;;;;;;;16822:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16818:41;;16689:185;16900:1;16887:14;;;;;;;16670:3;;;;;:::i;:::-;;;;16636:276;;;;16937:1;16929:4;:9;16921:40;;;;-1:-1:-1;;;16921:40:6;;26594:2:8;16921:40:6;;;26576:21:8;26633:2;26613:18;;;26606:30;-1:-1:-1;;;26652:18:8;;;26645:48;26710:18;;16921:40:6;26566:168:8;16921:40:6;16971:7;16280:704;;;;;:::o;12941:1287::-;13194:7;13203;13222:12;13260:8;13285:14;13278:22;;-1:-1:-1;;;;;13270:31:6;;13303:4;13247:61;;;;;;;;;10133:19:8;;;10177:2;10168:12;;10161:28;;;;10214:2;10205:12;;10198:28;10251:2;10242:12;;10123:137;13247:61:6;;;;-1:-1:-1;;13247:61:6;;;;;;;;;13237:72;;13247:61;13237:72;;;;;-1:-1:-1;13319:18:6;13381:22;13364:13;:39;;;;;;-1:-1:-1;;;13364:39:6;;;;;;;;;;13360:827;;;13442:62;;;13463:22;;;;-1:-1:-1;;;;;;13455:31:6;13442:62;;;9853:19:8;9888:12;;;9881:28;;;9925:12;13442:62:6;;;;;;;;;;;;;13432:73;;;;;;13419:86;;13360:827;;;13543:21;13526:13;:38;;;;;;-1:-1:-1;;;13526:38:6;;;;;;;;;;13522:665;;;13603:4;;13593:15;;;;;;;:::i;:::-;;;;;;;;13580:28;;13522:665;;;13646:34;13629:13;:51;;;;;;-1:-1:-1;;;13629:51:6;;;;;;;;;;13625:562;;;13719:45;;;-1:-1:-1;;;;;;13740:22:6;;;;13732:31;13719:45;;;9638:19:8;9673:12;13719:45:6;9628:63:8;13625:562:6;13796:19;13864:13;13856:22;;;;;;-1:-1:-1;;;13856:22:6;;;;;;;;;13913:9;13905:18;;;;;;-1:-1:-1;;;13905:18:6;;;;;;;;;13897:27;;13958:15;13950:24;;-1:-1:-1;;;;;13942:33:6;;14001:7;13993:16;;14043:4;14035:13;;-1:-1:-1;;;;;14027:22:6;;14075:6;14067:15;;14100:4;;13818:300;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;13796:322;;14168:6;14155:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;14145:31;;;;;;14132:44;;13625:562;;14204:4;;;;-1:-1:-1;12941:1287:6;-1:-1:-1;;;;;;;;;;;;12941:1287:6:o;20416:1745::-;20562:6;;20599:41;;20616:24;20599:41;:14;:41;:::i;:::-;20584:56;-1:-1:-1;20650:11:6;20670:41;;20687:24;20670:41;:14;:41;:::i;:::-;20722:19;20744:18;;;:12;:18;;;;;20780:9;;20650:62;;-1:-1:-1;20744:18:6;20772:41;;;;-1:-1:-1;;;20772:41:6;;25547:2:8;20772:41:6;;;25529:21:8;25586:2;25566:18;;;25559:30;-1:-1:-1;;;25605:18:8;;;25598:45;25660:18;;20772:41:6;25519:165:8;20772:41:6;20828:8;20823:1297;20846:9;;20842:13;;;;20823:1297;;;20876:16;20895:2;20898:1;20895:5;;;;;;;;-1:-1:-1;;;20895:5:6;;;;;;;;;;;;;;;;;;;20876:24;;20914:32;20972:1;:12;;;20986:4;20959:32;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;20959:32:6;;;;;;;;;;;;;20949:43;;;;;;20914:78;;21032:24;21010:1;:18;;;:46;21006:134;;21117:8;;;;21006:134;21177:10;21161:1;:12;;;:26;21153:62;;;;-1:-1:-1;;;21153:62:6;;25195:2:8;21153:62:6;;;25177:21:8;25234:2;25214:18;;;25207:30;25273:25;25253:18;;;25246:53;25316:18;;21153:62:6;25167:173:8;21153:62:6;21250:21;21233:13;:38;;;;;;-1:-1:-1;;;21233:38:6;;;;;;;;;;21229:315;;21308:11;;;;21291:14;;21333:2;;21308:22;;;21322:8;21308:22;;:11;;:22;:::i;:::-;:27;;;;:::i;:::-;21291:44;;21372:5;21361:16;;:7;:16;;;21353:55;;;;-1:-1:-1;;;21353:55:6;;26239:2:8;21353:55:6;;;26221:21:8;26278:2;26258:18;;;26251:30;26317:28;26297:18;;;26290:56;26363:18;;21353:55:6;26211:176:8;21353:55:6;21448:15;;;21426:19;21448:15;;;:6;:15;;;;;;;;;;;21489:22;;;-1:-1:-1;21489:22:6;21481:48;;;;-1:-1:-1;;;21481:48:6;;23448:2:8;21481:48:6;;;23430:21:8;23487:2;23467:18;;;23460:30;-1:-1:-1;;;23506:18:8;;;23499:43;23559:18;;21481:48:6;23420:163:8;21481:48:6;21229:315;;;21566:11;;;;;;;;;21565:12;21557:49;;;;-1:-1:-1;;;21557:49:6;;24842:2:8;21557:49:6;;;24824:21:8;24881:2;24861:18;;;24854:30;24920:26;24900:18;;;24893:54;24964:18;;21557:49:6;24814:174:8;21557:49:6;22055:11;;;;22039:28;;22055:11;;22039:15;:28::i;:::-;22031:56;;;;-1:-1:-1;;;22031:56:6;;24149:2:8;22031:56:6;;;24131:21:8;24188:2;24168:18;;;24161:30;-1:-1:-1;;;24207:18:8;;;24200:45;24262:18;;22031:56:6;24121:165:8;22031:56:6;22108:1;22101:8;;;;;;;;;;20823:1297;20857:3;;;;:::i;:::-;;;;20823:1297;;;-1:-1:-1;22129:25:6;;-1:-1:-1;;;22129:25:6;;29491:2:8;22129:25:6;;;29473:21:8;29530:2;29510:18;;;29503:30;-1:-1:-1;;;29549:18:8;;;29542:45;29604:18;;22129:25:6;29463:165:8;22167:614:6;22280:19;22302:24;;;:12;:24;;;;;22344:9;;22336:45;;;;-1:-1:-1;;;22336:45:6;;28401:2:8;22336:45:6;;;28383:21:8;28440:2;28420:18;;;28413:30;-1:-1:-1;;;28459:18:8;;;28452:49;28518:18;;22336:45:6;28373:169:8;22336:45:6;22399:9;;:23;;;-1:-1:-1;22391:55:6;;;;-1:-1:-1;;;22391:55:6;;29835:2:8;22391:55:6;;;29817:21:8;29874:2;29854:18;;;29847:30;-1:-1:-1;;;29893:18:8;;;29886:49;29952:18;;22391:55:6;29807:169:8;22391:55:6;22456:16;22475:2;22478:11;22475:15;;;;;;;;-1:-1:-1;;;22475:15:6;;;;;;;;;;;;;;;;;;;;;;22508:11;;;;22475:15;;-1:-1:-1;22508:11:6;;22500:52;;;;-1:-1:-1;;;22500:52:6;;26941:2:8;22500:52:6;;;26923:21:8;26980:2;26960:18;;;26953:30;27019:26;26999:18;;;26992:54;27063:18;;22500:52:6;26913:174:8;22500:52:6;22583:21;22566:13;:38;;;;;;-1:-1:-1;;;22566:38:6;;;;;;;;;;22562:185;;22642:11;;;;22620:12;;22668:2;;22635:30;;;22657:8;22635:30;;22642:11;;22635:30;:::i;:::-;:35;;;;:::i;:::-;22620:50;;22684:22;22700:5;22684:15;:22::i;:::-;22720:16;:14;:16::i;:::-;22562:185;;22756:11;;:18;;-1:-1:-1;;22756:18:6;;;;;-1:-1:-1;;;;22167:614:6:o;9045:596:7:-;9106:16;9132;9146:2;9132:4;:16;:::i;:::-;9106:43;-1:-1:-1;9185:4:7;9167:14;9106:43;9179:2;9167:14;:::i;:::-;:29;;;9159:78;;;;-1:-1:-1;;;9159:78:7;;;;;;;:::i;:::-;9252:8;9247:388;9270:9;9266:13;;:1;:13;;;9247:388;;;9300:19;9340:37;9350:4;;9355:6;:1;9359:2;9355:6;:::i;:::-;9350:26;;;9364:6;:1;9368:2;9364:6;:::i;:::-;:11;;9373:2;9364:11;:::i;:::-;9350:26;;;;;;;;;:::i;:::-;9340:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9340:9:7;;-1:-1:-1;;;9340:37:7:i;:::-;9322:57;;;;;;-1:-1:-1;;;9322:57:7;;;;;;;;;9300:79;-1:-1:-1;9393:23:7;9435:42;9445:4;;9450:6;:1;9454:2;9450:6;:::i;:::-;:11;;9459:2;9450:11;:::i;:::-;9445:31;;;9464:6;:1;9468:2;9464:6;:::i;:::-;:11;;9473:2;9464:11;:::i;9435:42::-;9419:60;;9393:86;;9493:15;9519:42;9529:4;;9534:1;9538:2;9534:6;;;;:::i;:::-;:11;;9543:2;9534:11;:::i;:::-;9529:31;;;9548:6;:1;9552:2;9548:6;:::i;:::-;:11;;9557:2;9548:11;:::i;9519:42::-;9511:51;-1:-1:-1;9576:48:7;9588:9;9599:15;9511:51;9576:11;:48::i;:::-;9247:388;;;9281:3;;;;;:::i;:::-;;;;9247:388;;5536:1613;5641:11;5694:9;5686:18;;;;;;-1:-1:-1;;;5686:18:7;;;;;;;;;5665:94;;;;;;10133:19:8;;;;5715:24:7;;;;-1:-1:-1;;;;;;5707:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;5665:94:7;;;-1:-1:-1;;5665:94:7;;;;;;;;;5655:105;;5665:94;5655:105;;;;5774:21;:26;;;;;;;;;:33;5655:105;;-1:-1:-1;5770:75:7;;5828:7;5536:1613;;;:::o;5770:75::-;5859:8;5854:1224;5877:21;:26;;;;;;;;;;:33;5873:37;;;;5854:1224;;;5931:9;5943:26;;;;;;;;;;:29;;;;;;;;;;-1:-1:-1;;;5943:29:7;;;;;;;;;;;;;;;;;5931:41;;6020:9;5990:39;;;;;;-1:-1:-1;;;5990:39:7;;;;;;;;;:13;6004:1;5990:16;;;;;;-1:-1:-1;;;5990:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;:39;;;;;;-1:-1:-1;;;5990:39:7;;;;;;;;;;5986:53;;6031:8;;;5986:53;6085:7;6057:13;6071:1;6057:16;;;;;;-1:-1:-1;;;6057:16:7;;;;;;;;;;;;;;;;;;;:24;;;:35;6053:49;;6094:8;;;6053:49;6156:15;-1:-1:-1;;;;;6120:51:7;:13;6134:1;6120:16;;;;;;-1:-1:-1;;;6120:16:7;;;;;;;;;;;;;;;;;;;;;;:32;;;;-1:-1:-1;;;;;6120:32:7;:51;6116:65;;6173:8;;;6116:65;6275:1;6252:20;;6226:23;;6252:24;;;:::i;:::-;6226:50;;6309:13;6323:15;6309:30;;;;;;-1:-1:-1;;;6309:30:7;;;;;;;;;;;;;;;;;;;6290:13;6304:1;6290:16;;;;;;-1:-1:-1;;;6290:16:7;;;;;;;;;;;;;;;;;:49;;:16;;;;;:49;;:16;;:49;;;:16;;-1:-1:-1;;6290:49:7;;;;;;;;;-1:-1:-1;;;6290:49:7;;;;;;;;;;;;;-1:-1:-1;6290:49:7;;;;-1:-1:-1;;;;;;6290:49:7;;;;;;-1:-1:-1;;;;;6290:49:7;;;;;;;-1:-1:-1;6290:49:7;;;;;;;;6413:16;;-1:-1:-1;;;6427:1:7;;6413:16;;;;-1:-1:-1;;;6413:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;6405:35;;;;;;-1:-1:-1;;;6405:35:7;;;;;;;;;6459:13;:16;;6473:1;;6459:16;;;;-1:-1:-1;;;6459:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;6459:32:7;6451:41;;-1:-1:-1;;;;;6443:50:7;;6503:13;6517:1;6503:16;;;;;;-1:-1:-1;;;6503:16:7;;;;;;;;;;;;;;;;;;;:24;;;6495:33;;6384:145;;;;;;;;;10133:19:8;;;10177:2;10168:12;;10161:28;;;;10214:2;10205:12;;10198:28;10251:2;10242:12;;10123:137;6384:145:7;;;;;;;;;;;;;6374:156;;;;;;6353:177;;6544:13;:19;;;;;-1:-1:-1;;;6544:19:7;;;;;;;;;;;;;;;;;-1:-1:-1;;6544:19:7;;;;;;;;;-1:-1:-1;;;;;;6544:19:7;;;;;;;;;;6577:244;6600:21;:33;;;;;;;;;;:40;6596:44;;;;6577:244;;;6709:15;6669:21;:33;6691:10;6669:33;;;;;;;;;;;6703:1;6669:36;;;;;;;;-1:-1:-1;;;6669:36:7;;;;;;;;;;;;;;;;;:55;6665:142;;;6787:1;6748:21;:33;6770:10;6748:33;;;;;;;;;;;6782:1;6748:36;;;;;;;;-1:-1:-1;;;6748:36:7;;;;;;;;;;;;;;;;;;:40;6665:142;6642:3;;;;:::i;:::-;;;;6577:244;;;-1:-1:-1;6866:21:7;:26;;;;;;;;;;6893:33;;:37;;6929:1;;6893:37;:::i;:::-;6866:65;;;;;;-1:-1:-1;;;6866:65:7;;;;;;;;;;;;;;;;;6834:21;:26;6856:3;6834:26;;;;;;;;;;;6861:1;6834:29;;;;;;-1:-1:-1;;;6834:29:7;;;;;;;;;;;;;;;;:97;;;;6945:21;:26;6967:3;6945:26;;;;;;;;;;;:32;;;;;-1:-1:-1;;;6945:32:7;;;;;;;;;;;;;;;;;;;;;;;;;;6996:51;7011:9;7022:15;7039:7;6996:51;;;;;;;;:::i;:::-;;;;;;;;7061:7;;;;;5536:1613;;;:::o;5854:1224::-;5912:3;;;;:::i;:::-;;;;5854:1224;;;;7092:50;7106:9;7117:15;7134:7;7092:50;;;;;;;;:::i;:::-;;;;;;;;5536:1613;;;;:::o;9647:600::-;9710:16;9736;9750:2;9736:4;:16;:::i;:::-;9710:43;-1:-1:-1;9789:4:7;9771:14;9710:43;9783:2;9771:14;:::i;:::-;:29;;;9763:78;;;;-1:-1:-1;;;9763:78:7;;;;;;;:::i;:::-;9856:8;9851:390;9874:9;9870:13;;:1;:13;;;9851:390;;;9904:19;9944:37;9954:4;;9959:6;:1;9963:2;9959:6;:::i;9944:37::-;9926:57;;;;;;-1:-1:-1;;;9926:57:7;;;;;;;;;9904:79;-1:-1:-1;9997:23:7;10039:42;10049:4;;10054:6;:1;10058:2;10054:6;:::i;10039:42::-;10023:60;;9997:86;;10097:15;10123:42;10133:4;;10138:1;10142:2;10138:6;;;;:::i;10123:42::-;10115:51;-1:-1:-1;10180:50:7;10194:9;10205:15;10115:51;10180:13;:50::i;:::-;9851:390;;;9885:3;;;;;:::i;:::-;;;;9851:390;;10879:1973:6;11051:15;11038:9;:28;;;;;;-1:-1:-1;;;11038:28:6;;;;;;;;;;11034:1812;;;11086:46;;-1:-1:-1;;;11086:46:6;;-1:-1:-1;;;;;13979:32:8;;;11086:46:6;;;13961:51:8;14028:18;;;14021:34;;;11086:32:6;;;;;13934:18:8;;11086:46:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11086:46:6;;;;;;;;-1:-1:-1;;11086:46:6;;;;;;;;;;;;:::i;:::-;;;11082:695;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;11567:77;11586:9;11597:15;11614:7;11623:4;11629:6;11637;11567:77;;;;;;;;;;;:::i;:::-;;;;;;;;11511:148;11034:1812;;11082:695;;;11689:73;11708:9;11719:15;11736:7;11745:4;11751:6;11689:73;;;;;;;;;;:::i;:::-;;;;;;;;11034:1812;;11082:695;11177:7;11173:230;;;11208:48;11220:9;11231:15;11248:7;11208:11;:48::i;:::-;11283:73;11306:9;11317:15;11334:7;11343:4;11349:6;11283:73;;;;;;;;;;:::i;11173:230::-;11425:70;11445:9;11456:15;11473:7;11482:4;11488:6;11425:70;;;;;;;;;;:::i;11034:1812::-;11810:16;11797:9;:29;;;;;;-1:-1:-1;;;11797:29:6;;;;;;;;;;11793:1053;;;11846:77;;-1:-1:-1;;;11846:77:6;;-1:-1:-1;;;;;11846:41:6;;;;;:77;;11896:4;;11903;;11909:7;;11918:4;;11846:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11842:459;;;;:::i;:::-;11946:73;11969:9;11980:15;11997:7;12006:4;12012:6;11946:73;;;;;;;;;;:::i;11793:1053::-;12334:17;12321:9;:30;;;;;;-1:-1:-1;;;12321:30:6;;;;;;;;;;12317:529;;;12371:86;;-1:-1:-1;;;12371:86:6;;-1:-1:-1;;;;;12371:42:6;;;;;:86;;12422:4;;12429;;12435:7;;12444:6;;12452:4;;12371:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12367:469;;;;:::i;:::-;12481:73;12504:9;12515:15;12532:7;12541:4;12547:6;12481:73;;;;;;;;;;:::i;:::-;;;;;;;;10879:1973;;;;;;:::o;8286:753:7:-;8359:16;8385;8399:2;8385:4;:16;:::i;:::-;8359:43;-1:-1:-1;8438:4:7;8420:14;8359:43;8432:2;8420:14;:::i;:::-;:29;;;8412:78;;;;-1:-1:-1;;;8412:78:7;;;;;;;:::i;:::-;8500:38;8560:9;8541:29;;-1:-1:-1;;;;;8541:29:7;;;;;-1:-1:-1;;;8541:29:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;8541:29:7;;-1:-1:-1;;8541:29:7;;;;;;;;;;;;8500:70;;8585:8;8580:411;8603:9;8599:13;;:1;:13;;;8580:411;;;8633:19;8673:37;8683:4;;8688:6;:1;8692:2;8688:6;:::i;8673:37::-;8655:57;;;;;;-1:-1:-1;;;8655:57:7;;;;;;;;;8633:79;-1:-1:-1;8726:23:7;8768:42;8778:4;;8783:6;:1;8787:2;8783:6;:::i;8768:42::-;8752:60;;8726:86;;8826:15;8852:42;8862:4;;8867:1;8871:2;8867:6;;;;:::i;8852:42::-;8844:51;;8826:69;;8931:49;;;;;;;;8944:9;8931:49;;;;;;-1:-1:-1;;;8931:49:7;;;;;;;;;;;;;8955:15;-1:-1:-1;;;;;8931:49:7;;;;;8972:7;8931:49;;;8909:16;8926:1;8909:19;;;;;;;;-1:-1:-1;;;8909:19:7;;;;;;;;;;;;;;:71;;;;8580:411;;;8614:3;;;;;:::i;:::-;;;;8580:411;;;;9000:32;9015:16;9000:14;:32::i;9374:975:6:-;9449:4;;9485:33;3043:5;9485:15;:33;:::i;:::-;9539:15;;9465:54;;-1:-1:-1;9539:15:6;;;;9533:21;;;;9529:101;;;9583:1;9570:10;:14;9598:15;:21;;-1:-1:-1;;9598:21:6;;;;;;;9529:101;9665:10;;9656:6;9643:10;;:19;;;;:::i;:::-;:32;9639:148;;;9721:10;;9733;;9696:54;;;31801:25:8;;;31857:2;31842:18;;31835:34;;;;31885:18;;31878:34;-1:-1:-1;;;;;31948:32:8;;31943:2;31928:18;;31921:60;9696:54:6;;31788:3:8;31773:19;9696:54:6;;;;;;;;9771:5;9764:12;;;;;9639:148;9824:6;9800:21;:30;9796:145;;;9851:53;;;31414:25:8;;;9876:21:6;31470:2:8;31455:18;;31448:34;-1:-1:-1;;;;;31518:32:8;;31498:18;;;31491:60;;;;9851:53:6;;31402:2:8;31387:18;9851:53:6;31369:188:8;9796:145:6;9964:6;9950:10;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;9998:29:6;;9981:12;;-1:-1:-1;;;;;9998:9:6;;;10016:6;;9981:12;9998:29;9981:12;9998:29;10016:6;9998:9;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9980:47;;;10156:7;10151:130;;10193:6;10179:10;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;10218:26:6;;-1:-1:-1;;;;;11877:32:8;;11859:51;;10218:26:6;;11847:2:8;11832:18;10218:26:6;;;;;;;10265:5;10258:12;;;;;;10151:130;10296:25;;;30559::8;;;-1:-1:-1;;;;;30620:32:8;;30615:2;30600:18;;30593:60;10296:25:6;;30532:18:8;10296:25:6;;;;;;;-1:-1:-1;10338:4:6;;9374:975;-1:-1:-1;;;;9374:975:6:o;10355:295::-;10412:17;;10393:4;;-1:-1:-1;;;;;10412:17:6;10408:118;;10464:25;;;;;;;-1:-1:-1;10510:5:6;;10355:295::o;10408:118::-;10540:8;:6;:8::i;:::-;10535:88;;10569:17;;;;;;;-1:-1:-1;10607:5:6;;10355:295::o;10656:217::-;10748:17;;-1:-1:-1;;;;;10748:17:6;:31;10740:78;;;;-1:-1:-1;;;10740:78:6;;29088:2:8;10740:78:6;;;29070:21:8;29127:2;29107:18;;;29100:30;29166:34;29146:18;;;29139:62;-1:-1:-1;;;29217:18:8;;;29210:32;29259:19;;10740:78:6;29060:224:8;10740:78:6;10828:17;:38;;-1:-1:-1;;;;;;10828:38:6;-1:-1:-1;;;;;10828:38:6;;;;;;;;;;10656:217::o;17439:2529::-;17485:18;17536:15;17725:931;17746:7;:14;17732:28;;;;17725:931;;;17791:12;17806:7;17814:11;17806:20;;;;;;;;-1:-1:-1;;;17806:20:6;;;;;;;;;;;;;;;;;;;;;17862:18;;;:12;:18;;;;;;;17996:9;;17806:20;;-1:-1:-1;17862:18:6;17992:61;;18030:8;;;;17992:61;18498:16;18517:2;18520:1;18517:5;;;;;;-1:-1:-1;;;18517:5:6;;;;;;;;;;;;;;;;;18560:11;18517:5;;;;;18560:11;;;;18517:5;;-1:-1:-1;18560:36:6;-1:-1:-1;;18575:21:6;;18560:36;;:11;;:36;18556:80;;18616:5;;;;;18556:80;17725:931;;;;17762:13;;;;:::i;:::-;;;;17725:931;;;18815:16;;;18811:159;;18953:7;;17439:2529::o;18811:159::-;19090:8;19085:281;19108:11;19104:15;;:1;:15;;;19085:281;;;19140:12;19155:7;19163:1;19155:10;;;;;;;;-1:-1:-1;;;19155:10:6;;;;;;;;;;;;;;;;;;;;;19201:18;;;:12;:18;;;;;;19155:10;;-1:-1:-1;19201:18:6;19233:84;19256:9;;19252:13;;;;19233:84;;;19297:2;19300:1;19297:5;;;;;;;;-1:-1:-1;;;19297:5:6;;;;;;;;;;;;;;;;;;;;;19290:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19290:12:6;;;19267:3;;;;:::i;:::-;;;;19233:84;;;-1:-1:-1;19337:18:6;;;;:12;:18;;;;;19330:25;;;:::i;:::-;19085:281;;19121:3;;;;;:::i;:::-;;;;19085:281;;;-1:-1:-1;19571:7:6;:14;19612:11;19596:134;19629:3;19625:7;;:1;:7;;;19596:134;;;19699:7;19707:1;19699:10;;;;;;;;-1:-1:-1;;;19699:10:6;;;;;;;;;;;;;;;;;19672:7;19684:11;19680:1;:15;19672:24;;;;;;;;-1:-1:-1;;;19672:24:6;;;;;;;;;;;;;;;;;;:37;19634:3;;;;:::i;:::-;;;;19596:134;;;;19744:8;19739:79;19762:11;19758:15;;:1;:15;;;19739:79;;;19794:7;:13;;;;;-1:-1:-1;;;19794:13:6;;;;;;;;;;;;;;;;;;;;;;;;;;19775:3;;;;;:::i;:::-;;;;19739:79;;19974:156;20041:4;3001:2;20068:36;20094:10;20075:15;20068:36;:::i;:::-;:55;;;;19974:156;-1:-1:-1;;19974:156:6:o;24221:210::-;24289:13;;;24279:7;24289:13;;;:6;:13;;;;;;;;24316:6;24312:61;;24338:12;:24;;;;;;;-1:-1:-1;24338:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24312:61;24397:13;;;;;;;;;:6;:13;;;;;:21;;-1:-1:-1;;24397:21:6;24417:1;24413:5;;;24397:21;;;;;;;;24221:210::o;23041:1174::-;23086:11;23100:42;3001:2;23107:15;23100:42;:::i;:::-;23086:56;-1:-1:-1;23152:25:6;23180:15;;23187:8;23180:15;23086:56;23180:15;:::i;:::-;23152:43;;23205:15;23259:2;23238:23;;:18;:23;;;23234:88;;;23288:23;23309:2;23288:18;:23;:::i;:::-;23277:34;;23234:88;23376:12;:19;23331:29;;-1:-1:-1;;;;;23363:33:6;;;;;-1:-1:-1;;;23363:33:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23363:33:6;;23331:65;;23406:22;23447:7;23442:341;23464:12;:19;23460:23;;;;23442:341;;;23504:12;23519;23532:1;23519:15;;;;;;;;-1:-1:-1;;;23519:15:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23552:16:6;;;;23548:225;;;23595:13;;;;;;;:6;:13;;;;;23588:20;;-1:-1:-1;;23588:20:6;;;23548:225;;;23680:5;23647:13;23661:15;23647:30;;;;;;;;-1:-1:-1;;;23647:30:6;;;;;;;;;:38;;;;:30;;;;;;;;;;;:38;23727:17;;;;;23548:225;-1:-1:-1;23485:3:6;;;;:::i;:::-;;;;23442:341;;;;23999:28;24043:15;24030:29;;-1:-1:-1;;;;;24030:29:6;;;;;-1:-1:-1;;;24030:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24030:29:6;;23999:60;;24074:7;24069:103;24091:15;24087:19;;:1;:19;;;24069:103;;;24145:13;24159:1;24145:16;;;;;;;;-1:-1:-1;;;24145:16:6;;;;;;;;;;;;;;;24127:12;24140:1;24127:15;;;;;;;;-1:-1:-1;;;24127:15:6;;;;;;;;;:34;;;;:15;;;;;;;;;;;:34;24108:3;;;;:::i;:::-;;;;24069:103;;;-1:-1:-1;24181:27:6;;;;:12;;:27;;;;;:::i;:::-;;23041:1174;;;;;;:::o;10253:408:7:-;10311:7;10333:1;:8;10345:1;10333:13;10329:63;;;-1:-1:-1;10377:3:7;;10253:408;-1:-1:-1;10253:408:7:o;10329:63::-;10421:2;10409:1;:8;:14;;10401:47;;;;-1:-1:-1;;;10401:47:7;;24493:2:8;10401:47:7;;;24475:21:8;24532:2;24512:18;;;24505:30;-1:-1:-1;;;24551:18:8;;;24544:50;24611:18;;10401:47:7;24465:170:8;10401:47:7;10458:9;10477;10501:1;:8;10496:2;:13;;;;:::i;:::-;10495:19;;10513:1;10495:19;:::i;:::-;10565:2;10558:10;;;;10552:17;10587:11;;10616;;;;10253:408;-1:-1:-1;;;10253:408:7:o;7155:1125::-;7243:8;7238:431;7261:13;:20;7257:24;;;;7238:431;;;7302:19;7324:13;7338:1;7324:16;;;;;;;;-1:-1:-1;;;7324:16:7;;;;;;;;;;;;;;;;;;;;;:26;;7390:16;;7324:26;;;;;-1:-1:-1;7324:26:7;7390:16;;;;;;;;-1:-1:-1;;;7390:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;7390:32:7;7364:58;;7436:15;7454:13;7468:1;7454:16;;;;;;;;-1:-1:-1;;;7454:16:7;;;;;;;;;;;;;;;;;;;:24;;;7436:42;;7492:11;7545:9;7537:18;;;;;;-1:-1:-1;;;7537:18:7;;;;;;;;;7516:94;;;;;;10133:19:8;;;;7566:24:7;;;;-1:-1:-1;;;;;;7558:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;7516:94:7;;;-1:-1:-1;;7516:94:7;;;;;;;;;7506:105;;7516:94;7506:105;;;;7632:21;:26;;;;;;;;;;7506:105;;-1:-1:-1;7625:33:7;;;:::i;:::-;7238:431;;;;7283:3;;;;;:::i;:::-;;;;7238:431;;;-1:-1:-1;7678:20:7;7685:13;;7678:20;:::i;:::-;7713:8;7708:566;7731:16;:23;7727:1;:27;;;7708:566;;;7775:19;7797:16;7814:1;7797:19;;;;;;;;-1:-1:-1;;;7797:19:7;;;;;;;;;;;;;;;:29;;;7775:51;;7840:23;7866:16;7883:1;7866:19;;;;;;;;-1:-1:-1;;;7866:19:7;;;;;;;;;;;;;;;:35;;;7840:61;;7915:15;7933:16;7950:1;7933:19;;;;;;;;-1:-1:-1;;;7933:19:7;;;;;;;;;;;;;;;:27;;;7915:45;;7974:11;8027:9;8019:18;;;;;;-1:-1:-1;;;8019:18:7;;;;;;;;;7998:94;;;;;;10133:19:8;;;;8048:24:7;;;;-1:-1:-1;;;;;;8040:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;7998:94:7;;;;;;;;;;;;7988:105;;;;;;7974:119;;8107:21;8131:49;;;;;;;;8144:9;8131:49;;;;;;-1:-1:-1;;;8131:49:7;;;;;;;;;;;-1:-1:-1;;;;;8131:49:7;;;;;;;;;;;8194:13;:21;;;;;;;-1:-1:-1;8194:21:7;;;;;;;;;;;;;8107:73;;-1:-1:-1;8107:73:7;;8194:21;;;;-1:-1:-1;;8194:21:7;;;;;;;;;-1:-1:-1;;;8194:21:7;;;;;;;;;;;;;-1:-1:-1;8194:21:7;;;;;;;-1:-1:-1;;;;;8194:21:7;;;;;-1:-1:-1;;;;;;8194:21:7;;;;;;;;;;;;;;;;;8229:26;;;;;;;;;:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8261:1:7;;-1:-1:-1;7756:3:7;;-1:-1:-1;8261:1:7;;-1:-1:-1;7756:3:7;:::i;:::-;;;;7708:566;;;;7155:1125;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:134:8;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:395::-;216:8;226:6;280:3;273:4;265:6;261:17;257:27;247:2;;305:8;295;288:26;247:2;-1:-1:-1;335:20:8;;-1:-1:-1;;;;;367:30:8;;364:2;;;417:8;407;400:26;364:2;461:4;453:6;449:17;437:29;;521:3;514:4;504:6;501:1;497:14;489:6;485:27;481:38;478:47;475:2;;;538:1;535;528:12;475:2;237:311;;;;;:::o;553:375::-;604:8;614:6;668:3;661:4;653:6;649:17;645:27;635:2;;693:8;683;676:26;635:2;-1:-1:-1;723:20:8;;-1:-1:-1;;;;;755:30:8;;752:2;;;805:8;795;788:26;752:2;849:4;841:6;837:17;825:29;;901:3;894:4;885:6;877;873:19;869:30;866:39;863:2;;;918:1;915;908:12;933:154;1012:20;;1061:1;1051:12;;1041:2;;1077:1;1074;1067:12;1092:150;1167:20;;1216:1;1206:12;;1196:2;;1232:1;1229;1222:12;1247:163;1314:20;;1374:10;1363:22;;1353:33;;1343:2;;1400:1;1397;1390:12;1415:1378;1575:6;1583;1591;1599;1607;1615;1623;1631;1684:3;1672:9;1663:7;1659:23;1655:33;1652:2;;;1706:6;1698;1691:22;1652:2;1750:9;1737:23;1769:31;1794:5;1769:31;:::i;:::-;1819:5;-1:-1:-1;1876:2:8;1861:18;;1848:32;1889:33;1848:32;1889:33;:::i;:::-;1941:7;-1:-1:-1;1999:2:8;1984:18;;1971:32;-1:-1:-1;;;;;2052:14:8;;;2049:2;;;2084:6;2076;2069:22;2049:2;2128:70;2190:7;2181:6;2170:9;2166:22;2128:70;:::i;:::-;2217:8;;-1:-1:-1;2102:96:8;-1:-1:-1;2305:2:8;2290:18;;2277:32;;-1:-1:-1;2321:16:8;;;2318:2;;;2355:6;2347;2340:22;2318:2;2399:72;2463:7;2452:8;2441:9;2437:24;2399:72;:::i;:::-;2490:8;;-1:-1:-1;2373:98:8;-1:-1:-1;2578:3:8;2563:19;;2550:33;;-1:-1:-1;2595:16:8;;;2592:2;;;2629:6;2621;2614:22;2592:2;;2673:60;2725:7;2714:8;2703:9;2699:24;2673:60;:::i;:::-;1642:1151;;;;-1:-1:-1;1642:1151:8;;-1:-1:-1;1642:1151:8;;;;;;2752:8;-1:-1:-1;;;1642:1151:8:o;2798:774::-;2895:6;2903;2911;2919;2927;2980:3;2968:9;2959:7;2955:23;2951:33;2948:2;;;3002:6;2994;2987:22;2948:2;3046:9;3033:23;3065:31;3090:5;3065:31;:::i;:::-;3115:5;-1:-1:-1;3172:2:8;3157:18;;3144:32;3185:33;3144:32;3185:33;:::i;:::-;3237:7;-1:-1:-1;3291:2:8;3276:18;;3263:32;;-1:-1:-1;3346:2:8;3331:18;;3318:32;-1:-1:-1;;;;;3362:30:8;;3359:2;;;3410:6;3402;3395:22;3359:2;3454:58;3504:7;3495:6;3484:9;3480:22;3454:58;:::i;:::-;2938:634;;;;-1:-1:-1;2938:634:8;;-1:-1:-1;3531:8:8;;3428:84;2938:634;-1:-1:-1;;;2938:634:8:o;3577:843::-;3683:6;3691;3699;3707;3715;3723;3776:3;3764:9;3755:7;3751:23;3747:33;3744:2;;;3798:6;3790;3783:22;3744:2;3842:9;3829:23;3861:31;3886:5;3861:31;:::i;:::-;3911:5;-1:-1:-1;3968:2:8;3953:18;;3940:32;3981:33;3940:32;3981:33;:::i;:::-;4033:7;-1:-1:-1;4087:2:8;4072:18;;4059:32;;-1:-1:-1;4138:2:8;4123:18;;4110:32;;-1:-1:-1;4193:3:8;4178:19;;4165:33;-1:-1:-1;;;;;4210:30:8;;4207:2;;;4258:6;4250;4243:22;4207:2;4302:58;4352:7;4343:6;4332:9;4328:22;4302:58;:::i;:::-;3734:686;;;;-1:-1:-1;3734:686:8;;-1:-1:-1;3734:686:8;;4379:8;;3734:686;-1:-1:-1;;;3734:686:8:o;4425:1396::-;4641:6;4649;4657;4665;4673;4681;4689;4697;4705;4713;4721:7;4730;4784:3;4772:9;4763:7;4759:23;4755:33;4752:2;;;4806:6;4798;4791:22;4752:2;-1:-1:-1;;;;;4843:9:8;4830:23;4827:47;4824:2;;;4892:6;4884;4877:22;4824:2;4936:87;5015:7;5002:9;4989:23;4978:9;4974:39;4936:87;:::i;:::-;5042:8;;-1:-1:-1;5069:8:8;-1:-1:-1;5096:37:8;5129:2;5114:18;;5096:37;:::i;:::-;5086:47;;5180:2;5169:9;5165:18;5152:32;5142:42;;5203:49;5248:2;5237:9;5233:18;5203:49;:::i;:::-;5193:59;;5271:46;5312:3;5301:9;5297:19;5271:46;:::i;:::-;5261:56;;5336:39;5370:3;5359:9;5355:19;5336:39;:::i;:::-;5326:49;;5422:3;5411:9;5407:19;5394:33;5384:43;;5446:39;5480:3;5469:9;5465:19;5446:39;:::i;:::-;5436:49;;5532:3;5521:9;5517:19;5504:33;5494:43;;-1:-1:-1;;;;;5580:3:8;5569:9;5565:19;5552:33;5549:57;5546:2;;;5625:7;5616;5609:24;5546:2;5672:85;5749:7;5741:3;5730:9;5726:19;5713:33;5702:9;5698:49;5672:85;:::i;:::-;5777:9;5766:20;;5806:9;5795:20;;;;4742:1079;;;;;;;;;;;;;;:::o;5826:297::-;5893:6;5946:2;5934:9;5925:7;5921:23;5917:32;5914:2;;;5967:6;5959;5952:22;5914:2;6004:9;5998:16;6057:5;6050:13;6043:21;6036:5;6033:32;6023:2;;6084:6;6076;6069:22;6023:2;6112:5;5904:219;-1:-1:-1;;;5904:219:8:o;6128:190::-;6187:6;6240:2;6228:9;6219:7;6215:23;6211:32;6208:2;;;6261:6;6253;6246:22;6208:2;-1:-1:-1;6289:23:8;;6198:120;-1:-1:-1;6198:120:8:o;6323:194::-;6393:6;6446:2;6434:9;6425:7;6421:23;6417:32;6414:2;;;6467:6;6459;6452:22;6414:2;-1:-1:-1;6495:16:8;;6404:113;-1:-1:-1;6404:113:8:o;6522:326::-;6599:6;6607;6615;6668:2;6656:9;6647:7;6643:23;6639:32;6636:2;;;6689:6;6681;6674:22;6636:2;-1:-1:-1;;6717:23:8;;;6787:2;6772:18;;6759:32;;-1:-1:-1;6838:2:8;6823:18;;;6810:32;;6626:222;-1:-1:-1;6626:222:8:o;6853:255::-;6911:6;6964:2;6952:9;6943:7;6939:23;6935:32;6932:2;;;6985:6;6977;6970:22;6932:2;7029:9;7016:23;7048:30;7072:5;7048:30;:::i;7113:259::-;7182:6;7235:2;7223:9;7214:7;7210:23;7206:32;7203:2;;;7256:6;7248;7241:22;7203:2;7293:9;7287:16;7312:30;7336:5;7312:30;:::i;7377:450::-;7427:3;7465:5;7459:12;7492:6;7487:3;7480:19;7518:4;7547:2;7542:3;7538:12;7531:19;;7584:2;7577:5;7573:14;7605:3;7617:185;7631:6;7628:1;7625:13;7617:185;;;7706:13;;7699:21;7692:29;7680:42;;7742:12;;;;7777:15;;;;7653:1;7646:9;7617:185;;;-1:-1:-1;7818:3:8;;7435:392;-1:-1:-1;;;;;7435:392:8:o;7832:437::-;7885:3;7923:5;7917:12;7950:6;7945:3;7938:19;7976:4;8005:2;8000:3;7996:12;7989:19;;8042:2;8035:5;8031:14;8063:3;8075:169;8089:6;8086:1;8083:13;8075:169;;;8150:13;;8138:26;;8184:12;;;;8219:15;;;;8111:1;8104:9;8075:169;;8274:453;8326:3;8364:5;8358:12;8391:6;8386:3;8379:19;8417:4;8446:2;8441:3;8437:12;8430:19;;8483:2;8476:5;8472:14;8504:3;8516:186;8530:6;8527:1;8524:13;8516:186;;;8595:13;;8610:10;8591:30;8579:43;;8642:12;;;;8677:15;;;;8552:1;8545:9;8516:186;;8732:268;8820:6;8815:3;8808:19;8872:6;8865:5;8858:4;8853:3;8849:14;8836:43;-1:-1:-1;8790:3:8;8899:16;;;8917:4;8895:27;;;8888:40;;;;8982:2;8961:15;;;-1:-1:-1;;8957:29:8;8948:39;;;8944:50;;8798:202::o;9005:257::-;9046:3;9084:5;9078:12;9111:6;9106:3;9099:19;9127:63;9183:6;9176:4;9171:3;9167:14;9160:4;9153:5;9149:16;9127:63;:::i;:::-;9244:2;9223:15;-1:-1:-1;;9219:29:8;9210:39;;;;9251:4;9206:50;;9054:208;-1:-1:-1;;9054:208:8:o;9267:237::-;9348:1;9341:5;9338:12;9328:2;;9393:10;9388:3;9384:20;9381:1;9374:31;9428:4;9425:1;9418:15;9456:4;9453:1;9446:15;9328:2;9480:18;;9318:186::o;10265:676::-;10602:6;10597:3;10590:19;10639:6;10634:2;10629:3;10625:12;10618:28;10676:6;10671:2;10666:3;10662:12;10655:28;10713:6;10708:2;10703:3;10699:12;10692:28;10751:6;10745:3;10740;10736:13;10729:29;10789:6;10783:3;10778;10774:13;10767:29;10841:6;10833;10827:3;10822;10818:13;10805:43;10572:3;10871:16;;10889:3;10867:26;10902:15;;;10867:26;10580:361;-1:-1:-1;;;;;;;10580:361:8:o;10946:273::-;11129:6;11121;11116:3;11103:33;11085:3;11155:16;;11180:15;;;11155:16;11093:126;-1:-1:-1;11093:126:8:o;11224:274::-;11353:3;11391:6;11385:13;11407:53;11453:6;11448:3;11441:4;11433:6;11429:17;11407:53;:::i;:::-;11476:16;;;;;11361:137;-1:-1:-1;;11361:137:8:o;12137:488::-;-1:-1:-1;;;;;12406:15:8;;;12388:34;;12458:15;;12453:2;12438:18;;12431:43;12505:2;12490:18;;12483:34;;;12553:3;12548:2;12533:18;;12526:31;;;12331:4;;12574:45;;12599:19;;12591:6;12574:45;:::i;:::-;12566:53;12340:285;-1:-1:-1;;;;;;12340:285:8:o;12630:587::-;-1:-1:-1;;;;;12937:15:8;;;12919:34;;12989:15;;12984:2;12969:18;;12962:43;13036:2;13021:18;;13014:34;;;13079:2;13064:18;;13057:34;;;12899:3;13122;13107:19;;13100:32;;;12862:4;;13149:62;;13191:19;;13183:6;13175;13149:62;:::i;:::-;13141:70;12871:346;-1:-1:-1;;;;;;;;12871:346:8:o;13222:560::-;-1:-1:-1;;;;;13519:15:8;;;13501:34;;13571:15;;13566:2;13551:18;;13544:43;13618:2;13603:18;;13596:34;;;13661:2;13646:18;;13639:34;;;13481:3;13704;13689:19;;13682:32;;;13444:4;;13731:45;;13756:19;;13748:6;13731:45;:::i;:::-;13723:53;13453:329;-1:-1:-1;;;;;;;13453:329:8:o;14066:1068::-;14549:3;14538:9;14531:22;14512:4;14576:57;14628:3;14617:9;14613:19;14605:6;14576:57;:::i;:::-;14681:9;14673:6;14669:22;14664:2;14653:9;14649:18;14642:50;14715:44;14752:6;14744;14715:44;:::i;:::-;14701:58;;14807:9;14799:6;14795:22;14790:2;14779:9;14775:18;14768:50;14841:44;14878:6;14870;14841:44;:::i;:::-;14827:58;;14933:9;14925:6;14921:22;14916:2;14905:9;14901:18;14894:50;14967:43;15003:6;14995;14967:43;:::i;:::-;14953:57;;15059:9;15051:6;15047:22;15041:3;15030:9;15026:19;15019:51;15087:41;15121:6;15113;15087:41;:::i;15139:863::-;15544:3;15533:9;15526:22;15507:4;15571:57;15623:3;15612:9;15608:19;15600:6;15571:57;:::i;:::-;15676:9;15668:6;15664:22;15659:2;15648:9;15644:18;15637:50;15710:44;15747:6;15739;15710:44;:::i;:::-;15696:58;;15802:9;15794:6;15790:22;15785:2;15774:9;15770:18;15763:50;15836:43;15872:6;15864;15836:43;:::i;:::-;15822:57;;15927:9;15919:6;15915:22;15910:2;15899:9;15895:18;15888:50;15955:41;15989:6;15981;15955:41;:::i;16007:1390::-;16365:2;16377:21;;;16447:13;;16350:18;;;16469:22;;;16317:4;;16545;;16522:3;16507:19;;;16572:15;;;16317:4;16618:188;16632:6;16629:1;16626:13;16618:188;;;16681:45;16722:3;16713:6;16707:13;16681:45;:::i;:::-;16746:12;;;;16781:15;;;;16654:1;16647:9;16618:188;;;-1:-1:-1;;;16842:19:8;;;16822:18;;;16815:47;16912:13;;16934:21;;;17010:15;;;;16973:12;;;17045:4;17058:215;17074:8;17069:3;17066:17;17058:215;;;17147:15;;-1:-1:-1;;;;;17143:41:8;17129:56;;17246:17;;;;17207:14;;;;17181:1;17093:11;17058:215;;;17062:3;;17320:9;17313:5;17309:21;17304:2;17293:9;17289:18;17282:49;17348:43;17385:5;17377:6;17348:43;:::i;18996:376::-;19198:2;19183:18;;19210:44;19187:9;19236:6;19210:44;:::i;:::-;-1:-1:-1;;;;;19290:32:8;;;;19285:2;19270:18;;19263:60;19354:2;19339:18;19332:34;19165:207;;-1:-1:-1;19165:207:8:o;19377:550::-;19635:3;19620:19;;19648:44;19624:9;19674:6;19648:44;:::i;:::-;-1:-1:-1;;;;;19766:15:8;;;19761:2;19746:18;;19739:43;19813:2;19798:18;;19791:34;;;;19861:15;;;;19856:2;19841:18;;19834:43;19908:3;19893:19;19886:35;;;;19602:325;;-1:-1:-1;19602:325:8:o;19932:665::-;20215:44;20249:9;20241:6;20215:44;:::i;:::-;-1:-1:-1;;;;;20333:15:8;;;20328:2;20313:18;;20306:43;20380:2;20365:18;;20358:34;;;20428:15;;20423:2;20408:18;;20401:43;20475:3;20460:19;;20453:35;;;20525:3;20286;20504:19;;20497:32;;;20196:4;;20546:45;;20571:19;;20563:6;20546:45;:::i;20602:734::-;20938:44;20972:9;20964:6;20938:44;:::i;:::-;-1:-1:-1;;;;;21056:15:8;;;21051:2;21036:18;;21029:43;21103:2;21088:18;;21081:34;;;;21151:15;;21146:2;21131:18;;21124:43;21198:3;21183:19;;21176:35;;;;21248:3;21009;21227:19;;21220:32;;;20919:4;21268:19;;;21261:33;21326:3;21311:19;;20928:408;-1:-1:-1;20928:408:8:o;21341:779::-;21668:44;21702:9;21694:6;21668:44;:::i;:::-;21743:2;21728:18;;21721:34;;;-1:-1:-1;;;;;21829:15:8;;;21824:2;21809:18;;21802:43;21881:15;;;21876:2;21861:18;;21854:43;21934:15;;21928:3;21913:19;;21906:44;21782:3;21966:19;;21959:35;;;22031:3;22025;22010:19;;22003:32;;;21649:4;;22052:62;;22094:19;;22086:6;22078;22052:62;:::i;:::-;22044:70;21658:462;-1:-1:-1;;;;;;;;;;21658:462:8:o;27092:400::-;27294:2;27276:21;;;27333:2;27313:18;;;27306:30;27372:34;27367:2;27352:18;;27345:62;-1:-1:-1;;;27438:2:8;27423:18;;27416:34;27482:3;27467:19;;27266:226::o;32477:363::-;32582:9;32593;32635:8;32623:10;32620:24;32617:2;;;32665:9;32654;32647:28;32617:2;32702:6;32692:8;32689:20;32686:2;;;32730:9;32719;32712:28;32686:2;-1:-1:-1;;32764:23:8;;;32809:25;;;;;-1:-1:-1;32607:233:8:o;32845:128::-;32885:3;32916:1;32912:6;32909:1;32906:13;32903:2;;;32922:18;;:::i;:::-;-1:-1:-1;32958:9:8;;32893:80::o;32978:228::-;33017:3;33045:10;33082:2;33079:1;33075:10;33112:2;33109:1;33105:10;33143:3;33139:2;33135:12;33130:3;33127:21;33124:2;;;33151:18;;:::i;:::-;33187:13;;33025:181;-1:-1:-1;;;;33025:181:8:o;33211:120::-;33251:1;33277;33267:2;;33282:18;;:::i;:::-;-1:-1:-1;33316:9:8;;33257:74::o;33336:191::-;33375:1;33401:10;33438:2;33435:1;33431:10;33460:3;33450:2;;33467:18;;:::i;:::-;33505:10;;33501:20;;;;;33381:146;-1:-1:-1;;33381:146:8:o;33532:168::-;33572:7;33638:1;33634;33630:6;33626:14;33623:1;33620:21;33615:1;33608:9;33601:17;33597:45;33594:2;;;33645:18;;:::i;:::-;-1:-1:-1;33685:9:8;;33584:116::o;33705:262::-;33744:7;33776:10;33813:2;33810:1;33806:10;33843:2;33840:1;33836:10;33899:3;33895:2;33891:12;33886:3;33883:21;33876:3;33869:11;33862:19;33858:47;33855:2;;;33908:18;;:::i;:::-;33948:13;;33756:211;-1:-1:-1;;;;33756:211:8:o;33972:125::-;34012:4;34040:1;34037;34034:8;34031:2;;;34045:18;;:::i;:::-;-1:-1:-1;34082:9:8;;34021:76::o;34102:221::-;34141:4;34170:10;34230;;;;34200;;34252:12;;;34249:2;;;34267:18;;:::i;:::-;34304:13;;34150:173;-1:-1:-1;;;34150:173:8:o;34328:195::-;34366:4;34403;34400:1;34396:12;34435:4;34432:1;34428:12;34460:3;34455;34452:12;34449:2;;;34467:18;;:::i;:::-;34504:13;;;34375:148;-1:-1:-1;;;34375:148:8:o;34528:258::-;34600:1;34610:113;34624:6;34621:1;34618:13;34610:113;;;34700:11;;;34694:18;34681:11;;;34674:39;34646:2;34639:10;34610:113;;;34741:6;34738:1;34735:13;34732:2;;;-1:-1:-1;;34776:1:8;34758:16;;34751:27;34581:205::o;34791:346::-;34901:2;34882:13;;-1:-1:-1;;34878:27:8;34866:40;;-1:-1:-1;;;;;34921:34:8;;34957:22;;;34918:62;34915:2;;;35022:10;35017:3;35013:20;35010:1;35003:31;35057:4;35054:1;35047:15;35085:4;35082:1;35075:15;34915:2;35116;35109:22;-1:-1:-1;;34838:299:8:o;35142:201::-;35180:3;35208:10;35253:2;35246:5;35242:14;35280:2;35271:7;35268:15;35265:2;;;35286:18;;:::i;:::-;35335:1;35322:15;;35188:155;-1:-1:-1;;;35188:155:8:o;35348:175::-;35385:3;35429:4;35422:5;35418:16;35458:4;35449:7;35446:17;35443:2;;;35466:18;;:::i;:::-;35515:1;35502:15;;35393:130;-1:-1:-1;;35393:130:8:o;35528:183::-;35559:1;35585:10;35622:2;35619:1;35615:10;35644:3;35634:2;;35651:18;;:::i;:::-;35689:10;;35685:20;;;;;35565:146;-1:-1:-1;;35565:146:8:o;35716:127::-;35777:10;35772:3;35768:20;35765:1;35758:31;35808:4;35805:1;35798:15;35832:4;35829:1;35822:15;35848:127;35909:10;35904:3;35900:20;35897:1;35890:31;35940:4;35937:1;35930:15;35964:4;35961:1;35954:15;35980:185;36015:3;36057:1;36039:16;36036:23;36033:2;;;36107:1;36102:3;36097;36082:27;36138:10;36133:3;36129:20;36033:2;36023:142;:::o;36170:671::-;36209:3;36251:4;36233:16;36230:26;36227:2;;;36217:624;:::o;36227:2::-;36293;36287:9;-1:-1:-1;;36358:16:8;36354:25;;36351:1;36287:9;36330:50;36409:4;36403:11;36433:16;-1:-1:-1;;;;;36539:2:8;36532:4;36524:6;36520:17;36517:25;36512:2;36504:6;36501:14;36498:45;36495:2;;;36546:5;;;;;36217:624;:::o;36495:2::-;36583:6;36577:4;36573:17;36562:28;;36619:3;36613:10;36646:2;36638:6;36635:14;36632:2;;;36652:5;;;;;;36217:624;:::o;36632:2::-;36736;36717:16;36711:4;36707:27;36703:36;36696:4;36687:6;36682:3;36678:16;36674:27;36671:69;36668:2;;;36743:5;;;;;;36217:624;:::o;36668:2::-;36759:57;36810:4;36801:6;36793;36789:19;36785:30;36779:4;36759:57;:::i;:::-;-1:-1:-1;36832:3:8;;36217:624;-1:-1:-1;;;;;36217:624:8:o;36846:131::-;-1:-1:-1;;;;;36921:31:8;;36911:42;;36901:2;;36967:1;36964;36957:12;36982:131;-1:-1:-1;;;;;;37056:32:8;;37046:43;;37036:2;;37103:1;37100;37093:12", - "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.4;\n\nimport \"./TokenTracker.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\ncontract ONEWallet is TokenTracker {\n event InsufficientFund(uint256 amount, uint256 balance, address dest);\n event ExceedDailyLimit(uint256 amount, uint256 limit, uint256 current, address dest);\n event UnknownTransferError(address dest);\n event LastResortAddressNotSet();\n event PaymentReceived(uint256 amount, address from);\n event PaymentSent(uint256 amount, address dest);\n event AutoRecoveryTriggered(address from);\n event RecoveryFailure();\n\n /// In future versions, it is planned that we may allow the user to extend the wallet's life through a function call. When that is implemented, the following variables may no longer be immutable, with the exception of root which shall serve as an identifier of the wallet\n bytes32 immutable root; // Note: @ivan brought up a good point in reducing this to 16-bytes so hash of two consecutive nodes can be done in a single word (to save gas and reduce blockchain clutter). Let's not worry about that for now and re-evalaute this later.\n uint8 immutable height; // including the root. e.g. for a tree with 4 leaves, the height is 3.\n uint8 immutable interval; // otp interval in seconds, default is 30\n uint32 immutable t0; // starting time block (effectiveTime (in ms) / interval)\n uint32 immutable lifespan; // in number of block (e.g. 1 block per [interval] seconds)\n uint8 immutable maxOperationsPerInterval; // number of transactions permitted per OTP interval. Each transaction shall have a unique nonce. The nonce is auto-incremented within each interval\n uint32 immutable _numLeaves; // 2 ** (height - 1)\n\n /// global mutable variables\n address payable lastResortAddress; // where money will be sent during a recovery process (or when the wallet is beyond its lifespan)\n uint256 dailyLimit; // uint128 is sufficient, but uint256 is more efficient since EVM works with 32-byte words.\n uint256 spentToday; // note: instead of tracking the money spent for the last 24h, we are simply tracking money spent per 24h block based on UTC time. It is good enough for now, but we may want to change this later.\n uint32 lastTransferDay;\n\n /// nonce tracking\n mapping(uint32 => uint8) nonces; // keys: otp index (=timestamp in seconds / interval - t0); values: the expected nonce for that otp interval. An reveal with a nonce less than the expected value will be rejected\n uint32[] nonceTracker; // list of nonces keys that have a non-zero value. keys cannot possibly result a successful reveal (indices beyond REVEAL_MAX_DELAY old) are auto-deleted during a clean up procedure that is called every time the nonces are incremented for some key. For each deleted key, the corresponding key in nonces will also be deleted. So the size of nonceTracker and nonces are both bounded.\n\n // constants\n uint32 constant REVEAL_MAX_DELAY = 60;\n uint32 constant SECONDS_PER_DAY = 86400;\n uint256 constant AUTO_RECOVERY_TRIGGER_AMOUNT = 1 ether;\n uint32 constant MAX_COMMIT_SIZE = 120;\n\n uint32 constant majorVersion = 0x7; // a change would require client to migrate\n uint32 constant minorVersion = 0x3; // a change would not require the client to migrate\n\n enum OperationType {\n TRACK, UNTRACK, TRANSFER_TOKEN, OVERRIDE_TRACK, TRANSFER, SET_RECOVERY_ADDRESS, RECOVER,\n REPLACE // reserved, not implemented yet. This is for replacing the root and set up new parameters (t0, lifespan)\n }\n /// commit management\n struct Commit {\n bytes32 hash;\n bytes32 paramsHash;\n bytes32 verificationHash;\n uint32 timestamp;\n bool completed;\n }\n\n bytes32[] commits; // self-clean on commit (auto delete commits that are beyond REVEAL_MAX_DELAY), so it's bounded by the number of commits an attacker can spam within REVEAL_MAX_DELAY time in the worst case, which is not too bad.\n mapping(bytes32 => Commit[]) commitLocker;\n\n\n constructor(bytes32 root_, uint8 height_, uint8 interval_, uint32 t0_, uint32 lifespan_, uint8 maxOperationsPerInterval_,\n address payable lastResortAddress_, uint256 dailyLimit_)\n {\n root = root_;\n height = height_;\n interval = interval_;\n t0 = t0_;\n lifespan = lifespan_;\n lastResortAddress = lastResortAddress_;\n dailyLimit = dailyLimit_;\n maxOperationsPerInterval = maxOperationsPerInterval_;\n _numLeaves = uint32(2 ** (height_ - 1));\n }\n\n receive() external payable {\n emit PaymentReceived(msg.value, msg.sender);\n if (msg.value != AUTO_RECOVERY_TRIGGER_AMOUNT) {\n return;\n }\n if (msg.sender != lastResortAddress) {\n return;\n }\n if (lastResortAddress == address(0)) {\n return;\n }\n if (msg.sender == address(this)) {\n return;\n }\n emit AutoRecoveryTriggered(msg.sender);\n require(_drain());\n }\n\n\n function retire() external returns (bool)\n {\n require(uint32(block.timestamp / interval) - t0 > lifespan, \"Too early to retire\");\n require(lastResortAddress != address(0), \"Last resort address is not set\");\n require(_drain(), \"Recovery failed\");\n return true;\n }\n\n function getInfo() external view returns (bytes32, uint8, uint8, uint32, uint32, uint8, address, uint256)\n {\n return (root, height, interval, t0, lifespan, maxOperationsPerInterval, lastResortAddress, dailyLimit);\n }\n\n function getVersion() external pure returns (uint32, uint32)\n {\n return (majorVersion, minorVersion);\n }\n\n function getCurrentSpending() external view returns (uint256, uint256)\n {\n return (spentToday, lastTransferDay);\n }\n\n function getNonce() external view returns (uint8)\n {\n uint32 index = uint32(block.timestamp) / interval - t0;\n return nonces[index];\n }\n\n function getCommits() external pure returns (bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory){\n revert(\"Deprecated\");\n }\n\n function getAllCommits() external view returns (bytes32[] memory, bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory)\n {\n uint32 numCommits = 0;\n for (uint32 i = 0; i < commits.length; i++) {\n Commit[] storage cc = commitLocker[commits[i]];\n numCommits += uint32(cc.length);\n }\n bytes32[] memory hashes = new bytes32[](numCommits);\n bytes32[] memory paramHashes = new bytes32[](numCommits);\n bytes32[] memory verificationHashes = new bytes32[](numCommits);\n uint32[] memory timestamps = new uint32[](numCommits);\n bool[] memory completed = new bool[](numCommits);\n uint32 index = 0;\n for (uint32 i = 0; i < commits.length; i++) {\n Commit[] storage cc = commitLocker[commits[i]];\n for (uint32 j = 0; j < cc.length; j++) {\n Commit storage c = cc[j];\n hashes[index] = c.hash;\n paramHashes[index] = c.paramsHash;\n verificationHashes[index] = c.verificationHash;\n timestamps[index] = c.timestamp;\n completed[index] = c.completed;\n index++;\n }\n }\n return (hashes, paramHashes, verificationHashes, timestamps, completed);\n }\n\n function findCommit(bytes32 /*hash*/) external pure returns (bytes32, bytes32, uint32, bool){\n revert(\"Deprecated\");\n }\n\n function lookupCommit(bytes32 hash) external view returns (bytes32[] memory, bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory){\n Commit[] storage cc = commitLocker[hash];\n bytes32[] memory hashes = new bytes32[](cc.length);\n bytes32[] memory paramHashes = new bytes32[](cc.length);\n bytes32[] memory verificationHashes = new bytes32[](cc.length);\n uint32[] memory timestamps = new uint32[](cc.length);\n bool[] memory completed = new bool[](cc.length);\n for (uint32 i = 0; i < cc.length; i++) {\n Commit storage c = cc[i];\n hashes[i] = c.hash;\n paramHashes[i] = c.paramsHash;\n verificationHashes[i] = c.verificationHash;\n timestamps[i] = c.timestamp;\n completed[i] = c.completed;\n }\n return (hashes, paramHashes, verificationHashes, timestamps, completed);\n }\n\n function commit(bytes32 hash, bytes32 paramsHash, bytes32 verificationHash) external {\n _cleanupCommits();\n Commit memory nc = Commit(hash, paramsHash, verificationHash, uint32(block.timestamp), false);\n require(commits.length < MAX_COMMIT_SIZE, \"Too many commits\");\n commits.push(hash);\n commitLocker[hash].push(nc);\n }\n\n /// This function sends all remaining funds of the wallet to `lastResortAddress`. The caller should verify that `lastResortAddress` is not null.\n /// TODO: also transfer all tracked ERC20, 721, 1155 tokens to `lastResortAddress`\n function _drain() internal returns (bool) {\n // this may be triggered after revealing the proof, and we must prevent revert in all cases\n (bool success,) = lastResortAddress.call{value : address(this).balance}(\"\");\n return success;\n }\n\n function _transfer(address payable dest, uint256 amount) internal returns (bool) {\n uint32 day = uint32(block.timestamp / SECONDS_PER_DAY);\n if (day > lastTransferDay) {\n spentToday = 0;\n lastTransferDay = day;\n }\n if (spentToday + amount > dailyLimit) {\n emit ExceedDailyLimit(amount, dailyLimit, spentToday, dest);\n return false;\n }\n if (address(this).balance < amount) {\n emit InsufficientFund(amount, address(this).balance, dest);\n return false;\n }\n spentToday += amount;\n (bool success,) = dest.call{value : amount}(\"\");\n // we do not want to revert the whole transaction if this operation fails, since EOTP is already revealed\n if (!success) {\n spentToday -= amount;\n emit UnknownTransferError(dest);\n return false;\n }\n\n emit PaymentSent(amount, dest);\n return true;\n }\n\n function _recover() internal returns (bool){\n if (lastResortAddress == address(0)) {\n emit LastResortAddressNotSet();\n return false;\n }\n if (!_drain()) {\n emit RecoveryFailure();\n return false;\n }\n return true;\n }\n\n function _setRecoveryAddress(address payable lastResortAddress_) internal {\n require(lastResortAddress == address(0), \"Last resort address is already set\");\n lastResortAddress = lastResortAddress_;\n }\n\n function _transferToken(TokenType tokenType, address contractAddress, uint256 tokenId, address dest, uint256 amount, bytes memory data) internal {\n if (tokenType == TokenType.ERC20) {\n try IERC20(contractAddress).transfer(dest, amount) returns (bool success){\n if (success) {\n _trackToken(tokenType, contractAddress, tokenId);\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n return;\n }\n emit TokenTransferFailed(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n } else if (tokenType == TokenType.ERC721) {\n try IERC721(contractAddress).safeTransferFrom(address(this), dest, tokenId, data){\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n } else if (tokenType == TokenType.ERC1155) {\n try IERC1155(contractAddress).safeTransferFrom(address(this), dest, tokenId, amount, data) {\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n }\n }\n\n /// Provides commitHash, paramsHash, and verificationHash given the parameters\n function _getRevealHash(bytes32 neighbor, uint32 indexWithNonce, bytes32 eotp,\n OperationType operationType, TokenType tokenType, address contractAddress, uint256 tokenId, address dest, uint256 amount, bytes calldata data) pure internal returns (bytes32, bytes32) {\n bytes32 hash = keccak256(bytes.concat(neighbor, bytes32(bytes4(indexWithNonce)), eotp));\n bytes32 paramsHash = bytes32(0);\n if (operationType == OperationType.TRANSFER) {\n paramsHash = keccak256(bytes.concat(bytes32(bytes20(address(dest))), bytes32(amount)));\n } else if (operationType == OperationType.RECOVER) {\n paramsHash = keccak256(data);\n } else if (operationType == OperationType.SET_RECOVERY_ADDRESS) {\n paramsHash = keccak256(bytes.concat(bytes32(bytes20(address(dest)))));\n } else {\n bytes memory packed = bytes.concat(\n bytes32(uint256(operationType)),\n bytes32(uint256(tokenType)),\n bytes32(bytes20(contractAddress)),\n bytes32(tokenId),\n bytes32(bytes20(dest)),\n bytes32(amount),\n data\n );\n paramsHash = keccak256(bytes.concat(packed));\n }\n return (hash, paramsHash);\n }\n\n\n function reveal(bytes32[] calldata neighbors, uint32 indexWithNonce, bytes32 eotp,\n OperationType operationType, TokenType tokenType, address contractAddress, uint256 tokenId, address payable dest, uint256 amount, bytes calldata data)\n external {\n _isCorrectProof(neighbors, indexWithNonce, eotp);\n if (indexWithNonce == _numLeaves - 1) {\n require(operationType == OperationType.RECOVER, \"Last operation reserved for recover\");\n }\n (bytes32 commitHash, bytes32 paramsHash) = _getRevealHash(neighbors[0], indexWithNonce, eotp,\n operationType, tokenType, contractAddress, tokenId, dest, amount, data);\n uint32 commitIndex = _verifyReveal(commitHash, indexWithNonce, paramsHash, eotp, operationType);\n _completeReveal(commitHash, commitIndex, operationType);\n // No revert should occur below this point\n if (operationType == OperationType.TRACK) {\n if (data.length > 0) {\n _multiTrack(data);\n } else {\n _trackToken(tokenType, contractAddress, tokenId);\n }\n } else if (operationType == OperationType.UNTRACK) {\n if (data.length > 0) {\n _untrackToken(tokenType, contractAddress, tokenId);\n } else {\n _multiUntrack(data);\n }\n } else if (operationType == OperationType.TRANSFER_TOKEN) {\n _transferToken(tokenType, contractAddress, tokenId, dest, amount, data);\n } else if (operationType == OperationType.OVERRIDE_TRACK) {\n _overrideTrackWithBytes(data);\n } else if (operationType == OperationType.TRANSFER) {\n _transfer(dest, amount);\n } else if (operationType == OperationType.RECOVER) {\n _recover();\n } else if (operationType == OperationType.SET_RECOVERY_ADDRESS) {\n _setRecoveryAddress(dest);\n }\n }\n\n /// This is just a wrapper around a modifier previously called `isCorrectProof`, to avoid \"Stack too deep\" error. Duh.\n function _isCorrectProof(bytes32[] calldata neighbors, uint32 position, bytes32 eotp) view internal {\n require(neighbors.length == height - 1, \"Not enough neighbors provided\");\n bytes32 h = sha256(bytes.concat(eotp));\n if (position == _numLeaves - 1) {\n // special case: recover only\n h = eotp;\n }\n for (uint8 i = 0; i < height - 1; i++) {\n if ((position & 0x01) == 0x01) {\n h = sha256(bytes.concat(neighbors[i], h));\n } else {\n h = sha256(bytes.concat(h, neighbors[i]));\n }\n position >>= 1;\n }\n require(root == h, \"Proof is incorrect\");\n return;\n }\n\n /// Remove old commits from storage, where the commit's timestamp is older than block.timestamp - REVEAL_MAX_DELAY. The purpose is to remove dangling data from blockchain, and prevent commits grow unbounded. This is executed at commit time. The committer pays for the gas of this cleanup. Therefore, any attacker who intend to spam commits would be disincentivized. The attacker would not succeed in preventing any normal operation by the user.\n function _cleanupCommits() internal {\n uint32 timelyIndex = 0;\n uint32 bt = uint32(block.timestamp);\n // go through past commits chronologically, starting from the oldest, and find the first commit that is not older than block.timestamp - REVEAL_MAX_DELAY.\n for (; timelyIndex < commits.length; timelyIndex++) {\n bytes32 hash = commits[timelyIndex];\n Commit[] storage cc = commitLocker[hash];\n // We may skip because the commit is already cleaned up and is considered \"untimely\".\n if (cc.length == 0) {\n continue;\n }\n // We take the first entry in `cc` as the timestamp for all commits under commit hash `hash`, because the first entry represents the oldest commit and only commit if an attacker is not attacking this wallet. If an attacker is front-running commits, the first entry may be from the attacker, but its timestamp should be identical to the user's commit (or close enough to the user's commit, if network is a bit congested)\n Commit storage c = cc[0];\n unchecked {\n if (c.timestamp >= bt - REVEAL_MAX_DELAY) {\n break;\n }\n }\n }\n // Now `timelyIndex` holds the index of the first commit that is timely. All commits at an index less than `timelyIndex` must be deleted;\n if (timelyIndex == 0) {\n // no commit is older than block.timestamp - REVEAL_MAX_DELAY. Nothing needs to be cleaned up\n return;\n }\n // Delete Commit instances for commits that are are older than block.timestamp - REVEAL_MAX_DELAY\n for (uint32 i = 0; i < timelyIndex; i++) {\n bytes32 hash = commits[i];\n Commit[] storage cc = commitLocker[hash];\n for (uint32 j = 0; j < cc.length; j++) {\n delete cc[j];\n }\n delete commitLocker[hash];\n }\n // Shift all commit hashes up by `timelyIndex` positions, and discard `commitIndex` number of hashes at the end of the array\n // This process erases old commits\n uint32 len = uint32(commits.length);\n for (uint32 i = timelyIndex; i < len; i++) {\n unchecked{\n commits[i - timelyIndex] = commits[i];\n }\n }\n for (uint32 i = 0; i < timelyIndex; i++) {\n commits.pop();\n }\n // TODO (@polymorpher): upgrade the above code after solidity implements proper support for struct-array memory-storage copy operation.\n }\n\n function _isRevealTimely(uint32 commitTime) view internal returns (bool)\n {\n return uint32(block.timestamp) - commitTime < REVEAL_MAX_DELAY;\n }\n\n /// This function verifies that the first valid entry with respect to the given `eotp` in `commitLocker[hash]` matches the provided `paramsHash` and `verificationHash`. An entry is valid with respect to `eotp` iff `h3(entry.paramsHash . eotp)` equals `entry.verificationHash`\n function _verifyReveal(bytes32 hash, uint32 indexWithNonce, bytes32 paramsHash, bytes32 eotp, OperationType operationType) view internal returns (uint32)\n {\n uint32 index = indexWithNonce / maxOperationsPerInterval;\n uint8 nonce = uint8(indexWithNonce % maxOperationsPerInterval);\n Commit[] storage cc = commitLocker[hash];\n require(cc.length > 0, \"No commit found\");\n for (uint32 i = 0; i < cc.length; i++) {\n Commit storage c = cc[i];\n bytes32 expectedVerificationHash = keccak256(bytes.concat(c.paramsHash, eotp));\n if (c.verificationHash != expectedVerificationHash) {\n // Invalid entry. Ignore\n continue;\n }\n require(c.paramsHash == paramsHash, \"Parameter hash mismatch\");\n if (operationType != OperationType.RECOVER) {\n uint32 counter = c.timestamp / interval - t0;\n require(counter == index, \"Index - timestamp mismatch\");\n uint8 expectedNonce = nonces[counter];\n require(nonce >= expectedNonce, \"Nonce too low\");\n }\n require(!c.completed, \"Commit already completed\");\n // This normally should not happen, but when the network is congested (regardless of whether due to an attacker's malicious acts or not), the legitimate reveal may become untimely. This may happen before the old commit is cleaned up by another fresh commit. We enforce this restriction so that the attacker would not have a lot of time to reverse-engineer a single EOTP or leaf using an old commit.\n require(_isRevealTimely(c.timestamp), \"Reveal too late\");\n return i;\n }\n revert(\"No valid commit\");\n }\n\n function _completeReveal(bytes32 commitHash, uint32 commitIndex, OperationType operationType) internal {\n Commit[] storage cc = commitLocker[commitHash];\n require(cc.length > 0, \"Invalid commit hash\");\n require(cc.length > commitIndex, \"Invalid commitIndex\");\n Commit storage c = cc[commitIndex];\n require(c.timestamp > 0, \"Invalid commit timestamp\");\n if (operationType != OperationType.RECOVER) {\n uint32 index = uint32(c.timestamp) / interval - t0;\n _incrementNonce(index);\n _cleanupNonces();\n }\n c.completed = true;\n }\n\n /// This function removes all tracked nonce values correspond to interval blocks that are older than block.timestamp - REVEAL_MAX_DELAY. In doing so, extraneous data in the blockchain is removed, and both nonces and nonceTracker are bounded in size.\n function _cleanupNonces() internal {\n uint32 tMin = uint32(block.timestamp) - REVEAL_MAX_DELAY;\n uint32 indexMinUnadjusted = tMin / interval;\n uint32 indexMin = 0;\n if (indexMinUnadjusted > t0) {\n indexMin = indexMinUnadjusted - t0;\n }\n uint32[] memory nonZeroNonces = new uint32[](nonceTracker.length);\n uint32 numValidIndices = 0;\n for (uint8 i = 0; i < nonceTracker.length; i++) {\n uint32 index = nonceTracker[i];\n if (index < indexMin) {\n delete nonces[index];\n } else {\n nonZeroNonces[numValidIndices] = index;\n unchecked {\n numValidIndices++;\n }\n }\n }\n // TODO (@polymorpher): This can be later made more efficient by inline assembly. https://ethereum.stackexchange.com/questions/51891/how-to-pop-from-decrease-the-length-of-a-memory-array-in-solidity\n uint32[] memory reducedArray = new uint32[](numValidIndices);\n for (uint8 i = 0; i < numValidIndices; i++) {\n reducedArray[i] = nonZeroNonces[i];\n }\n nonceTracker = reducedArray;\n }\n\n function _incrementNonce(uint32 index) internal {\n uint8 v = nonces[index];\n if (v == 0) {\n nonceTracker.push(index);\n }\n unchecked{\n nonces[index] = v + 1;\n }\n }\n}\n", + "deployedSourceMap": "151:24282:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4622:38;;;4638:9;30559:25:8;;4649:10:6;30615:2:8;30600:18;;30593:60;4622:38:6;;30532:18:8;4622:38:6;;;;;;;3102:7;4674:9;:41;4670:78;;151:24282;4670:78;4775:17;;-1:-1:-1;;;;;4775:17:6;4761:10;:31;4757:68;;151:24282;4757:68;4838:17;;-1:-1:-1;;;;;4838:17:6;4834:68;;151:24282;4834:68;4915:10;4937:4;4915:27;4911:64;;;151:24282;4911:64;4989:33;;5011:10;11859:51:8;;4989:33:6;;11847:2:8;11832:18;4989:33:6;;;;;;;5040:8;:6;:8::i;:::-;5032:17;;;;;;151:24282;;;;;3101:270:7;;;;;;;;;;-1:-1:-1;3101:270:7;;;;;:::i;:::-;;:::i;:::-;;;17567:14:8;;17560:22;17542:41;;17530:2;17515:18;3101:270:7;;;;;;;;5600:117:6;;;;;;;;;;-1:-1:-1;5600:117:6;;;3190:3;32191:34:8;;5645:6:6;32256:2:8;32241:18;;32234:43;32135:18;5600:117:6;32117:166:8;3460:374:7;;;;;;;;;;-1:-1:-1;3460:374:7;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;;18951:33:8;;;18933:52;;18921:2;18906:18;3460:374:7;18888:103:8;7462:129:6;;;;;;;;;;-1:-1:-1;7462:129:6;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;17817:25:8;;;17873:2;17858:18;;17851:34;;;;17933:10;17921:23;17916:2;17901:18;;17894:51;17988:14;17981:22;17976:2;17961:18;;17954:50;17804:3;17789:19;;17771:239;5723:128:6;;;;;;;;;;-1:-1:-1;5816:10:6;;5828:15;;5723:128;;;31125:25:8;;;5828:15:6;;;;31181:2:8;31166:18;;31159:34;31098:18;5723:128:6;31080:119:8;6018:149:6;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;:::i;5365:229::-;;;;;;;;;;;;5557:17;;5576:10;;5493:4;;5499:6;;5507:8;;5517:2;;5521:8;;5531:24;;-1:-1:-1;;;;;5557:17:6;;;;5365:229;;;;;18342:25:8;;;18415:4;18403:17;;;18398:2;18383:18;;18376:45;18457:17;;;18437:18;;;18430:45;;;;18494:10;18540:15;;;18535:2;18520:18;;18513:43;18593:15;;;;18587:3;18572:19;;18565:44;18646:17;;18640:3;18625:19;;18618:46;-1:-1:-1;;;;;18701:32:8;;;18695:3;18680:19;;18673:61;18765:3;18750:19;;18743:35;18329:3;18314:19;5365:229:6;18296:488:8;3840:652:7;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;6173:1283:6:-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;5063:296::-;;;;;;;;;;;;;:::i;2728:367:7:-;;;;;;;;;;-1:-1:-1;2728:367:7;;;;;:::i;:::-;;:::i;14235:1916:6:-;;;;;;;;;;-1:-1:-1;14235:1916:6;;;;;:::i;:::-;;:::i;5857:155::-;;;;;;;;;;;;;:::i;:::-;;;32460:4:8;32448:17;;;32430:36;;32418:2;32403:18;5857:155:6;32385:87:8;7597:907:6;;;;;;;;;;-1:-1:-1;7597:907:6;;;;;:::i;:::-;;:::i;8510:358::-;;;;;;;;;;-1:-1:-1;8510:358:6;;;;;:::i;:::-;;:::i;2332:390:7:-;;;;;;;;;;-1:-1:-1;2332:390:7;;;;;:::i;:::-;;:::i;9110:258:6:-;9280:17;;:57;;9146:4;;;;-1:-1:-1;;;;;9280:17:6;;;;9311:21;;9146:4;9280:57;9146:4;9280:57;9311:21;9280:17;:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9262:75:6;;9110:258;-1:-1:-1;;;9110:258:6:o;3101:270:7:-;3180:4;-1:-1:-1;;;;;;3203:46:7;;-1:-1:-1;;;3203:46:7;;:104;;-1:-1:-1;;;;;;;3261:46:7;;-1:-1:-1;;;3261:46:7;3203:104;:161;;;-1:-1:-1;;;;;;;3319:45:7;;-1:-1:-1;;;3319:45:7;3203:161;3196:168;3101:270;-1:-1:-1;;3101:270:7:o;3460:374::-;3621:6;3643:77;3657:16;3675:1;3678:4;3684:10;3696:8;3706:7;3715:4;;3643:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;3730:50;3742:16;3760:10;3772:7;3730:11;:50::i;:::-;-1:-1:-1;;;;3460:374:7;;;;;;;;:::o;7462:129:6:-;7523:7;7532;7541:6;7549:4;7564:20;;-1:-1:-1;;;7564:20:6;;;;;;28749:2:8;28731:21;;;28788:2;28768:18;;;28761:30;-1:-1:-1;;;28822:2:8;28807:18;;28800:40;28872:2;28857:18;;28721:160;7564:20:6;;;;;;;;6018:149;6063:16;6081;6099:15;6116:13;6140:20;;-1:-1:-1;;;6140:20:6;;;;;;28749:2:8;28731:21;;;28788:2;28768:18;;;28761:30;-1:-1:-1;;;28822:2:8;28807:18;;28800:40;28872:2;28857:18;;28721:160;3840:652:7;3891:18;3911:16;3929;3956:29;4004:13;:20;;;;-1:-1:-1;;;;;3988:37:7;;;;;-1:-1:-1;;;3988:37:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3988:37:7;-1:-1:-1;4086:13:7;:20;3956:69;;-1:-1:-1;4035:34:7;;-1:-1:-1;;;;;4072:35:7;;;;;-1:-1:-1;;;4072:35:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4072:35:7;-1:-1:-1;4159:13:7;:20;4035:72;;-1:-1:-1;4117:25:7;;-1:-1:-1;;;;;4145:35:7;;;;;-1:-1:-1;;;4145:35:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4145:35:7;;4117:63;;4195:8;4190:238;4213:13;:20;4209:24;;;;4190:238;;;4270:13;4284:1;4270:16;;;;;;;;-1:-1:-1;;;4270:16:7;;;;;;;;;;;;;;;;;;;;;;:26;4254:13;;4270:26;;;;;4254:10;;:13;;;;;;;;-1:-1:-1;;;4254:13:7;;;;;;;;;;;;;;:42;;;;;;;-1:-1:-1;;;4254:42:7;;;;;;;;;;;;;;;;;-1:-1:-1;;;4254:42:7;;;;;;;;;;;;;4333:13;4347:1;4333:16;;;;;;;;-1:-1:-1;;;4333:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;4333:32:7;4310:17;4328:1;4310:20;;;;;;;;-1:-1:-1;;;4310:20:7;;;;;;;;;;;;;;:55;-1:-1:-1;;;;;4310:55:7;;;-1:-1:-1;;;;;4310:55:7;;;;;4393:13;4407:1;4393:16;;;;;;;;-1:-1:-1;;;4393:16:7;;;;;;;;;;;;;;;;;;;:24;;;4379:8;4388:1;4379:11;;;;;;;;-1:-1:-1;;;4379:11:7;;;;;;;;;;;;;;;;;;:38;4235:3;;;;:::i;:::-;;;;4190:238;;;-1:-1:-1;4445:10:7;;4457:17;;-1:-1:-1;4476:8:7;;-1:-1:-1;3840:652:7;-1:-1:-1;3840:652:7:o;6173:1283:6:-;6221:16;6239;6257;6275:15;6292:13;6321:17;6357:8;6352:160;6375:7;:14;6371:18;;;;6352:160;;;6410:19;6432:12;:24;6445:7;6453:1;6445:10;;;;;;;;-1:-1:-1;;;6445:10:6;;;;;;;;;;;;;;;;;6432:24;;;;;;;;;;;6410:46;;6491:2;:9;;;;6470:31;;;;;:::i;:::-;;;6352:160;6391:3;;;;;:::i;:::-;;;;6352:160;;;;6521:23;6561:10;6547:25;;-1:-1:-1;;;;;6547:25:6;;;;;-1:-1:-1;;;6547:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6547:25:6;;6521:51;;6582:28;6627:10;6613:25;;-1:-1:-1;;;;;6613:25:6;;;;;-1:-1:-1;;;6613:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6613:25:6;;6582:56;;6648:35;6700:10;6686:25;;-1:-1:-1;;;;;6686:25:6;;;;;-1:-1:-1;;;6686:25:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6686:25:6;;6648:63;;6721:26;6763:10;6750:24;;-1:-1:-1;;;;;6750:24:6;;;;;-1:-1:-1;;;6750:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6750:24:6;;6721:53;;6784:23;6821:10;6810:22;;-1:-1:-1;;;;;6810:22:6;;;;;-1:-1:-1;;;6810:22:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6810:22:6;;6784:48;;6842:12;6873:8;6868:501;6891:7;:14;6887:18;;;;6868:501;;;6926:19;6948:12;:24;6961:7;6969:1;6961:10;;;;;;;;-1:-1:-1;;;6961:10:6;;;;;;;;;;;;;;;;;6948:24;;;;;;;;;;;6926:46;;6991:8;6986:373;7009:9;;7005:13;;;;6986:373;;;7043:16;7062:2;7065:1;7062:5;;;;;;;;-1:-1:-1;;;7062:5:6;;;;;;;;;;;;;;;;;;;7043:24;;7101:1;:6;;;7085;7092:5;7085:13;;;;;;;;-1:-1:-1;;;7085:13:6;;;;;;;;;;;;;;:22;;;;;7146:1;:12;;;7125:11;7137:5;7125:18;;;;;;;;-1:-1:-1;;;7125:18:6;;;;;;;;;;;;;;:33;;;;;7204:1;:18;;;7176;7195:5;7176:25;;;;;;;;-1:-1:-1;;;7176:25:6;;;;;;;;;;;;;;;;;;:46;7260:11;;;;7240:17;;7260:11;;;;;7240:10;;:17;;;;;;;;-1:-1:-1;;;7240:17:6;;;;;;;;;;;;;;:31;;;;;;;;;;;7308:1;:11;;;;;;;;;;;;7289:9;7299:5;7289:16;;;;;;;;-1:-1:-1;;;7289:16:6;;;;;;;;;:30;;;:16;;;;;;;;;;;:30;7337:7;;;;:::i;:::-;;;;6986:373;7020:3;;;;;:::i;:::-;;;;6986:373;;;;6868:501;6907:3;;;;;:::i;:::-;;;;6868:501;;;-1:-1:-1;7386:6:6;;7394:11;;-1:-1:-1;7407:18:6;;-1:-1:-1;7407:18:6;-1:-1:-1;7394:11:6;-1:-1:-1;6173:1283:6;-1:-1:-1;;;6173:1283:6:o;5063:296::-;5099:4;5127:50;5169:8;5127:50;5164:2;5134:26;;5152:8;5134:26;:15;:26;:::i;:::-;5127:39;;;;:::i;:::-;:50;;;5119:82;;;;-1:-1:-1;;;5119:82:6;;25891:2:8;5119:82:6;;;25873:21:8;25930:2;25910:18;;;25903:30;-1:-1:-1;;;25949:18:8;;;25942:49;26008:18;;5119:82:6;25863:169:8;5119:82:6;5219:17;;-1:-1:-1;;;;;5219:17:6;5211:74;;;;-1:-1:-1;;;5211:74:6;;23790:2:8;5211:74:6;;;23772:21:8;23829:2;23809:18;;;23802:30;23868:32;23848:18;;;23841:60;23918:18;;5211:74:6;23762:180:8;5211:74:6;5303:8;:6;:8::i;:::-;5295:36;;;;-1:-1:-1;;;5295:36:6;;28057:2:8;5295:36:6;;;28039:21:8;28096:2;28076:18;;;28069:30;-1:-1:-1;;;28115:18:8;;;28108:45;28170:18;;5295:36:6;28029:165:8;5295:36:6;-1:-1:-1;5348:4:6;;5063:296::o;2728:367:7:-;2891:6;;2908:128;2927:14;;;;-1:-1:-1;2908:128:7;;;2962:4;:22;2985:8;2995:4;3001:3;;:6;;;;;;;;-1:-1:-1;;;3001:6:7;;;;;;;;;;;;;;;3009;;3016:1;3009:9;;;;;;;-1:-1:-1;;;3009:9:7;;;;;;;;;;;;;;;3020:4;;2962:63;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;2943:3:7;;;;:::i;:::-;;;;2908:128;;;-1:-1:-1;;;;3052:36:7;2728:367;-1:-1:-1;;;;;;;;;2728:367:7:o;14235:1916:6:-;14500:48;14516:9;;14527:14;14543:4;14500:15;:48::i;:::-;14580:14;14593:1;14580:10;:14;:::i;:::-;14562:32;;:14;:32;;;14558:149;;;14635:21;14618:13;:38;;;;;;-1:-1:-1;;;14618:38:6;;;;;;;;;;14610:86;;;;-1:-1:-1;;;14610:86:6;;30183:2:8;14610:86:6;;;30165:21:8;30222:2;30202:18;;;30195:30;30261:34;30241:18;;;30234:62;-1:-1:-1;;;30312:18:8;;;30305:33;30355:19;;14610:86:6;30155:225:8;14610:86:6;14717:18;14737;14759:134;14774:9;;14784:1;14774:12;;;;;-1:-1:-1;;;14774:12:6;;;;;;;;;;;;;;;14788:14;14804:4;14822:13;14837:9;14848:15;14865:7;14874:4;14880:6;14888:4;;14759:14;:134::i;:::-;14716:177;;;;14903:18;14924:74;14938:10;14950:14;14966:10;14978:4;14984:13;14924;:74::i;:::-;14903:95;;15008:55;15024:10;15036:11;15049:13;15008:15;:55::i;:::-;15145:19;15128:13;:36;;;;;;-1:-1:-1;;;15128:36:6;;;;;;;;;;15124:1021;;;15184:15;;15180:158;;15219:17;15231:4;;15219:11;:17::i;:::-;15124:1021;;15180:158;15275:48;15287:9;15298:15;15315:7;15275:11;:48::i;15124:1021::-;15375:21;15358:13;:38;;;;;;-1:-1:-1;;;15358:38:6;;;;;;;;;;15354:791;;;15416:15;;15412:162;;15451:50;15465:9;15476:15;15493:7;15451:13;:50::i;15412:162::-;15540:19;15554:4;;15540:13;:19::i;15354:791::-;15611:28;15594:13;:45;;;;;;-1:-1:-1;;;15594:45:6;;;;;;;;;;15590:555;;;15655:71;15670:9;15681:15;15698:7;15707:4;15713:6;15721:4;;15655:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15655:14:6;;-1:-1:-1;;;15655:71:6:i;15590:555::-;15764:28;15747:13;:45;;;;;;-1:-1:-1;;;15747:45:6;;;;;;;;;;15743:402;;;15808:29;15832:4;;15808:23;:29::i;15743:402::-;15875:22;15858:13;:39;;;;;;-1:-1:-1;;;15858:39:6;;;;;;;;;;15854:291;;;15913:23;15923:4;15929:6;15913:9;:23::i;:::-;;15854:291;;;15974:21;15957:13;:38;;;;;;-1:-1:-1;;;15957:38:6;;;;;;;;;;15953:192;;;16011:10;:8;:10::i;15953:192::-;16059:34;16042:13;:51;;;;;;-1:-1:-1;;;16042:51:6;;;;;;;;;;16038:107;;;16109:25;16129:4;16109:19;:25::i;:::-;14235:1916;;;;;;;;;;;;;;;:::o;5857:155::-;5900:5;;5973:2;5936:34;;5962:8;5936:34;5943:15;5936:34;:::i;:::-;:39;;;;:::i;:::-;5992:13;;;;;;:6;:13;;;;;;;;;5857:155;-1:-1:-1;;5857:155:6:o;7597:907::-;7751:19;7773:18;;;:12;:18;;;;;7841:9;;7656:16;;;;;;;;;;7773:18;-1:-1:-1;;;;;7827:24:6;;;;;-1:-1:-1;;;7827:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7827:24:6;-1:-1:-1;7906:9:6;;7801:50;;-1:-1:-1;7861:28:6;;-1:-1:-1;;;;;7892:24:6;;;;;-1:-1:-1;;;7892:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7892:24:6;-1:-1:-1;7978:9:6;;7861:55;;-1:-1:-1;7926:35:6;;-1:-1:-1;;;;;7964:24:6;;;;;-1:-1:-1;;;7964:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7964:24:6;-1:-1:-1;8040:9:6;;7926:62;;-1:-1:-1;7998:26:6;;-1:-1:-1;;;;;8027:23:6;;;;;-1:-1:-1;;;8027:23:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8027:23:6;-1:-1:-1;8097:9:6;;7998:52;;-1:-1:-1;8060:23:6;;-1:-1:-1;;;;;8086:21:6;;;;;-1:-1:-1;;;8086:21:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8086:21:6;;8060:47;;8122:8;8117:300;8140:9;;8136:13;;;;8117:300;;;8170:16;8189:2;8192:1;8189:5;;;;;;;;-1:-1:-1;;;8189:5:6;;;;;;;;;;;;;;;;;;;8170:24;;8220:1;:6;;;8208;8215:1;8208:9;;;;;;;;-1:-1:-1;;;8208:9:6;;;;;;;;;;;;;;:18;;;;;8257:1;:12;;;8240:11;8252:1;8240:14;;;;;;;;-1:-1:-1;;;8240:14:6;;;;;;;;;;;;;;:29;;;;;8307:1;:18;;;8283;8302:1;8283:21;;;;;;;;-1:-1:-1;;;8283:21:6;;;;;;;;;;;;;;;;;;:42;8355:11;;;;8339:13;;8355:11;;;;;8339:10;;:13;;;;;;;;-1:-1:-1;;;8339:13:6;;;;;;;;;;;;;;:27;;;;;;;;;;;8395:1;:11;;;;;;;;;;;;8380:9;8390:1;8380:12;;;;;;;;-1:-1:-1;;;8380:12:6;;;;;;;;;:26;;;:12;;;;;;;;;;;:26;-1:-1:-1;8151:3:6;;;;:::i;:::-;;;;8117:300;;;-1:-1:-1;8434:6:6;;8442:11;;-1:-1:-1;8455:18:6;;-1:-1:-1;8442:11:6;-1:-1:-1;8434:6:6;;-1:-1:-1;7597:907:6;-1:-1:-1;;;7597:907:6:o;8510:358::-;8605:17;:15;:17::i;:::-;8651:74;;;;;;;;;;;;;;;;;;;;;;;;8701:15;8651:74;;;;;8632:16;8651:74;;;;8743:7;:14;3149:3;-1:-1:-1;8735:61:6;;;;-1:-1:-1;;;8735:61:6;;23103:2:8;8735:61:6;;;23085:21:8;23142:2;23122:18;;;23115:30;-1:-1:-1;;;23161:18:8;;;23154:46;23217:18;;8735:61:6;23075:166:8;8735:61:6;8806:7;:18;;;;;;;;;;;;;;-1:-1:-1;8834:18:6;;;:12;8806:18;8834;;;;;;;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8834:27:6;;;;;;;;;;;;;;;-1:-1:-1;;8510:358:6:o;2332:390:7:-;2512:6;2534:77;2548:17;2567:5;2574:4;2580:10;2592:8;2602:2;2606:4;;2534:77;;;;;;;;;;;;;:::i;:::-;;;;;;;;2621:46;2633:17;2652:10;2664:2;2621:11;:46::i;:::-;-1:-1:-1;;;;2332:390:7;;;;;;;;:::o;4500:1030::-;4603:11;4656:9;4648:18;;;;;;-1:-1:-1;;;4648:18:7;;;;;;;;;4627:94;;;;;;10133:19:8;;;;4677:24:7;;;;-1:-1:-1;;;;;;4669:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;4627:94:7;;;-1:-1:-1;;4627:94:7;;;;;;;;;4617:105;;4627:94;4617:105;;;;4772:1;4736:26;;;;;;;;;:33;4617:105;;-1:-1:-1;4736:37:7;4732:549;;4794:8;4789:482;4812:21;:26;;;;;;;;;;:33;4808:37;;;;4789:482;;;4870:9;4882:26;;;;;;;;;;:29;;;;;;;;;;-1:-1:-1;;;4882:29:7;;;;;;;;;;;;;;;;;4870:41;;4963:9;4933:39;;;;;;-1:-1:-1;;;4933:39:7;;;;;;;;;:13;4947:1;4933:16;;;;;;-1:-1:-1;;;4933:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;:39;;;;;;-1:-1:-1;;;4933:39:7;;;;;;;;;;4929:53;;4974:8;;;4929:53;5032:7;5004:13;5018:1;5004:16;;;;;;-1:-1:-1;;;5004:16:7;;;;;;;;;;;;;;;;;;;:24;;;:35;5000:49;;5041:8;;;5000:49;5107:15;-1:-1:-1;;;;;5071:51:7;:13;5085:1;5071:16;;;;;;-1:-1:-1;;;5071:16:7;;;;;;;;;;;;;;;;;;;;;;:32;;;;-1:-1:-1;;;;;5071:32:7;:51;5067:65;;5124:8;;;5067:65;5250:7;;;4500:1030;;;:::o;4789:482::-;4847:3;;;;:::i;:::-;;;;4789:482;;;;4732:549;5290:22;5315:49;;;;;;;;5328:9;5315:49;;;;;;-1:-1:-1;;;5315:49:7;;;;;;;;;;;-1:-1:-1;;;;;5315:49:7;;;;;;;;;;;;;;;;;-1:-1:-1;5374:26:7;;;;;;;;;5406:13;:20;;5374:53;;;;;;;;;;;;;;;;;;;;5437:22;;;;;;;;;;;;;;;;;;;;;5290:74;;-1:-1:-1;5290:74:7;;5437:22;;;;;-1:-1:-1;;5437:22:7;;;;;;;;;-1:-1:-1;;;5437:22:7;;;;;;;;;;;;;-1:-1:-1;5437:22:7;;;;;;-1:-1:-1;;;;;5437:22:7;;;;;-1:-1:-1;;;;;;5437:22:7;;;;;;;;;;;;;;;;5474:49;;;;;5487:9;;5498:15;;5515:7;;5474:49;:::i;:::-;;;;;;;;4500:1030;;;;;:::o;16280:704:6:-;16418:10;16427:1;16418:6;:10;:::i;:::-;16398:30;;;;16390:72;;;;-1:-1:-1;;;16390:72:6;;27699:2:8;16390:72:6;;;27681:21:8;27738:2;27718:18;;;27711:30;27777:31;27757:18;;;27750:59;27826:18;;16390:72:6;27671:179:8;16390:72:6;16472:9;16484:26;16504:4;16491:18;;;;;;9638:19:8;;9682:2;9673:12;;9628:63;16491:18:6;;;;-1:-1:-1;;16491:18:6;;;;;;;;;;16484:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16472:38;-1:-1:-1;16536:14:6;16549:1;16536:10;:14;:::i;:::-;16524:26;;:8;:26;;;16520:107;;;-1:-1:-1;16612:4:6;16520:107;16641:7;16636:276;16658:10;16667:1;16658:6;:10;:::i;:::-;16654:14;;:1;:14;;;16636:276;;;16705:4;16694:15;;;16693:25;16689:185;;;16742:37;16762:9;;16772:1;16762:12;;;;;;;-1:-1:-1;;;16762:12:6;;;;;;;;;;;;;;;16776:1;16749:29;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;16749:29:6;;;;-1:-1:-1;;16749:29:6;;;;;;;;;;16742:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16738:41;;16689:185;;;16822:37;16842:1;16845:9;;16855:1;16845:12;;;;;;;-1:-1:-1;;;16845:12:6;;;;;;;;;;;;;;;16829:29;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;16829:29:6;;;;-1:-1:-1;;16829:29:6;;;;;;;;;;16822:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16818:41;;16689:185;16900:1;16887:14;;;;;;;16670:3;;;;;:::i;:::-;;;;16636:276;;;;16937:1;16929:4;:9;16921:40;;;;-1:-1:-1;;;16921:40:6;;26594:2:8;16921:40:6;;;26576:21:8;26633:2;26613:18;;;26606:30;-1:-1:-1;;;26652:18:8;;;26645:48;26710:18;;16921:40:6;26566:168:8;16921:40:6;16971:7;16280:704;;;;;:::o;12941:1287::-;13194:7;13203;13222:12;13260:8;13285:14;13278:22;;-1:-1:-1;;;;;13270:31:6;;13303:4;13247:61;;;;;;;;;10133:19:8;;;10177:2;10168:12;;10161:28;;;;10214:2;10205:12;;10198:28;10251:2;10242:12;;10123:137;13247:61:6;;;;-1:-1:-1;;13247:61:6;;;;;;;;;13237:72;;13247:61;13237:72;;;;;-1:-1:-1;13319:18:6;13381:22;13364:13;:39;;;;;;-1:-1:-1;;;13364:39:6;;;;;;;;;;13360:827;;;13442:62;;;13463:22;;;;-1:-1:-1;;;;;;13455:31:6;13442:62;;;9853:19:8;9888:12;;;9881:28;;;9925:12;13442:62:6;;;;;;;;;;;;;13432:73;;;;;;13419:86;;13360:827;;;13543:21;13526:13;:38;;;;;;-1:-1:-1;;;13526:38:6;;;;;;;;;;13522:665;;;13603:4;;13593:15;;;;;;;:::i;:::-;;;;;;;;13580:28;;13522:665;;;13646:34;13629:13;:51;;;;;;-1:-1:-1;;;13629:51:6;;;;;;;;;;13625:562;;;13719:45;;;-1:-1:-1;;;;;;13740:22:6;;;;13732:31;13719:45;;;9638:19:8;9673:12;13719:45:6;9628:63:8;13625:562:6;13796:19;13864:13;13856:22;;;;;;-1:-1:-1;;;13856:22:6;;;;;;;;;13913:9;13905:18;;;;;;-1:-1:-1;;;13905:18:6;;;;;;;;;13897:27;;13958:15;13950:24;;-1:-1:-1;;;;;13942:33:6;;14001:7;13993:16;;14043:4;14035:13;;-1:-1:-1;;;;;14027:22:6;;14075:6;14067:15;;14100:4;;13818:300;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;13796:322;;14168:6;14155:20;;;;;;;;:::i;:::-;;;;;;;;;;;;;14145:31;;;;;;14132:44;;13625:562;;14204:4;;;;-1:-1:-1;12941:1287:6;-1:-1:-1;;;;;;;;;;;;12941:1287:6:o;20416:1745::-;20562:6;;20599:41;;20616:24;20599:41;:14;:41;:::i;:::-;20584:56;-1:-1:-1;20650:11:6;20670:41;;20687:24;20670:41;:14;:41;:::i;:::-;20722:19;20744:18;;;:12;:18;;;;;20780:9;;20650:62;;-1:-1:-1;20744:18:6;20772:41;;;;-1:-1:-1;;;20772:41:6;;25547:2:8;20772:41:6;;;25529:21:8;25586:2;25566:18;;;25559:30;-1:-1:-1;;;25605:18:8;;;25598:45;25660:18;;20772:41:6;25519:165:8;20772:41:6;20828:8;20823:1297;20846:9;;20842:13;;;;20823:1297;;;20876:16;20895:2;20898:1;20895:5;;;;;;;;-1:-1:-1;;;20895:5:6;;;;;;;;;;;;;;;;;;;20876:24;;20914:32;20972:1;:12;;;20986:4;20959:32;;;;;;;;9853:19:8;;;9897:2;9888:12;;9881:28;9934:2;9925:12;;9843:100;20959:32:6;;;;;;;;;;;;;20949:43;;;;;;20914:78;;21032:24;21010:1;:18;;;:46;21006:134;;21117:8;;;;21006:134;21177:10;21161:1;:12;;;:26;21153:62;;;;-1:-1:-1;;;21153:62:6;;25195:2:8;21153:62:6;;;25177:21:8;25234:2;25214:18;;;25207:30;25273:25;25253:18;;;25246:53;25316:18;;21153:62:6;25167:173:8;21153:62:6;21250:21;21233:13;:38;;;;;;-1:-1:-1;;;21233:38:6;;;;;;;;;;21229:315;;21308:11;;;;21291:14;;21333:2;;21308:22;;;21322:8;21308:22;;:11;;:22;:::i;:::-;:27;;;;:::i;:::-;21291:44;;21372:5;21361:16;;:7;:16;;;21353:55;;;;-1:-1:-1;;;21353:55:6;;26239:2:8;21353:55:6;;;26221:21:8;26278:2;26258:18;;;26251:30;26317:28;26297:18;;;26290:56;26363:18;;21353:55:6;26211:176:8;21353:55:6;21448:15;;;21426:19;21448:15;;;:6;:15;;;;;;;;;;;21489:22;;;-1:-1:-1;21489:22:6;21481:48;;;;-1:-1:-1;;;21481:48:6;;23448:2:8;21481:48:6;;;23430:21:8;23487:2;23467:18;;;23460:30;-1:-1:-1;;;23506:18:8;;;23499:43;23559:18;;21481:48:6;23420:163:8;21481:48:6;21229:315;;;21566:11;;;;;;;;;21565:12;21557:49;;;;-1:-1:-1;;;21557:49:6;;24842:2:8;21557:49:6;;;24824:21:8;24881:2;24861:18;;;24854:30;24920:26;24900:18;;;24893:54;24964:18;;21557:49:6;24814:174:8;21557:49:6;22055:11;;;;22039:28;;22055:11;;22039:15;:28::i;:::-;22031:56;;;;-1:-1:-1;;;22031:56:6;;24149:2:8;22031:56:6;;;24131:21:8;24188:2;24168:18;;;24161:30;-1:-1:-1;;;24207:18:8;;;24200:45;24262:18;;22031:56:6;24121:165:8;22031:56:6;22108:1;22101:8;;;;;;;;;;20823:1297;20857:3;;;;:::i;:::-;;;;20823:1297;;;-1:-1:-1;22129:25:6;;-1:-1:-1;;;22129:25:6;;29491:2:8;22129:25:6;;;29473:21:8;29530:2;29510:18;;;29503:30;-1:-1:-1;;;29549:18:8;;;29542:45;29604:18;;22129:25:6;29463:165:8;22167:614:6;22280:19;22302:24;;;:12;:24;;;;;22344:9;;22336:45;;;;-1:-1:-1;;;22336:45:6;;28401:2:8;22336:45:6;;;28383:21:8;28440:2;28420:18;;;28413:30;-1:-1:-1;;;28459:18:8;;;28452:49;28518:18;;22336:45:6;28373:169:8;22336:45:6;22399:9;;:23;;;-1:-1:-1;22391:55:6;;;;-1:-1:-1;;;22391:55:6;;29835:2:8;22391:55:6;;;29817:21:8;29874:2;29854:18;;;29847:30;-1:-1:-1;;;29893:18:8;;;29886:49;29952:18;;22391:55:6;29807:169:8;22391:55:6;22456:16;22475:2;22478:11;22475:15;;;;;;;;-1:-1:-1;;;22475:15:6;;;;;;;;;;;;;;;;;;;;;;22508:11;;;;22475:15;;-1:-1:-1;22508:11:6;;22500:52;;;;-1:-1:-1;;;22500:52:6;;26941:2:8;22500:52:6;;;26923:21:8;26980:2;26960:18;;;26953:30;27019:26;26999:18;;;26992:54;27063:18;;22500:52:6;26913:174:8;22500:52:6;22583:21;22566:13;:38;;;;;;-1:-1:-1;;;22566:38:6;;;;;;;;;;22562:185;;22642:11;;;;22620:12;;22668:2;;22635:30;;;22657:8;22635:30;;22642:11;;22635:30;:::i;:::-;:35;;;;:::i;:::-;22620:50;;22684:22;22700:5;22684:15;:22::i;:::-;22720:16;:14;:16::i;:::-;22562:185;;22756:11;;:18;;-1:-1:-1;;22756:18:6;;;;;-1:-1:-1;;;;22167:614:6:o;9045:596:7:-;9106:16;9132;9146:2;9132:4;:16;:::i;:::-;9106:43;-1:-1:-1;9185:4:7;9167:14;9106:43;9179:2;9167:14;:::i;:::-;:29;;;9159:78;;;;-1:-1:-1;;;9159:78:7;;;;;;;:::i;:::-;9252:8;9247:388;9270:9;9266:13;;:1;:13;;;9247:388;;;9300:19;9340:37;9350:4;;9355:6;:1;9359:2;9355:6;:::i;:::-;9350:26;;;9364:6;:1;9368:2;9364:6;:::i;:::-;:11;;9373:2;9364:11;:::i;:::-;9350:26;;;;;;;;;:::i;:::-;9340:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9340:9:7;;-1:-1:-1;;;9340:37:7:i;:::-;9322:57;;;;;;-1:-1:-1;;;9322:57:7;;;;;;;;;9300:79;-1:-1:-1;9393:23:7;9435:42;9445:4;;9450:6;:1;9454:2;9450:6;:::i;:::-;:11;;9459:2;9450:11;:::i;:::-;9445:31;;;9464:6;:1;9468:2;9464:6;:::i;:::-;:11;;9473:2;9464:11;:::i;9435:42::-;9419:60;;9393:86;;9493:15;9519:42;9529:4;;9534:1;9538:2;9534:6;;;;:::i;:::-;:11;;9543:2;9534:11;:::i;:::-;9529:31;;;9548:6;:1;9552:2;9548:6;:::i;:::-;:11;;9557:2;9548:11;:::i;9519:42::-;9511:51;-1:-1:-1;9576:48:7;9588:9;9599:15;9511:51;9576:11;:48::i;:::-;9247:388;;;9281:3;;;;;:::i;:::-;;;;9247:388;;5536:1613;5641:11;5694:9;5686:18;;;;;;-1:-1:-1;;;5686:18:7;;;;;;;;;5665:94;;;;;;10133:19:8;;;;5715:24:7;;;;-1:-1:-1;;;;;;5707:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;5665:94:7;;;-1:-1:-1;;5665:94:7;;;;;;;;;5655:105;;5665:94;5655:105;;;;5774:21;:26;;;;;;;;;:33;5655:105;;-1:-1:-1;5770:75:7;;5828:7;5536:1613;;;:::o;5770:75::-;5859:8;5854:1224;5877:21;:26;;;;;;;;;;:33;5873:37;;;;5854:1224;;;5931:9;5943:26;;;;;;;;;;:29;;;;;;;;;;-1:-1:-1;;;5943:29:7;;;;;;;;;;;;;;;;;5931:41;;6020:9;5990:39;;;;;;-1:-1:-1;;;5990:39:7;;;;;;;;;:13;6004:1;5990:16;;;;;;-1:-1:-1;;;5990:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;:39;;;;;;-1:-1:-1;;;5990:39:7;;;;;;;;;;5986:53;;6031:8;;;5986:53;6085:7;6057:13;6071:1;6057:16;;;;;;-1:-1:-1;;;6057:16:7;;;;;;;;;;;;;;;;;;;:24;;;:35;6053:49;;6094:8;;;6053:49;6156:15;-1:-1:-1;;;;;6120:51:7;:13;6134:1;6120:16;;;;;;-1:-1:-1;;;6120:16:7;;;;;;;;;;;;;;;;;;;;;;:32;;;;-1:-1:-1;;;;;6120:32:7;:51;6116:65;;6173:8;;;6116:65;6275:1;6252:20;;6226:23;;6252:24;;;:::i;:::-;6226:50;;6309:13;6323:15;6309:30;;;;;;-1:-1:-1;;;6309:30:7;;;;;;;;;;;;;;;;;;;6290:13;6304:1;6290:16;;;;;;-1:-1:-1;;;6290:16:7;;;;;;;;;;;;;;;;;:49;;:16;;;;;:49;;:16;;:49;;;:16;;-1:-1:-1;;6290:49:7;;;;;;;;;-1:-1:-1;;;6290:49:7;;;;;;;;;;;;;-1:-1:-1;6290:49:7;;;;-1:-1:-1;;;;;;6290:49:7;;;;;;-1:-1:-1;;;;;6290:49:7;;;;;;;-1:-1:-1;6290:49:7;;;;;;;;6413:16;;-1:-1:-1;;;6427:1:7;;6413:16;;;;-1:-1:-1;;;6413:16:7;;;;;;;;;;;;;;;;;;;;;;:26;;;6405:35;;;;;;-1:-1:-1;;;6405:35:7;;;;;;;;;6459:13;:16;;6473:1;;6459:16;;;;-1:-1:-1;;;6459:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;6459:32:7;6451:41;;-1:-1:-1;;;;;6443:50:7;;6503:13;6517:1;6503:16;;;;;;-1:-1:-1;;;6503:16:7;;;;;;;;;;;;;;;;;;;:24;;;6495:33;;6384:145;;;;;;;;;10133:19:8;;;10177:2;10168:12;;10161:28;;;;10214:2;10205:12;;10198:28;10251:2;10242:12;;10123:137;6384:145:7;;;;;;;;;;;;;6374:156;;;;;;6353:177;;6544:13;:19;;;;;-1:-1:-1;;;6544:19:7;;;;;;;;;;;;;;;;;-1:-1:-1;;6544:19:7;;;;;;;;;-1:-1:-1;;;;;;6544:19:7;;;;;;;;;;6577:244;6600:21;:33;;;;;;;;;;:40;6596:44;;;;6577:244;;;6709:15;6669:21;:33;6691:10;6669:33;;;;;;;;;;;6703:1;6669:36;;;;;;;;-1:-1:-1;;;6669:36:7;;;;;;;;;;;;;;;;;:55;6665:142;;;6787:1;6748:21;:33;6770:10;6748:33;;;;;;;;;;;6782:1;6748:36;;;;;;;;-1:-1:-1;;;6748:36:7;;;;;;;;;;;;;;;;;;:40;6665:142;6642:3;;;;:::i;:::-;;;;6577:244;;;-1:-1:-1;6866:21:7;:26;;;;;;;;;;6893:33;;:37;;6929:1;;6893:37;:::i;:::-;6866:65;;;;;;-1:-1:-1;;;6866:65:7;;;;;;;;;;;;;;;;;6834:21;:26;6856:3;6834:26;;;;;;;;;;;6861:1;6834:29;;;;;;-1:-1:-1;;;6834:29:7;;;;;;;;;;;;;;;;:97;;;;6945:21;:26;6967:3;6945:26;;;;;;;;;;;:32;;;;;-1:-1:-1;;;6945:32:7;;;;;;;;;;;;;;;;;;;;;;;;;;6996:51;7011:9;7022:15;7039:7;6996:51;;;;;;;;:::i;:::-;;;;;;;;7061:7;;;;;5536:1613;;;:::o;5854:1224::-;5912:3;;;;:::i;:::-;;;;5854:1224;;;;7092:50;7106:9;7117:15;7134:7;7092:50;;;;;;;;:::i;:::-;;;;;;;;5536:1613;;;;:::o;9647:600::-;9710:16;9736;9750:2;9736:4;:16;:::i;:::-;9710:43;-1:-1:-1;9789:4:7;9771:14;9710:43;9783:2;9771:14;:::i;:::-;:29;;;9763:78;;;;-1:-1:-1;;;9763:78:7;;;;;;;:::i;:::-;9856:8;9851:390;9874:9;9870:13;;:1;:13;;;9851:390;;;9904:19;9944:37;9954:4;;9959:6;:1;9963:2;9959:6;:::i;9944:37::-;9926:57;;;;;;-1:-1:-1;;;9926:57:7;;;;;;;;;9904:79;-1:-1:-1;9997:23:7;10039:42;10049:4;;10054:6;:1;10058:2;10054:6;:::i;10039:42::-;10023:60;;9997:86;;10097:15;10123:42;10133:4;;10138:1;10142:2;10138:6;;;;:::i;10123:42::-;10115:51;-1:-1:-1;10180:50:7;10194:9;10205:15;10115:51;10180:13;:50::i;:::-;9851:390;;;9885:3;;;;;:::i;:::-;;;;9851:390;;10879:1973:6;11051:15;11038:9;:28;;;;;;-1:-1:-1;;;11038:28:6;;;;;;;;;;11034:1812;;;11086:46;;-1:-1:-1;;;11086:46:6;;-1:-1:-1;;;;;13979:32:8;;;11086:46:6;;;13961:51:8;14028:18;;;14021:34;;;11086:32:6;;;;;13934:18:8;;11086:46:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;11086:46:6;;;;;;;;-1:-1:-1;;11086:46:6;;;;;;;;;;;;:::i;:::-;;;11082:695;;;;:::i;:::-;;;;;;;;;;:::i;:::-;;;;;;;;11567:77;11586:9;11597:15;11614:7;11623:4;11629:6;11637;11567:77;;;;;;;;;;;:::i;:::-;;;;;;;;11511:148;11034:1812;;11082:695;;;11689:73;11708:9;11719:15;11736:7;11745:4;11751:6;11689:73;;;;;;;;;;:::i;:::-;;;;;;;;11034:1812;;11082:695;11177:7;11173:230;;;11208:48;11220:9;11231:15;11248:7;11208:11;:48::i;:::-;11283:73;11306:9;11317:15;11334:7;11343:4;11349:6;11283:73;;;;;;;;;;:::i;11173:230::-;11425:70;11445:9;11456:15;11473:7;11482:4;11488:6;11425:70;;;;;;;;;;:::i;11034:1812::-;11810:16;11797:9;:29;;;;;;-1:-1:-1;;;11797:29:6;;;;;;;;;;11793:1053;;;11846:77;;-1:-1:-1;;;11846:77:6;;-1:-1:-1;;;;;11846:41:6;;;;;:77;;11896:4;;11903;;11909:7;;11918:4;;11846:77;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11842:459;;;;:::i;:::-;11946:73;11969:9;11980:15;11997:7;12006:4;12012:6;11946:73;;;;;;;;;;:::i;11793:1053::-;12334:17;12321:9;:30;;;;;;-1:-1:-1;;;12321:30:6;;;;;;;;;;12317:529;;;12371:86;;-1:-1:-1;;;12371:86:6;;-1:-1:-1;;;;;12371:42:6;;;;;:86;;12422:4;;12429;;12435:7;;12444:6;;12452:4;;12371:86;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12367:469;;;;:::i;:::-;12481:73;12504:9;12515:15;12532:7;12541:4;12547:6;12481:73;;;;;;;;;;:::i;:::-;;;;;;;;10879:1973;;;;;;:::o;8286:753:7:-;8359:16;8385;8399:2;8385:4;:16;:::i;:::-;8359:43;-1:-1:-1;8438:4:7;8420:14;8359:43;8432:2;8420:14;:::i;:::-;:29;;;8412:78;;;;-1:-1:-1;;;8412:78:7;;;;;;;:::i;:::-;8500:38;8560:9;8541:29;;-1:-1:-1;;;;;8541:29:7;;;;;-1:-1:-1;;;8541:29:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;8541:29:7;;-1:-1:-1;;8541:29:7;;;;;;;;;;;;8500:70;;8585:8;8580:411;8603:9;8599:13;;:1;:13;;;8580:411;;;8633:19;8673:37;8683:4;;8688:6;:1;8692:2;8688:6;:::i;8673:37::-;8655:57;;;;;;-1:-1:-1;;;8655:57:7;;;;;;;;;8633:79;-1:-1:-1;8726:23:7;8768:42;8778:4;;8783:6;:1;8787:2;8783:6;:::i;8768:42::-;8752:60;;8726:86;;8826:15;8852:42;8862:4;;8867:1;8871:2;8867:6;;;;:::i;8852:42::-;8844:51;;8826:69;;8931:49;;;;;;;;8944:9;8931:49;;;;;;-1:-1:-1;;;8931:49:7;;;;;;;;;;;;;8955:15;-1:-1:-1;;;;;8931:49:7;;;;;8972:7;8931:49;;;8909:16;8926:1;8909:19;;;;;;;;-1:-1:-1;;;8909:19:7;;;;;;;;;;;;;;:71;;;;8580:411;;;8614:3;;;;;:::i;:::-;;;;8580:411;;;;9000:32;9015:16;9000:14;:32::i;9374:975:6:-;9449:4;;9485:33;3043:5;9485:15;:33;:::i;:::-;9539:15;;9465:54;;-1:-1:-1;9539:15:6;;;;9533:21;;;;9529:101;;;9583:1;9570:10;:14;9598:15;:21;;-1:-1:-1;;9598:21:6;;;;;;;9529:101;9665:10;;9656:6;9643:10;;:19;;;;:::i;:::-;:32;9639:148;;;9721:10;;9733;;9696:54;;;31801:25:8;;;31857:2;31842:18;;31835:34;;;;31885:18;;31878:34;-1:-1:-1;;;;;31948:32:8;;31943:2;31928:18;;31921:60;9696:54:6;;31788:3:8;31773:19;9696:54:6;;;;;;;;9771:5;9764:12;;;;;9639:148;9824:6;9800:21;:30;9796:145;;;9851:53;;;31414:25:8;;;9876:21:6;31470:2:8;31455:18;;31448:34;-1:-1:-1;;;;;31518:32:8;;31498:18;;;31491:60;;;;9851:53:6;;31402:2:8;31387:18;9851:53:6;31369:188:8;9796:145:6;9964:6;9950:10;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;9998:29:6;;9981:12;;-1:-1:-1;;;;;9998:9:6;;;10016:6;;9981:12;9998:29;9981:12;9998:29;10016:6;9998:9;:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9980:47;;;10156:7;10151:130;;10193:6;10179:10;;:20;;;;;;;:::i;:::-;;;;-1:-1:-1;;10218:26:6;;-1:-1:-1;;;;;11877:32:8;;11859:51;;10218:26:6;;11847:2:8;11832:18;10218:26:6;;;;;;;10265:5;10258:12;;;;;;10151:130;10296:25;;;30559::8;;;-1:-1:-1;;;;;30620:32:8;;30615:2;30600:18;;30593:60;10296:25:6;;30532:18:8;10296:25:6;;;;;;;-1:-1:-1;10338:4:6;;9374:975;-1:-1:-1;;;;9374:975:6:o;10355:295::-;10412:17;;10393:4;;-1:-1:-1;;;;;10412:17:6;10408:118;;10464:25;;;;;;;-1:-1:-1;10510:5:6;;10355:295::o;10408:118::-;10540:8;:6;:8::i;:::-;10535:88;;10569:17;;;;;;;-1:-1:-1;10607:5:6;;10355:295::o;10656:217::-;10748:17;;-1:-1:-1;;;;;10748:17:6;:31;10740:78;;;;-1:-1:-1;;;10740:78:6;;29088:2:8;10740:78:6;;;29070:21:8;29127:2;29107:18;;;29100:30;29166:34;29146:18;;;29139:62;-1:-1:-1;;;29217:18:8;;;29210:32;29259:19;;10740:78:6;29060:224:8;10740:78:6;10828:17;:38;;-1:-1:-1;;;;;;10828:38:6;-1:-1:-1;;;;;10828:38:6;;;;;;;;;;10656:217::o;17439:2529::-;17485:18;17536:15;17725:931;17746:7;:14;17732:28;;;;17725:931;;;17791:12;17806:7;17814:11;17806:20;;;;;;;;-1:-1:-1;;;17806:20:6;;;;;;;;;;;;;;;;;;;;;17862:18;;;:12;:18;;;;;;;17996:9;;17806:20;;-1:-1:-1;17862:18:6;17992:61;;18030:8;;;;17992:61;18498:16;18517:2;18520:1;18517:5;;;;;;-1:-1:-1;;;18517:5:6;;;;;;;;;;;;;;;;;18560:11;18517:5;;;;;18560:11;;;;18517:5;;-1:-1:-1;18560:36:6;-1:-1:-1;;18575:21:6;;18560:36;;:11;;:36;18556:80;;18616:5;;;;;18556:80;17725:931;;;;17762:13;;;;:::i;:::-;;;;17725:931;;;18815:16;;;18811:159;;18953:7;;17439:2529::o;18811:159::-;19090:8;19085:281;19108:11;19104:15;;:1;:15;;;19085:281;;;19140:12;19155:7;19163:1;19155:10;;;;;;;;-1:-1:-1;;;19155:10:6;;;;;;;;;;;;;;;;;;;;;19201:18;;;:12;:18;;;;;;19155:10;;-1:-1:-1;19201:18:6;19233:84;19256:9;;19252:13;;;;19233:84;;;19297:2;19300:1;19297:5;;;;;;;;-1:-1:-1;;;19297:5:6;;;;;;;;;;;;;;;;;;;;;19290:12;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;19290:12:6;;;19267:3;;;;:::i;:::-;;;;19233:84;;;-1:-1:-1;19337:18:6;;;;:12;:18;;;;;19330:25;;;:::i;:::-;19085:281;;19121:3;;;;;:::i;:::-;;;;19085:281;;;-1:-1:-1;19571:7:6;:14;19612:11;19596:134;19629:3;19625:7;;:1;:7;;;19596:134;;;19699:7;19707:1;19699:10;;;;;;;;-1:-1:-1;;;19699:10:6;;;;;;;;;;;;;;;;;19672:7;19684:11;19680:1;:15;19672:24;;;;;;;;-1:-1:-1;;;19672:24:6;;;;;;;;;;;;;;;;;;:37;19634:3;;;;:::i;:::-;;;;19596:134;;;;19744:8;19739:79;19762:11;19758:15;;:1;:15;;;19739:79;;;19794:7;:13;;;;;-1:-1:-1;;;19794:13:6;;;;;;;;;;;;;;;;;;;;;;;;;;19775:3;;;;;:::i;:::-;;;;19739:79;;19974:156;20041:4;3001:2;20068:36;20094:10;20075:15;20068:36;:::i;:::-;:55;;;;19974:156;-1:-1:-1;;19974:156:6:o;24221:210::-;24289:13;;;24279:7;24289:13;;;:6;:13;;;;;;;;24316:6;24312:61;;24338:12;:24;;;;;;;-1:-1:-1;24338:24:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24312:61;24397:13;;;;;;;;;:6;:13;;;;;:21;;-1:-1:-1;;24397:21:6;24417:1;24413:5;;;24397:21;;;;;;;;24221:210::o;23041:1174::-;23086:11;23100:42;3001:2;23107:15;23100:42;:::i;:::-;23086:56;-1:-1:-1;23152:25:6;23180:15;;23187:8;23180:15;23086:56;23180:15;:::i;:::-;23152:43;;23205:15;23259:2;23238:23;;:18;:23;;;23234:88;;;23288:23;23309:2;23288:18;:23;:::i;:::-;23277:34;;23234:88;23376:12;:19;23331:29;;-1:-1:-1;;;;;23363:33:6;;;;;-1:-1:-1;;;23363:33:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23363:33:6;;23331:65;;23406:22;23447:7;23442:341;23464:12;:19;23460:23;;;;23442:341;;;23504:12;23519;23532:1;23519:15;;;;;;;;-1:-1:-1;;;23519:15:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;23552:16:6;;;;23548:225;;;23595:13;;;;;;;:6;:13;;;;;23588:20;;-1:-1:-1;;23588:20:6;;;23548:225;;;23680:5;23647:13;23661:15;23647:30;;;;;;;;-1:-1:-1;;;23647:30:6;;;;;;;;;:38;;;;:30;;;;;;;;;;;:38;23727:17;;;;;23548:225;-1:-1:-1;23485:3:6;;;;:::i;:::-;;;;23442:341;;;;23999:28;24043:15;24030:29;;-1:-1:-1;;;;;24030:29:6;;;;;-1:-1:-1;;;24030:29:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24030:29:6;;23999:60;;24074:7;24069:103;24091:15;24087:19;;:1;:19;;;24069:103;;;24145:13;24159:1;24145:16;;;;;;;;-1:-1:-1;;;24145:16:6;;;;;;;;;;;;;;;24127:12;24140:1;24127:15;;;;;;;;-1:-1:-1;;;24127:15:6;;;;;;;;;:34;;;;:15;;;;;;;;;;;:34;24108:3;;;;:::i;:::-;;;;24069:103;;;-1:-1:-1;24181:27:6;;;;:12;;:27;;;;;:::i;:::-;;23041:1174;;;;;;:::o;10253:408:7:-;10311:7;10333:1;:8;10345:1;10333:13;10329:63;;;-1:-1:-1;10377:3:7;;10253:408;-1:-1:-1;10253:408:7:o;10329:63::-;10421:2;10409:1;:8;:14;;10401:47;;;;-1:-1:-1;;;10401:47:7;;24493:2:8;10401:47:7;;;24475:21:8;24532:2;24512:18;;;24505:30;-1:-1:-1;;;24551:18:8;;;24544:50;24611:18;;10401:47:7;24465:170:8;10401:47:7;10458:9;10477;10501:1;:8;10496:2;:13;;;;:::i;:::-;10495:19;;10513:1;10495:19;:::i;:::-;10565:2;10558:10;;;;10552:17;10587:11;;10616;;;;10253:408;-1:-1:-1;;;10253:408:7:o;7155:1125::-;7243:8;7238:431;7261:13;:20;7257:24;;;;7238:431;;;7302:19;7324:13;7338:1;7324:16;;;;;;;;-1:-1:-1;;;7324:16:7;;;;;;;;;;;;;;;;;;;;;:26;;7390:16;;7324:26;;;;;-1:-1:-1;7324:26:7;7390:16;;;;;;;;-1:-1:-1;;;7390:16:7;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;;-1:-1:-1;;;;;7390:32:7;7364:58;;7436:15;7454:13;7468:1;7454:16;;;;;;;;-1:-1:-1;;;7454:16:7;;;;;;;;;;;;;;;;;;;:24;;;7436:42;;7492:11;7545:9;7537:18;;;;;;-1:-1:-1;;;7537:18:7;;;;;;;;;7516:94;;;;;;10133:19:8;;;;7566:24:7;;;;-1:-1:-1;;;;;;7558:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;7516:94:7;;;-1:-1:-1;;7516:94:7;;;;;;;;;7506:105;;7516:94;7506:105;;;;7632:21;:26;;;;;;;;;;7506:105;;-1:-1:-1;7625:33:7;;;:::i;:::-;7238:431;;;;7283:3;;;;;:::i;:::-;;;;7238:431;;;-1:-1:-1;7678:20:7;7685:13;;7678:20;:::i;:::-;7713:8;7708:566;7731:16;:23;7727:1;:27;;;7708:566;;;7775:19;7797:16;7814:1;7797:19;;;;;;;;-1:-1:-1;;;7797:19:7;;;;;;;;;;;;;;;:29;;;7775:51;;7840:23;7866:16;7883:1;7866:19;;;;;;;;-1:-1:-1;;;7866:19:7;;;;;;;;;;;;;;;:35;;;7840:61;;7915:15;7933:16;7950:1;7933:19;;;;;;;;-1:-1:-1;;;7933:19:7;;;;;;;;;;;;;;;:27;;;7915:45;;7974:11;8027:9;8019:18;;;;;;-1:-1:-1;;;8019:18:7;;;;;;;;;7998:94;;;;;;10133:19:8;;;;8048:24:7;;;;-1:-1:-1;;;;;;8040:33:7;10168:12:8;;;10161:28;;;;10205:12;;10198:28;;;10242:12;;7998:94:7;;;;;;;;;;;;7988:105;;;;;;7974:119;;8107:21;8131:49;;;;;;;;8144:9;8131:49;;;;;;-1:-1:-1;;;8131:49:7;;;;;;;;;;;-1:-1:-1;;;;;8131:49:7;;;;;;;;;;;8194:13;:21;;;;;;;-1:-1:-1;8194:21:7;;;;;;;;;;;;;8107:73;;-1:-1:-1;8107:73:7;;8194:21;;;;-1:-1:-1;;8194:21:7;;;;;;;;;-1:-1:-1;;;8194:21:7;;;;;;;;;;;;;-1:-1:-1;8194:21:7;;;;;;;-1:-1:-1;;;;;8194:21:7;;;;;-1:-1:-1;;;;;;8194:21:7;;;;;;;;;;;;;;;;;8229:26;;;;;;;;;:34;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8261:1:7;;-1:-1:-1;7756:3:7;;-1:-1:-1;8261:1:7;;-1:-1:-1;7756:3:7;:::i;:::-;;;;7708:566;;;;7155:1125;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:134:8;82:20;;111:31;82:20;111:31;:::i;:::-;63:85;;;:::o;153:395::-;216:8;226:6;280:3;273:4;265:6;261:17;257:27;247:2;;305:8;295;288:26;247:2;-1:-1:-1;335:20:8;;-1:-1:-1;;;;;367:30:8;;364:2;;;417:8;407;400:26;364:2;461:4;453:6;449:17;437:29;;521:3;514:4;504:6;501:1;497:14;489:6;485:27;481:38;478:47;475:2;;;538:1;535;528:12;475:2;237:311;;;;;:::o;553:375::-;604:8;614:6;668:3;661:4;653:6;649:17;645:27;635:2;;693:8;683;676:26;635:2;-1:-1:-1;723:20:8;;-1:-1:-1;;;;;755:30:8;;752:2;;;805:8;795;788:26;752:2;849:4;841:6;837:17;825:29;;901:3;894:4;885:6;877;873:19;869:30;866:39;863:2;;;918:1;915;908:12;933:154;1012:20;;1061:1;1051:12;;1041:2;;1077:1;1074;1067:12;1092:150;1167:20;;1216:1;1206:12;;1196:2;;1232:1;1229;1222:12;1247:163;1314:20;;1374:10;1363:22;;1353:33;;1343:2;;1400:1;1397;1390:12;1415:1378;1575:6;1583;1591;1599;1607;1615;1623;1631;1684:3;1672:9;1663:7;1659:23;1655:33;1652:2;;;1706:6;1698;1691:22;1652:2;1750:9;1737:23;1769:31;1794:5;1769:31;:::i;:::-;1819:5;-1:-1:-1;1876:2:8;1861:18;;1848:32;1889:33;1848:32;1889:33;:::i;:::-;1941:7;-1:-1:-1;1999:2:8;1984:18;;1971:32;-1:-1:-1;;;;;2052:14:8;;;2049:2;;;2084:6;2076;2069:22;2049:2;2128:70;2190:7;2181:6;2170:9;2166:22;2128:70;:::i;:::-;2217:8;;-1:-1:-1;2102:96:8;-1:-1:-1;2305:2:8;2290:18;;2277:32;;-1:-1:-1;2321:16:8;;;2318:2;;;2355:6;2347;2340:22;2318:2;2399:72;2463:7;2452:8;2441:9;2437:24;2399:72;:::i;:::-;2490:8;;-1:-1:-1;2373:98:8;-1:-1:-1;2578:3:8;2563:19;;2550:33;;-1:-1:-1;2595:16:8;;;2592:2;;;2629:6;2621;2614:22;2592:2;;2673:60;2725:7;2714:8;2703:9;2699:24;2673:60;:::i;:::-;1642:1151;;;;-1:-1:-1;1642:1151:8;;-1:-1:-1;1642:1151:8;;;;;;2752:8;-1:-1:-1;;;1642:1151:8:o;2798:774::-;2895:6;2903;2911;2919;2927;2980:3;2968:9;2959:7;2955:23;2951:33;2948:2;;;3002:6;2994;2987:22;2948:2;3046:9;3033:23;3065:31;3090:5;3065:31;:::i;:::-;3115:5;-1:-1:-1;3172:2:8;3157:18;;3144:32;3185:33;3144:32;3185:33;:::i;:::-;3237:7;-1:-1:-1;3291:2:8;3276:18;;3263:32;;-1:-1:-1;3346:2:8;3331:18;;3318:32;-1:-1:-1;;;;;3362:30:8;;3359:2;;;3410:6;3402;3395:22;3359:2;3454:58;3504:7;3495:6;3484:9;3480:22;3454:58;:::i;:::-;2938:634;;;;-1:-1:-1;2938:634:8;;-1:-1:-1;3531:8:8;;3428:84;2938:634;-1:-1:-1;;;2938:634:8:o;3577:843::-;3683:6;3691;3699;3707;3715;3723;3776:3;3764:9;3755:7;3751:23;3747:33;3744:2;;;3798:6;3790;3783:22;3744:2;3842:9;3829:23;3861:31;3886:5;3861:31;:::i;:::-;3911:5;-1:-1:-1;3968:2:8;3953:18;;3940:32;3981:33;3940:32;3981:33;:::i;:::-;4033:7;-1:-1:-1;4087:2:8;4072:18;;4059:32;;-1:-1:-1;4138:2:8;4123:18;;4110:32;;-1:-1:-1;4193:3:8;4178:19;;4165:33;-1:-1:-1;;;;;4210:30:8;;4207:2;;;4258:6;4250;4243:22;4207:2;4302:58;4352:7;4343:6;4332:9;4328:22;4302:58;:::i;:::-;3734:686;;;;-1:-1:-1;3734:686:8;;-1:-1:-1;3734:686:8;;4379:8;;3734:686;-1:-1:-1;;;3734:686:8:o;4425:1396::-;4641:6;4649;4657;4665;4673;4681;4689;4697;4705;4713;4721:7;4730;4784:3;4772:9;4763:7;4759:23;4755:33;4752:2;;;4806:6;4798;4791:22;4752:2;-1:-1:-1;;;;;4843:9:8;4830:23;4827:47;4824:2;;;4892:6;4884;4877:22;4824:2;4936:87;5015:7;5002:9;4989:23;4978:9;4974:39;4936:87;:::i;:::-;5042:8;;-1:-1:-1;5069:8:8;-1:-1:-1;5096:37:8;5129:2;5114:18;;5096:37;:::i;:::-;5086:47;;5180:2;5169:9;5165:18;5152:32;5142:42;;5203:49;5248:2;5237:9;5233:18;5203:49;:::i;:::-;5193:59;;5271:46;5312:3;5301:9;5297:19;5271:46;:::i;:::-;5261:56;;5336:39;5370:3;5359:9;5355:19;5336:39;:::i;:::-;5326:49;;5422:3;5411:9;5407:19;5394:33;5384:43;;5446:39;5480:3;5469:9;5465:19;5446:39;:::i;:::-;5436:49;;5532:3;5521:9;5517:19;5504:33;5494:43;;-1:-1:-1;;;;;5580:3:8;5569:9;5565:19;5552:33;5549:57;5546:2;;;5625:7;5616;5609:24;5546:2;5672:85;5749:7;5741:3;5730:9;5726:19;5713:33;5702:9;5698:49;5672:85;:::i;:::-;5777:9;5766:20;;5806:9;5795:20;;;;4742:1079;;;;;;;;;;;;;;:::o;5826:297::-;5893:6;5946:2;5934:9;5925:7;5921:23;5917:32;5914:2;;;5967:6;5959;5952:22;5914:2;6004:9;5998:16;6057:5;6050:13;6043:21;6036:5;6033:32;6023:2;;6084:6;6076;6069:22;6023:2;6112:5;5904:219;-1:-1:-1;;;5904:219:8:o;6128:190::-;6187:6;6240:2;6228:9;6219:7;6215:23;6211:32;6208:2;;;6261:6;6253;6246:22;6208:2;-1:-1:-1;6289:23:8;;6198:120;-1:-1:-1;6198:120:8:o;6323:194::-;6393:6;6446:2;6434:9;6425:7;6421:23;6417:32;6414:2;;;6467:6;6459;6452:22;6414:2;-1:-1:-1;6495:16:8;;6404:113;-1:-1:-1;6404:113:8:o;6522:326::-;6599:6;6607;6615;6668:2;6656:9;6647:7;6643:23;6639:32;6636:2;;;6689:6;6681;6674:22;6636:2;-1:-1:-1;;6717:23:8;;;6787:2;6772:18;;6759:32;;-1:-1:-1;6838:2:8;6823:18;;;6810:32;;6626:222;-1:-1:-1;6626:222:8:o;6853:255::-;6911:6;6964:2;6952:9;6943:7;6939:23;6935:32;6932:2;;;6985:6;6977;6970:22;6932:2;7029:9;7016:23;7048:30;7072:5;7048:30;:::i;7113:259::-;7182:6;7235:2;7223:9;7214:7;7210:23;7206:32;7203:2;;;7256:6;7248;7241:22;7203:2;7293:9;7287:16;7312:30;7336:5;7312:30;:::i;7377:450::-;7427:3;7465:5;7459:12;7492:6;7487:3;7480:19;7518:4;7547:2;7542:3;7538:12;7531:19;;7584:2;7577:5;7573:14;7605:3;7617:185;7631:6;7628:1;7625:13;7617:185;;;7706:13;;7699:21;7692:29;7680:42;;7742:12;;;;7777:15;;;;7653:1;7646:9;7617:185;;;-1:-1:-1;7818:3:8;;7435:392;-1:-1:-1;;;;;7435:392:8:o;7832:437::-;7885:3;7923:5;7917:12;7950:6;7945:3;7938:19;7976:4;8005:2;8000:3;7996:12;7989:19;;8042:2;8035:5;8031:14;8063:3;8075:169;8089:6;8086:1;8083:13;8075:169;;;8150:13;;8138:26;;8184:12;;;;8219:15;;;;8111:1;8104:9;8075:169;;8274:453;8326:3;8364:5;8358:12;8391:6;8386:3;8379:19;8417:4;8446:2;8441:3;8437:12;8430:19;;8483:2;8476:5;8472:14;8504:3;8516:186;8530:6;8527:1;8524:13;8516:186;;;8595:13;;8610:10;8591:30;8579:43;;8642:12;;;;8677:15;;;;8552:1;8545:9;8516:186;;8732:268;8820:6;8815:3;8808:19;8872:6;8865:5;8858:4;8853:3;8849:14;8836:43;-1:-1:-1;8790:3:8;8899:16;;;8917:4;8895:27;;;8888:40;;;;8982:2;8961:15;;;-1:-1:-1;;8957:29:8;8948:39;;;8944:50;;8798:202::o;9005:257::-;9046:3;9084:5;9078:12;9111:6;9106:3;9099:19;9127:63;9183:6;9176:4;9171:3;9167:14;9160:4;9153:5;9149:16;9127:63;:::i;:::-;9244:2;9223:15;-1:-1:-1;;9219:29:8;9210:39;;;;9251:4;9206:50;;9054:208;-1:-1:-1;;9054:208:8:o;9267:237::-;9348:1;9341:5;9338:12;9328:2;;9393:10;9388:3;9384:20;9381:1;9374:31;9428:4;9425:1;9418:15;9456:4;9453:1;9446:15;9328:2;9480:18;;9318:186::o;10265:676::-;10602:6;10597:3;10590:19;10639:6;10634:2;10629:3;10625:12;10618:28;10676:6;10671:2;10666:3;10662:12;10655:28;10713:6;10708:2;10703:3;10699:12;10692:28;10751:6;10745:3;10740;10736:13;10729:29;10789:6;10783:3;10778;10774:13;10767:29;10841:6;10833;10827:3;10822;10818:13;10805:43;10572:3;10871:16;;10889:3;10867:26;10902:15;;;10867:26;10580:361;-1:-1:-1;;;;;;;10580:361:8:o;10946:273::-;11129:6;11121;11116:3;11103:33;11085:3;11155:16;;11180:15;;;11155:16;11093:126;-1:-1:-1;11093:126:8:o;11224:274::-;11353:3;11391:6;11385:13;11407:53;11453:6;11448:3;11441:4;11433:6;11429:17;11407:53;:::i;:::-;11476:16;;;;;11361:137;-1:-1:-1;;11361:137:8:o;12137:488::-;-1:-1:-1;;;;;12406:15:8;;;12388:34;;12458:15;;12453:2;12438:18;;12431:43;12505:2;12490:18;;12483:34;;;12553:3;12548:2;12533:18;;12526:31;;;12331:4;;12574:45;;12599:19;;12591:6;12574:45;:::i;:::-;12566:53;12340:285;-1:-1:-1;;;;;;12340:285:8:o;12630:587::-;-1:-1:-1;;;;;12937:15:8;;;12919:34;;12989:15;;12984:2;12969:18;;12962:43;13036:2;13021:18;;13014:34;;;13079:2;13064:18;;13057:34;;;12899:3;13122;13107:19;;13100:32;;;12862:4;;13149:62;;13191:19;;13183:6;13175;13149:62;:::i;:::-;13141:70;12871:346;-1:-1:-1;;;;;;;;12871:346:8:o;13222:560::-;-1:-1:-1;;;;;13519:15:8;;;13501:34;;13571:15;;13566:2;13551:18;;13544:43;13618:2;13603:18;;13596:34;;;13661:2;13646:18;;13639:34;;;13481:3;13704;13689:19;;13682:32;;;13444:4;;13731:45;;13756:19;;13748:6;13731:45;:::i;:::-;13723:53;13453:329;-1:-1:-1;;;;;;;13453:329:8:o;14066:1068::-;14549:3;14538:9;14531:22;14512:4;14576:57;14628:3;14617:9;14613:19;14605:6;14576:57;:::i;:::-;14681:9;14673:6;14669:22;14664:2;14653:9;14649:18;14642:50;14715:44;14752:6;14744;14715:44;:::i;:::-;14701:58;;14807:9;14799:6;14795:22;14790:2;14779:9;14775:18;14768:50;14841:44;14878:6;14870;14841:44;:::i;:::-;14827:58;;14933:9;14925:6;14921:22;14916:2;14905:9;14901:18;14894:50;14967:43;15003:6;14995;14967:43;:::i;:::-;14953:57;;15059:9;15051:6;15047:22;15041:3;15030:9;15026:19;15019:51;15087:41;15121:6;15113;15087:41;:::i;15139:863::-;15544:3;15533:9;15526:22;15507:4;15571:57;15623:3;15612:9;15608:19;15600:6;15571:57;:::i;:::-;15676:9;15668:6;15664:22;15659:2;15648:9;15644:18;15637:50;15710:44;15747:6;15739;15710:44;:::i;:::-;15696:58;;15802:9;15794:6;15790:22;15785:2;15774:9;15770:18;15763:50;15836:43;15872:6;15864;15836:43;:::i;:::-;15822:57;;15927:9;15919:6;15915:22;15910:2;15899:9;15895:18;15888:50;15955:41;15989:6;15981;15955:41;:::i;16007:1390::-;16365:2;16377:21;;;16447:13;;16350:18;;;16469:22;;;16317:4;;16545;;16522:3;16507:19;;;16572:15;;;16317:4;16618:188;16632:6;16629:1;16626:13;16618:188;;;16681:45;16722:3;16713:6;16707:13;16681:45;:::i;:::-;16746:12;;;;16781:15;;;;16654:1;16647:9;16618:188;;;-1:-1:-1;;;16842:19:8;;;16822:18;;;16815:47;16912:13;;16934:21;;;17010:15;;;;16973:12;;;17045:4;17058:215;17074:8;17069:3;17066:17;17058:215;;;17147:15;;-1:-1:-1;;;;;17143:41:8;17129:56;;17246:17;;;;17207:14;;;;17181:1;17093:11;17058:215;;;17062:3;;17320:9;17313:5;17309:21;17304:2;17293:9;17289:18;17282:49;17348:43;17385:5;17377:6;17348:43;:::i;18996:376::-;19198:2;19183:18;;19210:44;19187:9;19236:6;19210:44;:::i;:::-;-1:-1:-1;;;;;19290:32:8;;;;19285:2;19270:18;;19263:60;19354:2;19339:18;19332:34;19165:207;;-1:-1:-1;19165:207:8:o;19377:550::-;19635:3;19620:19;;19648:44;19624:9;19674:6;19648:44;:::i;:::-;-1:-1:-1;;;;;19766:15:8;;;19761:2;19746:18;;19739:43;19813:2;19798:18;;19791:34;;;;19861:15;;;;19856:2;19841:18;;19834:43;19908:3;19893:19;19886:35;;;;19602:325;;-1:-1:-1;19602:325:8:o;19932:665::-;20215:44;20249:9;20241:6;20215:44;:::i;:::-;-1:-1:-1;;;;;20333:15:8;;;20328:2;20313:18;;20306:43;20380:2;20365:18;;20358:34;;;20428:15;;20423:2;20408:18;;20401:43;20475:3;20460:19;;20453:35;;;20525:3;20286;20504:19;;20497:32;;;20196:4;;20546:45;;20571:19;;20563:6;20546:45;:::i;20602:734::-;20938:44;20972:9;20964:6;20938:44;:::i;:::-;-1:-1:-1;;;;;21056:15:8;;;21051:2;21036:18;;21029:43;21103:2;21088:18;;21081:34;;;;21151:15;;21146:2;21131:18;;21124:43;21198:3;21183:19;;21176:35;;;;21248:3;21009;21227:19;;21220:32;;;20919:4;21268:19;;;21261:33;21326:3;21311:19;;20928:408;-1:-1:-1;20928:408:8:o;21341:779::-;21668:44;21702:9;21694:6;21668:44;:::i;:::-;21743:2;21728:18;;21721:34;;;-1:-1:-1;;;;;21829:15:8;;;21824:2;21809:18;;21802:43;21881:15;;;21876:2;21861:18;;21854:43;21934:15;;21928:3;21913:19;;21906:44;21782:3;21966:19;;21959:35;;;22031:3;22025;22010:19;;22003:32;;;21649:4;;22052:62;;22094:19;;22086:6;22078;22052:62;:::i;:::-;22044:70;21658:462;-1:-1:-1;;;;;;;;;;21658:462:8:o;27092:400::-;27294:2;27276:21;;;27333:2;27313:18;;;27306:30;27372:34;27367:2;27352:18;;27345:62;-1:-1:-1;;;27438:2:8;27423:18;;27416:34;27482:3;27467:19;;27266:226::o;32477:363::-;32582:9;32593;32635:8;32623:10;32620:24;32617:2;;;32665:9;32654;32647:28;32617:2;32702:6;32692:8;32689:20;32686:2;;;32730:9;32719;32712:28;32686:2;-1:-1:-1;;32764:23:8;;;32809:25;;;;;-1:-1:-1;32607:233:8:o;32845:128::-;32885:3;32916:1;32912:6;32909:1;32906:13;32903:2;;;32922:18;;:::i;:::-;-1:-1:-1;32958:9:8;;32893:80::o;32978:228::-;33017:3;33045:10;33082:2;33079:1;33075:10;33112:2;33109:1;33105:10;33143:3;33139:2;33135:12;33130:3;33127:21;33124:2;;;33151:18;;:::i;:::-;33187:13;;33025:181;-1:-1:-1;;;;33025:181:8:o;33211:120::-;33251:1;33277;33267:2;;33282:18;;:::i;:::-;-1:-1:-1;33316:9:8;;33257:74::o;33336:191::-;33375:1;33401:10;33438:2;33435:1;33431:10;33460:3;33450:2;;33467:18;;:::i;:::-;33505:10;;33501:20;;;;;33381:146;-1:-1:-1;;33381:146:8:o;33532:168::-;33572:7;33638:1;33634;33630:6;33626:14;33623:1;33620:21;33615:1;33608:9;33601:17;33597:45;33594:2;;;33645:18;;:::i;:::-;-1:-1:-1;33685:9:8;;33584:116::o;33705:262::-;33744:7;33776:10;33813:2;33810:1;33806:10;33843:2;33840:1;33836:10;33899:3;33895:2;33891:12;33886:3;33883:21;33876:3;33869:11;33862:19;33858:47;33855:2;;;33908:18;;:::i;:::-;33948:13;;33756:211;-1:-1:-1;;;;33756:211:8:o;33972:125::-;34012:4;34040:1;34037;34034:8;34031:2;;;34045:18;;:::i;:::-;-1:-1:-1;34082:9:8;;34021:76::o;34102:221::-;34141:4;34170:10;34230;;;;34200;;34252:12;;;34249:2;;;34267:18;;:::i;:::-;34304:13;;34150:173;-1:-1:-1;;;34150:173:8:o;34328:195::-;34366:4;34403;34400:1;34396:12;34435:4;34432:1;34428:12;34460:3;34455;34452:12;34449:2;;;34467:18;;:::i;:::-;34504:13;;;34375:148;-1:-1:-1;;;34375:148:8:o;34528:258::-;34600:1;34610:113;34624:6;34621:1;34618:13;34610:113;;;34700:11;;;34694:18;34681:11;;;34674:39;34646:2;34639:10;34610:113;;;34741:6;34738:1;34735:13;34732:2;;;-1:-1:-1;;34776:1:8;34758:16;;34751:27;34581:205::o;34791:346::-;34901:2;34882:13;;-1:-1:-1;;34878:27:8;34866:40;;-1:-1:-1;;;;;34921:34:8;;34957:22;;;34918:62;34915:2;;;35022:10;35017:3;35013:20;35010:1;35003:31;35057:4;35054:1;35047:15;35085:4;35082:1;35075:15;34915:2;35116;35109:22;-1:-1:-1;;34838:299:8:o;35142:201::-;35180:3;35208:10;35253:2;35246:5;35242:14;35280:2;35271:7;35268:15;35265:2;;;35286:18;;:::i;:::-;35335:1;35322:15;;35188:155;-1:-1:-1;;;35188:155:8:o;35348:175::-;35385:3;35429:4;35422:5;35418:16;35458:4;35449:7;35446:17;35443:2;;;35466:18;;:::i;:::-;35515:1;35502:15;;35393:130;-1:-1:-1;;35393:130:8:o;35528:183::-;35559:1;35585:10;35622:2;35619:1;35615:10;35644:3;35634:2;;35651:18;;:::i;:::-;35689:10;;35685:20;;;;;35565:146;-1:-1:-1;;35565:146:8:o;35716:127::-;35777:10;35772:3;35768:20;35765:1;35758:31;35808:4;35805:1;35798:15;35832:4;35829:1;35822:15;35848:127;35909:10;35904:3;35900:20;35897:1;35890:31;35940:4;35937:1;35930:15;35964:4;35961:1;35954:15;35980:185;36015:3;36057:1;36039:16;36036:23;36033:2;;;36107:1;36102:3;36097;36082:27;36138:10;36133:3;36129:20;36033:2;36023:142;:::o;36170:671::-;36209:3;36251:4;36233:16;36230:26;36227:2;;;36217:624;:::o;36227:2::-;36293;36287:9;-1:-1:-1;;36358:16:8;36354:25;;36351:1;36287:9;36330:50;36409:4;36403:11;36433:16;-1:-1:-1;;;;;36539:2:8;36532:4;36524:6;36520:17;36517:25;36512:2;36504:6;36501:14;36498:45;36495:2;;;36546:5;;;;;36217:624;:::o;36495:2::-;36583:6;36577:4;36573:17;36562:28;;36619:3;36613:10;36646:2;36638:6;36635:14;36632:2;;;36652:5;;;;;;36217:624;:::o;36632:2::-;36736;36717:16;36711:4;36707:27;36703:36;36696:4;36687:6;36682:3;36678:16;36674:27;36671:69;36668:2;;;36743:5;;;;;;36217:624;:::o;36668:2::-;36759:57;36810:4;36801:6;36793;36789:19;36785:30;36779:4;36759:57;:::i;:::-;-1:-1:-1;36832:3:8;;36217:624;-1:-1:-1;;;;;36217:624:8:o;36846:131::-;-1:-1:-1;;;;;36921:31:8;;36911:42;;36901:2;;36967:1;36964;36957:12;36982:131;-1:-1:-1;;;;;;37056:32:8;;37046:43;;37036:2;;37103:1;37100;37093:12", + "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.4;\n\nimport \"./TokenTracker.sol\";\nimport \"@openzeppelin/contracts/token/ERC20/IERC20.sol\";\n\ncontract ONEWallet is TokenTracker {\n event InsufficientFund(uint256 amount, uint256 balance, address dest);\n event ExceedDailyLimit(uint256 amount, uint256 limit, uint256 current, address dest);\n event UnknownTransferError(address dest);\n event LastResortAddressNotSet();\n event PaymentReceived(uint256 amount, address from);\n event PaymentSent(uint256 amount, address dest);\n event AutoRecoveryTriggered(address from);\n event RecoveryFailure();\n\n /// In future versions, it is planned that we may allow the user to extend the wallet's life through a function call. When that is implemented, the following variables may no longer be immutable, with the exception of root which shall serve as an identifier of the wallet\n bytes32 immutable root; // Note: @ivan brought up a good point in reducing this to 16-bytes so hash of two consecutive nodes can be done in a single word (to save gas and reduce blockchain clutter). Let's not worry about that for now and re-evalaute this later.\n uint8 immutable height; // including the root. e.g. for a tree with 4 leaves, the height is 3.\n uint8 immutable interval; // otp interval in seconds, default is 30\n uint32 immutable t0; // starting time block (effectiveTime (in ms) / interval)\n uint32 immutable lifespan; // in number of block (e.g. 1 block per [interval] seconds)\n uint8 immutable maxOperationsPerInterval; // number of transactions permitted per OTP interval. Each transaction shall have a unique nonce. The nonce is auto-incremented within each interval\n uint32 immutable _numLeaves; // 2 ** (height - 1)\n\n /// global mutable variables\n address payable lastResortAddress; // where money will be sent during a recovery process (or when the wallet is beyond its lifespan)\n uint256 dailyLimit; // uint128 is sufficient, but uint256 is more efficient since EVM works with 32-byte words.\n uint256 spentToday; // note: instead of tracking the money spent for the last 24h, we are simply tracking money spent per 24h block based on UTC time. It is good enough for now, but we may want to change this later.\n uint32 lastTransferDay;\n\n /// nonce tracking\n mapping(uint32 => uint8) nonces; // keys: otp index (=timestamp in seconds / interval - t0); values: the expected nonce for that otp interval. An reveal with a nonce less than the expected value will be rejected\n uint32[] nonceTracker; // list of nonces keys that have a non-zero value. keys cannot possibly result a successful reveal (indices beyond REVEAL_MAX_DELAY old) are auto-deleted during a clean up procedure that is called every time the nonces are incremented for some key. For each deleted key, the corresponding key in nonces will also be deleted. So the size of nonceTracker and nonces are both bounded.\n\n // constants\n uint32 constant REVEAL_MAX_DELAY = 60;\n uint32 constant SECONDS_PER_DAY = 86400;\n uint256 constant AUTO_RECOVERY_TRIGGER_AMOUNT = 1 ether;\n uint32 constant MAX_COMMIT_SIZE = 120;\n\n uint32 constant majorVersion = 0x8; // a change would require client to migrate\n uint32 constant minorVersion = 0x0; // a change would not require the client to migrate\n\n enum OperationType {\n TRACK, UNTRACK, TRANSFER_TOKEN, OVERRIDE_TRACK, TRANSFER, SET_RECOVERY_ADDRESS, RECOVER,\n REPLACE // reserved, not implemented yet. This is for replacing the root and set up new parameters (t0, lifespan)\n }\n /// commit management\n struct Commit {\n bytes32 hash;\n bytes32 paramsHash;\n bytes32 verificationHash;\n uint32 timestamp;\n bool completed;\n }\n\n bytes32[] commits; // self-clean on commit (auto delete commits that are beyond REVEAL_MAX_DELAY), so it's bounded by the number of commits an attacker can spam within REVEAL_MAX_DELAY time in the worst case, which is not too bad.\n mapping(bytes32 => Commit[]) commitLocker;\n\n\n constructor(bytes32 root_, uint8 height_, uint8 interval_, uint32 t0_, uint32 lifespan_, uint8 maxOperationsPerInterval_,\n address payable lastResortAddress_, uint256 dailyLimit_)\n {\n root = root_;\n height = height_;\n interval = interval_;\n t0 = t0_;\n lifespan = lifespan_;\n lastResortAddress = lastResortAddress_;\n dailyLimit = dailyLimit_;\n maxOperationsPerInterval = maxOperationsPerInterval_;\n _numLeaves = uint32(2 ** (height_ - 1));\n }\n\n receive() external payable {\n emit PaymentReceived(msg.value, msg.sender);\n if (msg.value != AUTO_RECOVERY_TRIGGER_AMOUNT) {\n return;\n }\n if (msg.sender != lastResortAddress) {\n return;\n }\n if (lastResortAddress == address(0)) {\n return;\n }\n if (msg.sender == address(this)) {\n return;\n }\n emit AutoRecoveryTriggered(msg.sender);\n require(_drain());\n }\n\n\n function retire() external returns (bool)\n {\n require(uint32(block.timestamp / interval) - t0 > lifespan, \"Too early to retire\");\n require(lastResortAddress != address(0), \"Last resort address is not set\");\n require(_drain(), \"Recovery failed\");\n return true;\n }\n\n function getInfo() external view returns (bytes32, uint8, uint8, uint32, uint32, uint8, address, uint256)\n {\n return (root, height, interval, t0, lifespan, maxOperationsPerInterval, lastResortAddress, dailyLimit);\n }\n\n function getVersion() external pure returns (uint32, uint32)\n {\n return (majorVersion, minorVersion);\n }\n\n function getCurrentSpending() external view returns (uint256, uint256)\n {\n return (spentToday, lastTransferDay);\n }\n\n function getNonce() external view returns (uint8)\n {\n uint32 index = uint32(block.timestamp) / interval - t0;\n return nonces[index];\n }\n\n function getCommits() external pure returns (bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory){\n revert(\"Deprecated\");\n }\n\n function getAllCommits() external view returns (bytes32[] memory, bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory)\n {\n uint32 numCommits = 0;\n for (uint32 i = 0; i < commits.length; i++) {\n Commit[] storage cc = commitLocker[commits[i]];\n numCommits += uint32(cc.length);\n }\n bytes32[] memory hashes = new bytes32[](numCommits);\n bytes32[] memory paramHashes = new bytes32[](numCommits);\n bytes32[] memory verificationHashes = new bytes32[](numCommits);\n uint32[] memory timestamps = new uint32[](numCommits);\n bool[] memory completed = new bool[](numCommits);\n uint32 index = 0;\n for (uint32 i = 0; i < commits.length; i++) {\n Commit[] storage cc = commitLocker[commits[i]];\n for (uint32 j = 0; j < cc.length; j++) {\n Commit storage c = cc[j];\n hashes[index] = c.hash;\n paramHashes[index] = c.paramsHash;\n verificationHashes[index] = c.verificationHash;\n timestamps[index] = c.timestamp;\n completed[index] = c.completed;\n index++;\n }\n }\n return (hashes, paramHashes, verificationHashes, timestamps, completed);\n }\n\n function findCommit(bytes32 /*hash*/) external pure returns (bytes32, bytes32, uint32, bool){\n revert(\"Deprecated\");\n }\n\n function lookupCommit(bytes32 hash) external view returns (bytes32[] memory, bytes32[] memory, bytes32[] memory, uint32[] memory, bool[] memory){\n Commit[] storage cc = commitLocker[hash];\n bytes32[] memory hashes = new bytes32[](cc.length);\n bytes32[] memory paramHashes = new bytes32[](cc.length);\n bytes32[] memory verificationHashes = new bytes32[](cc.length);\n uint32[] memory timestamps = new uint32[](cc.length);\n bool[] memory completed = new bool[](cc.length);\n for (uint32 i = 0; i < cc.length; i++) {\n Commit storage c = cc[i];\n hashes[i] = c.hash;\n paramHashes[i] = c.paramsHash;\n verificationHashes[i] = c.verificationHash;\n timestamps[i] = c.timestamp;\n completed[i] = c.completed;\n }\n return (hashes, paramHashes, verificationHashes, timestamps, completed);\n }\n\n function commit(bytes32 hash, bytes32 paramsHash, bytes32 verificationHash) external {\n _cleanupCommits();\n Commit memory nc = Commit(hash, paramsHash, verificationHash, uint32(block.timestamp), false);\n require(commits.length < MAX_COMMIT_SIZE, \"Too many commits\");\n commits.push(hash);\n commitLocker[hash].push(nc);\n }\n\n /// This function sends all remaining funds of the wallet to `lastResortAddress`. The caller should verify that `lastResortAddress` is not null.\n /// TODO: also transfer all tracked ERC20, 721, 1155 tokens to `lastResortAddress`\n function _drain() internal returns (bool) {\n // this may be triggered after revealing the proof, and we must prevent revert in all cases\n (bool success,) = lastResortAddress.call{value : address(this).balance}(\"\");\n return success;\n }\n\n function _transfer(address payable dest, uint256 amount) internal returns (bool) {\n uint32 day = uint32(block.timestamp / SECONDS_PER_DAY);\n if (day > lastTransferDay) {\n spentToday = 0;\n lastTransferDay = day;\n }\n if (spentToday + amount > dailyLimit) {\n emit ExceedDailyLimit(amount, dailyLimit, spentToday, dest);\n return false;\n }\n if (address(this).balance < amount) {\n emit InsufficientFund(amount, address(this).balance, dest);\n return false;\n }\n spentToday += amount;\n (bool success,) = dest.call{value : amount}(\"\");\n // we do not want to revert the whole transaction if this operation fails, since EOTP is already revealed\n if (!success) {\n spentToday -= amount;\n emit UnknownTransferError(dest);\n return false;\n }\n\n emit PaymentSent(amount, dest);\n return true;\n }\n\n function _recover() internal returns (bool){\n if (lastResortAddress == address(0)) {\n emit LastResortAddressNotSet();\n return false;\n }\n if (!_drain()) {\n emit RecoveryFailure();\n return false;\n }\n return true;\n }\n\n function _setRecoveryAddress(address payable lastResortAddress_) internal {\n require(lastResortAddress == address(0), \"Last resort address is already set\");\n lastResortAddress = lastResortAddress_;\n }\n\n function _transferToken(TokenType tokenType, address contractAddress, uint256 tokenId, address dest, uint256 amount, bytes memory data) internal {\n if (tokenType == TokenType.ERC20) {\n try IERC20(contractAddress).transfer(dest, amount) returns (bool success){\n if (success) {\n _trackToken(tokenType, contractAddress, tokenId);\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n return;\n }\n emit TokenTransferFailed(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n } else if (tokenType == TokenType.ERC721) {\n try IERC721(contractAddress).safeTransferFrom(address(this), dest, tokenId, data){\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n } else if (tokenType == TokenType.ERC1155) {\n try IERC1155(contractAddress).safeTransferFrom(address(this), dest, tokenId, amount, data) {\n emit TokenTransferSucceeded(tokenType, contractAddress, tokenId, dest, amount);\n } catch Error(string memory reason){\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, reason);\n } catch {\n emit TokenTransferError(tokenType, contractAddress, tokenId, dest, amount, \"\");\n }\n }\n }\n\n /// Provides commitHash, paramsHash, and verificationHash given the parameters\n function _getRevealHash(bytes32 neighbor, uint32 indexWithNonce, bytes32 eotp,\n OperationType operationType, TokenType tokenType, address contractAddress, uint256 tokenId, address dest, uint256 amount, bytes calldata data) pure internal returns (bytes32, bytes32) {\n bytes32 hash = keccak256(bytes.concat(neighbor, bytes32(bytes4(indexWithNonce)), eotp));\n bytes32 paramsHash = bytes32(0);\n if (operationType == OperationType.TRANSFER) {\n paramsHash = keccak256(bytes.concat(bytes32(bytes20(address(dest))), bytes32(amount)));\n } else if (operationType == OperationType.RECOVER) {\n paramsHash = keccak256(data);\n } else if (operationType == OperationType.SET_RECOVERY_ADDRESS) {\n paramsHash = keccak256(bytes.concat(bytes32(bytes20(address(dest)))));\n } else {\n bytes memory packed = bytes.concat(\n bytes32(uint256(operationType)),\n bytes32(uint256(tokenType)),\n bytes32(bytes20(contractAddress)),\n bytes32(tokenId),\n bytes32(bytes20(dest)),\n bytes32(amount),\n data\n );\n paramsHash = keccak256(bytes.concat(packed));\n }\n return (hash, paramsHash);\n }\n\n\n function reveal(bytes32[] calldata neighbors, uint32 indexWithNonce, bytes32 eotp,\n OperationType operationType, TokenType tokenType, address contractAddress, uint256 tokenId, address payable dest, uint256 amount, bytes calldata data)\n external {\n _isCorrectProof(neighbors, indexWithNonce, eotp);\n if (indexWithNonce == _numLeaves - 1) {\n require(operationType == OperationType.RECOVER, \"Last operation reserved for recover\");\n }\n (bytes32 commitHash, bytes32 paramsHash) = _getRevealHash(neighbors[0], indexWithNonce, eotp,\n operationType, tokenType, contractAddress, tokenId, dest, amount, data);\n uint32 commitIndex = _verifyReveal(commitHash, indexWithNonce, paramsHash, eotp, operationType);\n _completeReveal(commitHash, commitIndex, operationType);\n // No revert should occur below this point\n if (operationType == OperationType.TRACK) {\n if (data.length > 0) {\n _multiTrack(data);\n } else {\n _trackToken(tokenType, contractAddress, tokenId);\n }\n } else if (operationType == OperationType.UNTRACK) {\n if (data.length > 0) {\n _untrackToken(tokenType, contractAddress, tokenId);\n } else {\n _multiUntrack(data);\n }\n } else if (operationType == OperationType.TRANSFER_TOKEN) {\n _transferToken(tokenType, contractAddress, tokenId, dest, amount, data);\n } else if (operationType == OperationType.OVERRIDE_TRACK) {\n _overrideTrackWithBytes(data);\n } else if (operationType == OperationType.TRANSFER) {\n _transfer(dest, amount);\n } else if (operationType == OperationType.RECOVER) {\n _recover();\n } else if (operationType == OperationType.SET_RECOVERY_ADDRESS) {\n _setRecoveryAddress(dest);\n }\n }\n\n /// This is just a wrapper around a modifier previously called `isCorrectProof`, to avoid \"Stack too deep\" error. Duh.\n function _isCorrectProof(bytes32[] calldata neighbors, uint32 position, bytes32 eotp) view internal {\n require(neighbors.length == height - 1, \"Not enough neighbors provided\");\n bytes32 h = sha256(bytes.concat(eotp));\n if (position == _numLeaves - 1) {\n // special case: recover only\n h = eotp;\n }\n for (uint8 i = 0; i < height - 1; i++) {\n if ((position & 0x01) == 0x01) {\n h = sha256(bytes.concat(neighbors[i], h));\n } else {\n h = sha256(bytes.concat(h, neighbors[i]));\n }\n position >>= 1;\n }\n require(root == h, \"Proof is incorrect\");\n return;\n }\n\n /// Remove old commits from storage, where the commit's timestamp is older than block.timestamp - REVEAL_MAX_DELAY. The purpose is to remove dangling data from blockchain, and prevent commits grow unbounded. This is executed at commit time. The committer pays for the gas of this cleanup. Therefore, any attacker who intend to spam commits would be disincentivized. The attacker would not succeed in preventing any normal operation by the user.\n function _cleanupCommits() internal {\n uint32 timelyIndex = 0;\n uint32 bt = uint32(block.timestamp);\n // go through past commits chronologically, starting from the oldest, and find the first commit that is not older than block.timestamp - REVEAL_MAX_DELAY.\n for (; timelyIndex < commits.length; timelyIndex++) {\n bytes32 hash = commits[timelyIndex];\n Commit[] storage cc = commitLocker[hash];\n // We may skip because the commit is already cleaned up and is considered \"untimely\".\n if (cc.length == 0) {\n continue;\n }\n // We take the first entry in `cc` as the timestamp for all commits under commit hash `hash`, because the first entry represents the oldest commit and only commit if an attacker is not attacking this wallet. If an attacker is front-running commits, the first entry may be from the attacker, but its timestamp should be identical to the user's commit (or close enough to the user's commit, if network is a bit congested)\n Commit storage c = cc[0];\n unchecked {\n if (c.timestamp >= bt - REVEAL_MAX_DELAY) {\n break;\n }\n }\n }\n // Now `timelyIndex` holds the index of the first commit that is timely. All commits at an index less than `timelyIndex` must be deleted;\n if (timelyIndex == 0) {\n // no commit is older than block.timestamp - REVEAL_MAX_DELAY. Nothing needs to be cleaned up\n return;\n }\n // Delete Commit instances for commits that are are older than block.timestamp - REVEAL_MAX_DELAY\n for (uint32 i = 0; i < timelyIndex; i++) {\n bytes32 hash = commits[i];\n Commit[] storage cc = commitLocker[hash];\n for (uint32 j = 0; j < cc.length; j++) {\n delete cc[j];\n }\n delete commitLocker[hash];\n }\n // Shift all commit hashes up by `timelyIndex` positions, and discard `commitIndex` number of hashes at the end of the array\n // This process erases old commits\n uint32 len = uint32(commits.length);\n for (uint32 i = timelyIndex; i < len; i++) {\n unchecked{\n commits[i - timelyIndex] = commits[i];\n }\n }\n for (uint32 i = 0; i < timelyIndex; i++) {\n commits.pop();\n }\n // TODO (@polymorpher): upgrade the above code after solidity implements proper support for struct-array memory-storage copy operation.\n }\n\n function _isRevealTimely(uint32 commitTime) view internal returns (bool)\n {\n return uint32(block.timestamp) - commitTime < REVEAL_MAX_DELAY;\n }\n\n /// This function verifies that the first valid entry with respect to the given `eotp` in `commitLocker[hash]` matches the provided `paramsHash` and `verificationHash`. An entry is valid with respect to `eotp` iff `h3(entry.paramsHash . eotp)` equals `entry.verificationHash`\n function _verifyReveal(bytes32 hash, uint32 indexWithNonce, bytes32 paramsHash, bytes32 eotp, OperationType operationType) view internal returns (uint32)\n {\n uint32 index = indexWithNonce / maxOperationsPerInterval;\n uint8 nonce = uint8(indexWithNonce % maxOperationsPerInterval);\n Commit[] storage cc = commitLocker[hash];\n require(cc.length > 0, \"No commit found\");\n for (uint32 i = 0; i < cc.length; i++) {\n Commit storage c = cc[i];\n bytes32 expectedVerificationHash = keccak256(bytes.concat(c.paramsHash, eotp));\n if (c.verificationHash != expectedVerificationHash) {\n // Invalid entry. Ignore\n continue;\n }\n require(c.paramsHash == paramsHash, \"Parameter hash mismatch\");\n if (operationType != OperationType.RECOVER) {\n uint32 counter = c.timestamp / interval - t0;\n require(counter == index, \"Index - timestamp mismatch\");\n uint8 expectedNonce = nonces[counter];\n require(nonce >= expectedNonce, \"Nonce too low\");\n }\n require(!c.completed, \"Commit already completed\");\n // This normally should not happen, but when the network is congested (regardless of whether due to an attacker's malicious acts or not), the legitimate reveal may become untimely. This may happen before the old commit is cleaned up by another fresh commit. We enforce this restriction so that the attacker would not have a lot of time to reverse-engineer a single EOTP or leaf using an old commit.\n require(_isRevealTimely(c.timestamp), \"Reveal too late\");\n return i;\n }\n revert(\"No valid commit\");\n }\n\n function _completeReveal(bytes32 commitHash, uint32 commitIndex, OperationType operationType) internal {\n Commit[] storage cc = commitLocker[commitHash];\n require(cc.length > 0, \"Invalid commit hash\");\n require(cc.length > commitIndex, \"Invalid commitIndex\");\n Commit storage c = cc[commitIndex];\n require(c.timestamp > 0, \"Invalid commit timestamp\");\n if (operationType != OperationType.RECOVER) {\n uint32 index = uint32(c.timestamp) / interval - t0;\n _incrementNonce(index);\n _cleanupNonces();\n }\n c.completed = true;\n }\n\n /// This function removes all tracked nonce values correspond to interval blocks that are older than block.timestamp - REVEAL_MAX_DELAY. In doing so, extraneous data in the blockchain is removed, and both nonces and nonceTracker are bounded in size.\n function _cleanupNonces() internal {\n uint32 tMin = uint32(block.timestamp) - REVEAL_MAX_DELAY;\n uint32 indexMinUnadjusted = tMin / interval;\n uint32 indexMin = 0;\n if (indexMinUnadjusted > t0) {\n indexMin = indexMinUnadjusted - t0;\n }\n uint32[] memory nonZeroNonces = new uint32[](nonceTracker.length);\n uint32 numValidIndices = 0;\n for (uint8 i = 0; i < nonceTracker.length; i++) {\n uint32 index = nonceTracker[i];\n if (index < indexMin) {\n delete nonces[index];\n } else {\n nonZeroNonces[numValidIndices] = index;\n unchecked {\n numValidIndices++;\n }\n }\n }\n // TODO (@polymorpher): This can be later made more efficient by inline assembly. https://ethereum.stackexchange.com/questions/51891/how-to-pop-from-decrease-the-length-of-a-memory-array-in-solidity\n uint32[] memory reducedArray = new uint32[](numValidIndices);\n for (uint8 i = 0; i < numValidIndices; i++) {\n reducedArray[i] = nonZeroNonces[i];\n }\n nonceTracker = reducedArray;\n }\n\n function _incrementNonce(uint32 index) internal {\n uint8 v = nonces[index];\n if (v == 0) {\n nonceTracker.push(index);\n }\n unchecked{\n nonces[index] = v + 1;\n }\n }\n}\n", "sourcePath": "/Users/polymorpher/git/one-wallet/code/contracts/ONEWallet.sol", "ast": { "absolutePath": "project:/contracts/ONEWallet.sol", @@ -29150,7 +29150,7 @@ } }, "value": { - "hexValue": "307837", + "hexValue": "307838", "id": 480, "isConstant": false, "isLValue": false, @@ -29160,10 +29160,10 @@ "nodeType": "Literal", "src": "3190:3:6", "typeDescriptions": { - "typeIdentifier": "t_rational_7_by_1", - "typeString": "int_const 7" + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" }, - "value": "0x7" + "value": "0x8" }, "visibility": "internal" }, @@ -29193,7 +29193,7 @@ } }, "value": { - "hexValue": "307833", + "hexValue": "307830", "id": 483, "isConstant": false, "isLValue": false, @@ -29203,10 +29203,10 @@ "nodeType": "Literal", "src": "3274:3:6", "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "value": "0x3" + "value": "0x0" }, "visibility": "internal" }, @@ -56781,7 +56781,7 @@ } }, "value": { - "hexValue": "307837", + "hexValue": "307838", "id": 480, "isConstant": false, "isLValue": false, @@ -56791,10 +56791,10 @@ "nodeType": "Literal", "src": "3190:3:6", "typeDescriptions": { - "typeIdentifier": "t_rational_7_by_1", - "typeString": "int_const 7" + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" }, - "value": "0x7" + "value": "0x8" }, "visibility": "internal" }, @@ -56824,7 +56824,7 @@ } }, "value": { - "hexValue": "307833", + "hexValue": "307830", "id": 483, "isConstant": false, "isLValue": false, @@ -56834,10 +56834,10 @@ "nodeType": "Literal", "src": "3274:3:6", "typeDescriptions": { - "typeIdentifier": "t_rational_3_by_1", - "typeString": "int_const 3" + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" }, - "value": "0x3" + "value": "0x0" }, "visibility": "internal" }, @@ -83235,7 +83235,7 @@ }, "networks": {}, "schemaVersion": "3.4.2", - "updatedAt": "2021-08-05T10:36:55.344Z", + "updatedAt": "2021-08-05T12:04:37.311Z", "devdoc": { "kind": "dev", "methods": { diff --git a/code/contracts/ONEWallet.sol b/code/contracts/ONEWallet.sol index 81d64606..02ee647a 100644 --- a/code/contracts/ONEWallet.sol +++ b/code/contracts/ONEWallet.sol @@ -39,8 +39,8 @@ contract ONEWallet is TokenTracker { uint256 constant AUTO_RECOVERY_TRIGGER_AMOUNT = 1 ether; uint32 constant MAX_COMMIT_SIZE = 120; - uint32 constant majorVersion = 0x7; // a change would require client to migrate - uint32 constant minorVersion = 0x3; // a change would not require the client to migrate + uint32 constant majorVersion = 0x8; // a change would require client to migrate + uint32 constant minorVersion = 0x0; // a change would not require the client to migrate enum OperationType { TRACK, UNTRACK, TRANSFER_TOKEN, OVERRIDE_TRACK, TRANSFER, SET_RECOVERY_ADDRESS, RECOVER, From ec5ab146dca192b594aa0ab33a7793814af06007 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 05:05:23 -0700 Subject: [PATCH 47/59] revealRecovery with data --- code/lib/api/index.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/lib/api/index.js b/code/lib/api/index.js index d5f2ffaf..fc0aaa6e 100644 --- a/code/lib/api/index.js +++ b/code/lib/api/index.js @@ -336,7 +336,7 @@ const api = { revealTokenOperation: async ({ address, neighbors, index, eotp, operationType, tokenType, contractAddress, tokenId, dest, amount, data = '0x' }) => { return api.relayer.reveal({ address, neighbors, index, eotp, operationType, tokenType, contractAddress, tokenId, dest, amount, data }) }, - revealRecovery: async ({ neighbors, index, eotp, address }) => { + revealRecovery: async ({ neighbors, index, eotp, address, data }) => { return api.relayer.reveal({ address, neighbors, @@ -348,6 +348,7 @@ const api = { tokenId: 0, dest: ONEConstants.EmptyAddress, amount: 0, + data, }) }, revealSetRecoveryAddress: async ({ neighbors, index, eotp, address, lastResortAddress }) => { From 36a359424911451a3a34cb556a930da6ab59109a Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 05:05:33 -0700 Subject: [PATCH 48/59] doRecovery --- code/client/src/pages/Show.jsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/code/client/src/pages/Show.jsx b/code/client/src/pages/Show.jsx index 8e03c6de..37d2f2a6 100644 --- a/code/client/src/pages/Show.jsx +++ b/code/client/src/pages/Show.jsx @@ -6,6 +6,7 @@ import WalletConstants from '../constants/wallet' import walletActions from '../state/modules/wallet/actions' import util, { useWindowDimensions } from '../util' import ONE from '../../../lib/onewallet' +import ONEUtil from '../../../lib/util' import ONEConstants from '../../../lib/constants' import api from '../api' import * as Sentry from '@sentry/browser' @@ -304,15 +305,22 @@ const Show = () => { } const doRecovery = async () => { + let { hash, bytes } = ONE.computeRecoveryHash({ hseed: wallet.hseed }) + if (!(wallet.majorVersion >= 8)) { + // contracts <= v7 rely on paramsHash = bytes32(0) for recover, so we must handle this special case here + hash = new Uint8Array(32) + } + const data = ONEUtil.hexString(bytes) SmartFlows.commitReveal({ wallet, eotpBuilder: EotpBuilders.recovery, - commitHashGenerator: ONE.computeRecoveryHash, + commitHashGenerator: () => ({ hash, bytes: new Uint8Array(0) }), // Only legacy committer uses `bytes`. It mingles them with other parameters to produce hash. legacy recover has no parameters, therefore `bytes` should be empty byte array beforeCommit: () => setStage(1), afterCommit: () => setStage(2), onCommitError, onCommitFailure, revealAPI: api.relayer.revealRecovery, + revealArgs: { data }, onRevealFailure, onRevealError, onRevealAttemptFailed, From 8c3478e7ce17656bd3b5049addbe55e3c6045ee8 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 05:09:42 -0700 Subject: [PATCH 49/59] skip checking minor version --- code/client/src/pages/Show.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/client/src/pages/Show.jsx b/code/client/src/pages/Show.jsx index 37d2f2a6..756ab6b5 100644 --- a/code/client/src/pages/Show.jsx +++ b/code/client/src/pages/Show.jsx @@ -409,7 +409,7 @@ const Show = () => { } - {wallet.majorVersion && wallet.minorVersion && + {wallet.majorVersion && Wallet Version From 4d658c53a461731e79f0075747d8e3cb863fae15 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 05:28:36 -0700 Subject: [PATCH 50/59] flow: allow index override --- code/lib/api/flow.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/code/lib/api/flow.js b/code/lib/api/flow.js index 4a21caf1..052fa18a 100644 --- a/code/lib/api/flow.js +++ b/code/lib/api/flow.js @@ -54,7 +54,7 @@ const Flows = { wallet, layers, commitHashGenerator, commitHashArgs, beforeCommit, afterCommit, onCommitError, onCommitFailure, revealAPI, revealArgs, onRevealFailure, onRevealSuccess, onRevealError, onRevealAttemptFailed, - beforeReveal, + beforeReveal, index, maxTransferAttempts = 3, checkCommitInterval = 5000, message = messager }) => { @@ -66,7 +66,10 @@ const Flows = { return } } - const index = ONEUtil.timeToIndex({ effectiveTime }) + index = index || ONEUtil.timeToIndex({ effectiveTime }) + if (index < 0) { + index = layers[0].length / 32 - 1 + } let nonce // should get from blockchain, but omitted for now because all wallets have maxOperationsPerInterval set to 1. let rand if (randomness > 0) { From 344f9bd24a4f8928fb904a6af6c81939704607d2 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 05:28:49 -0700 Subject: [PATCH 51/59] relayer: show reveal params on verbose mode --- code/relayer/routes/index.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/relayer/routes/index.js b/code/relayer/routes/index.js index 6af7b617..4912af7e 100644 --- a/code/relayer/routes/index.js +++ b/code/relayer/routes/index.js @@ -118,6 +118,9 @@ router.post('/reveal', generalLimiter({ max: 60 }), walletAddressLimiter({ max: if (!checkParams({ neighbors, index, eotp, address, operationType, tokenType, contractAddress, tokenId, dest, amount, data }, res)) { return } + if (config.debug || config.verbose) { + console.log(`[/reveal] `, { neighbors, index, eotp, address, operationType, tokenType, contractAddress, tokenId, dest, amount, data }) + } if (!(req.majorVersion >= 6)) { operationType = parseInt(operationType || -1) if (!(operationType > 0)) { From 5970e3ef7544789d3e276d6a4ff48deaa5565b72 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 05:29:04 -0700 Subject: [PATCH 52/59] doRecovery: fix issues --- code/client/src/pages/Show.jsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/client/src/pages/Show.jsx b/code/client/src/pages/Show.jsx index 756ab6b5..5b2624b8 100644 --- a/code/client/src/pages/Show.jsx +++ b/code/client/src/pages/Show.jsx @@ -305,7 +305,7 @@ const Show = () => { } const doRecovery = async () => { - let { hash, bytes } = ONE.computeRecoveryHash({ hseed: wallet.hseed }) + let { hash, bytes } = ONE.computeRecoveryHash({ hseed: ONEUtil.hexToBytes(wallet.hseed) }) if (!(wallet.majorVersion >= 8)) { // contracts <= v7 rely on paramsHash = bytes32(0) for recover, so we must handle this special case here hash = new Uint8Array(32) @@ -314,6 +314,7 @@ const Show = () => { SmartFlows.commitReveal({ wallet, eotpBuilder: EotpBuilders.recovery, + index: -1, commitHashGenerator: () => ({ hash, bytes: new Uint8Array(0) }), // Only legacy committer uses `bytes`. It mingles them with other parameters to produce hash. legacy recover has no parameters, therefore `bytes` should be empty byte array beforeCommit: () => setStage(1), afterCommit: () => setStage(2), From 7c135084c6134cfc14db6bd79c845e8a6fcb288b Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 05:36:15 -0700 Subject: [PATCH 53/59] rearrange ui elements --- code/client/src/pages/Show.jsx | 46 +++++++++++++++++----------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/code/client/src/pages/Show.jsx b/code/client/src/pages/Show.jsx index 5b2624b8..3cc8c912 100644 --- a/code/client/src/pages/Show.jsx +++ b/code/client/src/pages/Show.jsx @@ -393,23 +393,6 @@ const Show = () => {
- - Recovery Address - {lastResortAddress && !util.isEmptyAddress(lastResortAddress) && - - - - - {util.ellipsisAddress(oneLastResort)} - - - - } - {!(lastResortAddress && !util.isEmptyAddress(lastResortAddress)) && - - - } - {wallet.majorVersion && Wallet Version @@ -417,18 +400,35 @@ const Show = () => { {wallet.majorVersion}.{wallet.minorVersion} } + + + + + ) const RecoverWallet = () => { return ( <> + + Recovery Address + {lastResortAddress && !util.isEmptyAddress(lastResortAddress) && + + + + + {util.ellipsisAddress(oneLastResort)} + + + + } + {!(lastResortAddress && !util.isEmptyAddress(lastResortAddress)) && + + + } + - - - - - - + ) From 45af94f9d6b232ad01bca1760a50bf8551680c75 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 06:00:42 -0700 Subject: [PATCH 54/59] make restore work --- code/client/src/pages/Restore.jsx | 17 ++++++++++++++--- code/client/src/worker/ONEWalletWorker.js | 2 ++ code/lib/onewallet.js | 1 + 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/code/client/src/pages/Restore.jsx b/code/client/src/pages/Restore.jsx index f90e2ea1..c9164923 100644 --- a/code/client/src/pages/Restore.jsx +++ b/code/client/src/pages/Restore.jsx @@ -26,6 +26,7 @@ const Restore = () => { const dispatch = useDispatch() const [videoDevices, setVideoDevices] = useState([]) const [secret, setSecret] = useState() + const [secret2, setSecret2] = useState() const [name, setName] = useState() const [device, setDevice] = useState() const { isMobile } = useWindowDimensions() @@ -63,10 +64,19 @@ const Restore = () => { const data = new URL(e).searchParams.get('data') const params = MigrationPayload.decode(Buffer.from(data, 'base64')).otpParameters const filteredParams = params.filter(e => e.issuer === 'ONE Wallet' || e.issuer === 'Harmony') - if (filteredParams.length > 1) { + if (filteredParams.length > 2) { message.error('You selected more than one authenticator entry to export. Please reselect on Google Authenticator') return } + if (filteredParams.length === 2) { + const names = filteredParams.map(e => e.name.split('-')[0].trim()).map(e => e.split('(')[0].trim()) + if (names[0] !== names[1]) { + message.error('You selected two wallets with different names. If you want to select two entries belonging to the same wallet, make sure they have the same name and the second one has "- 2nd" in the end') + return + } + const { secret } = filteredParams[1] + setSecret2(secret) + } const { secret, name } = filteredParams[0] setSecret(secret) setName(name) @@ -107,7 +117,7 @@ const Restore = () => { setProgressStage(stage) } if (status === 'done') { - const { hseed, root: computedRoot, layers } = result + const { hseed, root: computedRoot, layers, doubleOtp } = result if (!ONEUtil.bytesEqual(ONEUtil.hexToBytes(root), computedRoot)) { console.error('Roots are not equal', root, ONEUtil.hexString(computedRoot)) message.error('Verification failed. Your authenticator QR code might correspond to a different contract address.') @@ -123,6 +133,7 @@ const Restore = () => { lastResortAddress, dailyLimit, hseed: ONEUtil.hexView(hseed), + doubleOtp, network } dispatch(walletActions.updateWallet(wallet)) @@ -134,7 +145,7 @@ const Restore = () => { } console.log('[Restore] Posting to worker') worker && worker.postMessage({ - seed: secret, effectiveTime, duration, slotSize, interval: WalletConstants.interval + seed: secret, seed2: secret2, effectiveTime, duration, slotSize, interval: WalletConstants.interval }) } catch (ex) { Sentry.captureException(ex) diff --git a/code/client/src/worker/ONEWalletWorker.js b/code/client/src/worker/ONEWalletWorker.js index 5c1d2d15..f213b74b 100644 --- a/code/client/src/worker/ONEWalletWorker.js +++ b/code/client/src/worker/ONEWalletWorker.js @@ -10,6 +10,7 @@ onmessage = async function (event) { const { hseed, + doubleOtp, leaves, root, layers, @@ -30,6 +31,7 @@ onmessage = async function (event) { status: 'done', result: { hseed, + doubleOtp, leaves, root, layers, diff --git a/code/lib/onewallet.js b/code/lib/onewallet.js index d864e1d0..e0054177 100644 --- a/code/lib/onewallet.js +++ b/code/lib/onewallet.js @@ -95,6 +95,7 @@ const computeMerkleTree = async ({ seed2, // discard randomnessResults, // discard hseed, + doubleOtp: !!(seed2), counter, // base time leaves, // = layers[0] root, // = layers[height - 1] From 08834d77fca05fc9b3879c2f2735e9d441c55d1b Mon Sep 17 00:00:00 2001 From: Haolin Jiang Date: Thu, 5 Aug 2021 23:08:06 +1000 Subject: [PATCH 55/59] Add 2 otp for recover address setup --- code/client/src/pages/Show.jsx | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/code/client/src/pages/Show.jsx b/code/client/src/pages/Show.jsx index 3cc8c912..6ecd01ed 100644 --- a/code/client/src/pages/Show.jsx +++ b/code/client/src/pages/Show.jsx @@ -94,6 +94,9 @@ const Show = () => { return } setSection(action) + + // Reset TOP input boxes on location change to make sure the input boxes are cleared. + resetOtp() }, [location]) const showTab = (tab) => { history.push(Paths.showAddress(oneAddress, tab)) } @@ -606,15 +609,33 @@ const Show = () => { setTransferTo(value)} placeholder='one1...' />
- + - + + { + wallet.doubleOtp + ? ( + + + + + + + + ) + : <> + }
From 608426b6c9b92b247ed7d78a2478ef062ec08e79 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 08:29:57 -0700 Subject: [PATCH 56/59] add randomness by default --- code/client/src/pages/Create.jsx | 12 +++++++++++- code/client/src/pages/Restore.jsx | 14 ++++++++++++-- code/client/src/util.js | 10 +++++++++- code/client/src/worker/ONEWalletWorker.js | 5 ++++- code/lib/api/flow.js | 17 ++++++++++++++++- code/lib/config/common.js | 6 ++++++ code/lib/onewallet.js | 1 + 7 files changed, 59 insertions(+), 6 deletions(-) diff --git a/code/client/src/pages/Create.jsx b/code/client/src/pages/Create.jsx index 4f549ec0..361ea22d 100644 --- a/code/client/src/pages/Create.jsx +++ b/code/client/src/pages/Create.jsx @@ -3,6 +3,7 @@ import { useDispatch, useSelector } from 'react-redux' import { useHistory } from 'react-router' import Paths from '../constants/paths' import api from '../api' +import config from '../config' import ONEUtil from '../../../lib/util' import ONENames from '../../../lib/names' // import { uniqueNamesGenerator, colors, animals } from 'unique-names-generator' @@ -123,7 +124,14 @@ const Create = () => { const t = Math.floor(Date.now() / WalletConstants.interval) * WalletConstants.interval setEffectiveTime(t) worker && worker.postMessage({ - seed, seed2, effectiveTime: t, duration, slotSize, interval: WalletConstants.interval + seed, + seed2, + effectiveTime: t, + duration, + slotSize, + interval: WalletConstants.interval, + randomness: util.getRandomness(), + hasher: config.clientSecurity.hasher, }) } }, [section, worker]) @@ -194,6 +202,8 @@ const Create = () => { hseed: ONEUtil.hexView(hseed), network, doubleOtp, + randomness: util.getRandomness(), + hasher: config.clientSecurity.hasher } await storeLayers() dispatch(walletActions.updateWallet(wallet)) diff --git a/code/client/src/pages/Restore.jsx b/code/client/src/pages/Restore.jsx index c9164923..49aac505 100644 --- a/code/client/src/pages/Restore.jsx +++ b/code/client/src/pages/Restore.jsx @@ -15,6 +15,7 @@ import util, { useWindowDimensions } from '../util' import { handleAddressError } from '../handler' import Paths from '../constants/paths' import * as Sentry from '@sentry/browser' +import config from '../config' const { Step } = Steps @@ -134,7 +135,9 @@ const Restore = () => { dailyLimit, hseed: ONEUtil.hexView(hseed), doubleOtp, - network + network, + randomness: util.getRandomness(), + hasher: config.clientSecurity.hasher, } dispatch(walletActions.updateWallet(wallet)) dispatch(walletActions.fetchBalance({ address })) @@ -145,7 +148,14 @@ const Restore = () => { } console.log('[Restore] Posting to worker') worker && worker.postMessage({ - seed: secret, seed2: secret2, effectiveTime, duration, slotSize, interval: WalletConstants.interval + seed: secret, + seed2: secret2, + effectiveTime, + duration, + slotSize, + interval: WalletConstants.interval, + randomness: util.getRandomness(), + hasher: config.clientSecurity.hasher }) } catch (ex) { Sentry.captureException(ex) diff --git a/code/client/src/util.js b/code/client/src/util.js index 1ec78264..12e046ac 100644 --- a/code/client/src/util.js +++ b/code/client/src/util.js @@ -173,7 +173,15 @@ export default { return false }, - compareVersion: (left, right) => left.majorVersion === right.majorVersion && left.minorVersion === right.minorVersion + compareVersion: (left, right) => left.majorVersion === right.majorVersion && left.minorVersion === right.minorVersion, + + getRandomness: () => { + let r = config.clientSecurity.baseRandomness - config.clientSecurity.randomnessDamping + if (config.clientSecurity.hasher === 'argon2') { + r -= config.clientSecurity.argon2Damping + } + return r + } } function getWindowDimensions () { diff --git a/code/client/src/worker/ONEWalletWorker.js b/code/client/src/worker/ONEWalletWorker.js index f213b74b..02724c12 100644 --- a/code/client/src/worker/ONEWalletWorker.js +++ b/code/client/src/worker/ONEWalletWorker.js @@ -1,7 +1,8 @@ const ONE = require('../../../lib/onewallet') +const ONEUtil = require('../../../lib/util') onmessage = async function (event) { - const { seed, seed2, effectiveTime, duration, slotSize, interval } = event.data + const { seed, seed2, effectiveTime, duration, slotSize, interval, randomness, hasher } = event.data if (!seed) { // console.log('worker: received event but it has no valid data', event) return @@ -20,6 +21,8 @@ onmessage = async function (event) { otpSeed2: seed2, effectiveTime, duration, + randomness, + hasher: ONEUtil.getHasher(hasher), maxOperationsPerInterval: slotSize, otpInterval: interval, progressObserver: (current, total, stage) => { diff --git a/code/lib/api/flow.js b/code/lib/api/flow.js index 052fa18a..4e9c17be 100644 --- a/code/lib/api/flow.js +++ b/code/lib/api/flow.js @@ -73,7 +73,22 @@ const Flows = { let nonce // should get from blockchain, but omitted for now because all wallets have maxOperationsPerInterval set to 1. let rand if (randomness > 0) { - rand = await ONE.recoverRandomness({ hseed, otp, otp2, nonce, leaf: layers[0][index], hasher: ONEUtil.getHasher(hasher) }) + const encodedOtp = ONEUtil.encodeNumericalOtp(otp) + const encodedOtp2 = otp2 ? ONEUtil.encodeNumericalOtp(otp2) : undefined + rand = await ONE.recoverRandomness({ + randomness, + hseed: ONEUtil.hexToBytes(hseed), + otp: encodedOtp, + otp2: encodedOtp2, + nonce, + leaf: layers[0].subarray(index * 32, index * 32 + 32), + hasher: ONEUtil.getHasher(hasher) + }) + // console.log({ rand }) + if (rand === null) { + message.error('Failed to decrypt proof. Code might be incorrect') + return + } } const eotp = await eotpBuilder({ otp, otp2, rand, wallet, layers }) if (!eotp) { diff --git a/code/lib/config/common.js b/code/lib/config/common.js index b60d2b12..31bb5851 100644 --- a/code/lib/config/common.js +++ b/code/lib/config/common.js @@ -11,6 +11,12 @@ module.exports = { relayerSecret: process.env.RELAYER_SECRET || 'onewallet', sentryDsn: process.env.SENTRY_DSN }, + clientSecurity: { + hasher: process.env.DEFAULT_HASHER || 'sha256', + baseRandomness: parseInt(process.env.BASE_RANDOMNESS || 20), + randomnessDamping: 2, + argon2Damping: 2, + }, debug: DEBUG, networks: { ...(DEBUG && { diff --git a/code/lib/onewallet.js b/code/lib/onewallet.js index e0054177..9078c501 100644 --- a/code/lib/onewallet.js +++ b/code/lib/onewallet.js @@ -215,6 +215,7 @@ const bruteforceEOTP = ({ hseed, nonce = 0, leaf }) => { } const recoverRandomness = async ({ hseed, otp, otp2, nonce = 0, leaf, randomness = 17, hasher = sha256b }) => { + // console.log({ hseed, otp, otp2, nonce , leaf, randomness, hasher }) const nonceBuffer = new Uint16Array([nonce]) const ub = 2 ** randomness const buffer = new Uint8Array(ub * 32) From 7d32482906baa58aba28d8623a65408c6d68f332 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 21:24:27 -0700 Subject: [PATCH 57/59] better test progress bar and fix a null issue --- code/lib/onewallet.js | 2 +- code/test/client.js | 7 ++++--- code/test/util.js | 11 ++++++++++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/code/lib/onewallet.js b/code/lib/onewallet.js index 9078c501..42854e87 100644 --- a/code/lib/onewallet.js +++ b/code/lib/onewallet.js @@ -9,7 +9,7 @@ const computeMerkleTree = async ({ otpSeed2, // can be null effectiveTime = Date.now(), duration = 3600 * 1000 * 24 * 365, - progressObserver, otpInterval = 30000, + progressObserver = () => {}, otpInterval = 30000, maxOperationsPerInterval = 1, randomness = 0, // number of bits for Controlled Randomness. 17 bits is recommended for the best balance between user experience and security. It maps to 2^17 = 131072 possibilities. hasher = sha256b // must be a batch hasher diff --git a/code/test/client.js b/code/test/client.js index abdf272b..b700bfa7 100644 --- a/code/test/client.js +++ b/code/test/client.js @@ -1,7 +1,8 @@ const ONEUtil = require('../lib/util') const ONE = require('../lib/onewallet') const INTERVAL = 30000 -const DURATION = INTERVAL * 8 +// const DURATION = INTERVAL * 8 +const DURATION = INTERVAL * 2 * 60 * 24 * 364 const { Logger, createWallet } = require('./util') const ONEConstants = require('../lib/constants') const unit = require('ethjs-unit') @@ -286,11 +287,11 @@ contract('ONEWallet', (accounts) => { assert.equal(ONE_CENT.divn(2).toString(), purseBalance, `Purse must have correct balance: ${ONE_CENT.divn(2)}`) } - it('Client_Transfer: must compute EOTP correctly and complete transfer, using double OTP + argon2', async () => { + it('Client_Transfer_SHA256: must compute EOTP correctly and complete transfer, using double OTP + argon2', async () => { await transferTest({ hasher: ONEUtil.sha256b }) }) - it('Client_Transfer: must compute EOTP correctly and complete transfer, using double OTP + sha256b', async () => { + it('Client_Transfer_ARGON2: must compute EOTP correctly and complete transfer, using double OTP + sha256b', async () => { await transferTest({ hasher: ONEUtil.argon2 }) }) }) diff --git a/code/test/util.js b/code/test/util.js index 44e843ef..bec88945 100644 --- a/code/test/util.js +++ b/code/test/util.js @@ -20,7 +20,16 @@ const createWallet = async ({ effectiveTime, duration, maxOperationsPerInterval, } effectiveTime = Math.floor(effectiveTime / INTERVAL) * INTERVAL const { seed, seed2, hseed, root, leaves, layers, maxOperationsPerInterval: slotSize, randomnessResults, counter } = await ONEWalletLib.computeMerkleTree({ - otpSeed, otpSeed2, effectiveTime, maxOperationsPerInterval, duration, randomness, hasher + otpSeed, + otpSeed2, + effectiveTime, + maxOperationsPerInterval, + duration, + randomness, + hasher, + progressObserver: (i, n, s) => { + Logger.debug(`${((i / n) * 100).toFixed(2)}% (${i}/${n}) (Stage ${s})`) + } }) const height = layers.length const t0 = effectiveTime / INTERVAL From c6ec27b5dd0c7130000951be21bec4f926aa60ca Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Thu, 5 Aug 2021 23:05:53 -0700 Subject: [PATCH 58/59] versioned security parameters; use that everywhere applicable --- code/client/src/pages/Create.jsx | 14 +++++++++----- code/client/src/pages/Restore.jsx | 15 ++++++++++----- code/client/src/util.js | 3 ++- code/lib/config/common.js | 6 ------ code/lib/constants.js | 6 +++++- code/lib/params.js | 13 +++++++++++++ code/lib/util.js | 22 ++++++++++++++++++++++ 7 files changed, 61 insertions(+), 18 deletions(-) create mode 100644 code/lib/params.js diff --git a/code/client/src/pages/Create.jsx b/code/client/src/pages/Create.jsx index 361ea22d..de588c32 100644 --- a/code/client/src/pages/Create.jsx +++ b/code/client/src/pages/Create.jsx @@ -5,6 +5,7 @@ import Paths from '../constants/paths' import api from '../api' import config from '../config' import ONEUtil from '../../../lib/util' +import ONEConstants from '../../../lib/constants' import ONENames from '../../../lib/names' // import { uniqueNamesGenerator, colors, animals } from 'unique-names-generator' import { @@ -102,6 +103,11 @@ const Create = () => { const otpRef = useRef() + const securityParameters = ONEUtil.securityParameters({ + majorVersion: ONEConstants.MajorVersion, + minorVersion: ONEConstants.MinorVersion, + }) + const getQRCodeUri = (otpSeed, otpDisplayName) => { // otpauth://TYPE/LABEL?PARAMETERS return `otpauth://totp/${otpDisplayName}?secret=${b32.encode(otpSeed)}&issuer=Harmony` @@ -120,7 +126,7 @@ const Create = () => { useEffect(() => { if (section === sectionViews.setupOtp && worker) { - console.log('posting to worker') + console.log('Posting to worker. Security parameters:', securityParameters) const t = Math.floor(Date.now() / WalletConstants.interval) * WalletConstants.interval setEffectiveTime(t) worker && worker.postMessage({ @@ -130,8 +136,7 @@ const Create = () => { duration, slotSize, interval: WalletConstants.interval, - randomness: util.getRandomness(), - hasher: config.clientSecurity.hasher, + ...securityParameters, }) } }, [section, worker]) @@ -202,8 +207,7 @@ const Create = () => { hseed: ONEUtil.hexView(hseed), network, doubleOtp, - randomness: util.getRandomness(), - hasher: config.clientSecurity.hasher + ...securityParameters, } await storeLayers() dispatch(walletActions.updateWallet(wallet)) diff --git a/code/client/src/pages/Restore.jsx b/code/client/src/pages/Restore.jsx index 49aac505..8017f36e 100644 --- a/code/client/src/pages/Restore.jsx +++ b/code/client/src/pages/Restore.jsx @@ -30,6 +30,8 @@ const Restore = () => { const [secret2, setSecret2] = useState() const [name, setName] = useState() const [device, setDevice] = useState() + const [majorVersion, setMajorVersion] = useState() + const [minorVersion, setMinorVersion] = useState() const { isMobile } = useWindowDimensions() const ref = useRef() useEffect(() => { @@ -110,6 +112,7 @@ const Restore = () => { return } try { + const securityParameters = ONEUtil.securityParameters({ majorVersion, minorVersion }) const worker = new Worker('ONEWalletWorker.js') worker.onmessage = (event) => { const { status, current, total, stage, result } = event.data @@ -136,8 +139,7 @@ const Restore = () => { hseed: ONEUtil.hexView(hseed), doubleOtp, network, - randomness: util.getRandomness(), - hasher: config.clientSecurity.hasher, + ...securityParameters } dispatch(walletActions.updateWallet(wallet)) dispatch(walletActions.fetchBalance({ address })) @@ -154,8 +156,7 @@ const Restore = () => { duration, slotSize, interval: WalletConstants.interval, - randomness: util.getRandomness(), - hasher: config.clientSecurity.hasher + ...securityParameters }) } catch (ex) { Sentry.captureException(ex) @@ -184,7 +185,9 @@ const Restore = () => { duration, slotSize, lastResortAddress, - dailyLimit + dailyLimit, + majorVersion, + minorVersion } = await api.blockchain.getWallet({ address }) console.log('Retrieved wallet:', { root, @@ -202,6 +205,8 @@ const Restore = () => { setLastResortAddress(lastResortAddress) setDailyLimit(dailyLimit) setSection(2) + setMajorVersion(majorVersion) + setMinorVersion(minorVersion) } catch (ex) { Sentry.captureException(ex) console.error(ex) diff --git a/code/client/src/util.js b/code/client/src/util.js index 12e046ac..b599a8d9 100644 --- a/code/client/src/util.js +++ b/code/client/src/util.js @@ -181,7 +181,8 @@ export default { r -= config.clientSecurity.argon2Damping } return r - } + }, + } function getWindowDimensions () { diff --git a/code/lib/config/common.js b/code/lib/config/common.js index 31bb5851..b60d2b12 100644 --- a/code/lib/config/common.js +++ b/code/lib/config/common.js @@ -11,12 +11,6 @@ module.exports = { relayerSecret: process.env.RELAYER_SECRET || 'onewallet', sentryDsn: process.env.SENTRY_DSN }, - clientSecurity: { - hasher: process.env.DEFAULT_HASHER || 'sha256', - baseRandomness: parseInt(process.env.BASE_RANDOMNESS || 20), - randomnessDamping: 2, - argon2Damping: 2, - }, debug: DEBUG, networks: { ...(DEBUG && { diff --git a/code/lib/constants.js b/code/lib/constants.js index 3b4ad54b..6f999c58 100644 --- a/code/lib/constants.js +++ b/code/lib/constants.js @@ -17,14 +17,18 @@ module.exports = { TRANSFER: 4, SET_RECOVERY_ADDRESS: 5, RECOVER: 6, + REPLACE: 7, 0: 'TRACK', 1: 'UNTRACK', 2: 'TRANSFER_TOKEN', 3: 'OVERRIDE_TRACK', 4: 'TRANSFER', 5: 'SET_RECOVERY_ADDRESS', - 6: 'RECOVER' + 6: 'RECOVER', + 7: 'REPLACE' }, EmptyAddress: '0x0000000000000000000000000000000000000000', EmptyBech32Address: 'one1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqquzw7vz', + MajorVersion: 8, + MinorVersion: 0, } diff --git a/code/lib/params.js b/code/lib/params.js new file mode 100644 index 00000000..45896604 --- /dev/null +++ b/code/lib/params.js @@ -0,0 +1,13 @@ +const baseParameters = { + hasher: process.env.DEFAULT_HASHER || 'sha256', + baseRandomness: parseInt(process.env.BASE_RANDOMNESS || 20), + randomnessDamping: parseInt(process.env.RANDOMNESS_DAMPING || 2), + argon2Damping: parseInt(process.env.ARGON2_DAMPING || 2), +} + +module.exports = { + // keys: regex for version matching; values: hasher, baseRandomness, randomnessDamping, argon2Damping + '.*': { + ...baseParameters + } +} diff --git a/code/lib/util.js b/code/lib/util.js index 0fa16e59..9bcec1fa 100644 --- a/code/lib/util.js +++ b/code/lib/util.js @@ -1,3 +1,5 @@ +import config from '../client/src/config' + const JSSHA = require('jssha') const createKeccakHash = require('keccak') const Conversion = require('ethjs-unit') @@ -5,6 +7,7 @@ const sha256 = require('fast-sha256') const BN = require('bn.js') const argon2 = require('argon2-browser') const base32 = require('hi-base32') +const securityParams = require('./params') const STANDARD_DECIMAL = 18 const PERMIT_DEPRECATED_METHOD = process.env.PERMIT_DEPRECATED_METHOD const utils = { @@ -167,6 +170,25 @@ const utils = { if (!PERMIT_DEPRECATED_METHOD) { throw new Error('Deprecated') } + }, + + getVersion: ({ majorVersion, minorVersion }) => `${majorVersion}.${minorVersion}`, + + securityParameters: ({ majorVersion, minorVersion }) => { + const keys = Object.keys(securityParams) + const v = utils.getVersion({ majorVersion, minorVersion }) + for (let k of keys) { + const m = v.match(new RegExp(k)) + if (m) { + const { hasher, baseRandomness, randomnessDamping, argon2Damping } = securityParams[k] + let r = baseRandomness - randomnessDamping + if (hasher === 'argon2') { + r -= argon2Damping + } + return { randomness: r, hasher } + } + } + throw new Error(`No security parameter for version ${v}`) } } From cdbec6e4761ac8065f7e7c5e8d775e31e91e5196 Mon Sep 17 00:00:00 2001 From: Aaron Li Date: Fri, 6 Aug 2021 01:06:50 -0700 Subject: [PATCH 59/59] move recoverRandomness to worker --- .../src/components/CommitRevealProgress.jsx | 2 +- code/client/src/pages/Create.jsx | 2 +- code/client/src/pages/Show.jsx | 67 +++++++++++++++---- code/client/src/worker/ONEWalletWorker.js | 27 +++++++- code/lib/api/flow.js | 32 +++++---- 5 files changed, 103 insertions(+), 27 deletions(-) diff --git a/code/client/src/components/CommitRevealProgress.jsx b/code/client/src/components/CommitRevealProgress.jsx index 492d7ebc..a9e54592 100644 --- a/code/client/src/components/CommitRevealProgress.jsx +++ b/code/client/src/components/CommitRevealProgress.jsx @@ -5,7 +5,7 @@ const { Step } = Steps export const CommitRevealProgress = ({ stage, style }) => { return ( <> - {stage > 0 && ( + {stage >= 0 && ( diff --git a/code/client/src/pages/Create.jsx b/code/client/src/pages/Create.jsx index de588c32..5a5dd3a2 100644 --- a/code/client/src/pages/Create.jsx +++ b/code/client/src/pages/Create.jsx @@ -224,7 +224,7 @@ const Create = () => { } useEffect(() => { - const worker = new Worker('ONEWalletWorker.js') + const worker = new Worker('/ONEWalletWorker.js') worker.onmessage = (event) => { const { status, current, total, stage, result } = event.data if (status === 'working') { diff --git a/code/client/src/pages/Show.jsx b/code/client/src/pages/Show.jsx index 6ecd01ed..339e5735 100644 --- a/code/client/src/pages/Show.jsx +++ b/code/client/src/pages/Show.jsx @@ -52,10 +52,33 @@ const Show = () => { const wallet = wallets[address] || {} const [section, setSection] = useState(action) - const [stage, setStage] = useState(0) + const [stage, setStage] = useState(-1) const network = useSelector(state => state.wallet.network) const [activeTab, setActiveTab] = useState('coins') const walletOutdated = util.isWalletOutdated(wallet) + const [worker, setWorker] = useState() + const workerRef = useRef({ promise: null }).current + const resetWorkerPromise = (newWorker) => { + workerRef.promise = new Promise((resolve, reject) => { + newWorker.onmessage = (event) => { + const { status, error, result } = event.data + // console.log('Received: ', { status, result, error }) + if (status === 'rand') { + const { rand } = result + resolve(rand) + } else if (status === 'error') { + reject(error) + } + } + }) + } + useEffect(() => { + const worker = new Worker('/ONEWalletWorker.js') + setWorker(worker) + }, []) + useEffect(() => { + worker && resetWorkerPromise(worker) + }, [worker]) useEffect(() => { if (!wallet) { @@ -160,7 +183,7 @@ const Show = () => { } const restart = () => { - setStage(0) + setStage(-1) resetOtp() setInputAmount(0) } @@ -219,26 +242,26 @@ const Show = () => { Sentry.captureException(ex) console.error(ex) message.error('Failed to commit. Error: ' + ex.toString()) - setStage(0) + setStage(-1) resetOtp() } const onCommitFailure = (error) => { message.error(`Cannot commit transaction. Reason: ${error}`) - setStage(0) + setStage(-1) resetOtp() } const onRevealFailure = (error) => { message.error(`Transaction Failed: ${error}`) - setStage(0) + setStage(-1) resetOtp() } const onRevealError = (ex) => { Sentry.captureException(ex) message.error(`Failed to finalize transaction. Error: ${ex.toString()}`) - setStage(0) + setStage(-1) resetOtp() } @@ -257,18 +280,35 @@ const Show = () => { setTimeout(restart, 3000) } - const doSend = async () => { + const prepareProofFailed = () => { + setStage(-1) + resetOtp() + resetWorkerPromise(worker) + } + + const doSend = () => { const { otp, otp2, invalidOtp2, invalidOtp, dest, amount } = prepareValidation() || {} if (invalidOtp || !dest || invalidOtp2) return + const recoverRandomness = async (args) => { + worker && worker.postMessage({ + action: 'recoverRandomness', + ...args + }) + return workerRef.promise + } + if (selectedToken.key === 'one') { SmartFlows.commitReveal({ wallet, otp, otp2, + recoverRandomness, + prepareProofFailed, commitHashGenerator: ONE.computeTransferHash, commitHashArgs: { dest, amount }, + prepareProof: () => setStage(0), beforeCommit: () => setStage(1), afterCommit: () => setStage(2), onCommitError, @@ -288,6 +328,8 @@ const Show = () => { wallet, otp, otp2, + recoverRandomness, + prepareProofFailed, commitHashGenerator: ONE.computeTokenOperationHash, commitHashArgs: { dest, amount, operationType: ONEConstants.OperationType.TRANSFER_TOKEN, tokenType: selectedToken.tokenType, contractAddress: selectedToken.contractAddress, tokenId: selectedToken.tokenId }, beforeCommit: () => setStage(1), @@ -359,6 +401,7 @@ const Show = () => { } }) } + const { isMobile } = useWindowDimensions() // UI Rendering below if (!wallet || wallet.network !== network) { @@ -562,9 +605,9 @@ const Show = () => { - {stage > 0 && stage < 3 && } + {stage >= 0 && stage < 3 && } {stage === 3 && } - + @@ -584,7 +627,7 @@ const Show = () => { Do you want to proceed?
- + } @@ -639,8 +682,8 @@ const Show = () => {
- {stage > 0 && stage < 3 && } - + {stage >= 0 && stage < 3 && } + diff --git a/code/client/src/worker/ONEWalletWorker.js b/code/client/src/worker/ONEWalletWorker.js index 02724c12..a43374f5 100644 --- a/code/client/src/worker/ONEWalletWorker.js +++ b/code/client/src/worker/ONEWalletWorker.js @@ -1,8 +1,33 @@ const ONE = require('../../../lib/onewallet') const ONEUtil = require('../../../lib/util') +async function recoverRandomness ({ randomness, hseed, otp, otp2, nonce, leaf, hasher }) { + const encodedOtp = ONEUtil.encodeNumericalOtp(otp) + const encodedOtp2 = otp2 !== undefined ? ONEUtil.encodeNumericalOtp(otp2) : undefined + try { + const rand = await ONE.recoverRandomness({ + randomness, + hseed: ONEUtil.hexToBytes(hseed), + otp: encodedOtp, + otp2: encodedOtp2, + nonce, + leaf, + hasher: ONEUtil.getHasher(hasher) + }) + postMessage({ status: 'rand', result: { rand } }) + } catch (ex) { + console.error(ex) + postMessage({ status: 'error', result: { error: ex.toString() } }) + } +} + onmessage = async function (event) { - const { seed, seed2, effectiveTime, duration, slotSize, interval, randomness, hasher } = event.data + const { seed, seed2, effectiveTime, duration, slotSize, interval, randomness, hasher, action } = event.data + + if (action === 'recoverRandomness') { + return recoverRandomness(event.data) + } + if (!seed) { // console.log('worker: received event but it has no valid data', event) return diff --git a/code/lib/api/flow.js b/code/lib/api/flow.js index 4e9c17be..988b3490 100644 --- a/code/lib/api/flow.js +++ b/code/lib/api/flow.js @@ -51,7 +51,8 @@ const Flows = { commitReveal: async ({ otp, otp2, eotpBuilder = EotpBuilders.fromOtp, committer = Committer.legacy, - wallet, layers, commitHashGenerator, commitHashArgs, + recoverRandomness, + wallet, layers, commitHashGenerator, commitHashArgs, prepareProof, prepareProofFailed, beforeCommit, afterCommit, onCommitError, onCommitFailure, revealAPI, revealArgs, onRevealFailure, onRevealSuccess, onRevealError, onRevealAttemptFailed, beforeReveal, index, @@ -66,6 +67,7 @@ const Flows = { return } } + prepareProof && prepareProof() index = index || ONEUtil.timeToIndex({ effectiveTime }) if (index < 0) { index = layers[0].length / 32 - 1 @@ -73,20 +75,26 @@ const Flows = { let nonce // should get from blockchain, but omitted for now because all wallets have maxOperationsPerInterval set to 1. let rand if (randomness > 0) { - const encodedOtp = ONEUtil.encodeNumericalOtp(otp) - const encodedOtp2 = otp2 ? ONEUtil.encodeNumericalOtp(otp2) : undefined - rand = await ONE.recoverRandomness({ - randomness, - hseed: ONEUtil.hexToBytes(hseed), - otp: encodedOtp, - otp2: encodedOtp2, - nonce, - leaf: layers[0].subarray(index * 32, index * 32 + 32), - hasher: ONEUtil.getHasher(hasher) - }) + const leaf = layers[0].subarray(index * 32, index * 32 + 32) + if (recoverRandomness) { + rand = await recoverRandomness({ randomness, hseed, otp, otp2, nonce, leaf, hasher }) + } else { + const encodedOtp = ONEUtil.encodeNumericalOtp(otp) + const encodedOtp2 = otp2 ? ONEUtil.encodeNumericalOtp(otp2) : undefined + rand = await ONE.recoverRandomness({ + randomness, + hseed: ONEUtil.hexToBytes(hseed), + otp: encodedOtp, + otp2: encodedOtp2, + nonce, + leaf, + hasher: ONEUtil.getHasher(hasher) + }) + } // console.log({ rand }) if (rand === null) { message.error('Failed to decrypt proof. Code might be incorrect') + prepareProofFailed && prepareProofFailed() return } }