From 5171edf239ed9afeb64beba2b0b680d8a77cabc3 Mon Sep 17 00:00:00 2001 From: yogesh0509 Date: Fri, 13 Sep 2024 17:54:10 +0530 Subject: [PATCH 1/5] shu frontend integration init --- env/shu-mordor.env | 29 + package.json | 1 + src/artifacts/DjedShu.json | 29649 ++++++++++++++++ src/artifacts/ShuOracle.json | 22181 ++++++++++++ .../molecules/CoinCard/CoinCard.jsx | 37 +- src/context/AppProvider.jsx | 73 +- src/routes/protocol.jsx | 5 +- src/routes/reservecoin.jsx | 26 +- src/routes/stablecoin.jsx | 27 +- src/utils/ethereum.js | 106 +- src/utils/helpers.js | 2 +- 11 files changed, 52083 insertions(+), 53 deletions(-) create mode 100644 env/shu-mordor.env create mode 100644 src/artifacts/DjedShu.json create mode 100644 src/artifacts/ShuOracle.json diff --git a/env/shu-mordor.env b/env/shu-mordor.env new file mode 100644 index 00000000..c91f6a66 --- /dev/null +++ b/env/shu-mordor.env @@ -0,0 +1,29 @@ +############### +# APPLICATION # +############### +REACT_APP_BLOCKCHAIN_URI=https://rpc.mordor.etccooperative.org +REACT_APP_CHAIN_ID=63 +REACT_APP_DJED_ADDRESS=0x7535E14d98c8a8744DcFe216Aa0af3b95c76a5E3 +REACT_APP_DJED_SHU_ADDRESS=0x7535E14d98c8a8744DcFe216Aa0af3b95c76a5E3 +REACT_APP_FEE_UI=0 +REACT_APP_UI=0x0232556C83791b8291E9b23BfEa7d67405Bd9839 +REACT_APP_EXPLORER=https://etc-mordor.blockscout.com/ +REACT_APP_BC=Ethereum Classic's Mordor +REACT_APP_PROTOCOL_CHAIN_DESCRIPTION=Ethereum Classic is the original Ethereum blockchain, maintaining its history untampered and immutable, and upholding the principle that "code is law". Ethereum Classic's native currency is ETC +REACT_APP_CHAIN_COIN=ETC +REACT_APP_SC_NAME=Ethereum Classic Stable Dollar +REACT_APP_SC_SYMBOL=ECSD +REACT_APP_RC_NAME=Ethereum Classic Reserve Surplus Share +REACT_APP_RC_SYMBOL=ECRS +REACT_APP_LIMIT_PER_TXN=10000 +REACT_APP_EVM_RESERVECOIN_ADDRESS=0x81D6C9F0dd8823Ae664B9E43e25Bf3e6A79dC351 +REACT_APP_EVM_STABLECOIN_ADDRESS=0x4746e9c3cB00f70Af6e25a699AE3490e43207Fd9 + +# Color Theme +REACT_APP_GRADIENT_THEME='gradient-theme-7' +REACT_APP_COLOR_THEME='green-dark' + +REACT_APP_TERMS_OF_USE=terms-of-use-default +REACT_APP_LOGO_PATH=ECSD.svg + +REACT_APP_SHU_VERSION=true \ No newline at end of file diff --git a/package.json b/package.json index ef0f69cd..c2ae8886 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "build:milkomeda": "npx -y env-cmd -f ./env/milkomeda.env npm run build", "build:mordor": "npx -y env-cmd -f ./env/mordor.env npm run build", "build:ethereum-classic": "npx -y env-cmd -f ./env/ethereum-classic.env npm run build", + "build:shu-mordor": "npx -y env-cmd -f ./env/shu-mordor.env npm run build", "test": "craco test", "lint": "prettier --check '**/*.{js,jsx}'", "format": "prettier --write '**/*.{js,jsx}'", diff --git a/src/artifacts/DjedShu.json b/src/artifacts/DjedShu.json new file mode 100644 index 00000000..15038a7a --- /dev/null +++ b/src/artifacts/DjedShu.json @@ -0,0 +1,29649 @@ +{ + "contractName": "DjedShu", + "abi": [ + { + "type": "constructor", + "inputs": [ + { + "name": "oracleAddress", + "type": "address", + "internalType": "address" + }, + { + "name": "_scalingFactor", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_treasury", + "type": "address", + "internalType": "address" + }, + { + "name": "_initialTreasuryFee", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_treasuryRevenueTarget", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_reserveRatioMin", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_reserveRatioMax", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_fee", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_thresholdSupplySC", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_rcMinPrice", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_rcInitialPrice", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "_txLimit", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "E", + "inputs": [ + { + "name": "_currentPaymentAmount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "L", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "R", + "inputs": [ + { + "name": "_currentPaymentAmount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "buyReserveCoins", + "inputs": [ + { + "name": "receiver", + "type": "address", + "internalType": "address" + }, + { + "name": "feeUI", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "ui", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "buyStableCoins", + "inputs": [ + { + "name": "receiver", + "type": "address", + "internalType": "address" + }, + { + "name": "feeUI", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "ui", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "payable" + }, + { + "type": "function", + "name": "fee", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "initialTreasuryFee", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "oracle", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IOracleShu" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "ratioMax", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "ratioMin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "rcBuyingPrice", + "inputs": [ + { + "name": "_currentPaymentAmount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "rcDecimalScalingFactor", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "rcInitialPrice", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "rcMinPrice", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "rcTargetPrice", + "inputs": [ + { + "name": "_currentPaymentAmount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "reserveCoin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract Coin" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "reserveRatioMax", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "reserveRatioMin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "scDecimalScalingFactor", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "scMaxPrice", + "inputs": [ + { + "name": "_currentPaymentAmount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "scMinPrice", + "inputs": [ + { + "name": "_currentPaymentAmount", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "scalingFactor", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "sellBothCoins", + "inputs": [ + { + "name": "amountSC", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "amountRC", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "receiver", + "type": "address", + "internalType": "address" + }, + { + "name": "feeUI", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "ui", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "sellReserveCoins", + "inputs": [ + { + "name": "amountRC", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "receiver", + "type": "address", + "internalType": "address" + }, + { + "name": "feeUI", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "ui", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "sellStableCoins", + "inputs": [ + { + "name": "amountSC", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "receiver", + "type": "address", + "internalType": "address" + }, + { + "name": "feeUI", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "ui", + "type": "address", + "internalType": "address" + } + ], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "stableCoin", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract Coin" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "thresholdSupplySC", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "treasury", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "treasuryFee", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "treasuryRevenue", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "treasuryRevenueTarget", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "txLimit", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "event", + "name": "BoughtReserveCoins", + "inputs": [ + { + "name": "buyer", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "receiver", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amountRC", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "amountBC", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "BoughtStableCoins", + "inputs": [ + { + "name": "buyer", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "receiver", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amountSC", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "amountBC", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SoldBothCoins", + "inputs": [ + { + "name": "seller", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "receiver", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amountSC", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "amountRC", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "amountBC", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SoldReserveCoins", + "inputs": [ + { + "name": "seller", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "receiver", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amountRC", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "amountBC", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + }, + { + "type": "event", + "name": "SoldStableCoins", + "inputs": [ + { + "name": "seller", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "receiver", + "type": "address", + "indexed": true, + "internalType": "address" + }, + { + "name": "amountSC", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + }, + { + "name": "amountBC", + "type": "uint256", + "indexed": false, + "internalType": "uint256" + } + ], + "anonymous": false + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oracleAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_scalingFactor\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_treasury\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_initialTreasuryFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_treasuryRevenueTarget\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_reserveRatioMin\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_reserveRatioMax\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_fee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_thresholdSupplySC\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_rcMinPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_txLimit\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountRC\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountBC\",\"type\":\"uint256\"}],\"name\":\"BoughtReserveCoins\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"buyer\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountSC\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountBC\",\"type\":\"uint256\"}],\"name\":\"BoughtStableCoins\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"FundedOracle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountSC\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountRC\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountBC\",\"type\":\"uint256\"}],\"name\":\"SoldBothCoins\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountRC\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountBC\",\"type\":\"uint256\"}],\"name\":\"SoldReserveCoins\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"seller\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountSC\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amountBC\",\"type\":\"uint256\"}],\"name\":\"SoldStableCoins\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"E\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"L\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"R\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fee_ui\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"ui\",\"type\":\"address\"}],\"name\":\"buyReserveCoins\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fee_ui\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"ui\",\"type\":\"address\"}],\"name\":\"buyStableCoins\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"fundOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initialTreasuryFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ratio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rcBuyingPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rcMinPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"rcTargetPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reserveCoin\",\"outputs\":[{\"internalType\":\"contract Coin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reserveRatioMax\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"reserveRatioMin\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"scPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountSC\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amountRC\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fee_ui\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"ui\",\"type\":\"address\"}],\"name\":\"sellBothCoins\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountRC\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fee_ui\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"ui\",\"type\":\"address\"}],\"name\":\"sellReserveCoins\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amountSC\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"fee_ui\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"ui\",\"type\":\"address\"}],\"name\":\"sellStableCoins\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stableCoin\",\"outputs\":[{\"internalType\":\"contract Coin\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"thresholdSupplySC\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasury\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasuryFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasuryRevenue\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"treasuryRevenueTarget\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"txLimit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/src/Djed.sol\":\"Djed\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xe0c8b625a79bac0fe80f17cfb521e072805cc9cef1c96a5caf45b264e74812fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://12fd1efc9ad061ef675bd50fb0c8e3c6f2952a09f8df0e3c688b8d81b8918838\",\"dweb:/ipfs/QmawN6PjTwy91pU7ANjCSgbsLc8TDA6hwu9GsFFaNSuhb5\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34\",\"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr\"]},\"@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xc995bddbca1ae19788db9f8b61e63385edd3fddf89693b612d5abd1a275974d2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ab84f13e6e6e0823854a0cddd49e96df052092d5919f95587607f0ed28a64cb6\",\"dweb:/ipfs/QmbNtqAq23ZDjCzHukQaa7B3y6rcobscm6FZF5PMQXcnVr\"]},\"project:/src/Coin.sol\":{\"keccak256\":\"0x850906e4baa354ab87fac85454d9c0f0a3294d79ca431ded5d744a4a21a9403b\",\"license\":\"AFEL\",\"urls\":[\"bzz-raw://0390553b2981ae459eaba981a98dca5beaba162cb2e771b0ade2fa34636f016f\",\"dweb:/ipfs/QmRHVpYoXSNrxoDj1e7YhuBDZ7zy6WmcpSadH3ybWuf1gy\"]},\"project:/src/Djed.sol\":{\"keccak256\":\"0x3b5b5bebf18474e5f8087a82c7194b9a14c2383b2bfc2b420ee5e160ba53ff2f\",\"license\":\"AFEL\",\"urls\":[\"bzz-raw://65fdb38d0fd93098894e2e986c45fca1e02469cbe4a8643dfea61fa7eda36fe5\",\"dweb:/ipfs/QmbkSohQ9fGXkECBNyKdu12ZXyHBTJ5fExKAbMREZbNikL\"]},\"project:/src/IOracle.sol\":{\"keccak256\":\"0xd72ddf721b50bf7457fa65db31472bed6a315beb55fe64b840be592fc3f7eab5\",\"license\":\"AFEL\",\"urls\":[\"bzz-raw://e5def7f90e9c8090a9f5af5adf346c24ef1153f5018cddad3469a580559b6f05\",\"dweb:/ipfs/QmPMxt5PFtL9otzih7g6ADdEPGsEBRuWMbPLS7nRD3nh5J\"]},\"project:/src/OracleConsumer.sol\":{\"keccak256\":\"0xc9adc8bf5a8c350aec0d7f60c7e968490e6126e61654b77e00cd97774a68a560\",\"license\":\"AFEL\",\"urls\":[\"bzz-raw://7745ac17997a140ebe67b46fa36e7f7499f26249797f4b51a0778408af68f0c1\",\"dweb:/ipfs/QmZ7GHGbVHos1JCuiM2KK5cXd1RvhLpXyFDQw9sansYJPG\"]}},\"version\":1}", + "bytecode": "0x610220604052600060045560405162003d7a38038062003d7a8339810160408190526200002c9162000323565b60016000556040516200003f90620002f8565b6040808252600a908201526929ba30b13632a1b7b4b760b11b606082015260806020820181905260029082015261534360f01b60a082015260c001604051809103906000f08015801562000097573d6000803e3d6000fd5b50600280546001600160a01b0319166001600160a01b0392909216919091179055604051620000c690620002f8565b6040808252600b908201526a2932b9b2b93b32a1b7b4b760a91b606082015260806020820181905260029082015261524360f01b60a082015260c001604051809103906000f0801580156200011f573d6000803e3d6000fd5b50600380546001600160a01b0319166001600160a01b039283161790556002546040805163313ce56760e01b81529051919092169163313ce5679160048083019260209291908290030181865afa1580156200017f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001a59190620003be565b620001b290600a620004ff565b6101e0526003546040805163313ce56760e01b815290516001600160a01b039092169163313ce567916004808201926020929091908290030181865afa15801562000201573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002279190620003be565b6200023490600a620004ff565b610200526101c08b90526001600160a01b038a811660805260a08a905260c089905260e08890526101008790526101208690526101408590526101608490526101808390526101a0829052600180546001600160a01b031916918e16918217905560408051636eeecf4b60e11b8152905163dddd9e969160048082019260009290919082900301818387803b158015620002cd57600080fd5b505af1158015620002e2573d6000803e3d6000fd5b5050505050505050505050505050505062000510565b610ee18062002e9983390190565b80516001600160a01b03811681146200031e57600080fd5b919050565b6000806000806000806000806000806000806101808d8f0312156200034757600080fd5b620003528d62000306565b9b5060208d01519a506200036960408e0162000306565b995060608d0151985060808d0151975060a08d0151965060c08d0151955060e08d015194506101008d015193506101208d015192506101408d015191506101608d015190509295989b509295989b509295989b565b600060208284031215620003d157600080fd5b815160ff81168114620003e357600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000441578160001904821115620004255762000425620003ea565b808516156200043357918102915b93841c939080029062000405565b509250929050565b6000826200045a57506001620004f9565b816200046957506000620004f9565b81600181146200048257600281146200048d57620004ad565b6001915050620004f9565b60ff841115620004a157620004a1620003ea565b50506001821b620004f9565b5060208310610133831016604e8410600b8410161715620004d2575081810a620004f9565b620004de838362000400565b8060001904821115620004f557620004f5620003ea565b0290505b92915050565b6000620003e360ff84168362000449565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051610200516127cd620006cc600039600081816106a5015281816108a601528181610db701528181611add0152611feb015260008181610595015281816108e801528181610df701528181610e3801528181611217015281816117410152818161199e01528181611e7f015281816122ba015281816123240152612553015260008181610671015281816114cb0152818161202d01528181612086015281816120bf015281816122db01526125740152600081816103880152818161090d01528181610e5d0152818161124a0152818161162c01526119c3015260008181610411015261247d0152600081816102c101526124510152600081816105610152818161095901528181610ea9015281816112870152818161166901528181611a0f0152611bf10152600081816105c901526120510152600081816105fd01526124a601526000818161026d015261220d0152600081816104e501528181611d070152611d3101526000818161030801528181611d550152611d8e01526000818161033c015261211901526127cd6000f3fe6080604052600436106101e15760003560e01c8063957f8afc11610102578063ce79735311610095578063e5cfd84911610064578063e5cfd8491461061f578063e652ae471461063f578063ed3437f81461065f578063f21f9a211461069357600080fd5b8063ce7973531461054f578063cebb86f914610583578063ddca3f43146105b7578063e06b63fc146105eb57600080fd5b8063b364e37c116100d1578063b364e37c146104d3578063b77e31f914610507578063bfebe1821461051a578063cc32d1761461053a57600080fd5b8063957f8afc14610469578063992642e5146104895780639f13f76d146104a9578063b0408a6e146104be57600080fd5b806361d027b31161017a5780637dc0d1d0116101495780637dc0d1d0146103df5780637dda4129146103ff578063824769f81461043357806388b2cbb61461044957600080fd5b806361d027b31461032a5780636caae8321461037657806371ad9d0f146103aa5780637a4f8cba146103bf57600080fd5b8063334fc513116101b6578063334fc5131461028f5780634d01dca5146102af578063574a3093146102e35780635f00248e146102f657600080fd5b80622ff067146101e6578062bccbcb146102195780631ac8fc2f14610239578063248f24221461025b575b600080fd5b3480156101f257600080fd5b506102066102013660046125de565b6106c7565b6040519081526020015b60405180910390f35b34801561022557600080fd5b506102066102343660046125de565b6106e1565b34801561024557600080fd5b50610259610254366004612613565b610763565b005b34801561026757600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b34801561029b57600080fd5b506102596102aa366004612659565b610ba4565b3480156102bb57600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b6102596102f13660046126a9565b611183565b34801561030257600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b34801561033657600080fd5b5061035e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610210565b34801561038257600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b3480156103b657600080fd5b506102066114ac565b3480156103cb57600080fd5b506102596103da366004612613565b6114fe565b3480156103eb57600080fd5b5060015461035e906001600160a01b031681565b34801561040b57600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b34801561043f57600080fd5b5061020660045481565b34801561045557600080fd5b506102066104643660046125de565b611886565b34801561047557600080fd5b506102066104843660046125de565b61189a565b34801561049557600080fd5b5060025461035e906001600160a01b031681565b3480156104b557600080fd5b506102066118e4565b3480156104ca57600080fd5b506102066118f3565b3480156104df57600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b6102596105153660046126a9565b611902565b34801561052657600080fd5b5060035461035e906001600160a01b031681565b34801561054657600080fd5b50610206611d03565b34801561055b57600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b34801561058f57600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b3480156105c357600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f757600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b34801561062b57600080fd5b5061020661063a3660046125de565b611db8565b34801561064b57600080fd5b5061020661065a3660046125de565b611dc4565b34801561066b57600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b34801561069f57600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b60006106db6106d5836106e1565b83611dd8565b92915050565b60015460408051631a862db560e31b8152815160009384936001600160a01b039091169263d4316da892600480830193928290030181865afa15801561072b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f91906126e5565b50905061075c8382611df6565b9392505050565b61076b611ecf565b600160009054906101000a90046001600160a01b03166001600160a01b03166386b629b56040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107bb57600080fd5b505af11580156107cf573d6000803e3d6000fd5b50506003546040516370a0823160e01b81523360048201528793506001600160a01b0390911691506370a0823190602401602060405180830381865afa15801561081d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108419190612709565b10156108945760405162461bcd60e51b815260206004820152601f60248201527f73656c6c52433a20696e73756666696369656e742052432062616c616e63650060448201526064015b60405180910390fd5b60006108a060006106e1565b905060007f00000000000000000000000000000000000000000000000000000000000000006108d0836000611f28565b6108da9088612738565b6108e4919061274f565b90507f0000000000000000000000000000000000000000000000000000000000000000610931837f0000000000000000000000000000000000000000000000000000000000000000612738565b61093b919061274f565b811115806109d35750600254604080516318160ddd60e01b815290517f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa1580156109ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d19190612709565b105b610a1f5760405162461bcd60e51b815260206004820152601960248201527f73656c6c52433a207478206c696d697420657863656564656400000000000000604482015260640161088b565b6000610a2c828686612028565b905060008111610a7e5760405162461bcd60e51b815260206004820152601a60248201527f73656c6c52433a20726563656976696e67207a65726f20424373000000000000604482015260640161088b565b600354604051632770a7eb60e21b8152336004820152602481018990526001600160a01b0390911690639dc29fac90604401600060405180830381600087803b158015610aca57600080fd5b505af1158015610ade573d6000803e3d6000fd5b50505050610aec8682612173565b610afe610af9600061189a565b612209565b610b4a5760405162461bcd60e51b815260206004820152601760248201527f73656c6c52433a20726174696f2062656c6f77206d696e000000000000000000604482015260640161088b565b60408051888152602081018390526001600160a01b0388169133917f15e4dbe81367be42bcd3070bce6fe49bc9a13b25d7ee7fdd1e59b7563552fab791015b60405180910390a3505050610b9e6001600055565b50505050565b610bac611ecf565b600160009054906101000a90046001600160a01b03166001600160a01b03166386b629b56040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bfc57600080fd5b505af1158015610c10573d6000803e3d6000fd5b50506002546040516370a0823160e01b81523360048201528893506001600160a01b0390911691506370a0823190602401602060405180830381865afa158015610c5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c829190612709565b1015610cd05760405162461bcd60e51b815260206004820152601a60248201527f73656c6c426f74683a20696e73756666696369656e7420534373000000000000604482015260640161088b565b6003546040516370a0823160e01b815233600482015285916001600160a01b0316906370a0823190602401602060405180830381865afa158015610d18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3c9190612709565b1015610d8a5760405162461bcd60e51b815260206004820152601a60248201527f73656c6c426f74683a20696e73756666696369656e7420524373000000000000604482015260640161088b565b6000610d9660006106e1565b90506000610da46000611db8565b90506000610db183612320565b905060007f0000000000000000000000000000000000000000000000000000000000000000610de1856000611f28565b610deb908a612738565b610df5919061274f565b7f0000000000000000000000000000000000000000000000000000000000000000610e20868c612738565b610e2a919061274f565b610e349190612771565b90507f0000000000000000000000000000000000000000000000000000000000000000610e81857f0000000000000000000000000000000000000000000000000000000000000000612738565b610e8b919061274f565b81111580610f235750600254604080516318160ddd60e01b815290517f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015610efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f219190612709565b105b610f6f5760405162461bcd60e51b815260206004820152601b60248201527f73656c6c426f74683a207478206c696d69742065786365656465640000000000604482015260640161088b565b600254604051632770a7eb60e21b8152336004820152602481018b90526001600160a01b0390911690639dc29fac90604401600060405180830381600087803b158015610fbb57600080fd5b505af1158015610fcf573d6000803e3d6000fd5b5050600354604051632770a7eb60e21b8152336004820152602481018c90526001600160a01b039091169250639dc29fac9150604401600060405180830381600087803b15801561101f57600080fd5b505af1158015611033573d6000803e3d6000fd5b505050506000611044828888612028565b9050600081116110965760405162461bcd60e51b815260206004820152601c60248201527f73656c6c426f74683a20726563656976696e67207a65726f2042437300000000604482015260640161088b565b6110a08882612173565b6110b26110ad600061189a565b612320565b6110bc9085612738565b836110c76000611db8565b6110d19190612738565b101561111f5760405162461bcd60e51b815260206004820152601960248201527f73656c6c426f74683a20726174696f2064656372656173656400000000000000604482015260640161088b565b604080518b8152602081018b90529081018290526001600160a01b0389169033907ff7873e627d69f6f47e1de13a8990f045fa63720d51c6ccf047fd4382962419d39060600160405180910390a3505050505061117c6001600055565b5050505050565b61118b611ecf565b600160009054906101000a90046001600160a01b03166001600160a01b03166386b629b56040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156111db57600080fd5b505af11580156111ef573d6000803e3d6000fd5b5050505060006111fe346106e1565b9050600061120d348585612028565b905060008261123c7f000000000000000000000000000000000000000000000000000000000000000084612738565b611246919061274f565b90507f0000000000000000000000000000000000000000000000000000000000000000811115806113015750600254604080516318160ddd60e01b815290517f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa1580156112db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff9190612709565b105b61134d5760405162461bcd60e51b815260206004820152601860248201527f62757953433a207478206c696d69742065786365656465640000000000000000604482015260640161088b565b6000811161139d5760405162461bcd60e51b815260206004820152601960248201527f62757953433a20726563656976696e67207a65726f2053437300000000000000604482015260640161088b565b6002546040516340c10f1960e01b81526001600160a01b03888116600483015260248201849052909116906340c10f1990604401600060405180830381600087803b1580156113eb57600080fd5b505af11580156113ff573d6000803e3d6000fd5b50505050611410610af960006106e1565b6114555760405162461bcd60e51b8152602060048201526016602482015275313abca9a19d103930ba34b7903132b637bb9036b4b760511b604482015260640161088b565b604080518281523460208201526001600160a01b0388169133917fe2a93bd50c65406b1485d973a0eefc0938aa42447e8327a24413cf34646cb1c1910160405180910390a35050506114a76001600055565b505050565b60006114bb6110ad600061189a565b6114c56000611db8565b6114ef907f0000000000000000000000000000000000000000000000000000000000000000612738565b6114f9919061274f565b905090565b611506611ecf565b600160009054906101000a90046001600160a01b03166001600160a01b03166386b629b56040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561155657600080fd5b505af115801561156a573d6000803e3d6000fd5b50506002546040516370a0823160e01b81523360048201528793506001600160a01b0390911691506370a0823190602401602060405180830381865afa1580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc9190612709565b101561162a5760405162461bcd60e51b815260206004820152601f60248201527f73656c6c53433a20696e73756666696369656e742053432062616c616e636500604482015260640161088b565b7f0000000000000000000000000000000000000000000000000000000000000000841115806116e35750600254604080516318160ddd60e01b815290517f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa1580156116bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e19190612709565b105b61172f5760405162461bcd60e51b815260206004820152601960248201527f73656c6c53433a207478206c696d697420657863656564656400000000000000604482015260640161088b565b600061173b600061189a565b905060007f000000000000000000000000000000000000000000000000000000000000000061176a8388612738565b611774919061274f565b90506000611783828686612028565b9050600081116117d55760405162461bcd60e51b815260206004820152601a60248201527f73656c6c53433a20726563656976696e67207a65726f20424373000000000000604482015260640161088b565b600254604051632770a7eb60e21b8152336004820152602481018990526001600160a01b0390911690639dc29fac90604401600060405180830381600087803b15801561182157600080fd5b505af1158015611835573d6000803e3d6000fd5b505050506118438682612173565b60408051888152602081018390526001600160a01b0388169133917f5ca4c7224e0472de3d8d6d7816a14b47de89471be844d8c76bb75d1e528edfd19101610b89565b60006106db611894836106e1565b83611f28565b60015460408051636fbdfa4760e01b8152815160009384936001600160a01b0390911692636fbdfa4792600480830193928290030181865afa15801561072b573d6000803e3d6000fd5b60006114f96110ad60006106e1565b60006114bb6110ad60006106e1565b61190a611ecf565b600160009054906101000a90046001600160a01b03166001600160a01b03166386b629b56040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561195a57600080fd5b505af115801561196e573d6000803e3d6000fd5b50505050600061197d3461189a565b9050600061198b82346123cf565b9050600061199a348686612028565b90507f00000000000000000000000000000000000000000000000000000000000000006119e7847f0000000000000000000000000000000000000000000000000000000000000000612738565b6119f1919061274f565b81111580611a895750600254604080516318160ddd60e01b815290517f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015611a63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a879190612709565b105b611ad55760405162461bcd60e51b815260206004820152601860248201527f62757952433a207478206c696d69742065786365656465640000000000000000604482015260640161088b565b600082611b027f000000000000000000000000000000000000000000000000000000000000000084612738565b611b0c919061274f565b905060008111611b5e5760405162461bcd60e51b815260206004820152601960248201527f62757952433a20726563656976696e67207a65726f2052437300000000000000604482015260640161088b565b6003546040516340c10f1960e01b81526001600160a01b03898116600483015260248201849052909116906340c10f1990604401600060405180830381600087803b158015611bac57600080fd5b505af1158015611bc0573d6000803e3d6000fd5b50505050611bd6611bd160006106e1565b6124a2565b80611c6b5750600254604080516318160ddd60e01b815290517f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015611c45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c699190612709565b105b611cb05760405162461bcd60e51b81526020600482015260166024820152750c4eaf2a4867440e4c2e8d2de40c2c4deecca40dac2f60531b604482015260640161088b565b604080518281523460208201526001600160a01b0389169133917f8166a12a2e856c3ebafb91657860659290e42f5f615478292b29fb836f63f7c7910160405180910390a3505050506114a76001600055565b60007f00000000000000000000000000000000000000000000000000000000000000006004541015611db2577f00000000000000000000000000000000000000000000000000000000000000006004547f0000000000000000000000000000000000000000000000000000000000000000611d7e9190612738565b611d88919061274f565b6114f9907f0000000000000000000000000000000000000000000000000000000000000000612784565b50600090565b60006106db8247612784565b60006106db611dd2836106e1565b836123cf565b6000611de383612320565b611dec83611db8565b61075c9190612784565b600080600260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e709190612709565b90508015611ec557611ec083827f0000000000000000000000000000000000000000000000000000000000000000611ea788611db8565b611eb19190612738565b611ebb919061274f565b6125b9565b611ec7565b825b949350505050565b600260005403611f215760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161088b565b6002600055565b600080600360009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa29190612709565b905080600003611fe85760405162461bcd60e51b8152602060048201526011602482015270524320737570706c79206973207a65726f60781b604482015260640161088b565b807f00000000000000000000000000000000000000000000000000000000000000006120148686611dd8565b61201e9190612738565b611ec7919061274f565b6000807f00000000000000000000000000000000000000000000000000000000000000006120767f000000000000000000000000000000000000000000000000000000000000000087612738565b612080919061274f565b905060007f00000000000000000000000000000000000000000000000000000000000000006120af8688612738565b6120b9919061274f565b905060007f00000000000000000000000000000000000000000000000000000000000000006120e6611d03565b6120f09089612738565b6120fa919061274f565b9050806004600082825461210e9190612771565b9091555061213e90507f000000000000000000000000000000000000000000000000000000000000000082612173565b6121488583612173565b8082612154858a612784565b61215e9190612784565b6121689190612784565b979650505050505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146121c0576040519150601f19603f3d011682016040523d82523d6000602084013e6121c5565b606091505b50509050806114a75760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b604482015260640161088b565b60007f000000000000000000000000000000000000000000000000000000000000000082600260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a49190612709565b6122ae9190612738565b6122b89190612738565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006123046000611db8565b61230e9190612738565b6123189190612738565b101592915050565b60007f000000000000000000000000000000000000000000000000000000000000000082600260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123bb9190612709565b6123c59190612738565b6106db919061274f565b600354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015612419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243d9190612709565b1561247a5761247561244f8484611f28565b7f00000000000000000000000000000000000000000000000000000000000000006125cf565b61075c565b507f000000000000000000000000000000000000000000000000000000000000000092915050565b60007f000000000000000000000000000000000000000000000000000000000000000082600260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253d9190612709565b6125479190612738565b6125519190612738565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061259d6000611db8565b6125a79190612738565b6125b19190612738565b111592915050565b60008183106125c8578161075c565b5090919050565b60008183116125c8578161075c565b6000602082840312156125f057600080fd5b5035919050565b80356001600160a01b038116811461260e57600080fd5b919050565b6000806000806080858703121561262957600080fd5b84359350612639602086016125f7565b92506040850135915061264e606086016125f7565b905092959194509250565b600080600080600060a0868803121561267157600080fd5b8535945060208601359350612688604087016125f7565b92506060860135915061269d608087016125f7565b90509295509295909350565b6000806000606084860312156126be57600080fd5b6126c7846125f7565b9250602084013591506126dc604085016125f7565b90509250925092565b600080604083850312156126f857600080fd5b505080516020909101519092909150565b60006020828403121561271b57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106db576106db612722565b60008261276c57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156106db576106db612722565b818103818111156106db576106db61272256fea26469706673582212206d70741d0daa9fc66e2e752f3f1042eb0150d02aa3af12d18068fb93227e540364736f6c6343000813003360a06040523480156200001157600080fd5b5060405162000ee138038062000ee1833981016040819052620000349162000128565b8181600362000044838262000221565b50600462000053828262000221565b50503360805250620002ed915050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008b57600080fd5b81516001600160401b0380821115620000a857620000a862000063565b604051601f8301601f19908116603f01168101908282118183101715620000d357620000d362000063565b81604052838152602092508683858801011115620000f057600080fd5b600091505b83821015620001145785820183015181830184015290820190620000f5565b600093810190920192909252949350505050565b600080604083850312156200013c57600080fd5b82516001600160401b03808211156200015457600080fd5b620001628683870162000079565b935060208501519150808211156200017957600080fd5b50620001888582860162000079565b9150509250929050565b600181811c90821680620001a757607f821691505b602082108103620001c857634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021c57600081815260208120601f850160051c81016020861015620001f75750805b601f850160051c820191505b81811015620002185782815560010162000203565b5050505b505050565b81516001600160401b038111156200023d576200023d62000063565b62000255816200024e845462000192565b84620001ce565b602080601f8311600181146200028d5760008415620002745750858301515b600019600386901b1c1916600185901b17855562000218565b600085815260208120601f198616915b82811015620002be578886015182559484019460019091019084016200029d565b5085821015620002dd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051610bca62000317600039600081816101ba0152818161034501526103ce0152610bca6000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c806370a082311161008c5780639dc29fac116100665780639dc29fac146101fc578063a457c2d71461020f578063a9059cbb14610222578063dd62ed3e1461023557600080fd5b806370a082311461018c5780638da5cb5b146101b557806395d89b41146101f457600080fd5b806323b872dd116100c857806323b872dd14610142578063313ce56714610155578063395093511461016457806340c10f191461017757600080fd5b806306fdde03146100ef578063095ea7b31461010d57806318160ddd14610130575b600080fd5b6100f7610248565b6040516101049190610a14565b60405180910390f35b61012061011b366004610a7e565b6102da565b6040519015158152602001610104565b6002545b604051908152602001610104565b610120610150366004610aa8565b6102f4565b60405160068152602001610104565b610120610172366004610a7e565b610318565b61018a610185366004610a7e565b61033a565b005b61013461019a366004610ae4565b6001600160a01b031660009081526020819052604090205490565b6101dc7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610104565b6100f76103b4565b61018a61020a366004610a7e565b6103c3565b61012061021d366004610a7e565b610434565b610120610230366004610a7e565b6104af565b610134610243366004610b06565b6104bd565b60606003805461025790610b39565b80601f016020809104026020016040519081016040528092919081815260200182805461028390610b39565b80156102d05780601f106102a5576101008083540402835291602001916102d0565b820191906000526020600020905b8154815290600101906020018083116102b357829003601f168201915b5050505050905090565b6000336102e88185856104e8565b60019150505b92915050565b60003361030285828561060d565b61030d858585610687565b506001949350505050565b6000336102e881858561032b83836104bd565b6103359190610b73565b6104e8565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103a65760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b60448201526064015b60405180910390fd5b6103b0828261082b565b5050565b60606004805461025790610b39565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461042a5760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b604482015260640161039d565b6103b082826108ea565b6000338161044282866104bd565b9050838110156104a25760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161039d565b61030d82868684036104e8565b6000336102e8818585610687565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6001600160a01b03831661054a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161039d565b6001600160a01b0382166105ab5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161039d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b600061061984846104bd565b9050600019811461068157818110156106745760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039d565b61068184848484036104e8565b50505050565b6001600160a01b0383166106eb5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161039d565b6001600160a01b03821661074d5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161039d565b6001600160a01b038316600090815260208190526040902054818110156107c55760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161039d565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3610681565b6001600160a01b0382166108815760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161039d565b80600260008282546108939190610b73565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6001600160a01b03821661094a5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161039d565b6001600160a01b038216600090815260208190526040902054818110156109be5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161039d565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9101610600565b600060208083528351808285015260005b81811015610a4157858101830151858201604001528201610a25565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610a7957600080fd5b919050565b60008060408385031215610a9157600080fd5b610a9a83610a62565b946020939093013593505050565b600080600060608486031215610abd57600080fd5b610ac684610a62565b9250610ad460208501610a62565b9150604084013590509250925092565b600060208284031215610af657600080fd5b610aff82610a62565b9392505050565b60008060408385031215610b1957600080fd5b610b2283610a62565b9150610b3060208401610a62565b90509250929050565b600181811c90821680610b4d57607f821691505b602082108103610b6d57634e487b7160e01b600052602260045260246000fd5b50919050565b808201808211156102ee57634e487b7160e01b600052601160045260246000fdfea2646970667358221220810c77c02f50f8290df067e7265b6d5590f023ef19323910f155fb2883cbc1ba64736f6c63430008130033", + "deployedBytecode": "0x6080604052600436106101e15760003560e01c8063957f8afc11610102578063ce79735311610095578063e5cfd84911610064578063e5cfd8491461061f578063e652ae471461063f578063ed3437f81461065f578063f21f9a211461069357600080fd5b8063ce7973531461054f578063cebb86f914610583578063ddca3f43146105b7578063e06b63fc146105eb57600080fd5b8063b364e37c116100d1578063b364e37c146104d3578063b77e31f914610507578063bfebe1821461051a578063cc32d1761461053a57600080fd5b8063957f8afc14610469578063992642e5146104895780639f13f76d146104a9578063b0408a6e146104be57600080fd5b806361d027b31161017a5780637dc0d1d0116101495780637dc0d1d0146103df5780637dda4129146103ff578063824769f81461043357806388b2cbb61461044957600080fd5b806361d027b31461032a5780636caae8321461037657806371ad9d0f146103aa5780637a4f8cba146103bf57600080fd5b8063334fc513116101b6578063334fc5131461028f5780634d01dca5146102af578063574a3093146102e35780635f00248e146102f657600080fd5b80622ff067146101e6578062bccbcb146102195780631ac8fc2f14610239578063248f24221461025b575b600080fd5b3480156101f257600080fd5b506102066102013660046125de565b6106c7565b6040519081526020015b60405180910390f35b34801561022557600080fd5b506102066102343660046125de565b6106e1565b34801561024557600080fd5b50610259610254366004612613565b610763565b005b34801561026757600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b34801561029b57600080fd5b506102596102aa366004612659565b610ba4565b3480156102bb57600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b6102596102f13660046126a9565b611183565b34801561030257600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b34801561033657600080fd5b5061035e7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610210565b34801561038257600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b3480156103b657600080fd5b506102066114ac565b3480156103cb57600080fd5b506102596103da366004612613565b6114fe565b3480156103eb57600080fd5b5060015461035e906001600160a01b031681565b34801561040b57600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b34801561043f57600080fd5b5061020660045481565b34801561045557600080fd5b506102066104643660046125de565b611886565b34801561047557600080fd5b506102066104843660046125de565b61189a565b34801561049557600080fd5b5060025461035e906001600160a01b031681565b3480156104b557600080fd5b506102066118e4565b3480156104ca57600080fd5b506102066118f3565b3480156104df57600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b6102596105153660046126a9565b611902565b34801561052657600080fd5b5060035461035e906001600160a01b031681565b34801561054657600080fd5b50610206611d03565b34801561055b57600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b34801561058f57600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b3480156105c357600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f757600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b34801561062b57600080fd5b5061020661063a3660046125de565b611db8565b34801561064b57600080fd5b5061020661065a3660046125de565b611dc4565b34801561066b57600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b34801561069f57600080fd5b506102067f000000000000000000000000000000000000000000000000000000000000000081565b60006106db6106d5836106e1565b83611dd8565b92915050565b60015460408051631a862db560e31b8152815160009384936001600160a01b039091169263d4316da892600480830193928290030181865afa15801561072b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074f91906126e5565b50905061075c8382611df6565b9392505050565b61076b611ecf565b600160009054906101000a90046001600160a01b03166001600160a01b03166386b629b56040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107bb57600080fd5b505af11580156107cf573d6000803e3d6000fd5b50506003546040516370a0823160e01b81523360048201528793506001600160a01b0390911691506370a0823190602401602060405180830381865afa15801561081d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108419190612709565b10156108945760405162461bcd60e51b815260206004820152601f60248201527f73656c6c52433a20696e73756666696369656e742052432062616c616e63650060448201526064015b60405180910390fd5b60006108a060006106e1565b905060007f00000000000000000000000000000000000000000000000000000000000000006108d0836000611f28565b6108da9088612738565b6108e4919061274f565b90507f0000000000000000000000000000000000000000000000000000000000000000610931837f0000000000000000000000000000000000000000000000000000000000000000612738565b61093b919061274f565b811115806109d35750600254604080516318160ddd60e01b815290517f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa1580156109ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d19190612709565b105b610a1f5760405162461bcd60e51b815260206004820152601960248201527f73656c6c52433a207478206c696d697420657863656564656400000000000000604482015260640161088b565b6000610a2c828686612028565b905060008111610a7e5760405162461bcd60e51b815260206004820152601a60248201527f73656c6c52433a20726563656976696e67207a65726f20424373000000000000604482015260640161088b565b600354604051632770a7eb60e21b8152336004820152602481018990526001600160a01b0390911690639dc29fac90604401600060405180830381600087803b158015610aca57600080fd5b505af1158015610ade573d6000803e3d6000fd5b50505050610aec8682612173565b610afe610af9600061189a565b612209565b610b4a5760405162461bcd60e51b815260206004820152601760248201527f73656c6c52433a20726174696f2062656c6f77206d696e000000000000000000604482015260640161088b565b60408051888152602081018390526001600160a01b0388169133917f15e4dbe81367be42bcd3070bce6fe49bc9a13b25d7ee7fdd1e59b7563552fab791015b60405180910390a3505050610b9e6001600055565b50505050565b610bac611ecf565b600160009054906101000a90046001600160a01b03166001600160a01b03166386b629b56040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610bfc57600080fd5b505af1158015610c10573d6000803e3d6000fd5b50506002546040516370a0823160e01b81523360048201528893506001600160a01b0390911691506370a0823190602401602060405180830381865afa158015610c5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c829190612709565b1015610cd05760405162461bcd60e51b815260206004820152601a60248201527f73656c6c426f74683a20696e73756666696369656e7420534373000000000000604482015260640161088b565b6003546040516370a0823160e01b815233600482015285916001600160a01b0316906370a0823190602401602060405180830381865afa158015610d18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3c9190612709565b1015610d8a5760405162461bcd60e51b815260206004820152601a60248201527f73656c6c426f74683a20696e73756666696369656e7420524373000000000000604482015260640161088b565b6000610d9660006106e1565b90506000610da46000611db8565b90506000610db183612320565b905060007f0000000000000000000000000000000000000000000000000000000000000000610de1856000611f28565b610deb908a612738565b610df5919061274f565b7f0000000000000000000000000000000000000000000000000000000000000000610e20868c612738565b610e2a919061274f565b610e349190612771565b90507f0000000000000000000000000000000000000000000000000000000000000000610e81857f0000000000000000000000000000000000000000000000000000000000000000612738565b610e8b919061274f565b81111580610f235750600254604080516318160ddd60e01b815290517f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015610efd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f219190612709565b105b610f6f5760405162461bcd60e51b815260206004820152601b60248201527f73656c6c426f74683a207478206c696d69742065786365656465640000000000604482015260640161088b565b600254604051632770a7eb60e21b8152336004820152602481018b90526001600160a01b0390911690639dc29fac90604401600060405180830381600087803b158015610fbb57600080fd5b505af1158015610fcf573d6000803e3d6000fd5b5050600354604051632770a7eb60e21b8152336004820152602481018c90526001600160a01b039091169250639dc29fac9150604401600060405180830381600087803b15801561101f57600080fd5b505af1158015611033573d6000803e3d6000fd5b505050506000611044828888612028565b9050600081116110965760405162461bcd60e51b815260206004820152601c60248201527f73656c6c426f74683a20726563656976696e67207a65726f2042437300000000604482015260640161088b565b6110a08882612173565b6110b26110ad600061189a565b612320565b6110bc9085612738565b836110c76000611db8565b6110d19190612738565b101561111f5760405162461bcd60e51b815260206004820152601960248201527f73656c6c426f74683a20726174696f2064656372656173656400000000000000604482015260640161088b565b604080518b8152602081018b90529081018290526001600160a01b0389169033907ff7873e627d69f6f47e1de13a8990f045fa63720d51c6ccf047fd4382962419d39060600160405180910390a3505050505061117c6001600055565b5050505050565b61118b611ecf565b600160009054906101000a90046001600160a01b03166001600160a01b03166386b629b56040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156111db57600080fd5b505af11580156111ef573d6000803e3d6000fd5b5050505060006111fe346106e1565b9050600061120d348585612028565b905060008261123c7f000000000000000000000000000000000000000000000000000000000000000084612738565b611246919061274f565b90507f0000000000000000000000000000000000000000000000000000000000000000811115806113015750600254604080516318160ddd60e01b815290517f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa1580156112db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ff9190612709565b105b61134d5760405162461bcd60e51b815260206004820152601860248201527f62757953433a207478206c696d69742065786365656465640000000000000000604482015260640161088b565b6000811161139d5760405162461bcd60e51b815260206004820152601960248201527f62757953433a20726563656976696e67207a65726f2053437300000000000000604482015260640161088b565b6002546040516340c10f1960e01b81526001600160a01b03888116600483015260248201849052909116906340c10f1990604401600060405180830381600087803b1580156113eb57600080fd5b505af11580156113ff573d6000803e3d6000fd5b50505050611410610af960006106e1565b6114555760405162461bcd60e51b8152602060048201526016602482015275313abca9a19d103930ba34b7903132b637bb9036b4b760511b604482015260640161088b565b604080518281523460208201526001600160a01b0388169133917fe2a93bd50c65406b1485d973a0eefc0938aa42447e8327a24413cf34646cb1c1910160405180910390a35050506114a76001600055565b505050565b60006114bb6110ad600061189a565b6114c56000611db8565b6114ef907f0000000000000000000000000000000000000000000000000000000000000000612738565b6114f9919061274f565b905090565b611506611ecf565b600160009054906101000a90046001600160a01b03166001600160a01b03166386b629b56040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561155657600080fd5b505af115801561156a573d6000803e3d6000fd5b50506002546040516370a0823160e01b81523360048201528793506001600160a01b0390911691506370a0823190602401602060405180830381865afa1580156115b8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115dc9190612709565b101561162a5760405162461bcd60e51b815260206004820152601f60248201527f73656c6c53433a20696e73756666696369656e742053432062616c616e636500604482015260640161088b565b7f0000000000000000000000000000000000000000000000000000000000000000841115806116e35750600254604080516318160ddd60e01b815290517f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa1580156116bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116e19190612709565b105b61172f5760405162461bcd60e51b815260206004820152601960248201527f73656c6c53433a207478206c696d697420657863656564656400000000000000604482015260640161088b565b600061173b600061189a565b905060007f000000000000000000000000000000000000000000000000000000000000000061176a8388612738565b611774919061274f565b90506000611783828686612028565b9050600081116117d55760405162461bcd60e51b815260206004820152601a60248201527f73656c6c53433a20726563656976696e67207a65726f20424373000000000000604482015260640161088b565b600254604051632770a7eb60e21b8152336004820152602481018990526001600160a01b0390911690639dc29fac90604401600060405180830381600087803b15801561182157600080fd5b505af1158015611835573d6000803e3d6000fd5b505050506118438682612173565b60408051888152602081018390526001600160a01b0388169133917f5ca4c7224e0472de3d8d6d7816a14b47de89471be844d8c76bb75d1e528edfd19101610b89565b60006106db611894836106e1565b83611f28565b60015460408051636fbdfa4760e01b8152815160009384936001600160a01b0390911692636fbdfa4792600480830193928290030181865afa15801561072b573d6000803e3d6000fd5b60006114f96110ad60006106e1565b60006114bb6110ad60006106e1565b61190a611ecf565b600160009054906101000a90046001600160a01b03166001600160a01b03166386b629b56040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561195a57600080fd5b505af115801561196e573d6000803e3d6000fd5b50505050600061197d3461189a565b9050600061198b82346123cf565b9050600061199a348686612028565b90507f00000000000000000000000000000000000000000000000000000000000000006119e7847f0000000000000000000000000000000000000000000000000000000000000000612738565b6119f1919061274f565b81111580611a895750600254604080516318160ddd60e01b815290517f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015611a63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a879190612709565b105b611ad55760405162461bcd60e51b815260206004820152601860248201527f62757952433a207478206c696d69742065786365656465640000000000000000604482015260640161088b565b600082611b027f000000000000000000000000000000000000000000000000000000000000000084612738565b611b0c919061274f565b905060008111611b5e5760405162461bcd60e51b815260206004820152601960248201527f62757952433a20726563656976696e67207a65726f2052437300000000000000604482015260640161088b565b6003546040516340c10f1960e01b81526001600160a01b03898116600483015260248201849052909116906340c10f1990604401600060405180830381600087803b158015611bac57600080fd5b505af1158015611bc0573d6000803e3d6000fd5b50505050611bd6611bd160006106e1565b6124a2565b80611c6b5750600254604080516318160ddd60e01b815290517f0000000000000000000000000000000000000000000000000000000000000000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015611c45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c699190612709565b105b611cb05760405162461bcd60e51b81526020600482015260166024820152750c4eaf2a4867440e4c2e8d2de40c2c4deecca40dac2f60531b604482015260640161088b565b604080518281523460208201526001600160a01b0389169133917f8166a12a2e856c3ebafb91657860659290e42f5f615478292b29fb836f63f7c7910160405180910390a3505050506114a76001600055565b60007f00000000000000000000000000000000000000000000000000000000000000006004541015611db2577f00000000000000000000000000000000000000000000000000000000000000006004547f0000000000000000000000000000000000000000000000000000000000000000611d7e9190612738565b611d88919061274f565b6114f9907f0000000000000000000000000000000000000000000000000000000000000000612784565b50600090565b60006106db8247612784565b60006106db611dd2836106e1565b836123cf565b6000611de383612320565b611dec83611db8565b61075c9190612784565b600080600260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e4c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e709190612709565b90508015611ec557611ec083827f0000000000000000000000000000000000000000000000000000000000000000611ea788611db8565b611eb19190612738565b611ebb919061274f565b6125b9565b611ec7565b825b949350505050565b600260005403611f215760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161088b565b6002600055565b600080600360009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fa29190612709565b905080600003611fe85760405162461bcd60e51b8152602060048201526011602482015270524320737570706c79206973207a65726f60781b604482015260640161088b565b807f00000000000000000000000000000000000000000000000000000000000000006120148686611dd8565b61201e9190612738565b611ec7919061274f565b6000807f00000000000000000000000000000000000000000000000000000000000000006120767f000000000000000000000000000000000000000000000000000000000000000087612738565b612080919061274f565b905060007f00000000000000000000000000000000000000000000000000000000000000006120af8688612738565b6120b9919061274f565b905060007f00000000000000000000000000000000000000000000000000000000000000006120e6611d03565b6120f09089612738565b6120fa919061274f565b9050806004600082825461210e9190612771565b9091555061213e90507f000000000000000000000000000000000000000000000000000000000000000082612173565b6121488583612173565b8082612154858a612784565b61215e9190612784565b6121689190612784565b979650505050505050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146121c0576040519150601f19603f3d011682016040523d82523d6000602084013e6121c5565b606091505b50509050806114a75760405162461bcd60e51b815260206004820152601060248201526f2a3930b739b332b9103330b4b632b21760811b604482015260640161088b565b60007f000000000000000000000000000000000000000000000000000000000000000082600260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612280573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122a49190612709565b6122ae9190612738565b6122b89190612738565b7f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006123046000611db8565b61230e9190612738565b6123189190612738565b101592915050565b60007f000000000000000000000000000000000000000000000000000000000000000082600260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612397573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123bb9190612709565b6123c59190612738565b6106db919061274f565b600354604080516318160ddd60e01b815290516000926001600160a01b0316916318160ddd9160048083019260209291908290030181865afa158015612419573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061243d9190612709565b1561247a5761247561244f8484611f28565b7f00000000000000000000000000000000000000000000000000000000000000006125cf565b61075c565b507f000000000000000000000000000000000000000000000000000000000000000092915050565b60007f000000000000000000000000000000000000000000000000000000000000000082600260009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253d9190612709565b6125479190612738565b6125519190612738565b7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061259d6000611db8565b6125a79190612738565b6125b19190612738565b111592915050565b60008183106125c8578161075c565b5090919050565b60008183116125c8578161075c565b6000602082840312156125f057600080fd5b5035919050565b80356001600160a01b038116811461260e57600080fd5b919050565b6000806000806080858703121561262957600080fd5b84359350612639602086016125f7565b92506040850135915061264e606086016125f7565b905092959194509250565b600080600080600060a0868803121561267157600080fd5b8535945060208601359350612688604087016125f7565b92506060860135915061269d608087016125f7565b90509295509295909350565b6000806000606084860312156126be57600080fd5b6126c7846125f7565b9250602084013591506126dc604085016125f7565b90509250925092565b600080604083850312156126f857600080fd5b505080516020909101519092909150565b60006020828403121561271b57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176106db576106db612722565b60008261276c57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156106db576106db612722565b818103818111156106db576106db61272256fea26469706673582212206d70741d0daa9fc66e2e752f3f1042eb0150d02aa3af12d18068fb93227e540364736f6c63430008130033", + "immutableReferences": { + "1725": [ + { + "start": 828, + "length": 32 + }, + { + "start": 8473, + "length": 32 + } + ], + "1727": [ + { + "start": 776, + "length": 32 + }, + { + "start": 7509, + "length": 32 + }, + { + "start": 7566, + "length": 32 + } + ], + "1729": [ + { + "start": 1253, + "length": 32 + }, + { + "start": 7431, + "length": 32 + }, + { + "start": 7473, + "length": 32 + } + ], + "1734": [ + { + "start": 621, + "length": 32 + }, + { + "start": 8717, + "length": 32 + } + ], + "1736": [ + { + "start": 1533, + "length": 32 + }, + { + "start": 9382, + "length": 32 + } + ], + "1738": [ + { + "start": 1481, + "length": 32 + }, + { + "start": 8273, + "length": 32 + } + ], + "1740": [ + { + "start": 1377, + "length": 32 + }, + { + "start": 2393, + "length": 32 + }, + { + "start": 3753, + "length": 32 + }, + { + "start": 4743, + "length": 32 + }, + { + "start": 5737, + "length": 32 + }, + { + "start": 6671, + "length": 32 + }, + { + "start": 7153, + "length": 32 + } + ], + "1742": [ + { + "start": 705, + "length": 32 + }, + { + "start": 9297, + "length": 32 + } + ], + "1744": [ + { + "start": 1041, + "length": 32 + }, + { + "start": 9341, + "length": 32 + } + ], + "1746": [ + { + "start": 904, + "length": 32 + }, + { + "start": 2317, + "length": 32 + }, + { + "start": 3677, + "length": 32 + }, + { + "start": 4682, + "length": 32 + }, + { + "start": 5676, + "length": 32 + }, + { + "start": 6595, + "length": 32 + } + ], + "1748": [ + { + "start": 1649, + "length": 32 + }, + { + "start": 5323, + "length": 32 + }, + { + "start": 8237, + "length": 32 + }, + { + "start": 8326, + "length": 32 + }, + { + "start": 8383, + "length": 32 + }, + { + "start": 8923, + "length": 32 + }, + { + "start": 9588, + "length": 32 + } + ], + "1750": [ + { + "start": 1429, + "length": 32 + }, + { + "start": 2280, + "length": 32 + }, + { + "start": 3575, + "length": 32 + }, + { + "start": 3640, + "length": 32 + }, + { + "start": 4631, + "length": 32 + }, + { + "start": 5953, + "length": 32 + }, + { + "start": 6558, + "length": 32 + }, + { + "start": 7807, + "length": 32 + }, + { + "start": 8890, + "length": 32 + }, + { + "start": 8996, + "length": 32 + }, + { + "start": 9555, + "length": 32 + } + ], + "1752": [ + { + "start": 1701, + "length": 32 + }, + { + "start": 2214, + "length": 32 + }, + { + "start": 3511, + "length": 32 + }, + { + "start": 6877, + "length": 32 + }, + { + "start": 8171, + "length": 32 + } + ] + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:10131:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:10", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:10" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:10" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:10" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:10", + "type": "" + } + ], + "src": "7:75:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:10" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:10" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:10" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:10" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:10", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:10", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:10", + "type": "" + } + ], + "src": "334:126:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:10", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:10", + "type": "" + } + ], + "src": "466:96:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:10" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:10" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:10" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:10" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:10" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:10" + }, + "nodeType": "YulIf", + "src": "621:63:10" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:10", + "type": "" + } + ], + "src": "568:122:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "759:80:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "769:22:10", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "784:6:10" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "778:5:10" + }, + "nodeType": "YulFunctionCall", + "src": "778:13:10" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "769:5:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "827:5:10" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "800:26:10" + }, + "nodeType": "YulFunctionCall", + "src": "800:33:10" + }, + "nodeType": "YulExpressionStatement", + "src": "800:33:10" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "737:6:10", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "745:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "753:5:10", + "type": "" + } + ], + "src": "696:143:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "890:32:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "900:16:10", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "911:5:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "900:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "872:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "882:7:10", + "type": "" + } + ], + "src": "845:77:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "971:79:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1028:16:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1037:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1040:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1030:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "1030:12:10" + }, + "nodeType": "YulExpressionStatement", + "src": "1030:12:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "994:5:10" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1019:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "1001:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "1001:24:10" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "991:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "991:35:10" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "984:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "984:43:10" + }, + "nodeType": "YulIf", + "src": "981:63:10" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "964:5:10", + "type": "" + } + ], + "src": "928:122:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1119:80:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1129:22:10", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1144:6:10" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1138:5:10" + }, + "nodeType": "YulFunctionCall", + "src": "1138:13:10" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1129:5:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1187:5:10" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "1160:26:10" + }, + "nodeType": "YulFunctionCall", + "src": "1160:33:10" + }, + "nodeType": "YulExpressionStatement", + "src": "1160:33:10" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1097:6:10", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1105:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1113:5:10", + "type": "" + } + ], + "src": "1056:143:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1453:1673:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1500:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1502:77:10" + }, + "nodeType": "YulFunctionCall", + "src": "1502:79:10" + }, + "nodeType": "YulExpressionStatement", + "src": "1502:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1474:7:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1483:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1470:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "1470:23:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1495:3:10", + "type": "", + "value": "352" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1466:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "1466:33:10" + }, + "nodeType": "YulIf", + "src": "1463:120:10" + }, + { + "nodeType": "YulBlock", + "src": "1593:128:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1608:15:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1622:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1612:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1637:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1683:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1694:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1679:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "1679:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1703:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1647:31:10" + }, + "nodeType": "YulFunctionCall", + "src": "1647:64:10" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1637:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1731:129:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1746:16:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1760:2:10", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1750:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1776:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1822:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1833:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1818:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "1818:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1842:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "1786:31:10" + }, + "nodeType": "YulFunctionCall", + "src": "1786:64:10" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1776:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1870:129:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1885:16:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1899:2:10", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1889:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1915:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1961:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1972:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1957:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "1957:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1981:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "1925:31:10" + }, + "nodeType": "YulFunctionCall", + "src": "1925:64:10" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1915:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2009:129:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2024:16:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2038:2:10", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2028:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2054:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2100:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2111:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2096:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "2096:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2120:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "2064:31:10" + }, + "nodeType": "YulFunctionCall", + "src": "2064:64:10" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "2054:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2148:130:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2163:17:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2177:3:10", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2167:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2194:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2240:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2251:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2236:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "2236:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2260:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "2204:31:10" + }, + "nodeType": "YulFunctionCall", + "src": "2204:64:10" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "2194:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2288:130:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2303:17:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2317:3:10", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2307:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2334:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2380:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2391:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2376:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "2376:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2400:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "2344:31:10" + }, + "nodeType": "YulFunctionCall", + "src": "2344:64:10" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "2334:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2428:130:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2443:17:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2457:3:10", + "type": "", + "value": "192" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2447:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2474:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2520:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2531:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2516:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "2516:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2540:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "2484:31:10" + }, + "nodeType": "YulFunctionCall", + "src": "2484:64:10" + }, + "variableNames": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "2474:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2568:130:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2583:17:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2597:3:10", + "type": "", + "value": "224" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2587:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2614:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2660:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2671:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2656:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "2656:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2680:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "2624:31:10" + }, + "nodeType": "YulFunctionCall", + "src": "2624:64:10" + }, + "variableNames": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "2614:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2708:130:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2723:17:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2737:3:10", + "type": "", + "value": "256" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2727:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2754:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2800:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2811:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2796:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "2796:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2820:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "2764:31:10" + }, + "nodeType": "YulFunctionCall", + "src": "2764:64:10" + }, + "variableNames": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "2754:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2848:130:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2863:17:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2877:3:10", + "type": "", + "value": "288" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2867:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2894:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2940:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2951:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2936:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "2936:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2960:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "2904:31:10" + }, + "nodeType": "YulFunctionCall", + "src": "2904:64:10" + }, + "variableNames": [ + { + "name": "value9", + "nodeType": "YulIdentifier", + "src": "2894:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2988:131:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3003:17:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3017:3:10", + "type": "", + "value": "320" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3007:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3034:75:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3081:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3092:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3077:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "3077:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3101:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "3045:31:10" + }, + "nodeType": "YulFunctionCall", + "src": "3045:64:10" + }, + "variableNames": [ + { + "name": "value10", + "nodeType": "YulIdentifier", + "src": "3034:7:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_addresst_uint256t_uint256t_uint256t_uint256t_uint256t_uint256t_uint256t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1342:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1353:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1365:6:10", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1373:6:10", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1381:6:10", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "1389:6:10", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "1397:6:10", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "1405:6:10", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "1413:6:10", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "1421:6:10", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "1429:6:10", + "type": "" + }, + { + "name": "value9", + "nodeType": "YulTypedName", + "src": "1437:6:10", + "type": "" + }, + { + "name": "value10", + "nodeType": "YulTypedName", + "src": "1445:7:10", + "type": "" + } + ], + "src": "1205:1921:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3228:73:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3245:3:10" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3250:6:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3238:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "3238:19:10" + }, + "nodeType": "YulExpressionStatement", + "src": "3238:19:10" + }, + { + "nodeType": "YulAssignment", + "src": "3266:29:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3285:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3290:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3281:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "3281:14:10" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "3266:11:10" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3200:3:10", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3205:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "3216:11:10", + "type": "" + } + ], + "src": "3132:169:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3413:54:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "3435:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3443:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3431:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "3431:14:10" + }, + { + "hexValue": "537461626c65436f696e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "3447:12:10", + "type": "", + "value": "StableCoin" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3424:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "3424:36:10" + }, + "nodeType": "YulExpressionStatement", + "src": "3424:36:10" + } + ] + }, + "name": "store_literal_in_memory_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "3405:6:10", + "type": "" + } + ], + "src": "3307:160:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3619:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3629:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3695:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3700:2:10", + "type": "", + "value": "10" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "3636:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "3636:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3629:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3801:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b", + "nodeType": "YulIdentifier", + "src": "3712:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "3712:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "3712:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "3814:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3825:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3830:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3821:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "3821:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3814:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3607:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3615:3:10", + "type": "" + } + ], + "src": "3473:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3951:46:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "3973:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3981:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3969:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "3969:14:10" + }, + { + "hexValue": "5343", + "kind": "string", + "nodeType": "YulLiteral", + "src": "3985:4:10", + "type": "", + "value": "SC" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3962:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "3962:28:10" + }, + "nodeType": "YulExpressionStatement", + "src": "3962:28:10" + } + ] + }, + "name": "store_literal_in_memory_e0f6b2c259439cb874f16df9bd0da748265587d70fd9479b33dccc16a6b451e0", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "3943:6:10", + "type": "" + } + ], + "src": "3845:152:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4149:219:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4159:73:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4225:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4230:1:10", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4166:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "4166:66:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4159:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4330:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_e0f6b2c259439cb874f16df9bd0da748265587d70fd9479b33dccc16a6b451e0", + "nodeType": "YulIdentifier", + "src": "4241:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "4241:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "4241:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "4343:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4354:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4359:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4350:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "4350:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "4343:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e0f6b2c259439cb874f16df9bd0da748265587d70fd9479b33dccc16a6b451e0_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4137:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4145:3:10", + "type": "" + } + ], + "src": "4003:365:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4646:454:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4656:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4668:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4679:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4664:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "4664:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4656:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4703:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4714:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4699:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "4699:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4722:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4728:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4718:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "4718:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4692:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "4692:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "4692:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "4748:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4882:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4756:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "4756:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4748:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4908:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4919:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4904:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "4904:18:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4928:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4934:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4924:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "4924:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4897:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "4897:48:10" + }, + "nodeType": "YulExpressionStatement", + "src": "4897:48:10" + }, + { + "nodeType": "YulAssignment", + "src": "4954:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5088:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e0f6b2c259439cb874f16df9bd0da748265587d70fd9479b33dccc16a6b451e0_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4962:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "4962:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4954:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b_t_stringliteral_e0f6b2c259439cb874f16df9bd0da748265587d70fd9479b33dccc16a6b451e0__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4626:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4641:4:10", + "type": "" + } + ], + "src": "4374:726:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5212:55:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "5234:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5242:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5230:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "5230:14:10" + }, + { + "hexValue": "52657365727665436f696e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "5246:13:10", + "type": "", + "value": "ReserveCoin" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5223:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "5223:37:10" + }, + "nodeType": "YulExpressionStatement", + "src": "5223:37:10" + } + ] + }, + "name": "store_literal_in_memory_3b2bd3daf9fdb5f07b692e1abe19b1c3b746e22bcc105483950b92e38c47fab2", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "5204:6:10", + "type": "" + } + ], + "src": "5106:161:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5419:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5429:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5495:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5500:2:10", + "type": "", + "value": "11" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5436:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "5436:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5429:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5601:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_3b2bd3daf9fdb5f07b692e1abe19b1c3b746e22bcc105483950b92e38c47fab2", + "nodeType": "YulIdentifier", + "src": "5512:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "5512:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "5512:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "5614:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5625:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5630:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5621:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "5621:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5614:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3b2bd3daf9fdb5f07b692e1abe19b1c3b746e22bcc105483950b92e38c47fab2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5407:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5415:3:10", + "type": "" + } + ], + "src": "5273:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5751:46:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "5773:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5781:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5769:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "5769:14:10" + }, + { + "hexValue": "5243", + "kind": "string", + "nodeType": "YulLiteral", + "src": "5785:4:10", + "type": "", + "value": "RC" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5762:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "5762:28:10" + }, + "nodeType": "YulExpressionStatement", + "src": "5762:28:10" + } + ] + }, + "name": "store_literal_in_memory_fa35b021d5bda1c04c04da86694705ee13ae0ffc031397c40508a79dd69b65cb", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "5743:6:10", + "type": "" + } + ], + "src": "5645:152:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5949:219:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5959:73:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6025:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6030:1:10", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5966:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "5966:66:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5959:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6130:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_fa35b021d5bda1c04c04da86694705ee13ae0ffc031397c40508a79dd69b65cb", + "nodeType": "YulIdentifier", + "src": "6041:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "6041:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "6041:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "6143:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6154:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6159:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6150:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "6150:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6143:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_fa35b021d5bda1c04c04da86694705ee13ae0ffc031397c40508a79dd69b65cb_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5937:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "5945:3:10", + "type": "" + } + ], + "src": "5803:365:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6446:454:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6456:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6468:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6479:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6464:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "6464:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6456:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6503:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6514:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6499:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "6499:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6522:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6528:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6518:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "6518:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6492:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "6492:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "6492:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "6548:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6682:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3b2bd3daf9fdb5f07b692e1abe19b1c3b746e22bcc105483950b92e38c47fab2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6556:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "6556:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6548:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6708:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6719:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6704:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "6704:18:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6728:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6734:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6724:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "6724:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6697:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "6697:48:10" + }, + "nodeType": "YulExpressionStatement", + "src": "6697:48:10" + }, + { + "nodeType": "YulAssignment", + "src": "6754:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6888:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_fa35b021d5bda1c04c04da86694705ee13ae0ffc031397c40508a79dd69b65cb_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6762:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "6762:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6754:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3b2bd3daf9fdb5f07b692e1abe19b1c3b746e22bcc105483950b92e38c47fab2_t_stringliteral_fa35b021d5bda1c04c04da86694705ee13ae0ffc031397c40508a79dd69b65cb__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6426:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6441:4:10", + "type": "" + } + ], + "src": "6174:726:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6949:43:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6959:27:10", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6974:5:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6981:4:10", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6970:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "6970:16:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "6959:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6931:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "6941:7:10", + "type": "" + } + ], + "src": "6906:86:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7039:77:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7094:16:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7103:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7106:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7096:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "7096:12:10" + }, + "nodeType": "YulExpressionStatement", + "src": "7096:12:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7062:5:10" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7085:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "7069:15:10" + }, + "nodeType": "YulFunctionCall", + "src": "7069:22:10" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "7059:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "7059:33:10" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "7052:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "7052:41:10" + }, + "nodeType": "YulIf", + "src": "7049:61:10" + } + ] + }, + "name": "validator_revert_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7032:5:10", + "type": "" + } + ], + "src": "6998:118:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7183:78:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7193:22:10", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7208:6:10" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "7202:5:10" + }, + "nodeType": "YulFunctionCall", + "src": "7202:13:10" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7193:5:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7249:5:10" + } + ], + "functionName": { + "name": "validator_revert_t_uint8", + "nodeType": "YulIdentifier", + "src": "7224:24:10" + }, + "nodeType": "YulFunctionCall", + "src": "7224:31:10" + }, + "nodeType": "YulExpressionStatement", + "src": "7224:31:10" + } + ] + }, + "name": "abi_decode_t_uint8_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7161:6:10", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7169:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7177:5:10", + "type": "" + } + ], + "src": "7122:139:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7342:272:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7388:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "7390:77:10" + }, + "nodeType": "YulFunctionCall", + "src": "7390:79:10" + }, + "nodeType": "YulExpressionStatement", + "src": "7390:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7363:7:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7372:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7359:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "7359:23:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7384:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7355:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "7355:32:10" + }, + "nodeType": "YulIf", + "src": "7352:119:10" + }, + { + "nodeType": "YulBlock", + "src": "7481:126:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7496:15:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7510:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7500:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7525:72:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7569:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7580:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7565:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "7565:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7589:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint8_fromMemory", + "nodeType": "YulIdentifier", + "src": "7535:29:10" + }, + "nodeType": "YulFunctionCall", + "src": "7535:62:10" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7525:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint8_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7312:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7323:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7335:6:10", + "type": "" + } + ], + "src": "7267:347:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7648:152:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7665:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7668:77:10", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7658:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "7658:88:10" + }, + "nodeType": "YulExpressionStatement", + "src": "7658:88:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7762:1:10", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7765:4:10", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7755:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "7755:15:10" + }, + "nodeType": "YulExpressionStatement", + "src": "7755:15:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7786:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7789:4:10", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7779:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "7779:15:10" + }, + "nodeType": "YulExpressionStatement", + "src": "7779:15:10" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "7620:180:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7857:51:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7867:34:10", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7892:1:10", + "type": "", + "value": "1" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7895:5:10" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "7888:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "7888:13:10" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "7867:8:10" + } + ] + } + ] + }, + "name": "shift_right_1_unsigned", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7838:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "7848:8:10", + "type": "" + } + ], + "src": "7806:102:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7987:775:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7997:15:10", + "value": { + "name": "_power", + "nodeType": "YulIdentifier", + "src": "8006:6:10" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "7997:5:10" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8021:14:10", + "value": { + "name": "_base", + "nodeType": "YulIdentifier", + "src": "8030:5:10" + }, + "variableNames": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "8021:4:10" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8079:677:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8167:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "8169:16:10" + }, + "nodeType": "YulFunctionCall", + "src": "8169:18:10" + }, + "nodeType": "YulExpressionStatement", + "src": "8169:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "8145:4:10" + }, + { + "arguments": [ + { + "name": "max", + "nodeType": "YulIdentifier", + "src": "8155:3:10" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "8160:4:10" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "8151:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "8151:14:10" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8142:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "8142:24:10" + }, + "nodeType": "YulIf", + "src": "8139:50:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8234:419:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8614:25:10", + "value": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "8627:5:10" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "8634:4:10" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8623:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "8623:16:10" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "8614:5:10" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "8209:8:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8219:1:10", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "8205:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "8205:16:10" + }, + "nodeType": "YulIf", + "src": "8202:451:10" + }, + { + "nodeType": "YulAssignment", + "src": "8666:23:10", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "8678:4:10" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "8684:4:10" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8674:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "8674:15:10" + }, + "variableNames": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "8666:4:10" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8702:44:10", + "value": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "8737:8:10" + } + ], + "functionName": { + "name": "shift_right_1_unsigned", + "nodeType": "YulIdentifier", + "src": "8714:22:10" + }, + "nodeType": "YulFunctionCall", + "src": "8714:32:10" + }, + "variableNames": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "8702:8:10" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "8055:8:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8065:1:10", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8052:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "8052:15:10" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "8068:2:10", + "statements": [] + }, + "pre": { + "nodeType": "YulBlock", + "src": "8048:3:10", + "statements": [] + }, + "src": "8044:712:10" + } + ] + }, + "name": "checked_exp_helper", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "_power", + "nodeType": "YulTypedName", + "src": "7942:6:10", + "type": "" + }, + { + "name": "_base", + "nodeType": "YulTypedName", + "src": "7950:5:10", + "type": "" + }, + { + "name": "exponent", + "nodeType": "YulTypedName", + "src": "7957:8:10", + "type": "" + }, + { + "name": "max", + "nodeType": "YulTypedName", + "src": "7967:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "power", + "nodeType": "YulTypedName", + "src": "7975:5:10", + "type": "" + }, + { + "name": "base", + "nodeType": "YulTypedName", + "src": "7982:4:10", + "type": "" + } + ], + "src": "7914:848:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8828:1013:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9023:20:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9025:10:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9034:1:10", + "type": "", + "value": "1" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "9025:5:10" + } + ] + }, + { + "nodeType": "YulLeave", + "src": "9036:5:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "9013:8:10" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9006:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "9006:16:10" + }, + "nodeType": "YulIf", + "src": "9003:40:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9068:20:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9070:10:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9079:1:10", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "9070:5:10" + } + ] + }, + { + "nodeType": "YulLeave", + "src": "9081:5:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "9062:4:10" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9055:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "9055:12:10" + }, + "nodeType": "YulIf", + "src": "9052:36:10" + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9198:20:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9200:10:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9209:1:10", + "type": "", + "value": "1" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "9200:5:10" + } + ] + }, + { + "nodeType": "YulLeave", + "src": "9211:5:10" + } + ] + }, + "nodeType": "YulCase", + "src": "9191:27:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9196:1:10", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9242:176:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "9277:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "9279:16:10" + }, + "nodeType": "YulFunctionCall", + "src": "9279:18:10" + }, + "nodeType": "YulExpressionStatement", + "src": "9279:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "9262:8:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9272:3:10", + "type": "", + "value": "255" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9259:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "9259:17:10" + }, + "nodeType": "YulIf", + "src": "9256:43:10" + }, + { + "nodeType": "YulAssignment", + "src": "9312:25:10", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9325:1:10", + "type": "", + "value": "2" + }, + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "9328:8:10" + } + ], + "functionName": { + "name": "exp", + "nodeType": "YulIdentifier", + "src": "9321:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "9321:16:10" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "9312:5:10" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9368:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "9370:16:10" + }, + "nodeType": "YulFunctionCall", + "src": "9370:18:10" + }, + "nodeType": "YulExpressionStatement", + "src": "9370:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "9356:5:10" + }, + { + "name": "max", + "nodeType": "YulIdentifier", + "src": "9363:3:10" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9353:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "9353:14:10" + }, + "nodeType": "YulIf", + "src": "9350:40:10" + }, + { + "nodeType": "YulLeave", + "src": "9403:5:10" + } + ] + }, + "nodeType": "YulCase", + "src": "9227:191:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9232:1:10", + "type": "", + "value": "2" + } + } + ], + "expression": { + "name": "base", + "nodeType": "YulIdentifier", + "src": "9148:4:10" + }, + "nodeType": "YulSwitch", + "src": "9141:277:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9550:123:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9564:28:10", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "9577:4:10" + }, + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "9583:8:10" + } + ], + "functionName": { + "name": "exp", + "nodeType": "YulIdentifier", + "src": "9573:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "9573:19:10" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "9564:5:10" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9623:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "9625:16:10" + }, + "nodeType": "YulFunctionCall", + "src": "9625:18:10" + }, + "nodeType": "YulExpressionStatement", + "src": "9625:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "9611:5:10" + }, + { + "name": "max", + "nodeType": "YulIdentifier", + "src": "9618:3:10" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9608:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "9608:14:10" + }, + "nodeType": "YulIf", + "src": "9605:40:10" + }, + { + "nodeType": "YulLeave", + "src": "9658:5:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "9453:4:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9459:2:10", + "type": "", + "value": "11" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "9450:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "9450:12:10" + }, + { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "9467:8:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9477:2:10", + "type": "", + "value": "78" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "9464:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "9464:16:10" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "9446:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "9446:35:10" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "9502:4:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9508:3:10", + "type": "", + "value": "307" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "9499:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "9499:13:10" + }, + { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "9517:8:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9527:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "9514:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "9514:16:10" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "9495:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "9495:36:10" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "9430:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "9430:111:10" + }, + "nodeType": "YulIf", + "src": "9427:246:10" + }, + { + "nodeType": "YulAssignment", + "src": "9683:57:10", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9717:1:10", + "type": "", + "value": "1" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "9720:4:10" + }, + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "9726:8:10" + }, + { + "name": "max", + "nodeType": "YulIdentifier", + "src": "9736:3:10" + } + ], + "functionName": { + "name": "checked_exp_helper", + "nodeType": "YulIdentifier", + "src": "9698:18:10" + }, + "nodeType": "YulFunctionCall", + "src": "9698:42:10" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "9683:5:10" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "9690:4:10" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9779:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "9781:16:10" + }, + "nodeType": "YulFunctionCall", + "src": "9781:18:10" + }, + "nodeType": "YulExpressionStatement", + "src": "9781:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "9756:5:10" + }, + { + "arguments": [ + { + "name": "max", + "nodeType": "YulIdentifier", + "src": "9767:3:10" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "9772:4:10" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "9763:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "9763:14:10" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9753:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "9753:25:10" + }, + "nodeType": "YulIf", + "src": "9750:51:10" + }, + { + "nodeType": "YulAssignment", + "src": "9810:25:10", + "value": { + "arguments": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "9823:5:10" + }, + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "9830:4:10" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "9819:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "9819:16:10" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "9810:5:10" + } + ] + } + ] + }, + "name": "checked_exp_unsigned", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base", + "nodeType": "YulTypedName", + "src": "8798:4:10", + "type": "" + }, + { + "name": "exponent", + "nodeType": "YulTypedName", + "src": "8804:8:10", + "type": "" + }, + { + "name": "max", + "nodeType": "YulTypedName", + "src": "8814:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "power", + "nodeType": "YulTypedName", + "src": "8822:5:10", + "type": "" + } + ], + "src": "8768:1073:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9911:217:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9921:31:10", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "9947:4:10" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9929:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "9929:23:10" + }, + "variableNames": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "9921:4:10" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9961:37:10", + "value": { + "arguments": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "9989:8:10" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "9973:15:10" + }, + "nodeType": "YulFunctionCall", + "src": "9973:25:10" + }, + "variableNames": [ + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "9961:8:10" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "10008:113:10", + "value": { + "arguments": [ + { + "name": "base", + "nodeType": "YulIdentifier", + "src": "10038:4:10" + }, + { + "name": "exponent", + "nodeType": "YulIdentifier", + "src": "10044:8:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10054:66:10", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "checked_exp_unsigned", + "nodeType": "YulIdentifier", + "src": "10017:20:10" + }, + "nodeType": "YulFunctionCall", + "src": "10017:104:10" + }, + "variableNames": [ + { + "name": "power", + "nodeType": "YulIdentifier", + "src": "10008:5:10" + } + ] + } + ] + }, + "name": "checked_exp_t_uint256_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base", + "nodeType": "YulTypedName", + "src": "9886:4:10", + "type": "" + }, + { + "name": "exponent", + "nodeType": "YulTypedName", + "src": "9892:8:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "power", + "nodeType": "YulTypedName", + "src": "9905:5:10", + "type": "" + } + ], + "src": "9847:281:10" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_uint256t_addresst_uint256t_uint256t_uint256t_uint256t_uint256t_uint256t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5, value6, value7, value8, value9, value10 {\n if slt(sub(dataEnd, headStart), 352) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 192\n\n value6 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 224\n\n value7 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 256\n\n value8 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 288\n\n value9 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 320\n\n value10 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b(memPtr) {\n\n mstore(add(memPtr, 0), \"StableCoin\")\n\n }\n\n function abi_encode_t_stringliteral_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 10)\n store_literal_in_memory_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b(pos)\n end := add(pos, 32)\n }\n\n function store_literal_in_memory_e0f6b2c259439cb874f16df9bd0da748265587d70fd9479b33dccc16a6b451e0(memPtr) {\n\n mstore(add(memPtr, 0), \"SC\")\n\n }\n\n function abi_encode_t_stringliteral_e0f6b2c259439cb874f16df9bd0da748265587d70fd9479b33dccc16a6b451e0_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 2)\n store_literal_in_memory_e0f6b2c259439cb874f16df9bd0da748265587d70fd9479b33dccc16a6b451e0(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b_t_stringliteral_e0f6b2c259439cb874f16df9bd0da748265587d70fd9479b33dccc16a6b451e0__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b_to_t_string_memory_ptr_fromStack( tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e0f6b2c259439cb874f16df9bd0da748265587d70fd9479b33dccc16a6b451e0_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3b2bd3daf9fdb5f07b692e1abe19b1c3b746e22bcc105483950b92e38c47fab2(memPtr) {\n\n mstore(add(memPtr, 0), \"ReserveCoin\")\n\n }\n\n function abi_encode_t_stringliteral_3b2bd3daf9fdb5f07b692e1abe19b1c3b746e22bcc105483950b92e38c47fab2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 11)\n store_literal_in_memory_3b2bd3daf9fdb5f07b692e1abe19b1c3b746e22bcc105483950b92e38c47fab2(pos)\n end := add(pos, 32)\n }\n\n function store_literal_in_memory_fa35b021d5bda1c04c04da86694705ee13ae0ffc031397c40508a79dd69b65cb(memPtr) {\n\n mstore(add(memPtr, 0), \"RC\")\n\n }\n\n function abi_encode_t_stringliteral_fa35b021d5bda1c04c04da86694705ee13ae0ffc031397c40508a79dd69b65cb_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 2)\n store_literal_in_memory_fa35b021d5bda1c04c04da86694705ee13ae0ffc031397c40508a79dd69b65cb(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3b2bd3daf9fdb5f07b692e1abe19b1c3b746e22bcc105483950b92e38c47fab2_t_stringliteral_fa35b021d5bda1c04c04da86694705ee13ae0ffc031397c40508a79dd69b65cb__to_t_string_memory_ptr_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 64)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3b2bd3daf9fdb5f07b692e1abe19b1c3b746e22bcc105483950b92e38c47fab2_to_t_string_memory_ptr_fromStack( tail)\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_fa35b021d5bda1c04c04da86694705ee13ae0ffc031397c40508a79dd69b65cb_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint8_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint8(value)\n }\n\n function abi_decode_tuple_t_uint8_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint8_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function shift_right_1_unsigned(value) -> newValue {\n newValue :=\n\n shr(1, value)\n\n }\n\n function checked_exp_helper(_power, _base, exponent, max) -> power, base {\n power := _power\n base := _base\n for { } gt(exponent, 1) {}\n {\n // overflow check for base * base\n if gt(base, div(max, base)) { panic_error_0x11() }\n if and(exponent, 1)\n {\n // No checks for power := mul(power, base) needed, because the check\n // for base * base above is sufficient, since:\n // |power| <= base (proof by induction) and thus:\n // |power * base| <= base * base <= max <= |min| (for signed)\n // (this is equally true for signed and unsigned exp)\n power := mul(power, base)\n }\n base := mul(base, base)\n exponent := shift_right_1_unsigned(exponent)\n }\n }\n\n function checked_exp_unsigned(base, exponent, max) -> power {\n // This function currently cannot be inlined because of the\n // \"leave\" statements. We have to improve the optimizer.\n\n // Note that 0**0 == 1\n if iszero(exponent) { power := 1 leave }\n if iszero(base) { power := 0 leave }\n\n // Specializations for small bases\n switch base\n // 0 is handled above\n case 1 { power := 1 leave }\n case 2\n {\n if gt(exponent, 255) { panic_error_0x11() }\n power := exp(2, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n if or(\n and(lt(base, 11), lt(exponent, 78)),\n and(lt(base, 307), lt(exponent, 32))\n )\n {\n power := exp(base, exponent)\n if gt(power, max) { panic_error_0x11() }\n leave\n }\n\n power, base := checked_exp_helper(1, base, exponent, max)\n\n if gt(power, div(max, base)) { panic_error_0x11() }\n power := mul(power, base)\n }\n\n function checked_exp_t_uint256_t_uint8(base, exponent) -> power {\n base := cleanup_t_uint256(base)\n exponent := cleanup_t_uint8(exponent)\n\n power := checked_exp_unsigned(base, exponent, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n\n }\n\n}\n", + "id": 10, + "language": "Yul", + "name": "#utility.yul" + } + ], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:26108:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:10", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:10" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:10" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:10" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:10", + "type": "" + } + ], + "src": "7:75:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:10" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:10" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:10" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:10" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:32:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:16:10", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "400:5:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:10", + "type": "" + } + ], + "src": "334:77:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "460:79:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "517:16:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "526:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "529:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "519:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "519:12:10" + }, + "nodeType": "YulExpressionStatement", + "src": "519:12:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "483:5:10" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "508:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "490:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "490:24:10" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "480:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "480:35:10" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "473:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "473:43:10" + }, + "nodeType": "YulIf", + "src": "470:63:10" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "453:5:10", + "type": "" + } + ], + "src": "417:122:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "597:87:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "607:29:10", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "629:6:10" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "616:12:10" + }, + "nodeType": "YulFunctionCall", + "src": "616:20:10" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "607:5:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "672:5:10" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "645:26:10" + }, + "nodeType": "YulFunctionCall", + "src": "645:33:10" + }, + "nodeType": "YulExpressionStatement", + "src": "645:33:10" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "575:6:10", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "583:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "591:5:10", + "type": "" + } + ], + "src": "545:139:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "735:81:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "745:65:10", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "760:5:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "767:42:10", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "756:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "756:54:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "745:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "717:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "727:7:10", + "type": "" + } + ], + "src": "690:126:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "867:51:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "877:35:10", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "906:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "888:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "888:24:10" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "877:7:10" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "849:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "859:7:10", + "type": "" + } + ], + "src": "822:96:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "967:79:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1024:16:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1033:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1036:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1026:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "1026:12:10" + }, + "nodeType": "YulExpressionStatement", + "src": "1026:12:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "990:5:10" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1015:5:10" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "997:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "997:24:10" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "987:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "987:35:10" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "980:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "980:43:10" + }, + "nodeType": "YulIf", + "src": "977:63:10" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "960:5:10", + "type": "" + } + ], + "src": "924:122:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1104:87:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1114:29:10", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1136:6:10" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1123:12:10" + }, + "nodeType": "YulFunctionCall", + "src": "1123:20:10" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1114:5:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1179:5:10" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "1152:26:10" + }, + "nodeType": "YulFunctionCall", + "src": "1152:33:10" + }, + "nodeType": "YulExpressionStatement", + "src": "1152:33:10" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1082:6:10", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1090:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1098:5:10", + "type": "" + } + ], + "src": "1052:139:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1314:648:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1361:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1363:77:10" + }, + "nodeType": "YulFunctionCall", + "src": "1363:79:10" + }, + "nodeType": "YulExpressionStatement", + "src": "1363:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1335:7:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1344:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1331:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "1331:23:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1356:3:10", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1327:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "1327:33:10" + }, + "nodeType": "YulIf", + "src": "1324:120:10" + }, + { + "nodeType": "YulBlock", + "src": "1454:117:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1469:15:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1483:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1473:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1498:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1533:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1544:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1529:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "1529:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1553:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1508:20:10" + }, + "nodeType": "YulFunctionCall", + "src": "1508:53:10" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1498:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1581:118:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1596:16:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1610:2:10", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1600:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1626:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1661:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1672:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1657:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "1657:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1681:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1636:20:10" + }, + "nodeType": "YulFunctionCall", + "src": "1636:53:10" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1626:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1709:118:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1724:16:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1738:2:10", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1728:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1754:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1789:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1800:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1785:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "1785:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1809:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "1764:20:10" + }, + "nodeType": "YulFunctionCall", + "src": "1764:53:10" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1754:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1837:118:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1852:16:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1866:2:10", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1856:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1882:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1917:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1928:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1913:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "1913:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1937:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1892:20:10" + }, + "nodeType": "YulFunctionCall", + "src": "1892:53:10" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "1882:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_addresst_uint256t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1260:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1271:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1283:6:10", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1291:6:10", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1299:6:10", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "1307:6:10", + "type": "" + } + ], + "src": "1197:765:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2033:53:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2050:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2073:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "2055:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "2055:24:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2043:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "2043:37:10" + }, + "nodeType": "YulExpressionStatement", + "src": "2043:37:10" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2021:5:10", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2028:3:10", + "type": "" + } + ], + "src": "1968:118:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2190:124:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2200:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2212:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2223:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2208:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "2208:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2200:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2280:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2293:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2304:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2289:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "2289:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "2236:43:10" + }, + "nodeType": "YulFunctionCall", + "src": "2236:71:10" + }, + "nodeType": "YulExpressionStatement", + "src": "2236:71:10" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2162:9:10", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2174:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2185:4:10", + "type": "" + } + ], + "src": "2092:222:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2454:777:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2501:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "2503:77:10" + }, + "nodeType": "YulFunctionCall", + "src": "2503:79:10" + }, + "nodeType": "YulExpressionStatement", + "src": "2503:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2475:7:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2484:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2471:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "2471:23:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2496:3:10", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2467:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "2467:33:10" + }, + "nodeType": "YulIf", + "src": "2464:120:10" + }, + { + "nodeType": "YulBlock", + "src": "2594:117:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2609:15:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2623:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2613:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2638:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2673:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2684:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2669:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "2669:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2693:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2648:20:10" + }, + "nodeType": "YulFunctionCall", + "src": "2648:53:10" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2638:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2721:118:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2736:16:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2750:2:10", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2740:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2766:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2801:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2812:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2797:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "2797:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2821:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "2776:20:10" + }, + "nodeType": "YulFunctionCall", + "src": "2776:53:10" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2766:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2849:118:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2864:16:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2878:2:10", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2868:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2894:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2929:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2940:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2925:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "2925:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2949:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2904:20:10" + }, + "nodeType": "YulFunctionCall", + "src": "2904:53:10" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "2894:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2977:118:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2992:16:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3006:2:10", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2996:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3022:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3057:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3068:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3053:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "3053:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3077:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3032:20:10" + }, + "nodeType": "YulFunctionCall", + "src": "3032:53:10" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "3022:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3105:119:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3120:17:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3134:3:10", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3124:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3151:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3186:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3197:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3182:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "3182:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3206:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3161:20:10" + }, + "nodeType": "YulFunctionCall", + "src": "3161:53:10" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "3151:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_addresst_uint256t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2392:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2403:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2415:6:10", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2423:6:10", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "2431:6:10", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "2439:6:10", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "2447:6:10", + "type": "" + } + ], + "src": "2320:911:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3337:519:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3383:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3385:77:10" + }, + "nodeType": "YulFunctionCall", + "src": "3385:79:10" + }, + "nodeType": "YulExpressionStatement", + "src": "3385:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3358:7:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3367:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3354:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "3354:23:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3379:2:10", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3350:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "3350:32:10" + }, + "nodeType": "YulIf", + "src": "3347:119:10" + }, + { + "nodeType": "YulBlock", + "src": "3476:117:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3491:15:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3505:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3495:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3520:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3555:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3566:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3551:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "3551:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3575:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3530:20:10" + }, + "nodeType": "YulFunctionCall", + "src": "3530:53:10" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3520:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3603:118:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3618:16:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3632:2:10", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3622:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3648:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3683:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3694:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3679:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "3679:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3703:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3658:20:10" + }, + "nodeType": "YulFunctionCall", + "src": "3658:53:10" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3648:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3731:118:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3746:16:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3760:2:10", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3750:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3776:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3811:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3822:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3807:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "3807:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3831:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3786:20:10" + }, + "nodeType": "YulFunctionCall", + "src": "3786:53:10" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3776:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3291:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3302:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3314:6:10", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3322:6:10", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3330:6:10", + "type": "" + } + ], + "src": "3237:619:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3927:53:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "3944:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3967:5:10" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "3949:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "3949:24:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "3937:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "3937:37:10" + }, + "nodeType": "YulExpressionStatement", + "src": "3937:37:10" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3915:5:10", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "3922:3:10", + "type": "" + } + ], + "src": "3862:118:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4084:124:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4094:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4106:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4117:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4102:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "4102:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "4094:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4174:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4187:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4198:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4183:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "4183:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "4130:43:10" + }, + "nodeType": "YulFunctionCall", + "src": "4130:71:10" + }, + "nodeType": "YulExpressionStatement", + "src": "4130:71:10" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4056:9:10", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4068:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4079:4:10", + "type": "" + } + ], + "src": "3986:222:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4246:28:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4256:12:10", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4263:5:10" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "4256:3:10" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4232:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "4242:3:10", + "type": "" + } + ], + "src": "4214:60:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4340:82:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4350:66:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4408:5:10" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "4390:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "4390:24:10" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "4381:8:10" + }, + "nodeType": "YulFunctionCall", + "src": "4381:34:10" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "4363:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "4363:53:10" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "4350:9:10" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4320:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "4330:9:10", + "type": "" + } + ], + "src": "4280:142:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4488:66:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4498:50:10", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4542:5:10" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_uint160", + "nodeType": "YulIdentifier", + "src": "4511:30:10" + }, + "nodeType": "YulFunctionCall", + "src": "4511:37:10" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "4498:9:10" + } + ] + } + ] + }, + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4468:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "4478:9:10", + "type": "" + } + ], + "src": "4428:126:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4636:66:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4646:50:10", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4690:5:10" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulIdentifier", + "src": "4659:30:10" + }, + "nodeType": "YulFunctionCall", + "src": "4659:37:10" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "4646:9:10" + } + ] + } + ] + }, + "name": "convert_t_contract$_IOracle_$1893_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4616:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "4626:9:10", + "type": "" + } + ], + "src": "4560:142:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4789:82:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4806:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4858:5:10" + } + ], + "functionName": { + "name": "convert_t_contract$_IOracle_$1893_to_t_address", + "nodeType": "YulIdentifier", + "src": "4811:46:10" + }, + "nodeType": "YulFunctionCall", + "src": "4811:53:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4799:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "4799:66:10" + }, + "nodeType": "YulExpressionStatement", + "src": "4799:66:10" + } + ] + }, + "name": "abi_encode_t_contract$_IOracle_$1893_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4777:5:10", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4784:3:10", + "type": "" + } + ], + "src": "4708:163:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4991:140:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5001:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5013:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5024:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5009:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "5009:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5001:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5097:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5110:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5121:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5106:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "5106:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_IOracle_$1893_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "5037:59:10" + }, + "nodeType": "YulFunctionCall", + "src": "5037:87:10" + }, + "nodeType": "YulExpressionStatement", + "src": "5037:87:10" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_IOracle_$1893__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4963:9:10", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4975:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4986:4:10", + "type": "" + } + ], + "src": "4877:254:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5209:66:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5219:50:10", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5263:5:10" + } + ], + "functionName": { + "name": "convert_t_uint160_to_t_address", + "nodeType": "YulIdentifier", + "src": "5232:30:10" + }, + "nodeType": "YulFunctionCall", + "src": "5232:37:10" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "5219:9:10" + } + ] + } + ] + }, + "name": "convert_t_contract$_Coin_$874_to_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5189:5:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "5199:9:10", + "type": "" + } + ], + "src": "5137:138:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5358:78:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5375:3:10" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5423:5:10" + } + ], + "functionName": { + "name": "convert_t_contract$_Coin_$874_to_t_address", + "nodeType": "YulIdentifier", + "src": "5380:42:10" + }, + "nodeType": "YulFunctionCall", + "src": "5380:49:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5368:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "5368:62:10" + }, + "nodeType": "YulExpressionStatement", + "src": "5368:62:10" + } + ] + }, + "name": "abi_encode_t_contract$_Coin_$874_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5346:5:10", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "5353:3:10", + "type": "" + } + ], + "src": "5281:155:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5552:136:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5562:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5574:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5585:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5570:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "5570:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5562:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5654:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5667:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5678:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5663:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "5663:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_contract$_Coin_$874_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "5598:55:10" + }, + "nodeType": "YulFunctionCall", + "src": "5598:83:10" + }, + "nodeType": "YulExpressionStatement", + "src": "5598:83:10" + } + ] + }, + "name": "abi_encode_tuple_t_contract$_Coin_$874__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5524:9:10", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5536:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5547:4:10", + "type": "" + } + ], + "src": "5442:246:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5760:263:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5806:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "5808:77:10" + }, + "nodeType": "YulFunctionCall", + "src": "5808:79:10" + }, + "nodeType": "YulExpressionStatement", + "src": "5808:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5781:7:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5790:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5777:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "5777:23:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5802:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5773:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "5773:32:10" + }, + "nodeType": "YulIf", + "src": "5770:119:10" + }, + { + "nodeType": "YulBlock", + "src": "5899:117:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5914:15:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5928:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5918:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5943:63:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5978:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5989:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5974:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "5974:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5998:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5953:20:10" + }, + "nodeType": "YulFunctionCall", + "src": "5953:53:10" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5943:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5730:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5741:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5753:6:10", + "type": "" + } + ], + "src": "5694:329:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6092:80:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6102:22:10", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6117:6:10" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "6111:5:10" + }, + "nodeType": "YulFunctionCall", + "src": "6111:13:10" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6102:5:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6160:5:10" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "6133:26:10" + }, + "nodeType": "YulFunctionCall", + "src": "6133:33:10" + }, + "nodeType": "YulExpressionStatement", + "src": "6133:33:10" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6070:6:10", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6078:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6086:5:10", + "type": "" + } + ], + "src": "6029:143:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6255:274:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6301:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "6303:77:10" + }, + "nodeType": "YulFunctionCall", + "src": "6303:79:10" + }, + "nodeType": "YulExpressionStatement", + "src": "6303:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6276:7:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6285:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6272:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "6272:23:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6297:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6268:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "6268:32:10" + }, + "nodeType": "YulIf", + "src": "6265:119:10" + }, + { + "nodeType": "YulBlock", + "src": "6394:128:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6409:15:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6423:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6413:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6438:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6484:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6495:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6480:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "6480:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6504:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "6448:31:10" + }, + "nodeType": "YulFunctionCall", + "src": "6448:64:10" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6438:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6225:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6236:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6248:6:10", + "type": "" + } + ], + "src": "6178:351:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6631:73:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6648:3:10" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "6653:6:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6641:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "6641:19:10" + }, + "nodeType": "YulExpressionStatement", + "src": "6641:19:10" + }, + { + "nodeType": "YulAssignment", + "src": "6669:29:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6688:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6693:4:10", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6684:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "6684:14:10" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "6669:11:10" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6603:3:10", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "6608:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "6619:11:10", + "type": "" + } + ], + "src": "6535:169:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6816:75:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "6838:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6846:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6834:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "6834:14:10" + }, + { + "hexValue": "73656c6c52433a20696e73756666696369656e742052432062616c616e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "6850:33:10", + "type": "", + "value": "sellRC: insufficient RC balance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6827:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "6827:57:10" + }, + "nodeType": "YulExpressionStatement", + "src": "6827:57:10" + } + ] + }, + "name": "store_literal_in_memory_480a439b416c315625264dff327c0dcf53464dddf7cdac850055a8d56198d05f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "6808:6:10", + "type": "" + } + ], + "src": "6710:181:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7043:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7053:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7119:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7124:2:10", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7060:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "7060:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7053:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7225:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_480a439b416c315625264dff327c0dcf53464dddf7cdac850055a8d56198d05f", + "nodeType": "YulIdentifier", + "src": "7136:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "7136:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "7136:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "7238:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7249:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7254:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7245:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "7245:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "7238:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_480a439b416c315625264dff327c0dcf53464dddf7cdac850055a8d56198d05f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7031:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7039:3:10", + "type": "" + } + ], + "src": "6897:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7440:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7450:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7462:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7473:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7458:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "7458:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7450:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7497:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7508:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7493:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "7493:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7516:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7522:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7512:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "7512:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7486:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "7486:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "7486:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "7542:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7676:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_480a439b416c315625264dff327c0dcf53464dddf7cdac850055a8d56198d05f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7550:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "7550:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7542:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_480a439b416c315625264dff327c0dcf53464dddf7cdac850055a8d56198d05f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7420:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7435:4:10", + "type": "" + } + ], + "src": "7269:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7722:152:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7739:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7742:77:10", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7732:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "7732:88:10" + }, + "nodeType": "YulExpressionStatement", + "src": "7732:88:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7836:1:10", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7839:4:10", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7829:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "7829:15:10" + }, + "nodeType": "YulExpressionStatement", + "src": "7829:15:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7860:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7863:4:10", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7853:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "7853:15:10" + }, + "nodeType": "YulExpressionStatement", + "src": "7853:15:10" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "7694:180:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7928:300:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7938:25:10", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7961:1:10" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7943:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "7943:20:10" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7938:1:10" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7972:25:10", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7995:1:10" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7977:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "7977:20:10" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7972:1:10" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8170:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "8172:16:10" + }, + "nodeType": "YulFunctionCall", + "src": "8172:18:10" + }, + "nodeType": "YulExpressionStatement", + "src": "8172:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8082:1:10" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8075:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "8075:9:10" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8068:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "8068:17:10" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8090:1:10" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8097:66:10", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8165:1:10" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "8093:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "8093:74:10" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8087:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "8087:81:10" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "8064:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "8064:105:10" + }, + "nodeType": "YulIf", + "src": "8061:131:10" + }, + { + "nodeType": "YulAssignment", + "src": "8202:20:10", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8217:1:10" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8220:1:10" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8213:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "8213:9:10" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "8202:7:10" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7911:1:10", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7914:1:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "7920:7:10", + "type": "" + } + ], + "src": "7880:348:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8262:152:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8279:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8282:77:10", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8272:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "8272:88:10" + }, + "nodeType": "YulExpressionStatement", + "src": "8272:88:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8376:1:10", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8379:4:10", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8369:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "8369:15:10" + }, + "nodeType": "YulExpressionStatement", + "src": "8369:15:10" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8400:1:10", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8403:4:10", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8393:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "8393:15:10" + }, + "nodeType": "YulExpressionStatement", + "src": "8393:15:10" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "8234:180:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8462:143:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8472:25:10", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8495:1:10" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8477:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "8477:20:10" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8472:1:10" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8506:25:10", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8529:1:10" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8511:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "8511:20:10" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8506:1:10" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8553:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "8555:16:10" + }, + "nodeType": "YulFunctionCall", + "src": "8555:18:10" + }, + "nodeType": "YulExpressionStatement", + "src": "8555:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8550:1:10" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "8543:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "8543:9:10" + }, + "nodeType": "YulIf", + "src": "8540:35:10" + }, + { + "nodeType": "YulAssignment", + "src": "8585:14:10", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8594:1:10" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8597:1:10" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "8590:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "8590:9:10" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "8585:1:10" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "8451:1:10", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "8454:1:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "8460:1:10", + "type": "" + } + ], + "src": "8420:185:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8717:69:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "8739:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8747:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8735:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "8735:14:10" + }, + { + "hexValue": "73656c6c52433a207478206c696d6974206578636565646564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "8751:27:10", + "type": "", + "value": "sellRC: tx limit exceeded" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8728:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "8728:51:10" + }, + "nodeType": "YulExpressionStatement", + "src": "8728:51:10" + } + ] + }, + "name": "store_literal_in_memory_650e296c96d77eb6d2a260dc6c5a2d6ccc3c5712f36621fabf17659b7cb52917", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "8709:6:10", + "type": "" + } + ], + "src": "8611:175:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8938:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8948:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9014:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9019:2:10", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8955:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "8955:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8948:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9120:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_650e296c96d77eb6d2a260dc6c5a2d6ccc3c5712f36621fabf17659b7cb52917", + "nodeType": "YulIdentifier", + "src": "9031:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "9031:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "9031:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "9133:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9144:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9149:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9140:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "9140:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9133:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_650e296c96d77eb6d2a260dc6c5a2d6ccc3c5712f36621fabf17659b7cb52917_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8926:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8934:3:10", + "type": "" + } + ], + "src": "8792:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9335:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9345:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9357:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9368:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9353:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "9353:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9345:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9392:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9403:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9388:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "9388:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9411:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9417:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9407:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "9407:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9381:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "9381:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "9381:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "9437:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9571:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_650e296c96d77eb6d2a260dc6c5a2d6ccc3c5712f36621fabf17659b7cb52917_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9445:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "9445:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9437:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_650e296c96d77eb6d2a260dc6c5a2d6ccc3c5712f36621fabf17659b7cb52917__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9315:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9330:4:10", + "type": "" + } + ], + "src": "9164:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9715:206:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9725:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9737:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9748:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9733:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "9733:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9725:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9805:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9818:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9829:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9814:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "9814:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "9761:43:10" + }, + "nodeType": "YulFunctionCall", + "src": "9761:71:10" + }, + "nodeType": "YulExpressionStatement", + "src": "9761:71:10" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9886:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9899:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9910:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9895:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "9895:18:10" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "9842:43:10" + }, + "nodeType": "YulFunctionCall", + "src": "9842:72:10" + }, + "nodeType": "YulExpressionStatement", + "src": "9842:72:10" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9679:9:10", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9691:6:10", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9699:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9710:4:10", + "type": "" + } + ], + "src": "9589:332:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10033:67:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "10055:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10063:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10051:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "10051:14:10" + }, + { + "hexValue": "73656c6c52433a20726174696f2062656c6f77206d696e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "10067:25:10", + "type": "", + "value": "sellRC: ratio below min" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10044:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "10044:49:10" + }, + "nodeType": "YulExpressionStatement", + "src": "10044:49:10" + } + ] + }, + "name": "store_literal_in_memory_442fc2faa600bf718cfc7ab8ebe9cc4805442b3c671d169652a1f1d61fa5835a", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "10025:6:10", + "type": "" + } + ], + "src": "9927:173:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10252:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10262:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10328:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10333:2:10", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10269:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "10269:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10262:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10434:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_442fc2faa600bf718cfc7ab8ebe9cc4805442b3c671d169652a1f1d61fa5835a", + "nodeType": "YulIdentifier", + "src": "10345:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "10345:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "10345:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "10447:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "10458:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10463:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10454:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "10454:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "10447:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_442fc2faa600bf718cfc7ab8ebe9cc4805442b3c671d169652a1f1d61fa5835a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "10240:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "10248:3:10", + "type": "" + } + ], + "src": "10106:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10649:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10659:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10671:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10682:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10667:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "10667:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10659:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10706:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10717:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10702:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "10702:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10725:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10731:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10721:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "10721:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10695:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "10695:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "10695:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "10751:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10885:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_442fc2faa600bf718cfc7ab8ebe9cc4805442b3c671d169652a1f1d61fa5835a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10759:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "10759:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10751:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_442fc2faa600bf718cfc7ab8ebe9cc4805442b3c671d169652a1f1d61fa5835a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10629:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10644:4:10", + "type": "" + } + ], + "src": "10478:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11029:206:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11039:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11051:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11062:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11047:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "11047:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11039:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11119:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11132:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11143:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11128:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "11128:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "11075:43:10" + }, + "nodeType": "YulFunctionCall", + "src": "11075:71:10" + }, + "nodeType": "YulExpressionStatement", + "src": "11075:71:10" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "11200:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11213:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11224:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11209:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "11209:18:10" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "11156:43:10" + }, + "nodeType": "YulFunctionCall", + "src": "11156:72:10" + }, + "nodeType": "YulExpressionStatement", + "src": "11156:72:10" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10993:9:10", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "11005:6:10", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11013:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11024:4:10", + "type": "" + } + ], + "src": "10903:332:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11347:114:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11369:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11377:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11365:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "11365:14:10" + }, + { + "hexValue": "73656c6c426f74683a20696e73756666696369656e742053432062616c616e63", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11381:34:10", + "type": "", + "value": "sellBoth: insufficient SC balanc" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11358:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "11358:58:10" + }, + "nodeType": "YulExpressionStatement", + "src": "11358:58:10" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11437:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11445:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11433:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "11433:15:10" + }, + { + "hexValue": "65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11450:3:10", + "type": "", + "value": "e" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11426:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "11426:28:10" + }, + "nodeType": "YulExpressionStatement", + "src": "11426:28:10" + } + ] + }, + "name": "store_literal_in_memory_65ae2b5d5587635dfbfe58e6c9f56eccdc0c0c72222a11e2f5452e6445923da3", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "11339:6:10", + "type": "" + } + ], + "src": "11241:220:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11613:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11623:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11689:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11694:2:10", + "type": "", + "value": "33" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11630:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "11630:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11623:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11795:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_65ae2b5d5587635dfbfe58e6c9f56eccdc0c0c72222a11e2f5452e6445923da3", + "nodeType": "YulIdentifier", + "src": "11706:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "11706:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "11706:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "11808:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11819:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11824:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11815:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "11815:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11808:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_65ae2b5d5587635dfbfe58e6c9f56eccdc0c0c72222a11e2f5452e6445923da3_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11601:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11609:3:10", + "type": "" + } + ], + "src": "11467:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12010:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12020:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12032:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12043:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12028:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "12028:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12020:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12067:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12078:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12063:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "12063:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12086:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12092:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12082:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "12082:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12056:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "12056:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "12056:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "12112:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12246:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_65ae2b5d5587635dfbfe58e6c9f56eccdc0c0c72222a11e2f5452e6445923da3_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12120:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "12120:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12112:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_65ae2b5d5587635dfbfe58e6c9f56eccdc0c0c72222a11e2f5452e6445923da3__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11990:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12005:4:10", + "type": "" + } + ], + "src": "11839:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12370:114:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12392:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12400:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12388:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "12388:14:10" + }, + { + "hexValue": "73656c6c426f74683a20696e73756666696369656e742052432062616c616e63", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12404:34:10", + "type": "", + "value": "sellBoth: insufficient RC balanc" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12381:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "12381:58:10" + }, + "nodeType": "YulExpressionStatement", + "src": "12381:58:10" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12460:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12468:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12456:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "12456:15:10" + }, + { + "hexValue": "65", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12473:3:10", + "type": "", + "value": "e" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12449:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "12449:28:10" + }, + "nodeType": "YulExpressionStatement", + "src": "12449:28:10" + } + ] + }, + "name": "store_literal_in_memory_2ed3a35225dd7cde3fa56660d85e558f8e41560e2316ba4e502c27911e8f237f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "12362:6:10", + "type": "" + } + ], + "src": "12264:220:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12636:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12646:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12712:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12717:2:10", + "type": "", + "value": "33" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12653:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "12653:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12646:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12818:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_2ed3a35225dd7cde3fa56660d85e558f8e41560e2316ba4e502c27911e8f237f", + "nodeType": "YulIdentifier", + "src": "12729:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "12729:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "12729:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "12831:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "12842:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12847:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12838:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "12838:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "12831:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_2ed3a35225dd7cde3fa56660d85e558f8e41560e2316ba4e502c27911e8f237f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "12624:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "12632:3:10", + "type": "" + } + ], + "src": "12490:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13033:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13043:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13055:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13066:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13051:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "13051:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13043:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13090:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13101:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13086:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "13086:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13109:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13115:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13105:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "13105:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13079:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "13079:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "13079:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "13135:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13269:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_2ed3a35225dd7cde3fa56660d85e558f8e41560e2316ba4e502c27911e8f237f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13143:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "13143:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13135:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_2ed3a35225dd7cde3fa56660d85e558f8e41560e2316ba4e502c27911e8f237f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13013:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13028:4:10", + "type": "" + } + ], + "src": "12862:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13331:261:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13341:25:10", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13364:1:10" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13346:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "13346:20:10" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13341:1:10" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13375:25:10", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13398:1:10" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13380:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "13380:20:10" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13375:1:10" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13538:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "13540:16:10" + }, + "nodeType": "YulFunctionCall", + "src": "13540:18:10" + }, + "nodeType": "YulExpressionStatement", + "src": "13540:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13459:1:10" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13466:66:10", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13534:1:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13462:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "13462:74:10" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13456:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "13456:81:10" + }, + "nodeType": "YulIf", + "src": "13453:107:10" + }, + { + "nodeType": "YulAssignment", + "src": "13570:16:10", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13581:1:10" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13584:1:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13577:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "13577:9:10" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "13570:3:10" + } + ] + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "13318:1:10", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "13321:1:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "13327:3:10", + "type": "" + } + ], + "src": "13287:305:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13704:71:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "13726:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13734:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13722:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "13722:14:10" + }, + { + "hexValue": "73656c6c426f74683a207478206c696d6974206578636565646564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "13738:29:10", + "type": "", + "value": "sellBoth: tx limit exceeded" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13715:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "13715:53:10" + }, + "nodeType": "YulExpressionStatement", + "src": "13715:53:10" + } + ] + }, + "name": "store_literal_in_memory_65e236559dafdf1df6535e51309ead46fb081456a76a26150992bb03b61ee0e8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "13696:6:10", + "type": "" + } + ], + "src": "13598:177:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13927:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13937:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14003:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14008:2:10", + "type": "", + "value": "27" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13944:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "13944:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13937:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14109:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_65e236559dafdf1df6535e51309ead46fb081456a76a26150992bb03b61ee0e8", + "nodeType": "YulIdentifier", + "src": "14020:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "14020:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "14020:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "14122:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14133:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14138:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14129:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "14129:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "14122:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_65e236559dafdf1df6535e51309ead46fb081456a76a26150992bb03b61ee0e8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13915:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13923:3:10", + "type": "" + } + ], + "src": "13781:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14324:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14334:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14346:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14357:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14342:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "14342:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14334:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14381:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14392:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14377:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "14377:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14400:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14406:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "14396:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "14396:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14370:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "14370:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "14370:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "14426:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14560:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_65e236559dafdf1df6535e51309ead46fb081456a76a26150992bb03b61ee0e8_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14434:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "14434:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14426:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_65e236559dafdf1df6535e51309ead46fb081456a76a26150992bb03b61ee0e8__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14304:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14319:4:10", + "type": "" + } + ], + "src": "14153:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14684:114:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "14706:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14714:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14702:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "14702:14:10" + }, + { + "hexValue": "73656c6c426f74683a207265736572766520726174696f206465637265617365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "14718:34:10", + "type": "", + "value": "sellBoth: reserve ratio decrease" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14695:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "14695:58:10" + }, + "nodeType": "YulExpressionStatement", + "src": "14695:58:10" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "14774:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14782:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14770:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "14770:15:10" + }, + { + "hexValue": "64", + "kind": "string", + "nodeType": "YulLiteral", + "src": "14787:3:10", + "type": "", + "value": "d" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14763:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "14763:28:10" + }, + "nodeType": "YulExpressionStatement", + "src": "14763:28:10" + } + ] + }, + "name": "store_literal_in_memory_af2736abf7a0b33abcef0d278ba48f95fa8420131d719abbb8df4f380ab40636", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "14676:6:10", + "type": "" + } + ], + "src": "14578:220:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14950:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14960:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15026:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15031:2:10", + "type": "", + "value": "33" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14967:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "14967:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14960:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15132:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_af2736abf7a0b33abcef0d278ba48f95fa8420131d719abbb8df4f380ab40636", + "nodeType": "YulIdentifier", + "src": "15043:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "15043:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "15043:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "15145:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15156:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15161:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15152:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "15152:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15145:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_af2736abf7a0b33abcef0d278ba48f95fa8420131d719abbb8df4f380ab40636_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "14938:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14946:3:10", + "type": "" + } + ], + "src": "14804:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15347:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15357:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15369:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15380:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15365:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "15365:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15357:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15404:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15415:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15400:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "15400:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15423:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15429:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15419:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "15419:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15393:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "15393:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "15393:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "15449:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15583:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_af2736abf7a0b33abcef0d278ba48f95fa8420131d719abbb8df4f380ab40636_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15457:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "15457:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15449:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_af2736abf7a0b33abcef0d278ba48f95fa8420131d719abbb8df4f380ab40636__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15327:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15342:4:10", + "type": "" + } + ], + "src": "15176:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15755:288:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15765:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15777:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15788:2:10", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15773:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "15773:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15765:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "15845:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15858:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15869:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15854:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "15854:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "15801:43:10" + }, + "nodeType": "YulFunctionCall", + "src": "15801:71:10" + }, + "nodeType": "YulExpressionStatement", + "src": "15801:71:10" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "15926:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15939:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15950:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15935:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "15935:18:10" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "15882:43:10" + }, + "nodeType": "YulFunctionCall", + "src": "15882:72:10" + }, + "nodeType": "YulExpressionStatement", + "src": "15882:72:10" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "16008:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16021:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16032:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16017:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "16017:18:10" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "15964:43:10" + }, + "nodeType": "YulFunctionCall", + "src": "15964:72:10" + }, + "nodeType": "YulExpressionStatement", + "src": "15964:72:10" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15711:9:10", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "15723:6:10", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "15731:6:10", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "15739:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15750:4:10", + "type": "" + } + ], + "src": "15601:442:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16155:68:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16177:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16185:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16173:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "16173:14:10" + }, + { + "hexValue": "62757953433a207478206c696d6974206578636565646564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16189:26:10", + "type": "", + "value": "buySC: tx limit exceeded" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16166:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "16166:50:10" + }, + "nodeType": "YulExpressionStatement", + "src": "16166:50:10" + } + ] + }, + "name": "store_literal_in_memory_4fe7186996b24ad0f1d2b61108a9136072bea31b2931fd61ae6eb002de0deba7", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "16147:6:10", + "type": "" + } + ], + "src": "16049:174:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16375:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16385:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16451:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16456:2:10", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16392:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "16392:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16385:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16557:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_4fe7186996b24ad0f1d2b61108a9136072bea31b2931fd61ae6eb002de0deba7", + "nodeType": "YulIdentifier", + "src": "16468:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "16468:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "16468:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "16570:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16581:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16586:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16577:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "16577:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16570:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_4fe7186996b24ad0f1d2b61108a9136072bea31b2931fd61ae6eb002de0deba7_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16363:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16371:3:10", + "type": "" + } + ], + "src": "16229:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16772:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16782:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16794:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16805:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16790:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "16790:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16782:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16829:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16840:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16825:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "16825:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16848:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16854:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "16844:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "16844:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16818:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "16818:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "16818:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "16874:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17008:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_4fe7186996b24ad0f1d2b61108a9136072bea31b2931fd61ae6eb002de0deba7_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16882:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "16882:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16874:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_4fe7186996b24ad0f1d2b61108a9136072bea31b2931fd61ae6eb002de0deba7__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16752:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16767:4:10", + "type": "" + } + ], + "src": "16601:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17132:66:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "17154:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17162:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17150:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "17150:14:10" + }, + { + "hexValue": "62757953433a20726174696f2062656c6f77206d696e", + "kind": "string", + "nodeType": "YulLiteral", + "src": "17166:24:10", + "type": "", + "value": "buySC: ratio below min" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17143:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "17143:48:10" + }, + "nodeType": "YulExpressionStatement", + "src": "17143:48:10" + } + ] + }, + "name": "store_literal_in_memory_5415c6bc063fa3b296f2de5be5a1f52fd9b2ff5166d5b099afbff0644d530c89", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "17124:6:10", + "type": "" + } + ], + "src": "17026:172:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17350:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17360:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17426:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17431:2:10", + "type": "", + "value": "22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17367:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "17367:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17360:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17532:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_5415c6bc063fa3b296f2de5be5a1f52fd9b2ff5166d5b099afbff0644d530c89", + "nodeType": "YulIdentifier", + "src": "17443:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "17443:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "17443:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "17545:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17556:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17561:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17552:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "17552:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17545:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_5415c6bc063fa3b296f2de5be5a1f52fd9b2ff5166d5b099afbff0644d530c89_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17338:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17346:3:10", + "type": "" + } + ], + "src": "17204:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17747:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17757:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17769:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17780:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17765:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "17765:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17757:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17804:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17815:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17800:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "17800:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17823:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17829:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17819:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "17819:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17793:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "17793:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "17793:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "17849:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17983:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_5415c6bc063fa3b296f2de5be5a1f52fd9b2ff5166d5b099afbff0644d530c89_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17857:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "17857:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17849:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_5415c6bc063fa3b296f2de5be5a1f52fd9b2ff5166d5b099afbff0644d530c89__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17727:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17742:4:10", + "type": "" + } + ], + "src": "17576:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18107:75:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "18129:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18137:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18125:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "18125:14:10" + }, + { + "hexValue": "73656c6c53433a20696e73756666696369656e742053432062616c616e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "18141:33:10", + "type": "", + "value": "sellSC: insufficient SC balance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18118:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "18118:57:10" + }, + "nodeType": "YulExpressionStatement", + "src": "18118:57:10" + } + ] + }, + "name": "store_literal_in_memory_5b6f4d8f617b05fd93759c7a981804105fd74f25f9e3f5b6dcb333ccf6ec904d", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "18099:6:10", + "type": "" + } + ], + "src": "18001:181:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18334:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18344:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18410:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18415:2:10", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18351:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "18351:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18344:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18516:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_5b6f4d8f617b05fd93759c7a981804105fd74f25f9e3f5b6dcb333ccf6ec904d", + "nodeType": "YulIdentifier", + "src": "18427:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "18427:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "18427:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "18529:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "18540:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18545:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18536:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "18536:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "18529:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_5b6f4d8f617b05fd93759c7a981804105fd74f25f9e3f5b6dcb333ccf6ec904d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "18322:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "18330:3:10", + "type": "" + } + ], + "src": "18188:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "18731:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18741:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18753:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18764:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18749:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "18749:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18741:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18788:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "18799:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "18784:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "18784:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18807:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "18813:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "18803:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "18803:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "18777:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "18777:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "18777:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "18833:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18967:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_5b6f4d8f617b05fd93759c7a981804105fd74f25f9e3f5b6dcb333ccf6ec904d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "18841:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "18841:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "18833:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_5b6f4d8f617b05fd93759c7a981804105fd74f25f9e3f5b6dcb333ccf6ec904d__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "18711:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "18726:4:10", + "type": "" + } + ], + "src": "18560:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19091:69:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "19113:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19121:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19109:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "19109:14:10" + }, + { + "hexValue": "73656c6c53433a207478206c696d6974206578636565646564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "19125:27:10", + "type": "", + "value": "sellSC: tx limit exceeded" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19102:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "19102:51:10" + }, + "nodeType": "YulExpressionStatement", + "src": "19102:51:10" + } + ] + }, + "name": "store_literal_in_memory_3aa1e11dd316ada80379525aecda6d9741e5108130bce291f9fe3e927e399fc0", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "19083:6:10", + "type": "" + } + ], + "src": "18985:175:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19312:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19322:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19388:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19393:2:10", + "type": "", + "value": "25" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19329:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "19329:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19322:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19494:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_3aa1e11dd316ada80379525aecda6d9741e5108130bce291f9fe3e927e399fc0", + "nodeType": "YulIdentifier", + "src": "19405:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "19405:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "19405:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "19507:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "19518:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19523:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19514:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "19514:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "19507:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_3aa1e11dd316ada80379525aecda6d9741e5108130bce291f9fe3e927e399fc0_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "19300:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "19308:3:10", + "type": "" + } + ], + "src": "19166:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "19709:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "19719:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19731:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19742:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19727:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "19727:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19719:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19766:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "19777:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "19762:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "19762:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19785:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "19791:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "19781:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "19781:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "19755:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "19755:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "19755:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "19811:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19945:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_3aa1e11dd316ada80379525aecda6d9741e5108130bce291f9fe3e927e399fc0_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "19819:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "19819:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "19811:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_3aa1e11dd316ada80379525aecda6d9741e5108130bce291f9fe3e927e399fc0__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "19689:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "19704:4:10", + "type": "" + } + ], + "src": "19538:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20069:68:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "20091:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20099:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20087:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "20087:14:10" + }, + { + "hexValue": "62757952433a207478206c696d6974206578636565646564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "20103:26:10", + "type": "", + "value": "buyRC: tx limit exceeded" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20080:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "20080:50:10" + }, + "nodeType": "YulExpressionStatement", + "src": "20080:50:10" + } + ] + }, + "name": "store_literal_in_memory_bd03837a08f168a40724e2eb339a12b246bb84006664616f15f28d79be2cb622", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "20061:6:10", + "type": "" + } + ], + "src": "19963:174:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20289:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20299:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20365:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20370:2:10", + "type": "", + "value": "24" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20306:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "20306:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20299:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20471:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_bd03837a08f168a40724e2eb339a12b246bb84006664616f15f28d79be2cb622", + "nodeType": "YulIdentifier", + "src": "20382:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "20382:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "20382:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "20484:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "20495:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20500:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20491:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "20491:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "20484:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_bd03837a08f168a40724e2eb339a12b246bb84006664616f15f28d79be2cb622_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "20277:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "20285:3:10", + "type": "" + } + ], + "src": "20143:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "20686:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "20696:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20708:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20719:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20704:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "20704:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20696:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20743:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "20754:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "20739:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "20739:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20762:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "20768:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "20758:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "20758:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "20732:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "20732:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "20732:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "20788:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20922:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_bd03837a08f168a40724e2eb339a12b246bb84006664616f15f28d79be2cb622_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "20796:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "20796:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "20788:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_bd03837a08f168a40724e2eb339a12b246bb84006664616f15f28d79be2cb622__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "20666:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "20681:4:10", + "type": "" + } + ], + "src": "20515:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21046:66:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "21068:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21076:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21064:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "21064:14:10" + }, + { + "hexValue": "62757952433a20726174696f2061626f7665206d6178", + "kind": "string", + "nodeType": "YulLiteral", + "src": "21080:24:10", + "type": "", + "value": "buyRC: ratio above max" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21057:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "21057:48:10" + }, + "nodeType": "YulExpressionStatement", + "src": "21057:48:10" + } + ] + }, + "name": "store_literal_in_memory_b1c77569b873f66c95d060f6baa63268a591746d18822833dbbfd2df6c4a7f24", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "21038:6:10", + "type": "" + } + ], + "src": "20940:172:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21264:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21274:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21340:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21345:2:10", + "type": "", + "value": "22" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21281:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "21281:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21274:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21446:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_b1c77569b873f66c95d060f6baa63268a591746d18822833dbbfd2df6c4a7f24", + "nodeType": "YulIdentifier", + "src": "21357:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "21357:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "21357:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "21459:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "21470:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21475:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21466:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "21466:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "21459:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_b1c77569b873f66c95d060f6baa63268a591746d18822833dbbfd2df6c4a7f24_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "21252:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "21260:3:10", + "type": "" + } + ], + "src": "21118:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21661:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21671:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21683:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21694:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21679:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "21679:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21671:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21718:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "21729:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "21714:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "21714:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21737:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "21743:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "21733:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "21733:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "21707:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "21707:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "21707:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "21763:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21897:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_b1c77569b873f66c95d060f6baa63268a591746d18822833dbbfd2df6c4a7f24_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "21771:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "21771:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "21763:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_b1c77569b873f66c95d060f6baa63268a591746d18822833dbbfd2df6c4a7f24__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "21641:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "21656:4:10", + "type": "" + } + ], + "src": "21490:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "21960:146:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "21970:25:10", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21993:1:10" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "21975:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "21975:20:10" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "21970:1:10" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "22004:25:10", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "22027:1:10" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "22009:17:10" + }, + "nodeType": "YulFunctionCall", + "src": "22009:20:10" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "22004:1:10" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22051:22:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "22053:16:10" + }, + "nodeType": "YulFunctionCall", + "src": "22053:18:10" + }, + "nodeType": "YulExpressionStatement", + "src": "22053:18:10" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "22045:1:10" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "22048:1:10" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "22042:2:10" + }, + "nodeType": "YulFunctionCall", + "src": "22042:8:10" + }, + "nodeType": "YulIf", + "src": "22039:34:10" + }, + { + "nodeType": "YulAssignment", + "src": "22083:17:10", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "22095:1:10" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "22098:1:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22091:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "22091:9:10" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "22083:4:10" + } + ] + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "21946:1:10", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "21949:1:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "21955:4:10", + "type": "" + } + ], + "src": "21915:191:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22223:552:10", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "22269:83:10", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "22271:77:10" + }, + "nodeType": "YulFunctionCall", + "src": "22271:79:10" + }, + "nodeType": "YulExpressionStatement", + "src": "22271:79:10" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "22244:7:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22253:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "22240:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "22240:23:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22265:2:10", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "22236:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "22236:32:10" + }, + "nodeType": "YulIf", + "src": "22233:119:10" + }, + { + "nodeType": "YulBlock", + "src": "22362:128:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "22377:15:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22391:1:10", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "22381:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "22406:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22452:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "22463:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22448:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "22448:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "22472:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "22416:31:10" + }, + "nodeType": "YulFunctionCall", + "src": "22416:64:10" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "22406:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "22500:129:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "22515:16:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22529:2:10", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "22519:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "22545:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22591:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "22602:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22587:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "22587:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "22611:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "22555:31:10" + }, + "nodeType": "YulFunctionCall", + "src": "22555:64:10" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "22545:6:10" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "22639:129:10", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "22654:16:10", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22668:2:10", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "22658:6:10", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "22684:74:10", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "22730:9:10" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "22741:6:10" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22726:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "22726:22:10" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "22750:7:10" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "22694:31:10" + }, + "nodeType": "YulFunctionCall", + "src": "22694:64:10" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "22684:6:10" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "22177:9:10", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "22188:7:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "22200:6:10", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "22208:6:10", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "22216:6:10", + "type": "" + } + ], + "src": "22112:663:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "22887:74:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "22909:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "22917:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "22905:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "22905:14:10" + }, + { + "hexValue": "696e73756666696369656e7420617661696c61626c652066756e64696e67", + "kind": "string", + "nodeType": "YulLiteral", + "src": "22921:32:10", + "type": "", + "value": "insufficient available funding" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "22898:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "22898:56:10" + }, + "nodeType": "YulExpressionStatement", + "src": "22898:56:10" + } + ] + }, + "name": "store_literal_in_memory_30f899d583fb94c14eecc0dc8804379d9d6df731fd55fe99219f2313acdbd90e", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "22879:6:10", + "type": "" + } + ], + "src": "22781:180:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23113:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23123:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23189:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23194:2:10", + "type": "", + "value": "30" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23130:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "23130:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23123:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23295:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_30f899d583fb94c14eecc0dc8804379d9d6df731fd55fe99219f2313acdbd90e", + "nodeType": "YulIdentifier", + "src": "23206:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "23206:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "23206:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "23308:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "23319:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23324:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23315:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "23315:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "23308:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_30f899d583fb94c14eecc0dc8804379d9d6df731fd55fe99219f2313acdbd90e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "23101:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "23109:3:10", + "type": "" + } + ], + "src": "22967:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23510:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "23520:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23532:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23543:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23528:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "23528:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23520:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23567:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23578:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23563:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "23563:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23586:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "23592:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "23582:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "23582:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23556:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "23556:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "23556:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "23612:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23746:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_30f899d583fb94c14eecc0dc8804379d9d6df731fd55fe99219f2313acdbd90e_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "23620:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "23620:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "23612:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_30f899d583fb94c14eecc0dc8804379d9d6df731fd55fe99219f2313acdbd90e__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "23490:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "23505:4:10", + "type": "" + } + ], + "src": "23339:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "23870:115:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "23892:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23900:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23888:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "23888:14:10" + }, + { + "hexValue": "6f7261636c652063726564697420776f756c6420657863656564206d6178696d", + "kind": "string", + "nodeType": "YulLiteral", + "src": "23904:34:10", + "type": "", + "value": "oracle credit would exceed maxim" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23881:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "23881:58:10" + }, + "nodeType": "YulExpressionStatement", + "src": "23881:58:10" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "23960:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "23968:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "23956:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "23956:15:10" + }, + { + "hexValue": "756d", + "kind": "string", + "nodeType": "YulLiteral", + "src": "23973:4:10", + "type": "", + "value": "um" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "23949:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "23949:29:10" + }, + "nodeType": "YulExpressionStatement", + "src": "23949:29:10" + } + ] + }, + "name": "store_literal_in_memory_aa696f5e89db0928235bfeb6c2ee17e5b3b7d674ba83b2fda82f2cbd8a1e210d", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "23862:6:10", + "type": "" + } + ], + "src": "23764:221:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24137:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24147:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24213:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24218:2:10", + "type": "", + "value": "34" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24154:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "24154:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24147:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24319:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_aa696f5e89db0928235bfeb6c2ee17e5b3b7d674ba83b2fda82f2cbd8a1e210d", + "nodeType": "YulIdentifier", + "src": "24230:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "24230:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "24230:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "24332:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "24343:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24348:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24339:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "24339:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "24332:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_aa696f5e89db0928235bfeb6c2ee17e5b3b7d674ba83b2fda82f2cbd8a1e210d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "24125:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "24133:3:10", + "type": "" + } + ], + "src": "23991:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24534:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "24544:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24556:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24567:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24552:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "24552:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24544:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24591:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24602:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24587:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "24587:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24610:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "24616:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "24606:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "24606:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24580:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "24580:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "24580:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "24636:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24770:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_aa696f5e89db0928235bfeb6c2ee17e5b3b7d674ba83b2fda82f2cbd8a1e210d_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "24644:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "24644:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "24636:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_aa696f5e89db0928235bfeb6c2ee17e5b3b7d674ba83b2fda82f2cbd8a1e210d__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "24514:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "24529:4:10", + "type": "" + } + ], + "src": "24363:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "24894:76:10", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "24916:6:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "24924:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "24912:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "24912:14:10" + }, + { + "hexValue": "76616c75652067726561746572207468616e203125206f662072657365727665", + "kind": "string", + "nodeType": "YulLiteral", + "src": "24928:34:10", + "type": "", + "value": "value greater than 1% of reserve" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "24905:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "24905:58:10" + }, + "nodeType": "YulExpressionStatement", + "src": "24905:58:10" + } + ] + }, + "name": "store_literal_in_memory_9ead0559f94d0a469b1f2e0b443cd0e822a9821db73c019374f846900628c7a2", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "24886:6:10", + "type": "" + } + ], + "src": "24788:182:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25122:220:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25132:74:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25198:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25203:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25139:58:10" + }, + "nodeType": "YulFunctionCall", + "src": "25139:67:10" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25132:3:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25304:3:10" + } + ], + "functionName": { + "name": "store_literal_in_memory_9ead0559f94d0a469b1f2e0b443cd0e822a9821db73c019374f846900628c7a2", + "nodeType": "YulIdentifier", + "src": "25215:88:10" + }, + "nodeType": "YulFunctionCall", + "src": "25215:93:10" + }, + "nodeType": "YulExpressionStatement", + "src": "25215:93:10" + }, + { + "nodeType": "YulAssignment", + "src": "25317:19:10", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "25328:3:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25333:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25324:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "25324:12:10" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "25317:3:10" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_9ead0559f94d0a469b1f2e0b443cd0e822a9821db73c019374f846900628c7a2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "25110:3:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "25118:3:10", + "type": "" + } + ], + "src": "24976:366:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25519:248:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25529:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25541:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25552:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25537:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "25537:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25529:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25576:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25587:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25572:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "25572:17:10" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25595:4:10" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25601:9:10" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "25591:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "25591:20:10" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "25565:6:10" + }, + "nodeType": "YulFunctionCall", + "src": "25565:47:10" + }, + "nodeType": "YulExpressionStatement", + "src": "25565:47:10" + }, + { + "nodeType": "YulAssignment", + "src": "25621:139:10", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25755:4:10" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_9ead0559f94d0a469b1f2e0b443cd0e822a9821db73c019374f846900628c7a2_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "25629:124:10" + }, + "nodeType": "YulFunctionCall", + "src": "25629:131:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25621:4:10" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_9ead0559f94d0a469b1f2e0b443cd0e822a9821db73c019374f846900628c7a2__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "25499:9:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "25514:4:10", + "type": "" + } + ], + "src": "25348:419:10" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "25899:206:10", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "25909:26:10", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "25921:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25932:2:10", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25917:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "25917:18:10" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "25909:4:10" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "25989:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26002:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26013:1:10", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25998:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "25998:17:10" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "25945:43:10" + }, + "nodeType": "YulFunctionCall", + "src": "25945:71:10" + }, + "nodeType": "YulExpressionStatement", + "src": "25945:71:10" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "26070:6:10" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "26083:9:10" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "26094:2:10", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "26079:3:10" + }, + "nodeType": "YulFunctionCall", + "src": "26079:18:10" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "26026:43:10" + }, + "nodeType": "YulFunctionCall", + "src": "26026:72:10" + }, + "nodeType": "YulExpressionStatement", + "src": "26026:72:10" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "25863:9:10", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "25875:6:10", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "25883:6:10", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "25894:4:10", + "type": "" + } + ], + "src": "25773:332:10" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_uint256t_addresst_uint256t_address(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_addresst_uint256t_address(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256t_address(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint160_to_t_uint160(value) -> converted {\n converted := cleanup_t_uint160(identity(cleanup_t_uint160(value)))\n }\n\n function convert_t_uint160_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_uint160(value)\n }\n\n function convert_t_contract$_IOracle_$1893_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_IOracle_$1893_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_IOracle_$1893_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_IOracle_$1893__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_IOracle_$1893_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function convert_t_contract$_Coin_$874_to_t_address(value) -> converted {\n converted := convert_t_uint160_to_t_address(value)\n }\n\n function abi_encode_t_contract$_Coin_$874_to_t_address_fromStack(value, pos) {\n mstore(pos, convert_t_contract$_Coin_$874_to_t_address(value))\n }\n\n function abi_encode_tuple_t_contract$_Coin_$874__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_contract$_Coin_$874_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function store_literal_in_memory_480a439b416c315625264dff327c0dcf53464dddf7cdac850055a8d56198d05f(memPtr) {\n\n mstore(add(memPtr, 0), \"sellRC: insufficient RC balance\")\n\n }\n\n function abi_encode_t_stringliteral_480a439b416c315625264dff327c0dcf53464dddf7cdac850055a8d56198d05f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_480a439b416c315625264dff327c0dcf53464dddf7cdac850055a8d56198d05f(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_480a439b416c315625264dff327c0dcf53464dddf7cdac850055a8d56198d05f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_480a439b416c315625264dff327c0dcf53464dddf7cdac850055a8d56198d05f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_650e296c96d77eb6d2a260dc6c5a2d6ccc3c5712f36621fabf17659b7cb52917(memPtr) {\n\n mstore(add(memPtr, 0), \"sellRC: tx limit exceeded\")\n\n }\n\n function abi_encode_t_stringliteral_650e296c96d77eb6d2a260dc6c5a2d6ccc3c5712f36621fabf17659b7cb52917_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_650e296c96d77eb6d2a260dc6c5a2d6ccc3c5712f36621fabf17659b7cb52917(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_650e296c96d77eb6d2a260dc6c5a2d6ccc3c5712f36621fabf17659b7cb52917__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_650e296c96d77eb6d2a260dc6c5a2d6ccc3c5712f36621fabf17659b7cb52917_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function store_literal_in_memory_442fc2faa600bf718cfc7ab8ebe9cc4805442b3c671d169652a1f1d61fa5835a(memPtr) {\n\n mstore(add(memPtr, 0), \"sellRC: ratio below min\")\n\n }\n\n function abi_encode_t_stringliteral_442fc2faa600bf718cfc7ab8ebe9cc4805442b3c671d169652a1f1d61fa5835a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_442fc2faa600bf718cfc7ab8ebe9cc4805442b3c671d169652a1f1d61fa5835a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_442fc2faa600bf718cfc7ab8ebe9cc4805442b3c671d169652a1f1d61fa5835a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_442fc2faa600bf718cfc7ab8ebe9cc4805442b3c671d169652a1f1d61fa5835a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function store_literal_in_memory_65ae2b5d5587635dfbfe58e6c9f56eccdc0c0c72222a11e2f5452e6445923da3(memPtr) {\n\n mstore(add(memPtr, 0), \"sellBoth: insufficient SC balanc\")\n\n mstore(add(memPtr, 32), \"e\")\n\n }\n\n function abi_encode_t_stringliteral_65ae2b5d5587635dfbfe58e6c9f56eccdc0c0c72222a11e2f5452e6445923da3_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_65ae2b5d5587635dfbfe58e6c9f56eccdc0c0c72222a11e2f5452e6445923da3(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_65ae2b5d5587635dfbfe58e6c9f56eccdc0c0c72222a11e2f5452e6445923da3__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_65ae2b5d5587635dfbfe58e6c9f56eccdc0c0c72222a11e2f5452e6445923da3_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_2ed3a35225dd7cde3fa56660d85e558f8e41560e2316ba4e502c27911e8f237f(memPtr) {\n\n mstore(add(memPtr, 0), \"sellBoth: insufficient RC balanc\")\n\n mstore(add(memPtr, 32), \"e\")\n\n }\n\n function abi_encode_t_stringliteral_2ed3a35225dd7cde3fa56660d85e558f8e41560e2316ba4e502c27911e8f237f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_2ed3a35225dd7cde3fa56660d85e558f8e41560e2316ba4e502c27911e8f237f(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_2ed3a35225dd7cde3fa56660d85e558f8e41560e2316ba4e502c27911e8f237f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_2ed3a35225dd7cde3fa56660d85e558f8e41560e2316ba4e502c27911e8f237f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x > (maxValue - y)\n if gt(x, sub(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, y)) { panic_error_0x11() }\n\n sum := add(x, y)\n }\n\n function store_literal_in_memory_65e236559dafdf1df6535e51309ead46fb081456a76a26150992bb03b61ee0e8(memPtr) {\n\n mstore(add(memPtr, 0), \"sellBoth: tx limit exceeded\")\n\n }\n\n function abi_encode_t_stringliteral_65e236559dafdf1df6535e51309ead46fb081456a76a26150992bb03b61ee0e8_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 27)\n store_literal_in_memory_65e236559dafdf1df6535e51309ead46fb081456a76a26150992bb03b61ee0e8(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_65e236559dafdf1df6535e51309ead46fb081456a76a26150992bb03b61ee0e8__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_65e236559dafdf1df6535e51309ead46fb081456a76a26150992bb03b61ee0e8_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_af2736abf7a0b33abcef0d278ba48f95fa8420131d719abbb8df4f380ab40636(memPtr) {\n\n mstore(add(memPtr, 0), \"sellBoth: reserve ratio decrease\")\n\n mstore(add(memPtr, 32), \"d\")\n\n }\n\n function abi_encode_t_stringliteral_af2736abf7a0b33abcef0d278ba48f95fa8420131d719abbb8df4f380ab40636_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 33)\n store_literal_in_memory_af2736abf7a0b33abcef0d278ba48f95fa8420131d719abbb8df4f380ab40636(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_af2736abf7a0b33abcef0d278ba48f95fa8420131d719abbb8df4f380ab40636__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_af2736abf7a0b33abcef0d278ba48f95fa8420131d719abbb8df4f380ab40636_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_4fe7186996b24ad0f1d2b61108a9136072bea31b2931fd61ae6eb002de0deba7(memPtr) {\n\n mstore(add(memPtr, 0), \"buySC: tx limit exceeded\")\n\n }\n\n function abi_encode_t_stringliteral_4fe7186996b24ad0f1d2b61108a9136072bea31b2931fd61ae6eb002de0deba7_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_4fe7186996b24ad0f1d2b61108a9136072bea31b2931fd61ae6eb002de0deba7(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_4fe7186996b24ad0f1d2b61108a9136072bea31b2931fd61ae6eb002de0deba7__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_4fe7186996b24ad0f1d2b61108a9136072bea31b2931fd61ae6eb002de0deba7_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_5415c6bc063fa3b296f2de5be5a1f52fd9b2ff5166d5b099afbff0644d530c89(memPtr) {\n\n mstore(add(memPtr, 0), \"buySC: ratio below min\")\n\n }\n\n function abi_encode_t_stringliteral_5415c6bc063fa3b296f2de5be5a1f52fd9b2ff5166d5b099afbff0644d530c89_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_5415c6bc063fa3b296f2de5be5a1f52fd9b2ff5166d5b099afbff0644d530c89(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_5415c6bc063fa3b296f2de5be5a1f52fd9b2ff5166d5b099afbff0644d530c89__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_5415c6bc063fa3b296f2de5be5a1f52fd9b2ff5166d5b099afbff0644d530c89_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_5b6f4d8f617b05fd93759c7a981804105fd74f25f9e3f5b6dcb333ccf6ec904d(memPtr) {\n\n mstore(add(memPtr, 0), \"sellSC: insufficient SC balance\")\n\n }\n\n function abi_encode_t_stringliteral_5b6f4d8f617b05fd93759c7a981804105fd74f25f9e3f5b6dcb333ccf6ec904d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 31)\n store_literal_in_memory_5b6f4d8f617b05fd93759c7a981804105fd74f25f9e3f5b6dcb333ccf6ec904d(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_5b6f4d8f617b05fd93759c7a981804105fd74f25f9e3f5b6dcb333ccf6ec904d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_5b6f4d8f617b05fd93759c7a981804105fd74f25f9e3f5b6dcb333ccf6ec904d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_3aa1e11dd316ada80379525aecda6d9741e5108130bce291f9fe3e927e399fc0(memPtr) {\n\n mstore(add(memPtr, 0), \"sellSC: tx limit exceeded\")\n\n }\n\n function abi_encode_t_stringliteral_3aa1e11dd316ada80379525aecda6d9741e5108130bce291f9fe3e927e399fc0_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 25)\n store_literal_in_memory_3aa1e11dd316ada80379525aecda6d9741e5108130bce291f9fe3e927e399fc0(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_3aa1e11dd316ada80379525aecda6d9741e5108130bce291f9fe3e927e399fc0__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_3aa1e11dd316ada80379525aecda6d9741e5108130bce291f9fe3e927e399fc0_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_bd03837a08f168a40724e2eb339a12b246bb84006664616f15f28d79be2cb622(memPtr) {\n\n mstore(add(memPtr, 0), \"buyRC: tx limit exceeded\")\n\n }\n\n function abi_encode_t_stringliteral_bd03837a08f168a40724e2eb339a12b246bb84006664616f15f28d79be2cb622_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 24)\n store_literal_in_memory_bd03837a08f168a40724e2eb339a12b246bb84006664616f15f28d79be2cb622(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_bd03837a08f168a40724e2eb339a12b246bb84006664616f15f28d79be2cb622__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_bd03837a08f168a40724e2eb339a12b246bb84006664616f15f28d79be2cb622_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_b1c77569b873f66c95d060f6baa63268a591746d18822833dbbfd2df6c4a7f24(memPtr) {\n\n mstore(add(memPtr, 0), \"buyRC: ratio above max\")\n\n }\n\n function abi_encode_t_stringliteral_b1c77569b873f66c95d060f6baa63268a591746d18822833dbbfd2df6c4a7f24_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 22)\n store_literal_in_memory_b1c77569b873f66c95d060f6baa63268a591746d18822833dbbfd2df6c4a7f24(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_b1c77569b873f66c95d060f6baa63268a591746d18822833dbbfd2df6c4a7f24__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_b1c77569b873f66c95d060f6baa63268a591746d18822833dbbfd2df6c4a7f24_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n if lt(x, y) { panic_error_0x11() }\n\n diff := sub(x, y)\n }\n\n function abi_decode_tuple_t_uint256t_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_30f899d583fb94c14eecc0dc8804379d9d6df731fd55fe99219f2313acdbd90e(memPtr) {\n\n mstore(add(memPtr, 0), \"insufficient available funding\")\n\n }\n\n function abi_encode_t_stringliteral_30f899d583fb94c14eecc0dc8804379d9d6df731fd55fe99219f2313acdbd90e_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 30)\n store_literal_in_memory_30f899d583fb94c14eecc0dc8804379d9d6df731fd55fe99219f2313acdbd90e(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_30f899d583fb94c14eecc0dc8804379d9d6df731fd55fe99219f2313acdbd90e__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_30f899d583fb94c14eecc0dc8804379d9d6df731fd55fe99219f2313acdbd90e_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_aa696f5e89db0928235bfeb6c2ee17e5b3b7d674ba83b2fda82f2cbd8a1e210d(memPtr) {\n\n mstore(add(memPtr, 0), \"oracle credit would exceed maxim\")\n\n mstore(add(memPtr, 32), \"um\")\n\n }\n\n function abi_encode_t_stringliteral_aa696f5e89db0928235bfeb6c2ee17e5b3b7d674ba83b2fda82f2cbd8a1e210d_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 34)\n store_literal_in_memory_aa696f5e89db0928235bfeb6c2ee17e5b3b7d674ba83b2fda82f2cbd8a1e210d(pos)\n end := add(pos, 64)\n }\n\n function abi_encode_tuple_t_stringliteral_aa696f5e89db0928235bfeb6c2ee17e5b3b7d674ba83b2fda82f2cbd8a1e210d__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_aa696f5e89db0928235bfeb6c2ee17e5b3b7d674ba83b2fda82f2cbd8a1e210d_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_9ead0559f94d0a469b1f2e0b443cd0e822a9821db73c019374f846900628c7a2(memPtr) {\n\n mstore(add(memPtr, 0), \"value greater than 1% of reserve\")\n\n }\n\n function abi_encode_t_stringliteral_9ead0559f94d0a469b1f2e0b443cd0e822a9821db73c019374f846900628c7a2_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 32)\n store_literal_in_memory_9ead0559f94d0a469b1f2e0b443cd0e822a9821db73c019374f846900628c7a2(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_9ead0559f94d0a469b1f2e0b443cd0e822a9821db73c019374f846900628c7a2__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9ead0559f94d0a469b1f2e0b443cd0e822a9821db73c019374f846900628c7a2_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_uint256_t_address__to_t_uint256_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n}\n", + "id": 10, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "189:9594:6:-:0;;;179:1:8;140:40;;613:1:6;583:31;;1755:944;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2053:28;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2040:10;;:41;;;;;;;;;;;;;;;;;;2105:29;;;;;:::i;:::-;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;2091:11;;:43;;;;;;;;;;;;;;;;;;2173:10;;;;;;;;;;;:19;;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2169:2;:25;;;;:::i;:::-;2144:50;;;;;;2233:11;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2229:2;:26;;;;:::i;:::-;2204:51;;;;;;2282:13;2265:6;;:31;;;;;;;;;;;;;;;;;;2322:14;2306:30;;;;;;2358:9;2347:20;;;;;;;;;;2398:19;2377:40;;;;;;2451:22;2427:46;;;;;;2502:16;2484:34;;;;;;2546:16;2528:34;;;;;;2578:4;2572:10;;;;;;2612:18;2592:38;;;;;;2653:11;2640:24;;;;;;2684:8;2674:18;;;;;;1755:944;;;;;;;;;;;189:9594;;;;;;;;;;:::o;88:117:10:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:77::-;882:7;911:5;900:16;;845:77;;;:::o;928:122::-;1001:24;1019:5;1001:24;:::i;:::-;994:5;991:35;981:63;;1040:1;1037;1030:12;981:63;928:122;:::o;1056:143::-;1113:5;1144:6;1138:13;1129:22;;1160:33;1187:5;1160:33;:::i;:::-;1056:143;;;;:::o;1205:1921::-;1365:6;1373;1381;1389;1397;1405;1413;1421;1429;1437;1445:7;1495:3;1483:9;1474:7;1470:23;1466:33;1463:120;;;1502:79;;:::i;:::-;1463:120;1622:1;1647:64;1703:7;1694:6;1683:9;1679:22;1647:64;:::i;:::-;1637:74;;1593:128;1760:2;1786:64;1842:7;1833:6;1822:9;1818:22;1786:64;:::i;:::-;1776:74;;1731:129;1899:2;1925:64;1981:7;1972:6;1961:9;1957:22;1925:64;:::i;:::-;1915:74;;1870:129;2038:2;2064:64;2120:7;2111:6;2100:9;2096:22;2064:64;:::i;:::-;2054:74;;2009:129;2177:3;2204:64;2260:7;2251:6;2240:9;2236:22;2204:64;:::i;:::-;2194:74;;2148:130;2317:3;2344:64;2400:7;2391:6;2380:9;2376:22;2344:64;:::i;:::-;2334:74;;2288:130;2457:3;2484:64;2540:7;2531:6;2520:9;2516:22;2484:64;:::i;:::-;2474:74;;2428:130;2597:3;2624:64;2680:7;2671:6;2660:9;2656:22;2624:64;:::i;:::-;2614:74;;2568:130;2737:3;2764:64;2820:7;2811:6;2800:9;2796:22;2764:64;:::i;:::-;2754:74;;2708:130;2877:3;2904:64;2960:7;2951:6;2940:9;2936:22;2904:64;:::i;:::-;2894:74;;2848:130;3017:3;3045:64;3101:7;3092:6;3081:9;3077:22;3045:64;:::i;:::-;3034:75;;2988:131;1205:1921;;;;;;;;;;;;;;:::o;3132:169::-;3216:11;3250:6;3245:3;3238:19;3290:4;3285:3;3281:14;3266:29;;3132:169;;;;:::o;3307:160::-;3447:12;3443:1;3435:6;3431:14;3424:36;3307:160;:::o;3473:366::-;3615:3;3636:67;3700:2;3695:3;3636:67;:::i;:::-;3629:74;;3712:93;3801:3;3712:93;:::i;:::-;3830:2;3825:3;3821:12;3814:19;;3473:366;;;:::o;3845:152::-;3985:4;3981:1;3973:6;3969:14;3962:28;3845:152;:::o;4003:365::-;4145:3;4166:66;4230:1;4225:3;4166:66;:::i;:::-;4159:73;;4241:93;4330:3;4241:93;:::i;:::-;4359:2;4354:3;4350:12;4343:19;;4003:365;;;:::o;4374:726::-;4641:4;4679:2;4668:9;4664:18;4656:26;;4728:9;4722:4;4718:20;4714:1;4703:9;4699:17;4692:47;4756:131;4882:4;4756:131;:::i;:::-;4748:139;;4934:9;4928:4;4924:20;4919:2;4908:9;4904:18;4897:48;4962:131;5088:4;4962:131;:::i;:::-;4954:139;;4374:726;;;:::o;5106:161::-;5246:13;5242:1;5234:6;5230:14;5223:37;5106:161;:::o;5273:366::-;5415:3;5436:67;5500:2;5495:3;5436:67;:::i;:::-;5429:74;;5512:93;5601:3;5512:93;:::i;:::-;5630:2;5625:3;5621:12;5614:19;;5273:366;;;:::o;5645:152::-;5785:4;5781:1;5773:6;5769:14;5762:28;5645:152;:::o;5803:365::-;5945:3;5966:66;6030:1;6025:3;5966:66;:::i;:::-;5959:73;;6041:93;6130:3;6041:93;:::i;:::-;6159:2;6154:3;6150:12;6143:19;;5803:365;;;:::o;6174:726::-;6441:4;6479:2;6468:9;6464:18;6456:26;;6528:9;6522:4;6518:20;6514:1;6503:9;6499:17;6492:47;6556:131;6682:4;6556:131;:::i;:::-;6548:139;;6734:9;6728:4;6724:20;6719:2;6708:9;6704:18;6697:48;6762:131;6888:4;6762:131;:::i;:::-;6754:139;;6174:726;;;:::o;6906:86::-;6941:7;6981:4;6974:5;6970:16;6959:27;;6906:86;;;:::o;6998:118::-;7069:22;7085:5;7069:22;:::i;:::-;7062:5;7059:33;7049:61;;7106:1;7103;7096:12;7049:61;6998:118;:::o;7122:139::-;7177:5;7208:6;7202:13;7193:22;;7224:31;7249:5;7224:31;:::i;:::-;7122:139;;;;:::o;7267:347::-;7335:6;7384:2;7372:9;7363:7;7359:23;7355:32;7352:119;;;7390:79;;:::i;:::-;7352:119;7510:1;7535:62;7589:7;7580:6;7569:9;7565:22;7535:62;:::i;:::-;7525:72;;7481:126;7267:347;;;;:::o;7620:180::-;7668:77;7665:1;7658:88;7765:4;7762:1;7755:15;7789:4;7786:1;7779:15;7806:102;7848:8;7895:5;7892:1;7888:13;7867:34;;7806:102;;;:::o;7914:848::-;7975:5;7982:4;8006:6;7997:15;;8030:5;8021:14;;8044:712;8065:1;8055:8;8052:15;8044:712;;;8160:4;8155:3;8151:14;8145:4;8142:24;8139:50;;;8169:18;;:::i;:::-;8139:50;8219:1;8209:8;8205:16;8202:451;;;8634:4;8627:5;8623:16;8614:25;;8202:451;8684:4;8678;8674:15;8666:23;;8714:32;8737:8;8714:32;:::i;:::-;8702:44;;8044:712;;;7914:848;;;;;;;:::o;8768:1073::-;8822:5;9013:8;9003:40;;9034:1;9025:10;;9036:5;;9003:40;9062:4;9052:36;;9079:1;9070:10;;9081:5;;9052:36;9148:4;9196:1;9191:27;;;;9232:1;9227:191;;;;9141:277;;9191:27;9209:1;9200:10;;9211:5;;;9227:191;9272:3;9262:8;9259:17;9256:43;;;9279:18;;:::i;:::-;9256:43;9328:8;9325:1;9321:16;9312:25;;9363:3;9356:5;9353:14;9350:40;;;9370:18;;:::i;:::-;9350:40;9403:5;;;9141:277;;9527:2;9517:8;9514:16;9508:3;9502:4;9499:13;9495:36;9477:2;9467:8;9464:16;9459:2;9453:4;9450:12;9446:35;9430:111;9427:246;;;9583:8;9577:4;9573:19;9564:28;;9618:3;9611:5;9608:14;9605:40;;;9625:18;;:::i;:::-;9605:40;9658:5;;9427:246;9698:42;9736:3;9726:8;9720:4;9717:1;9698:42;:::i;:::-;9683:57;;;;9772:4;9767:3;9763:14;9756:5;9753:25;9750:51;;;9781:18;;:::i;:::-;9750:51;9830:4;9823:5;9819:16;9810:25;;8768:1073;;;;;;:::o;9847:281::-;9905:5;9929:23;9947:4;9929:23;:::i;:::-;9921:31;;9973:25;9989:8;9973:25;:::i;:::-;9961:37;;10017:104;10054:66;10044:8;10038:4;10017:104;:::i;:::-;10008:113;;9847:281;;;;:::o;189:9594:6:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "189:9594:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5481:812;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;739:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6299:1093;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2769:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8930:255;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;901:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3422:620;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;390:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;313:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;939:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3301:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4048:698;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;113:21:8;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;583:31:6;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9191:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3139:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;227:22;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2979:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;475:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4752:720;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;255:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9500:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8646:208;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;856:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;825:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;782:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;364:558:8;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5481:812:6;5629:8;5592:11;;;;;;;;;;;:21;;;5614:10;5592:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;5584:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;5684:8;5695:9;:7;:9::i;:::-;5684:20;;5714:10;5759:22;5738:18;5752:3;5738:13;:18::i;:::-;5727:8;:29;;;;:::i;:::-;:54;;;;:::i;:::-;5714:67;;5824:22;5818:3;5808:7;:13;;;;:::i;:::-;:38;;;;:::i;:::-;5799:5;:47;;:96;;;;5878:17;5850:10;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;5799:96;5791:134;;;;;;;;;;;;:::i;:::-;;;;;;;;;5935:13;5951:29;5962:5;5969:6;5977:2;5951:10;:29::i;:::-;5935:45;;6063:11;;;;;;;;;;;:16;;;6080:10;6092:8;6063:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6119:8;6111:26;;:36;6138:8;6111:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6165:20;6181:3;6165:15;:20::i;:::-;6157:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;6257:8;6228:58;;6245:10;6228:58;;;6267:8;6277;6228:58;;;;;;;:::i;:::-;;;;;;;;5574:719;;;5481:812;;;;:::o;739:37::-;;;:::o;6299:1093::-;6458:8;6422:10;;;;;;;;;;;:20;;;6443:10;6422:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;;6414:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;6560:8;6523:11;;;;;;;;;;;:21;;;6545:10;6523:33;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;6515:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;6616:8;6627:9;:7;:9::i;:::-;6616:20;;6646:13;6662:10;6668:3;6662:5;:10::i;:::-;6646:26;;6682:10;6790:22;6769:18;6783:3;6769:13;:18::i;:::-;6758:8;:29;;;;:::i;:::-;:54;;;;:::i;:::-;6712:22;6706:3;6695:8;:14;;;;:::i;:::-;:39;;;;:::i;:::-;:117;;;;:::i;:::-;6682:130;;6855:22;6849:3;6839:7;:13;;;;:::i;:::-;:38;;;;:::i;:::-;6830:5;:47;;:96;;;;6909:17;6881:10;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;6830:96;6822:136;;;;;;;;;;;;:::i;:::-;;;;;;;;;6968:10;;;;;;;;;;;:15;;;6984:10;6996:8;6968:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7015:11;;;;;;;;;;;:16;;;7032:10;7044:8;7015:38;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7063:13;7079:29;7090:5;7097:6;7105:2;7079:10;:29::i;:::-;7063:45;;7199:8;7191:26;;:36;7218:8;7191:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7259:8;7245:10;7251:3;7245:5;:10::i;:::-;:22;;7237:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7346:8;7320:65;;7334:10;7320:65;;;7356:8;7366;7376;7320:65;;;;;;;;:::i;:::-;;;;;;;;6404:988;;;;6299:1093;;;;;:::o;2769:73::-;2803:4;2818:21;2811:28;;2769:73;:::o;8930:255::-;8970:4;8986:18;9007:6;;;;;;;;;;:15;;;:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8986:38;;9034:8;9045:10;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9034:35;;9093:1;9086:3;:8;:92;;9117:61;9126:13;9174:3;9148:22;9142:3;:1;:3::i;:::-;:28;;;;:::i;:::-;9141:36;;;;:::i;:::-;9117:8;:61::i;:::-;9086:92;;;9099:13;9086:92;9079:99;;;;8930:255;:::o;901:32::-;;;:::o;3422:620::-;3516:13;3532:33;3543:9;3554:6;3562:2;3532:10;:33::i;:::-;3516:49;;3648:8;3659:9;:7;:9::i;:::-;3648:20;;3678:13;3732:3;3706:22;3695:8;:33;;;;:::i;:::-;3694:41;;;;:::i;:::-;3678:57;;3765:7;3753:8;:19;;:68;;;;3804:17;3776:10;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;3753:68;3745:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;3860:10;;;;;;;;;;;:15;;;3876:8;3886;3860:35;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3913:20;3929:3;3913:15;:20::i;:::-;3905:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;4005:8;3975:60;;3993:10;3975:60;;;4015:8;4025:9;3975:60;;;;;;;:::i;:::-;;;;;;;;3506:536;;;3422:620;;;:::o;390:40::-;;;:::o;313:33::-;;;:::o;939:29::-;;;:::o;3301:74::-;3341:4;3356:16;3362:9;:7;:9::i;:::-;3356:5;:16::i;:::-;3349:23;;3301:74;:::o;4048:698::-;4194:8;4158:10;;;;;;;;;;;:20;;;4179:10;4158:32;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:44;;4150:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;4268:7;4256:8;:19;;:68;;;;4307:17;4279:10;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;4256:68;4248:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;4364:8;4375:9;:7;:9::i;:::-;4364:20;;4394:10;4424:22;4418:3;4407:8;:14;;;;:::i;:::-;:39;;;;:::i;:::-;4394:52;;4456:13;4472:29;4483:5;4490:6;4498:2;4472:10;:29::i;:::-;4456:45;;4584:10;;;;;;;;;;;:15;;;4600:10;4612:8;4584:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4639:8;4631:26;;:36;4658:8;4631:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4710:8;4682:57;;4698:10;4682:57;;;4720:8;4730;4682:57;;;;;;;:::i;:::-;;;;;;;;4140:606;;;4048:698;;;;:::o;113:21:8:-;;;;;;;;;;;;:::o;583:31:6:-;;;;:::o;9191:90::-;9239:4;9254:24;9268:9;:7;:9::i;:::-;9254:13;:24::i;:::-;9247:31;;9191:90;:::o;3139:66::-;3175:4;3190:12;3192:9;:7;:9::i;:::-;3190:1;:12::i;:::-;3183:19;;3139:66;:::o;227:22::-;;;;;;;;;;;;;:::o;2979:66::-;3015:4;3030:12;3032:9;:7;:9::i;:::-;3030:1;:12::i;:::-;3023:19;;2979:66;:::o;475:43::-;;;:::o;4752:720::-;4847:8;4858:9;:7;:9::i;:::-;4847:20;;4915:22;4909:3;4898:7;:14;;;;:::i;:::-;:39;;;;:::i;:::-;4885:9;:52;;:101;;;;4969:17;4941:10;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;4885:101;4877:138;;;;;;;;;;;;:::i;:::-;;;;;;;;;5025:13;5041:33;5052:9;5063:6;5071:2;5041:10;:33::i;:::-;5025:49;;5157:13;5211:18;5225:3;5211:13;:18::i;:::-;5185:22;5174:8;:33;;;;:::i;:::-;5173:56;;;;:::i;:::-;5157:72;;5239:11;;;;;;;;;;;:16;;;5256:8;5266;5239:36;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5293:20;5309:3;5293:15;:20::i;:::-;:69;;;;5345:17;5317:10;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;5293:69;5285:104;;;;;;;;;;;;:::i;:::-;;;;;;;;;5435:8;5404:61;;5423:10;5404:61;;;5445:8;5455:9;5404:61;;;;;;;:::i;:::-;;;;;;;;4837:635;;;4752:720;;;:::o;255:23::-;;;;;;;;;;;;;:::o;9500:90::-;9548:4;9563:24;9577:9;:7;:9::i;:::-;9563:13;:24::i;:::-;9556:31;;9500:90;:::o;8646:208::-;8690:4;8733:21;8714:15;;:40;;8713:134;;8825:21;8806:15;;8785:18;:36;;;;:::i;:::-;8784:62;;;;:::i;:::-;8762:18;:85;;;;:::i;:::-;8713:134;;;8758:1;8713:134;8706:141;;8646:208;:::o;856:39::-;;;:::o;825:25::-;;;:::o;782:37::-;;;:::o;364:558:8:-;416:12;430:11;443;458:6;;;;;;;;;;;:21;;;488:4;458:36;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;415:79;;;;;;520:22;;512:5;:30;504:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;221:5;622:6;612:7;:16;;;;:::i;:::-;:28;;;;:::i;:::-;604:5;595:6;:14;;;;:::i;:::-;:45;587:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;729:3;705:21;:27;;;;:::i;:::-;697:5;:35;689:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;779:6;;;;;;;;;;:20;;;807:5;822:4;779:49;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;843:31;856:5;863:10;843:31;;;;;;;:::i;:::-;;;;;;;;910:5;884:22;;:31;;;;;;;:::i;:::-;;;;;;;;405:517;;;364:558;:::o;9286:208:6:-;9347:4;9363:8;9374:11;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9363:36;;9424:1;9417:3;:8;;9409:17;;;;;;9484:3;9458:22;9444:11;9446:8;9444:1;:11::i;:::-;:36;;;;:::i;:::-;9443:44;;;;:::i;:::-;9436:51;;;9286:208;;;:::o;7428:669::-;7503:4;7519:6;7542:13;7536:3;7528:5;:11;;;;:::i;:::-;:27;;;;:::i;:::-;7519:36;;7565:9;7594:13;7585:6;7577:5;:14;;;;:::i;:::-;:30;;;;:::i;:::-;7565:42;;7617:8;7652:13;7636;:11;:13::i;:::-;7628:5;:21;;;;:::i;:::-;:37;;;;:::i;:::-;7617:48;;7813:2;7805:20;;:26;7826:4;7805:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7849:8;7841:26;;:31;7868:3;7841:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7902:3;7883:15;;:22;;;;;;;:::i;:::-;;;;;;;;7945:2;7941:1;:6;;;;:::i;:::-;7915:22;;:32;;;;;;;:::i;:::-;;;;;;;;8075:3;8068:4;8064:1;8056:5;:9;;;;:::i;:::-;:16;;;;:::i;:::-;:22;;;;:::i;:::-;8049:29;;;;;7428:669;;;;;:::o;8104:193::-;8167:4;8275:15;8264:8;8237:10;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;;;;:::i;:::-;:53;;;;:::i;:::-;8212:22;8196:13;8190:3;:1;:3::i;:::-;:19;;;;:::i;:::-;:44;;;;:::i;:::-;:100;8183:107;;8104:193;;;:::o;3210:86::-;3263:4;3282:11;3284:8;3282:1;:11::i;:::-;3278:3;:1;:3::i;:::-;:15;;;;:::i;:::-;3271:22;;3210:86;;;:::o;461:104:4:-;519:7;549:1;545;:5;:13;;557:1;545:13;;;553:1;545:13;538:20;;461:104;;;;:::o;3050:84:6:-;3099:4;3120:11;3122:8;3120:1;:11::i;:::-;3114:3;:1;:3::i;:::-;:17;;;;:::i;:::-;3107:24;;3050:84;;;:::o;2847:127::-;2896:4;2949:22;2938:8;2911:10;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;;;;:::i;:::-;:60;;;;:::i;:::-;2904:67;;2847:127;;;:::o;9595:186::-;9656:4;9708:1;9679:11;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:30;:95;;9729:45;9738:23;9752:8;9738:13;:23::i;:::-;9763:10;9729:8;:45::i;:::-;9679:95;;;9714:10;9679:95;9672:102;;9595:186;;;:::o;8303:193::-;8366:4;8474:15;8463:8;8436:10;;;;;;;;;;;:22;;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:35;;;;:::i;:::-;:53;;;;:::i;:::-;8411:22;8395:13;8389:3;:1;:3::i;:::-;:19;;;;:::i;:::-;:44;;;;:::i;:::-;:100;8382:107;;8303:193;;;:::o;285:105:4:-;343:7;374:1;369;:6;;:14;;382:1;369:14;;;378:1;369:14;362:21;;285:105;;;;:::o;88:117:10:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:126::-;727:7;767:42;760:5;756:54;745:65;;690:126;;;:::o;822:96::-;859:7;888:24;906:5;888:24;:::i;:::-;877:35;;822:96;;;:::o;924:122::-;997:24;1015:5;997:24;:::i;:::-;990:5;987:35;977:63;;1036:1;1033;1026:12;977:63;924:122;:::o;1052:139::-;1098:5;1136:6;1123:20;1114:29;;1152:33;1179:5;1152:33;:::i;:::-;1052:139;;;;:::o;1197:765::-;1283:6;1291;1299;1307;1356:3;1344:9;1335:7;1331:23;1327:33;1324:120;;;1363:79;;:::i;:::-;1324:120;1483:1;1508:53;1553:7;1544:6;1533:9;1529:22;1508:53;:::i;:::-;1498:63;;1454:117;1610:2;1636:53;1681:7;1672:6;1661:9;1657:22;1636:53;:::i;:::-;1626:63;;1581:118;1738:2;1764:53;1809:7;1800:6;1789:9;1785:22;1764:53;:::i;:::-;1754:63;;1709:118;1866:2;1892:53;1937:7;1928:6;1917:9;1913:22;1892:53;:::i;:::-;1882:63;;1837:118;1197:765;;;;;;;:::o;1968:118::-;2055:24;2073:5;2055:24;:::i;:::-;2050:3;2043:37;1968:118;;:::o;2092:222::-;2185:4;2223:2;2212:9;2208:18;2200:26;;2236:71;2304:1;2293:9;2289:17;2280:6;2236:71;:::i;:::-;2092:222;;;;:::o;2320:911::-;2415:6;2423;2431;2439;2447;2496:3;2484:9;2475:7;2471:23;2467:33;2464:120;;;2503:79;;:::i;:::-;2464:120;2623:1;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;:::i;:::-;2638:63;;2594:117;2750:2;2776:53;2821:7;2812:6;2801:9;2797:22;2776:53;:::i;:::-;2766:63;;2721:118;2878:2;2904:53;2949:7;2940:6;2929:9;2925:22;2904:53;:::i;:::-;2894:63;;2849:118;3006:2;3032:53;3077:7;3068:6;3057:9;3053:22;3032:53;:::i;:::-;3022:63;;2977:118;3134:3;3161:53;3206:7;3197:6;3186:9;3182:22;3161:53;:::i;:::-;3151:63;;3105:119;2320:911;;;;;;;;:::o;3237:619::-;3314:6;3322;3330;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3505:1;3530:53;3575:7;3566:6;3555:9;3551:22;3530:53;:::i;:::-;3520:63;;3476:117;3632:2;3658:53;3703:7;3694:6;3683:9;3679:22;3658:53;:::i;:::-;3648:63;;3603:118;3760:2;3786:53;3831:7;3822:6;3811:9;3807:22;3786:53;:::i;:::-;3776:63;;3731:118;3237:619;;;;;:::o;3862:118::-;3949:24;3967:5;3949:24;:::i;:::-;3944:3;3937:37;3862:118;;:::o;3986:222::-;4079:4;4117:2;4106:9;4102:18;4094:26;;4130:71;4198:1;4187:9;4183:17;4174:6;4130:71;:::i;:::-;3986:222;;;;:::o;4214:60::-;4242:3;4263:5;4256:12;;4214:60;;;:::o;4280:142::-;4330:9;4363:53;4381:34;4390:24;4408:5;4390:24;:::i;:::-;4381:34;:::i;:::-;4363:53;:::i;:::-;4350:66;;4280:142;;;:::o;4428:126::-;4478:9;4511:37;4542:5;4511:37;:::i;:::-;4498:50;;4428:126;;;:::o;4560:142::-;4626:9;4659:37;4690:5;4659:37;:::i;:::-;4646:50;;4560:142;;;:::o;4708:163::-;4811:53;4858:5;4811:53;:::i;:::-;4806:3;4799:66;4708:163;;:::o;4877:254::-;4986:4;5024:2;5013:9;5009:18;5001:26;;5037:87;5121:1;5110:9;5106:17;5097:6;5037:87;:::i;:::-;4877:254;;;;:::o;5137:138::-;5199:9;5232:37;5263:5;5232:37;:::i;:::-;5219:50;;5137:138;;;:::o;5281:155::-;5380:49;5423:5;5380:49;:::i;:::-;5375:3;5368:62;5281:155;;:::o;5442:246::-;5547:4;5585:2;5574:9;5570:18;5562:26;;5598:83;5678:1;5667:9;5663:17;5654:6;5598:83;:::i;:::-;5442:246;;;;:::o;5694:329::-;5753:6;5802:2;5790:9;5781:7;5777:23;5773:32;5770:119;;;5808:79;;:::i;:::-;5770:119;5928:1;5953:53;5998:7;5989:6;5978:9;5974:22;5953:53;:::i;:::-;5943:63;;5899:117;5694:329;;;;:::o;6029:143::-;6086:5;6117:6;6111:13;6102:22;;6133:33;6160:5;6133:33;:::i;:::-;6029:143;;;;:::o;6178:351::-;6248:6;6297:2;6285:9;6276:7;6272:23;6268:32;6265:119;;;6303:79;;:::i;:::-;6265:119;6423:1;6448:64;6504:7;6495:6;6484:9;6480:22;6448:64;:::i;:::-;6438:74;;6394:128;6178:351;;;;:::o;6535:169::-;6619:11;6653:6;6648:3;6641:19;6693:4;6688:3;6684:14;6669:29;;6535:169;;;;:::o;6710:181::-;6850:33;6846:1;6838:6;6834:14;6827:57;6710:181;:::o;6897:366::-;7039:3;7060:67;7124:2;7119:3;7060:67;:::i;:::-;7053:74;;7136:93;7225:3;7136:93;:::i;:::-;7254:2;7249:3;7245:12;7238:19;;6897:366;;;:::o;7269:419::-;7435:4;7473:2;7462:9;7458:18;7450:26;;7522:9;7516:4;7512:20;7508:1;7497:9;7493:17;7486:47;7550:131;7676:4;7550:131;:::i;:::-;7542:139;;7269:419;;;:::o;7694:180::-;7742:77;7739:1;7732:88;7839:4;7836:1;7829:15;7863:4;7860:1;7853:15;7880:348;7920:7;7943:20;7961:1;7943:20;:::i;:::-;7938:25;;7977:20;7995:1;7977:20;:::i;:::-;7972:25;;8165:1;8097:66;8093:74;8090:1;8087:81;8082:1;8075:9;8068:17;8064:105;8061:131;;;8172:18;;:::i;:::-;8061:131;8220:1;8217;8213:9;8202:20;;7880:348;;;;:::o;8234:180::-;8282:77;8279:1;8272:88;8379:4;8376:1;8369:15;8403:4;8400:1;8393:15;8420:185;8460:1;8477:20;8495:1;8477:20;:::i;:::-;8472:25;;8511:20;8529:1;8511:20;:::i;:::-;8506:25;;8550:1;8540:35;;8555:18;;:::i;:::-;8540:35;8597:1;8594;8590:9;8585:14;;8420:185;;;;:::o;8611:175::-;8751:27;8747:1;8739:6;8735:14;8728:51;8611:175;:::o;8792:366::-;8934:3;8955:67;9019:2;9014:3;8955:67;:::i;:::-;8948:74;;9031:93;9120:3;9031:93;:::i;:::-;9149:2;9144:3;9140:12;9133:19;;8792:366;;;:::o;9164:419::-;9330:4;9368:2;9357:9;9353:18;9345:26;;9417:9;9411:4;9407:20;9403:1;9392:9;9388:17;9381:47;9445:131;9571:4;9445:131;:::i;:::-;9437:139;;9164:419;;;:::o;9589:332::-;9710:4;9748:2;9737:9;9733:18;9725:26;;9761:71;9829:1;9818:9;9814:17;9805:6;9761:71;:::i;:::-;9842:72;9910:2;9899:9;9895:18;9886:6;9842:72;:::i;:::-;9589:332;;;;;:::o;9927:173::-;10067:25;10063:1;10055:6;10051:14;10044:49;9927:173;:::o;10106:366::-;10248:3;10269:67;10333:2;10328:3;10269:67;:::i;:::-;10262:74;;10345:93;10434:3;10345:93;:::i;:::-;10463:2;10458:3;10454:12;10447:19;;10106:366;;;:::o;10478:419::-;10644:4;10682:2;10671:9;10667:18;10659:26;;10731:9;10725:4;10721:20;10717:1;10706:9;10702:17;10695:47;10759:131;10885:4;10759:131;:::i;:::-;10751:139;;10478:419;;;:::o;10903:332::-;11024:4;11062:2;11051:9;11047:18;11039:26;;11075:71;11143:1;11132:9;11128:17;11119:6;11075:71;:::i;:::-;11156:72;11224:2;11213:9;11209:18;11200:6;11156:72;:::i;:::-;10903:332;;;;;:::o;11241:220::-;11381:34;11377:1;11369:6;11365:14;11358:58;11450:3;11445:2;11437:6;11433:15;11426:28;11241:220;:::o;11467:366::-;11609:3;11630:67;11694:2;11689:3;11630:67;:::i;:::-;11623:74;;11706:93;11795:3;11706:93;:::i;:::-;11824:2;11819:3;11815:12;11808:19;;11467:366;;;:::o;11839:419::-;12005:4;12043:2;12032:9;12028:18;12020:26;;12092:9;12086:4;12082:20;12078:1;12067:9;12063:17;12056:47;12120:131;12246:4;12120:131;:::i;:::-;12112:139;;11839:419;;;:::o;12264:220::-;12404:34;12400:1;12392:6;12388:14;12381:58;12473:3;12468:2;12460:6;12456:15;12449:28;12264:220;:::o;12490:366::-;12632:3;12653:67;12717:2;12712:3;12653:67;:::i;:::-;12646:74;;12729:93;12818:3;12729:93;:::i;:::-;12847:2;12842:3;12838:12;12831:19;;12490:366;;;:::o;12862:419::-;13028:4;13066:2;13055:9;13051:18;13043:26;;13115:9;13109:4;13105:20;13101:1;13090:9;13086:17;13079:47;13143:131;13269:4;13143:131;:::i;:::-;13135:139;;12862:419;;;:::o;13287:305::-;13327:3;13346:20;13364:1;13346:20;:::i;:::-;13341:25;;13380:20;13398:1;13380:20;:::i;:::-;13375:25;;13534:1;13466:66;13462:74;13459:1;13456:81;13453:107;;;13540:18;;:::i;:::-;13453:107;13584:1;13581;13577:9;13570:16;;13287:305;;;;:::o;13598:177::-;13738:29;13734:1;13726:6;13722:14;13715:53;13598:177;:::o;13781:366::-;13923:3;13944:67;14008:2;14003:3;13944:67;:::i;:::-;13937:74;;14020:93;14109:3;14020:93;:::i;:::-;14138:2;14133:3;14129:12;14122:19;;13781:366;;;:::o;14153:419::-;14319:4;14357:2;14346:9;14342:18;14334:26;;14406:9;14400:4;14396:20;14392:1;14381:9;14377:17;14370:47;14434:131;14560:4;14434:131;:::i;:::-;14426:139;;14153:419;;;:::o;14578:220::-;14718:34;14714:1;14706:6;14702:14;14695:58;14787:3;14782:2;14774:6;14770:15;14763:28;14578:220;:::o;14804:366::-;14946:3;14967:67;15031:2;15026:3;14967:67;:::i;:::-;14960:74;;15043:93;15132:3;15043:93;:::i;:::-;15161:2;15156:3;15152:12;15145:19;;14804:366;;;:::o;15176:419::-;15342:4;15380:2;15369:9;15365:18;15357:26;;15429:9;15423:4;15419:20;15415:1;15404:9;15400:17;15393:47;15457:131;15583:4;15457:131;:::i;:::-;15449:139;;15176:419;;;:::o;15601:442::-;15750:4;15788:2;15777:9;15773:18;15765:26;;15801:71;15869:1;15858:9;15854:17;15845:6;15801:71;:::i;:::-;15882:72;15950:2;15939:9;15935:18;15926:6;15882:72;:::i;:::-;15964;16032:2;16021:9;16017:18;16008:6;15964:72;:::i;:::-;15601:442;;;;;;:::o;16049:174::-;16189:26;16185:1;16177:6;16173:14;16166:50;16049:174;:::o;16229:366::-;16371:3;16392:67;16456:2;16451:3;16392:67;:::i;:::-;16385:74;;16468:93;16557:3;16468:93;:::i;:::-;16586:2;16581:3;16577:12;16570:19;;16229:366;;;:::o;16601:419::-;16767:4;16805:2;16794:9;16790:18;16782:26;;16854:9;16848:4;16844:20;16840:1;16829:9;16825:17;16818:47;16882:131;17008:4;16882:131;:::i;:::-;16874:139;;16601:419;;;:::o;17026:172::-;17166:24;17162:1;17154:6;17150:14;17143:48;17026:172;:::o;17204:366::-;17346:3;17367:67;17431:2;17426:3;17367:67;:::i;:::-;17360:74;;17443:93;17532:3;17443:93;:::i;:::-;17561:2;17556:3;17552:12;17545:19;;17204:366;;;:::o;17576:419::-;17742:4;17780:2;17769:9;17765:18;17757:26;;17829:9;17823:4;17819:20;17815:1;17804:9;17800:17;17793:47;17857:131;17983:4;17857:131;:::i;:::-;17849:139;;17576:419;;;:::o;18001:181::-;18141:33;18137:1;18129:6;18125:14;18118:57;18001:181;:::o;18188:366::-;18330:3;18351:67;18415:2;18410:3;18351:67;:::i;:::-;18344:74;;18427:93;18516:3;18427:93;:::i;:::-;18545:2;18540:3;18536:12;18529:19;;18188:366;;;:::o;18560:419::-;18726:4;18764:2;18753:9;18749:18;18741:26;;18813:9;18807:4;18803:20;18799:1;18788:9;18784:17;18777:47;18841:131;18967:4;18841:131;:::i;:::-;18833:139;;18560:419;;;:::o;18985:175::-;19125:27;19121:1;19113:6;19109:14;19102:51;18985:175;:::o;19166:366::-;19308:3;19329:67;19393:2;19388:3;19329:67;:::i;:::-;19322:74;;19405:93;19494:3;19405:93;:::i;:::-;19523:2;19518:3;19514:12;19507:19;;19166:366;;;:::o;19538:419::-;19704:4;19742:2;19731:9;19727:18;19719:26;;19791:9;19785:4;19781:20;19777:1;19766:9;19762:17;19755:47;19819:131;19945:4;19819:131;:::i;:::-;19811:139;;19538:419;;;:::o;19963:174::-;20103:26;20099:1;20091:6;20087:14;20080:50;19963:174;:::o;20143:366::-;20285:3;20306:67;20370:2;20365:3;20306:67;:::i;:::-;20299:74;;20382:93;20471:3;20382:93;:::i;:::-;20500:2;20495:3;20491:12;20484:19;;20143:366;;;:::o;20515:419::-;20681:4;20719:2;20708:9;20704:18;20696:26;;20768:9;20762:4;20758:20;20754:1;20743:9;20739:17;20732:47;20796:131;20922:4;20796:131;:::i;:::-;20788:139;;20515:419;;;:::o;20940:172::-;21080:24;21076:1;21068:6;21064:14;21057:48;20940:172;:::o;21118:366::-;21260:3;21281:67;21345:2;21340:3;21281:67;:::i;:::-;21274:74;;21357:93;21446:3;21357:93;:::i;:::-;21475:2;21470:3;21466:12;21459:19;;21118:366;;;:::o;21490:419::-;21656:4;21694:2;21683:9;21679:18;21671:26;;21743:9;21737:4;21733:20;21729:1;21718:9;21714:17;21707:47;21771:131;21897:4;21771:131;:::i;:::-;21763:139;;21490:419;;;:::o;21915:191::-;21955:4;21975:20;21993:1;21975:20;:::i;:::-;21970:25;;22009:20;22027:1;22009:20;:::i;:::-;22004:25;;22048:1;22045;22042:8;22039:34;;;22053:18;;:::i;:::-;22039:34;22098:1;22095;22091:9;22083:17;;21915:191;;;;:::o;22112:663::-;22200:6;22208;22216;22265:2;22253:9;22244:7;22240:23;22236:32;22233:119;;;22271:79;;:::i;:::-;22233:119;22391:1;22416:64;22472:7;22463:6;22452:9;22448:22;22416:64;:::i;:::-;22406:74;;22362:128;22529:2;22555:64;22611:7;22602:6;22591:9;22587:22;22555:64;:::i;:::-;22545:74;;22500:129;22668:2;22694:64;22750:7;22741:6;22730:9;22726:22;22694:64;:::i;:::-;22684:74;;22639:129;22112:663;;;;;:::o;22781:180::-;22921:32;22917:1;22909:6;22905:14;22898:56;22781:180;:::o;22967:366::-;23109:3;23130:67;23194:2;23189:3;23130:67;:::i;:::-;23123:74;;23206:93;23295:3;23206:93;:::i;:::-;23324:2;23319:3;23315:12;23308:19;;22967:366;;;:::o;23339:419::-;23505:4;23543:2;23532:9;23528:18;23520:26;;23592:9;23586:4;23582:20;23578:1;23567:9;23563:17;23556:47;23620:131;23746:4;23620:131;:::i;:::-;23612:139;;23339:419;;;:::o;23764:221::-;23904:34;23900:1;23892:6;23888:14;23881:58;23973:4;23968:2;23960:6;23956:15;23949:29;23764:221;:::o;23991:366::-;24133:3;24154:67;24218:2;24213:3;24154:67;:::i;:::-;24147:74;;24230:93;24319:3;24230:93;:::i;:::-;24348:2;24343:3;24339:12;24332:19;;23991:366;;;:::o;24363:419::-;24529:4;24567:2;24556:9;24552:18;24544:26;;24616:9;24610:4;24606:20;24602:1;24591:9;24587:17;24580:47;24644:131;24770:4;24644:131;:::i;:::-;24636:139;;24363:419;;;:::o;24788:182::-;24928:34;24924:1;24916:6;24912:14;24905:58;24788:182;:::o;24976:366::-;25118:3;25139:67;25203:2;25198:3;25139:67;:::i;:::-;25132:74;;25215:93;25304:3;25215:93;:::i;:::-;25333:2;25328:3;25324:12;25317:19;;24976:366;;;:::o;25348:419::-;25514:4;25552:2;25541:9;25537:18;25529:26;;25601:9;25595:4;25591:20;25587:1;25576:9;25572:17;25565:47;25629:131;25755:4;25629:131;:::i;:::-;25621:139;;25348:419;;;:::o;25773:332::-;25894:4;25932:2;25921:9;25917:18;25909:26;;25945:71;26013:1;26002:9;25998:17;25989:6;25945:71;:::i;:::-;26026:72;26094:2;26083:9;26079:18;26070:6;26026:72;:::i;:::-;25773:332;;;;;:::o", + "source": "// SPDX-License-Identifier: AFEL\npragma solidity ^0.8.0;\n\nimport \"@openzeppelin/contracts/utils/math/Math.sol\";\nimport \"./Coin.sol\";\nimport \"./OracleConsumer.sol\";\nimport \"./IOracle.sol\";\n\ncontract Djed is OracleConsumer {\n Coin public stableCoin;\n Coin public reserveCoin;\n\n // Treasury Parameters:\n address public immutable treasury; // address of the treasury \n uint public immutable initialTreasuryFee; // initial fee to fund the treasury\n uint public immutable treasuryRevenueTarget; // target revenue above which the treasury fee is set to 0\n uint public treasuryRevenue = 0; // holds how much has already been paid to the treasury // Mutable state variable\n\n // Djed Parameters:\n uint public immutable reserveRatioMin;\n uint public immutable reserveRatioMax;\n uint public immutable fee;\n uint public immutable thresholdSupplySC;\n uint public immutable rcMinPrice;\n uint public immutable txLimit; \n\n // Scaling factors:\n uint immutable scalingFactor; // used to represent a decimal number `d` as the uint number `d * scalingFactor`\n uint immutable scDecimalScalingFactor;\n uint immutable rcDecimalScalingFactor;\n\n event BoughtStableCoins(address indexed buyer, address indexed receiver, uint amountSC, uint amountBC);\n event SoldStableCoins(address indexed seller, address indexed receiver, uint amountSC, uint amountBC);\n event BoughtReserveCoins(address indexed buyer, address indexed receiver, uint amountRC, uint amountBC);\n event SoldReserveCoins(address indexed seller, address indexed receiver, uint amountRC, uint amountBC);\n event SoldBothCoins(address indexed seller, address indexed receiver, uint amountSC, uint amountRC, uint amountBC);\n\n constructor(\n address oracleAddress, uint _scalingFactor, address _treasury, uint _initialTreasuryFee, uint _treasuryRevenueTarget,\n uint _reserveRatioMin, uint _reserveRatioMax, uint _fee, uint _thresholdSupplySC, uint _rcMinPrice, uint _txLimit\n ) payable {\n stableCoin = new Coin(\"StableCoin\", \"SC\");\n reserveCoin = new Coin(\"ReserveCoin\", \"RC\");\n scDecimalScalingFactor = 10**stableCoin.decimals();\n rcDecimalScalingFactor = 10**reserveCoin.decimals();\n oracle = IOracle(oracleAddress);\n scalingFactor = _scalingFactor;\n\n treasury = _treasury;\n initialTreasuryFee = _initialTreasuryFee;\n treasuryRevenueTarget = _treasuryRevenueTarget;\n\n reserveRatioMin = _reserveRatioMin;\n reserveRatioMax = _reserveRatioMax;\n fee = _fee;\n thresholdSupplySC = _thresholdSupplySC;\n rcMinPrice = _rcMinPrice;\n txLimit = _txLimit;\n }\n\n // Reserve, Liabilities, Equity (in weis) and Reserve Ratio\n function R() public view returns (uint) { return address(this).balance; }\n function L(uint _scPrice) internal view returns (uint) { return stableCoin.totalSupply() * _scPrice / scDecimalScalingFactor; }\n function L() external view returns (uint) { return L(scPrice()); }\n function E(uint _scPrice) internal view returns (uint) { return R() - L(_scPrice); }\n function E() external view returns (uint) { return E(scPrice()); }\n function ratio(uint _scPrice) internal view returns (uint) { return R()/L(_scPrice); }\n function ratio() external view returns (uint) { return ratio(scPrice()); }\n \n\n // # Public Trading Functions:\n\n function buyStableCoins(address receiver, uint fee_ui, address ui) external payable {\n uint amountBC = deductFees(msg.value, fee_ui, ui); // side-effect: increases `treasuryRevenue` and `oracleAvailableFunding`\n uint scP = scPrice();\n uint amountSC = (amountBC * scDecimalScalingFactor) / scP;\n require(amountSC <= txLimit || stableCoin.totalSupply() <= thresholdSupplySC, \"buySC: tx limit exceeded\");\n stableCoin.mint(receiver, amountSC);\n require(isRatioAboveMin(scP), \"buySC: ratio below min\");\n emit BoughtStableCoins(msg.sender, receiver, amountSC, msg.value);\n }\n\n function sellStableCoins(uint amountSC, address receiver, uint fee_ui, address ui) external {\n require(stableCoin.balanceOf(msg.sender) >= amountSC, \"sellSC: insufficient SC balance\");\n require(amountSC <= txLimit || stableCoin.totalSupply() <= thresholdSupplySC, \"sellSC: tx limit exceeded\");\n uint scP = scPrice();\n uint value = amountSC * scP / scDecimalScalingFactor;\n uint amountBC = deductFees(value, fee_ui, ui); // side-effect: increases `treasuryRevenue` and `oracleAvailableFunding`\n stableCoin.burn(msg.sender, amountSC);\n payable(receiver).transfer(amountBC);\n emit SoldStableCoins(msg.sender, receiver, amountSC, amountBC);\n }\n\n function buyReserveCoins(address receiver, uint fee_ui, address ui) external payable {\n uint scP = scPrice();\n require(msg.value <= txLimit * scP / scDecimalScalingFactor || stableCoin.totalSupply() <= thresholdSupplySC, \"buyRC: tx limit exceeded\");\n uint amountBC = deductFees(msg.value, fee_ui, ui); // side-effect: increases `treasuryRevenue` and `oracleAvailableFunding`\n uint amountRC = (amountBC * rcDecimalScalingFactor) / rcBuyingPrice(scP);\n reserveCoin.mint(receiver, amountRC);\n require(isRatioBelowMax(scP) || stableCoin.totalSupply() <= thresholdSupplySC, \"buyRC: ratio above max\");\n emit BoughtReserveCoins(msg.sender, receiver, amountRC, msg.value);\n } \n\n function sellReserveCoins(uint amountRC, address receiver, uint fee_ui, address ui) external {\n require(reserveCoin.balanceOf(msg.sender) >= amountRC, \"sellRC: insufficient RC balance\"); \n uint scP = scPrice();\n uint value = amountRC * rcTargetPrice(scP) / rcDecimalScalingFactor;\n require(value <= txLimit * scP / scDecimalScalingFactor || stableCoin.totalSupply() <= thresholdSupplySC, \"sellRC: tx limit exceeded\");\n uint amountBC = deductFees(value, fee_ui, ui); // side-effect: increases `treasuryRevenue` and `oracleAvailableFunding`\n reserveCoin.burn(msg.sender, amountRC);\n payable(receiver).transfer(amountBC);\n require(isRatioAboveMin(scP), \"sellRC: ratio below min\");\n emit SoldReserveCoins(msg.sender, receiver, amountRC, amountBC);\n }\n\n function sellBothCoins(uint amountSC, uint amountRC, address receiver, uint fee_ui, address ui) external {\n require(stableCoin.balanceOf(msg.sender) >= amountSC, \"sellBoth: insufficient SC balance\"); \n require(reserveCoin.balanceOf(msg.sender) >= amountRC, \"sellBoth: insufficient RC balance\");\n uint scP = scPrice();\n uint preRatio = ratio(scP);\n uint value = amountSC * scP / scDecimalScalingFactor +\n amountRC * rcTargetPrice(scP) / rcDecimalScalingFactor;\n require(value <= txLimit * scP / scDecimalScalingFactor || stableCoin.totalSupply() <= thresholdSupplySC, \"sellBoth: tx limit exceeded\");\n stableCoin.burn(msg.sender, amountSC);\n reserveCoin.burn(msg.sender, amountRC);\n uint amountBC = deductFees(value, fee_ui, ui); // side-effect: increases `treasuryRevenue` and `oracleAvailableFunding`\n payable(receiver).transfer(amountBC);\n require(ratio(scP) >= preRatio, \"sellBoth: reserve ratio decreased\");\n emit SoldBothCoins(msg.sender, receiver, amountSC, amountRC, amountBC);\n }\n\n // # Auxiliary Functions\n\n function deductFees(uint value, uint fee_ui, address ui) internal returns (uint) {\n uint f = value * fee / scalingFactor;\n uint f_ui = value * fee_ui / scalingFactor;\n uint f_t = value * treasuryFee() / scalingFactor;\n // payable(address(this)).transfer(f); // this happens implicitly, and thus `f` is effectively transfered to the reserve.\n payable(ui).transfer(f_ui);\n payable(treasury).transfer(f_t); \n treasuryRevenue += f_t;\n oracleAvailableFunding += f / 10; // one 10th of the fee paid to the reserve is made available to be used to fund the oracle.\n return value - f - f_ui - f_t; // amountBC\n }\n \n function isRatioAboveMin(uint _scPrice) internal view returns (bool) {\n return R() * scalingFactor * scDecimalScalingFactor > stableCoin.totalSupply() * _scPrice * reserveRatioMin;\n }\n\n function isRatioBelowMax(uint _scPrice) internal view returns (bool) {\n return R() * scalingFactor * scDecimalScalingFactor < stableCoin.totalSupply() * _scPrice * reserveRatioMax;\n }\n\n // Treasury Fee: starts as `initialTreasuryFee` and decreases linearly to 0 as the `treasuryRevenue` approaches the `treasuryRevenueTarget`\n function treasuryFee() public view returns (uint) {\n return (treasuryRevenue >= treasuryRevenueTarget) ? 0 : initialTreasuryFee - ((initialTreasuryFee * treasuryRevenue) / treasuryRevenueTarget);\n }\n\n // # Price Functions: return the price in weis for 1 whole coin.\n\n function scPrice() public view returns (uint) {\n uint scTargetPrice = oracle.readData();\n uint sSC = stableCoin.totalSupply();\n return sSC == 0 ? scTargetPrice : Math.min(scTargetPrice, (R() * scDecimalScalingFactor) / sSC);\n }\n\n function rcTargetPrice() external view returns (uint) { return rcTargetPrice(scPrice()); }\n function rcTargetPrice(uint _scPrice) internal view returns (uint) {\n uint sRC = reserveCoin.totalSupply();\n require(sRC != 0);\n return (E(_scPrice) * rcDecimalScalingFactor) / sRC;\n }\n\n function rcBuyingPrice() external view returns (uint) { return rcBuyingPrice(scPrice()); }\n function rcBuyingPrice(uint _scPrice) internal view returns (uint) {\n return reserveCoin.totalSupply() == 0 ? rcMinPrice : Math.max(rcTargetPrice(_scPrice), rcMinPrice);\n }\n}", + "sourcePath": "/Users/bruno/Dropbox/DjedAlliance/Code/Djed-Solidity/src/Djed.sol", + "ast": { + "absolutePath": "project:/src/Djed.sol", + "exportedSymbols": { + "Coin": [874], + "Context": [710], + "Djed": [1869], + "ERC20": [585], + "IERC20": [663], + "IERC20Metadata": [688], + "IOracle": [1893], + "Math": [798], + "OracleConsumer": [1986] + }, + "id": 1870, + "license": "AFEL", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 876, + "literals": ["solidity", "^", "0.8", ".0"], + "nodeType": "PragmaDirective", + "src": "33:23:6" + }, + { + "absolutePath": "@openzeppelin/contracts/utils/math/Math.sol", + "file": "@openzeppelin/contracts/utils/math/Math.sol", + "id": 877, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1870, + "sourceUnit": 799, + "src": "58:53:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "project:/src/Coin.sol", + "file": "./Coin.sol", + "id": 878, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1870, + "sourceUnit": 875, + "src": "112:20:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "project:/src/OracleConsumer.sol", + "file": "./OracleConsumer.sol", + "id": 879, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1870, + "sourceUnit": 1987, + "src": "133:30:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "absolutePath": "project:/src/IOracle.sol", + "file": "./IOracle.sol", + "id": 880, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1870, + "sourceUnit": 1894, + "src": "164:23:6", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 881, + "name": "OracleConsumer", + "nodeType": "IdentifierPath", + "referencedDeclaration": 1986, + "src": "206:14:6" + }, + "id": 882, + "nodeType": "InheritanceSpecifier", + "src": "206:14:6" + } + ], + "canonicalName": "Djed", + "contractDependencies": [874], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1869, + "linearizedBaseContracts": [1869, 1986], + "name": "Djed", + "nameLocation": "198:4:6", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "992642e5", + "id": 885, + "mutability": "mutable", + "name": "stableCoin", + "nameLocation": "239:10:6", + "nodeType": "VariableDeclaration", + "scope": 1869, + "src": "227:22:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + }, + "typeName": { + "id": 884, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 883, + "name": "Coin", + "nodeType": "IdentifierPath", + "referencedDeclaration": 874, + "src": "227:4:6" + }, + "referencedDeclaration": 874, + "src": "227:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "bfebe182", + "id": 888, + "mutability": "mutable", + "name": "reserveCoin", + "nameLocation": "267:11:6", + "nodeType": "VariableDeclaration", + "scope": 1869, + "src": "255:23:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + }, + "typeName": { + "id": 887, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 886, + "name": "Coin", + "nodeType": "IdentifierPath", + "referencedDeclaration": 874, + "src": "255:4:6" + }, + "referencedDeclaration": 874, + "src": "255:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "61d027b3", + "id": 890, + "mutability": "immutable", + "name": "treasury", + "nameLocation": "338:8:6", + "nodeType": "VariableDeclaration", + "scope": 1869, + "src": "313:33:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 889, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "313:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "5f00248e", + "id": 892, + "mutability": "immutable", + "name": "initialTreasuryFee", + "nameLocation": "412:18:6", + "nodeType": "VariableDeclaration", + "scope": 1869, + "src": "390:40:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 891, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "390:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "b364e37c", + "id": 894, + "mutability": "immutable", + "name": "treasuryRevenueTarget", + "nameLocation": "497:21:6", + "nodeType": "VariableDeclaration", + "scope": 1869, + "src": "475:43:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 893, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "475:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "824769f8", + "id": 897, + "mutability": "mutable", + "name": "treasuryRevenue", + "nameLocation": "595:15:6", + "nodeType": "VariableDeclaration", + "scope": 1869, + "src": "583:31:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 895, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "583:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "613:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "248f2422", + "id": 899, + "mutability": "immutable", + "name": "reserveRatioMin", + "nameLocation": "761:15:6", + "nodeType": "VariableDeclaration", + "scope": 1869, + "src": "739:37:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 898, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "739:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "e06b63fc", + "id": 901, + "mutability": "immutable", + "name": "reserveRatioMax", + "nameLocation": "804:15:6", + "nodeType": "VariableDeclaration", + "scope": 1869, + "src": "782:37:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 900, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "782:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ddca3f43", + "id": 903, + "mutability": "immutable", + "name": "fee", + "nameLocation": "847:3:6", + "nodeType": "VariableDeclaration", + "scope": 1869, + "src": "825:25:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 902, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "825:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ce797353", + "id": 905, + "mutability": "immutable", + "name": "thresholdSupplySC", + "nameLocation": "878:17:6", + "nodeType": "VariableDeclaration", + "scope": 1869, + "src": "856:39:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 904, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "856:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "4d01dca5", + "id": 907, + "mutability": "immutable", + "name": "rcMinPrice", + "nameLocation": "923:10:6", + "nodeType": "VariableDeclaration", + "scope": 1869, + "src": "901:32:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 906, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "901:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "6caae832", + "id": 909, + "mutability": "immutable", + "name": "txLimit", + "nameLocation": "961:7:6", + "nodeType": "VariableDeclaration", + "scope": 1869, + "src": "939:29:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 908, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "939:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 911, + "mutability": "immutable", + "name": "scalingFactor", + "nameLocation": "1015:13:6", + "nodeType": "VariableDeclaration", + "scope": 1869, + "src": "1000:28:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 910, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1000:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 913, + "mutability": "immutable", + "name": "scDecimalScalingFactor", + "nameLocation": "1130:22:6", + "nodeType": "VariableDeclaration", + "scope": 1869, + "src": "1115:37:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 912, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1115:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 915, + "mutability": "immutable", + "name": "rcDecimalScalingFactor", + "nameLocation": "1173:22:6", + "nodeType": "VariableDeclaration", + "scope": 1869, + "src": "1158:37:6", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 914, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1158:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "anonymous": false, + "id": 925, + "name": "BoughtStableCoins", + "nameLocation": "1208:17:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 924, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 917, + "indexed": true, + "mutability": "mutable", + "name": "buyer", + "nameLocation": "1242:5:6", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "1226:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1226:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 919, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1265:8:6", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "1249:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 918, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1249:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 921, + "indexed": false, + "mutability": "mutable", + "name": "amountSC", + "nameLocation": "1280:8:6", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "1275:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 920, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1275:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 923, + "indexed": false, + "mutability": "mutable", + "name": "amountBC", + "nameLocation": "1295:8:6", + "nodeType": "VariableDeclaration", + "scope": 925, + "src": "1290:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 922, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1290:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1225:79:6" + }, + "src": "1202:103:6" + }, + { + "anonymous": false, + "id": 935, + "name": "SoldStableCoins", + "nameLocation": "1316:15:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 934, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 927, + "indexed": true, + "mutability": "mutable", + "name": "seller", + "nameLocation": "1348:6:6", + "nodeType": "VariableDeclaration", + "scope": 935, + "src": "1332:22:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 926, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1332:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 929, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1372:8:6", + "nodeType": "VariableDeclaration", + "scope": 935, + "src": "1356:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 928, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1356:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 931, + "indexed": false, + "mutability": "mutable", + "name": "amountSC", + "nameLocation": "1387:8:6", + "nodeType": "VariableDeclaration", + "scope": 935, + "src": "1382:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 930, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1382:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 933, + "indexed": false, + "mutability": "mutable", + "name": "amountBC", + "nameLocation": "1402:8:6", + "nodeType": "VariableDeclaration", + "scope": 935, + "src": "1397:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 932, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1397:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1331:80:6" + }, + "src": "1310:102:6" + }, + { + "anonymous": false, + "id": 945, + "name": "BoughtReserveCoins", + "nameLocation": "1423:18:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 937, + "indexed": true, + "mutability": "mutable", + "name": "buyer", + "nameLocation": "1458:5:6", + "nodeType": "VariableDeclaration", + "scope": 945, + "src": "1442:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 936, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1442:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 939, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1481:8:6", + "nodeType": "VariableDeclaration", + "scope": 945, + "src": "1465:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 938, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1465:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 941, + "indexed": false, + "mutability": "mutable", + "name": "amountRC", + "nameLocation": "1496:8:6", + "nodeType": "VariableDeclaration", + "scope": 945, + "src": "1491:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1491:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 943, + "indexed": false, + "mutability": "mutable", + "name": "amountBC", + "nameLocation": "1511:8:6", + "nodeType": "VariableDeclaration", + "scope": 945, + "src": "1506:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 942, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1506:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1441:79:6" + }, + "src": "1417:104:6" + }, + { + "anonymous": false, + "id": 955, + "name": "SoldReserveCoins", + "nameLocation": "1532:16:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 947, + "indexed": true, + "mutability": "mutable", + "name": "seller", + "nameLocation": "1565:6:6", + "nodeType": "VariableDeclaration", + "scope": 955, + "src": "1549:22:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 946, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1549:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 949, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1589:8:6", + "nodeType": "VariableDeclaration", + "scope": 955, + "src": "1573:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 948, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1573:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 951, + "indexed": false, + "mutability": "mutable", + "name": "amountRC", + "nameLocation": "1604:8:6", + "nodeType": "VariableDeclaration", + "scope": 955, + "src": "1599:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 950, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1599:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 953, + "indexed": false, + "mutability": "mutable", + "name": "amountBC", + "nameLocation": "1619:8:6", + "nodeType": "VariableDeclaration", + "scope": 955, + "src": "1614:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 952, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1614:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1548:80:6" + }, + "src": "1526:103:6" + }, + { + "anonymous": false, + "id": 967, + "name": "SoldBothCoins", + "nameLocation": "1640:13:6", + "nodeType": "EventDefinition", + "parameters": { + "id": 966, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 957, + "indexed": true, + "mutability": "mutable", + "name": "seller", + "nameLocation": "1670:6:6", + "nodeType": "VariableDeclaration", + "scope": 967, + "src": "1654:22:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 956, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1654:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 959, + "indexed": true, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "1694:8:6", + "nodeType": "VariableDeclaration", + "scope": 967, + "src": "1678:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 958, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1678:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 961, + "indexed": false, + "mutability": "mutable", + "name": "amountSC", + "nameLocation": "1709:8:6", + "nodeType": "VariableDeclaration", + "scope": 967, + "src": "1704:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 960, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1704:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 963, + "indexed": false, + "mutability": "mutable", + "name": "amountRC", + "nameLocation": "1724:8:6", + "nodeType": "VariableDeclaration", + "scope": 967, + "src": "1719:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 962, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1719:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 965, + "indexed": false, + "mutability": "mutable", + "name": "amountBC", + "nameLocation": "1739:8:6", + "nodeType": "VariableDeclaration", + "scope": 967, + "src": "1734:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1734:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1653:95:6" + }, + "src": "1634:115:6" + }, + { + "body": { + "id": 1072, + "nodeType": "Block", + "src": "2030:669:6", + "statements": [ + { + "expression": { + "id": 999, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 992, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "2040:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "537461626c65436f696e", + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2062:12:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b", + "typeString": "literal_string \"StableCoin\"" + }, + "value": "StableCoin" + }, + { + "hexValue": "5343", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2076:4:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e0f6b2c259439cb874f16df9bd0da748265587d70fd9479b33dccc16a6b451e0", + "typeString": "literal_string \"SC\"" + }, + "value": "SC" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_89024d8aabadd3db9a18ad9f6c11ac3a0425805aed88fef43d1bc93706911f0b", + "typeString": "literal_string \"StableCoin\"" + }, + { + "typeIdentifier": "t_stringliteral_e0f6b2c259439cb874f16df9bd0da748265587d70fd9479b33dccc16a6b451e0", + "typeString": "literal_string \"SC\"" + } + ], + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2053:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_Coin_$874_$", + "typeString": "function (string memory,string memory) returns (contract Coin)" + }, + "typeName": { + "id": 994, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 993, + "name": "Coin", + "nodeType": "IdentifierPath", + "referencedDeclaration": 874, + "src": "2057:4:6" + }, + "referencedDeclaration": 874, + "src": "2057:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + } + }, + "id": 998, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2053:28:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "src": "2040:41:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1000, + "nodeType": "ExpressionStatement", + "src": "2040:41:6" + }, + { + "expression": { + "id": 1008, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1001, + "name": "reserveCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "2091:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "hexValue": "52657365727665436f696e", + "id": 1005, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2114:13:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3b2bd3daf9fdb5f07b692e1abe19b1c3b746e22bcc105483950b92e38c47fab2", + "typeString": "literal_string \"ReserveCoin\"" + }, + "value": "ReserveCoin" + }, + { + "hexValue": "5243", + "id": 1006, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2129:4:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_fa35b021d5bda1c04c04da86694705ee13ae0ffc031397c40508a79dd69b65cb", + "typeString": "literal_string \"RC\"" + }, + "value": "RC" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_3b2bd3daf9fdb5f07b692e1abe19b1c3b746e22bcc105483950b92e38c47fab2", + "typeString": "literal_string \"ReserveCoin\"" + }, + { + "typeIdentifier": "t_stringliteral_fa35b021d5bda1c04c04da86694705ee13ae0ffc031397c40508a79dd69b65cb", + "typeString": "literal_string \"RC\"" + } + ], + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "2105:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$_t_contract$_Coin_$874_$", + "typeString": "function (string memory,string memory) returns (contract Coin)" + }, + "typeName": { + "id": 1003, + "nodeType": "UserDefinedTypeName", + "pathNode": { + "id": 1002, + "name": "Coin", + "nodeType": "IdentifierPath", + "referencedDeclaration": 874, + "src": "2109:4:6" + }, + "referencedDeclaration": 874, + "src": "2109:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + } + }, + "id": 1007, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2105:29:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "src": "2091:43:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1009, + "nodeType": "ExpressionStatement", + "src": "2091:43:6" + }, + { + "expression": { + "id": 1016, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1010, + "name": "scDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "2144:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2169:2:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1012, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "2173:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 843, + "src": "2173:19:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 1014, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2173:21:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "2169:25:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2144:50:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1017, + "nodeType": "ExpressionStatement", + "src": "2144:50:6" + }, + { + "expression": { + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1018, + "name": "rcDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 915, + "src": "2204:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1023, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3130", + "id": 1019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2229:2:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "nodeType": "BinaryOperation", + "operator": "**", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1020, + "name": "reserveCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "2233:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1021, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "decimals", + "nodeType": "MemberAccess", + "referencedDeclaration": 843, + "src": "2233:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint8_$", + "typeString": "function () view external returns (uint8)" + } + }, + "id": 1022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2233:22:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "2229:26:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2204:51:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1025, + "nodeType": "ExpressionStatement", + "src": "2204:51:6" + }, + { + "expression": { + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1026, + "name": "oracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "2265:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOracle_$1893", + "typeString": "contract IOracle" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 1028, + "name": "oracleAddress", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 969, + "src": "2282:13:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1027, + "name": "IOracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1893, + "src": "2274:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IOracle_$1893_$", + "typeString": "type(contract IOracle)" + } + }, + "id": 1029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2274:22:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOracle_$1893", + "typeString": "contract IOracle" + } + }, + "src": "2265:31:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOracle_$1893", + "typeString": "contract IOracle" + } + }, + "id": 1031, + "nodeType": "ExpressionStatement", + "src": "2265:31:6" + }, + { + "expression": { + "id": 1034, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1032, + "name": "scalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 911, + "src": "2306:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1033, + "name": "_scalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 971, + "src": "2322:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2306:30:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1035, + "nodeType": "ExpressionStatement", + "src": "2306:30:6" + }, + { + "expression": { + "id": 1038, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1036, + "name": "treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 890, + "src": "2347:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1037, + "name": "_treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 973, + "src": "2358:9:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "2347:20:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1039, + "nodeType": "ExpressionStatement", + "src": "2347:20:6" + }, + { + "expression": { + "id": 1042, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1040, + "name": "initialTreasuryFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 892, + "src": "2377:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1041, + "name": "_initialTreasuryFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 975, + "src": "2398:19:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2377:40:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1043, + "nodeType": "ExpressionStatement", + "src": "2377:40:6" + }, + { + "expression": { + "id": 1046, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1044, + "name": "treasuryRevenueTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "2427:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1045, + "name": "_treasuryRevenueTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 977, + "src": "2451:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2427:46:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1047, + "nodeType": "ExpressionStatement", + "src": "2427:46:6" + }, + { + "expression": { + "id": 1050, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1048, + "name": "reserveRatioMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 899, + "src": "2484:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1049, + "name": "_reserveRatioMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 979, + "src": "2502:16:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2484:34:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1051, + "nodeType": "ExpressionStatement", + "src": "2484:34:6" + }, + { + "expression": { + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1052, + "name": "reserveRatioMax", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 901, + "src": "2528:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1053, + "name": "_reserveRatioMax", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 981, + "src": "2546:16:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2528:34:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1055, + "nodeType": "ExpressionStatement", + "src": "2528:34:6" + }, + { + "expression": { + "id": 1058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1056, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 903, + "src": "2572:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1057, + "name": "_fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 983, + "src": "2578:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2572:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1059, + "nodeType": "ExpressionStatement", + "src": "2572:10:6" + }, + { + "expression": { + "id": 1062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1060, + "name": "thresholdSupplySC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 905, + "src": "2592:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1061, + "name": "_thresholdSupplySC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 985, + "src": "2612:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2592:38:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1063, + "nodeType": "ExpressionStatement", + "src": "2592:38:6" + }, + { + "expression": { + "id": 1066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1064, + "name": "rcMinPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "2640:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1065, + "name": "_rcMinPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "2653:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2640:24:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1067, + "nodeType": "ExpressionStatement", + "src": "2640:24:6" + }, + { + "expression": { + "id": 1070, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1068, + "name": "txLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 909, + "src": "2674:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1069, + "name": "_txLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "2684:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2674:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1071, + "nodeType": "ExpressionStatement", + "src": "2674:18:6" + } + ] + }, + "id": 1073, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 969, + "mutability": "mutable", + "name": "oracleAddress", + "nameLocation": "1784:13:6", + "nodeType": "VariableDeclaration", + "scope": 1073, + "src": "1776:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1776:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 971, + "mutability": "mutable", + "name": "_scalingFactor", + "nameLocation": "1804:14:6", + "nodeType": "VariableDeclaration", + "scope": 1073, + "src": "1799:19:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 970, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1799:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 973, + "mutability": "mutable", + "name": "_treasury", + "nameLocation": "1828:9:6", + "nodeType": "VariableDeclaration", + "scope": 1073, + "src": "1820:17:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 972, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1820:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 975, + "mutability": "mutable", + "name": "_initialTreasuryFee", + "nameLocation": "1844:19:6", + "nodeType": "VariableDeclaration", + "scope": 1073, + "src": "1839:24:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 974, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1839:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 977, + "mutability": "mutable", + "name": "_treasuryRevenueTarget", + "nameLocation": "1870:22:6", + "nodeType": "VariableDeclaration", + "scope": 1073, + "src": "1865:27:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 976, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1865:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 979, + "mutability": "mutable", + "name": "_reserveRatioMin", + "nameLocation": "1907:16:6", + "nodeType": "VariableDeclaration", + "scope": 1073, + "src": "1902:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 978, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1902:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 981, + "mutability": "mutable", + "name": "_reserveRatioMax", + "nameLocation": "1930:16:6", + "nodeType": "VariableDeclaration", + "scope": 1073, + "src": "1925:21:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 980, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1925:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 983, + "mutability": "mutable", + "name": "_fee", + "nameLocation": "1953:4:6", + "nodeType": "VariableDeclaration", + "scope": 1073, + "src": "1948:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 982, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1948:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 985, + "mutability": "mutable", + "name": "_thresholdSupplySC", + "nameLocation": "1964:18:6", + "nodeType": "VariableDeclaration", + "scope": 1073, + "src": "1959:23:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 984, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1959:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "_rcMinPrice", + "nameLocation": "1989:11:6", + "nodeType": "VariableDeclaration", + "scope": 1073, + "src": "1984:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1984:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "_txLimit", + "nameLocation": "2007:8:6", + "nodeType": "VariableDeclaration", + "scope": 1073, + "src": "2002:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 988, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2002:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1766:255:6" + }, + "returnParameters": { + "id": 991, + "nodeType": "ParameterList", + "parameters": [], + "src": "2030:0:6" + }, + "scope": 1869, + "src": "1755:944:6", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1084, + "nodeType": "Block", + "src": "2809:33:6", + "statements": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 1080, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "2826:4:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Djed_$1869", + "typeString": "contract Djed" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Djed_$1869", + "typeString": "contract Djed" + } + ], + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2818:7:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1078, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2818:7:6", + "typeDescriptions": {} + } + }, + "id": 1081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2818:13:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "2818:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1077, + "id": 1083, + "nodeType": "Return", + "src": "2811:28:6" + } + ] + }, + "functionSelector": "4980e1be", + "id": 1085, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "R", + "nameLocation": "2778:1:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1074, + "nodeType": "ParameterList", + "parameters": [], + "src": "2779:2:6" + }, + "returnParameters": { + "id": 1077, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1076, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1085, + "src": "2803:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1075, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2803:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2802:6:6" + }, + "scope": 1869, + "src": "2769:73:6", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1100, + "nodeType": "Block", + "src": "2902:72:6", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1096, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1092, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "2911:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1093, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 84, + "src": "2911:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2911:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1095, + "name": "_scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1087, + "src": "2938:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2911:35:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1097, + "name": "scDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "2949:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2911:60:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1091, + "id": 1099, + "nodeType": "Return", + "src": "2904:67:6" + } + ] + }, + "id": 1101, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "L", + "nameLocation": "2856:1:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1087, + "mutability": "mutable", + "name": "_scPrice", + "nameLocation": "2863:8:6", + "nodeType": "VariableDeclaration", + "scope": 1101, + "src": "2858:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1086, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2858:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2857:15:6" + }, + "returnParameters": { + "id": 1091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1090, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1101, + "src": "2896:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1089, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2896:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2895:6:6" + }, + "scope": 1869, + "src": "2847:127:6", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1111, + "nodeType": "Block", + "src": "3021:24:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1107, + "name": "scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "3032:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1108, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3032:9:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1106, + "name": "L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "3030:1:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3030:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1105, + "id": 1110, + "nodeType": "Return", + "src": "3023:19:6" + } + ] + }, + "functionSelector": "9f13f76d", + "id": 1112, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "L", + "nameLocation": "2988:1:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1102, + "nodeType": "ParameterList", + "parameters": [], + "src": "2989:2:6" + }, + "returnParameters": { + "id": 1105, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1104, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1112, + "src": "3015:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1103, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3015:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3014:6:6" + }, + "scope": 1869, + "src": "2979:66:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1126, + "nodeType": "Block", + "src": "3105:29:6", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1119, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "3114:1:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1120, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3114:3:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "id": 1122, + "name": "_scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "3122:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1121, + "name": "L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "3120:1:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 1123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3120:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3114:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1118, + "id": 1125, + "nodeType": "Return", + "src": "3107:24:6" + } + ] + }, + "id": 1127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "E", + "nameLocation": "3059:1:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1115, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1114, + "mutability": "mutable", + "name": "_scPrice", + "nameLocation": "3066:8:6", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "3061:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1113, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3061:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3060:15:6" + }, + "returnParameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1127, + "src": "3099:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1116, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3099:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3098:6:6" + }, + "scope": 1869, + "src": "3050:84:6", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1137, + "nodeType": "Block", + "src": "3181:24:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1133, + "name": "scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "3192:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3192:9:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1132, + "name": "E", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1127, + "src": "3190:1:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 1135, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3190:12:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1131, + "id": 1136, + "nodeType": "Return", + "src": "3183:19:6" + } + ] + }, + "functionSelector": "92bbf6e8", + "id": 1138, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "E", + "nameLocation": "3148:1:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1128, + "nodeType": "ParameterList", + "parameters": [], + "src": "3149:2:6" + }, + "returnParameters": { + "id": 1131, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1130, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1138, + "src": "3175:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1129, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3175:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3174:6:6" + }, + "scope": 1869, + "src": "3139:66:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1152, + "nodeType": "Block", + "src": "3269:27:6", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1145, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "3278:1:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1146, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3278:3:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "arguments": [ + { + "id": 1148, + "name": "_scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1140, + "src": "3284:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1147, + "name": "L", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1101, + "src": "3282:1:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 1149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3282:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3278:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1144, + "id": 1151, + "nodeType": "Return", + "src": "3271:22:6" + } + ] + }, + "id": 1153, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ratio", + "nameLocation": "3219:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1140, + "mutability": "mutable", + "name": "_scPrice", + "nameLocation": "3230:8:6", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "3225:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1139, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3225:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3224:15:6" + }, + "returnParameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "3263:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1142, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3263:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3262:6:6" + }, + "scope": 1869, + "src": "3210:86:6", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1163, + "nodeType": "Block", + "src": "3347:28:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1159, + "name": "scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "3362:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3362:9:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1158, + "name": "ratio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "3356:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 1161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3356:16:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1157, + "id": 1162, + "nodeType": "Return", + "src": "3349:23:6" + } + ] + }, + "functionSelector": "71ca337d", + "id": 1164, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ratio", + "nameLocation": "3310:5:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1154, + "nodeType": "ParameterList", + "parameters": [], + "src": "3315:2:6" + }, + "returnParameters": { + "id": 1157, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1156, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1164, + "src": "3341:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1155, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3341:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3340:6:6" + }, + "scope": 1869, + "src": "3301:74:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1232, + "nodeType": "Block", + "src": "3506:536:6", + "statements": [ + { + "assignments": [1174], + "declarations": [ + { + "constant": false, + "id": 1174, + "mutability": "mutable", + "name": "amountBC", + "nameLocation": "3521:8:6", + "nodeType": "VariableDeclaration", + "scope": 1232, + "src": "3516:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1173, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3516:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1181, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 1176, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3543:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "3543:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1178, + "name": "fee_ui", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1168, + "src": "3554:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1179, + "name": "ui", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1170, + "src": "3562:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1175, + "name": "deductFees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1691, + "src": "3532:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,address) returns (uint256)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3532:33:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3516:49:6" + }, + { + "assignments": [1183], + "declarations": [ + { + "constant": false, + "id": 1183, + "mutability": "mutable", + "name": "scP", + "nameLocation": "3653:3:6", + "nodeType": "VariableDeclaration", + "scope": 1232, + "src": "3648:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1182, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3648:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1186, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1184, + "name": "scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "3659:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3659:9:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3648:20:6" + }, + { + "assignments": [1188], + "declarations": [ + { + "constant": false, + "id": 1188, + "mutability": "mutable", + "name": "amountSC", + "nameLocation": "3683:8:6", + "nodeType": "VariableDeclaration", + "scope": 1232, + "src": "3678:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1187, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3678:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1195, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1191, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1189, + "name": "amountBC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "3695:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1190, + "name": "scDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "3706:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3695:33:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1192, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "3694:35:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1193, + "name": "scP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1183, + "src": "3732:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3694:41:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3678:57:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1197, + "name": "amountSC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1188, + "src": "3753:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1198, + "name": "txLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 909, + "src": "3765:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3753:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1200, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "3776:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 84, + "src": "3776:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3776:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1203, + "name": "thresholdSupplySC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 905, + "src": "3804:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3776:45:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "3753:68:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "62757953433a207478206c696d6974206578636565646564", + "id": 1206, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3823:26:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_4fe7186996b24ad0f1d2b61108a9136072bea31b2931fd61ae6eb002de0deba7", + "typeString": "literal_string \"buySC: tx limit exceeded\"" + }, + "value": "buySC: tx limit exceeded" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_4fe7186996b24ad0f1d2b61108a9136072bea31b2931fd61ae6eb002de0deba7", + "typeString": "literal_string \"buySC: tx limit exceeded\"" + } + ], + "id": 1196, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3745:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1207, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3745:105:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1208, + "nodeType": "ExpressionStatement", + "src": "3745:105:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1212, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1166, + "src": "3876:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1213, + "name": "amountSC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1188, + "src": "3886:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1209, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "3860:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 858, + "src": "3860:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3860:35:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1215, + "nodeType": "ExpressionStatement", + "src": "3860:35:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1218, + "name": "scP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1183, + "src": "3929:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1217, + "name": "isRatioAboveMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1714, + "src": "3913:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 1219, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3913:20:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "62757953433a20726174696f2062656c6f77206d696e", + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3935:24:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5415c6bc063fa3b296f2de5be5a1f52fd9b2ff5166d5b099afbff0644d530c89", + "typeString": "literal_string \"buySC: ratio below min\"" + }, + "value": "buySC: ratio below min" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5415c6bc063fa3b296f2de5be5a1f52fd9b2ff5166d5b099afbff0644d530c89", + "typeString": "literal_string \"buySC: ratio below min\"" + } + ], + "id": 1216, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3905:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1221, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3905:55:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1222, + "nodeType": "ExpressionStatement", + "src": "3905:55:6" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1224, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3993:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1225, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3993:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1226, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1166, + "src": "4005:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1227, + "name": "amountSC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1188, + "src": "4015:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1228, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4025:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "4025:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1223, + "name": "BoughtStableCoins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 925, + "src": "3975:17:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3975:60:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1231, + "nodeType": "EmitStatement", + "src": "3970:65:6" + } + ] + }, + "functionSelector": "574a3093", + "id": 1233, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "buyStableCoins", + "nameLocation": "3431:14:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1171, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1166, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "3454:8:6", + "nodeType": "VariableDeclaration", + "scope": 1233, + "src": "3446:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1165, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3446:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1168, + "mutability": "mutable", + "name": "fee_ui", + "nameLocation": "3469:6:6", + "nodeType": "VariableDeclaration", + "scope": 1233, + "src": "3464:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1167, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3464:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1170, + "mutability": "mutable", + "name": "ui", + "nameLocation": "3485:2:6", + "nodeType": "VariableDeclaration", + "scope": 1233, + "src": "3477:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1169, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3477:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3445:43:6" + }, + "returnParameters": { + "id": 1172, + "nodeType": "ParameterList", + "parameters": [], + "src": "3506:0:6" + }, + "scope": 1869, + "src": "3422:620:6", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1313, + "nodeType": "Block", + "src": "4140:606:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 1247, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4179:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1248, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4179:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1245, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "4158:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 98, + "src": "4158:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1249, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4158:32:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1250, + "name": "amountSC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1235, + "src": "4194:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4158:44:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "73656c6c53433a20696e73756666696369656e742053432062616c616e6365", + "id": 1252, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4204:33:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b6f4d8f617b05fd93759c7a981804105fd74f25f9e3f5b6dcb333ccf6ec904d", + "typeString": "literal_string \"sellSC: insufficient SC balance\"" + }, + "value": "sellSC: insufficient SC balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b6f4d8f617b05fd93759c7a981804105fd74f25f9e3f5b6dcb333ccf6ec904d", + "typeString": "literal_string \"sellSC: insufficient SC balance\"" + } + ], + "id": 1244, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4150:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1253, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4150:88:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1254, + "nodeType": "ExpressionStatement", + "src": "4150:88:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1256, + "name": "amountSC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1235, + "src": "4256:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1257, + "name": "txLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 909, + "src": "4268:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4256:19:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1259, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "4279:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1260, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 84, + "src": "4279:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4279:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1262, + "name": "thresholdSupplySC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 905, + "src": "4307:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4279:45:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4256:68:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "73656c6c53433a207478206c696d6974206578636565646564", + "id": 1265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4326:27:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_3aa1e11dd316ada80379525aecda6d9741e5108130bce291f9fe3e927e399fc0", + "typeString": "literal_string \"sellSC: tx limit exceeded\"" + }, + "value": "sellSC: tx limit exceeded" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_3aa1e11dd316ada80379525aecda6d9741e5108130bce291f9fe3e927e399fc0", + "typeString": "literal_string \"sellSC: tx limit exceeded\"" + } + ], + "id": 1255, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4248:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4248:106:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1267, + "nodeType": "ExpressionStatement", + "src": "4248:106:6" + }, + { + "assignments": [1269], + "declarations": [ + { + "constant": false, + "id": 1269, + "mutability": "mutable", + "name": "scP", + "nameLocation": "4369:3:6", + "nodeType": "VariableDeclaration", + "scope": 1313, + "src": "4364:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1268, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4364:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1272, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1270, + "name": "scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "4375:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1271, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4375:9:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4364:20:6" + }, + { + "assignments": [1274], + "declarations": [ + { + "constant": false, + "id": 1274, + "mutability": "mutable", + "name": "value", + "nameLocation": "4399:5:6", + "nodeType": "VariableDeclaration", + "scope": 1313, + "src": "4394:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1273, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4394:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1280, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1275, + "name": "amountSC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1235, + "src": "4407:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1276, + "name": "scP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1269, + "src": "4418:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4407:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1278, + "name": "scDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "4424:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4407:39:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4394:52:6" + }, + { + "assignments": [1282], + "declarations": [ + { + "constant": false, + "id": 1282, + "mutability": "mutable", + "name": "amountBC", + "nameLocation": "4461:8:6", + "nodeType": "VariableDeclaration", + "scope": 1313, + "src": "4456:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1281, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4456:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1288, + "initialValue": { + "arguments": [ + { + "id": 1284, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1274, + "src": "4483:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1285, + "name": "fee_ui", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1239, + "src": "4490:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1286, + "name": "ui", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1241, + "src": "4498:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1283, + "name": "deductFees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1691, + "src": "4472:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,address) returns (uint256)" + } + }, + "id": 1287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4472:29:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4456:45:6" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1292, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4600:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4600:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1294, + "name": "amountSC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1235, + "src": "4612:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1289, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "4584:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 873, + "src": "4584:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1295, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4584:37:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1296, + "nodeType": "ExpressionStatement", + "src": "4584:37:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1302, + "name": "amountBC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1282, + "src": "4658:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1299, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1237, + "src": "4639:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1298, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4631:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 1297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4631:8:6", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 1300, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4631:17:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "4631:26:6", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4631:36:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1304, + "nodeType": "ExpressionStatement", + "src": "4631:36:6" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1306, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4698:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1307, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "4698:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1308, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1237, + "src": "4710:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1309, + "name": "amountSC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1235, + "src": "4720:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1310, + "name": "amountBC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1282, + "src": "4730:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1305, + "name": "SoldStableCoins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 935, + "src": "4682:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4682:57:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1312, + "nodeType": "EmitStatement", + "src": "4677:62:6" + } + ] + }, + "functionSelector": "7a4f8cba", + "id": 1314, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sellStableCoins", + "nameLocation": "4057:15:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1242, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1235, + "mutability": "mutable", + "name": "amountSC", + "nameLocation": "4078:8:6", + "nodeType": "VariableDeclaration", + "scope": 1314, + "src": "4073:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1234, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4073:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1237, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "4096:8:6", + "nodeType": "VariableDeclaration", + "scope": 1314, + "src": "4088:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4088:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1239, + "mutability": "mutable", + "name": "fee_ui", + "nameLocation": "4111:6:6", + "nodeType": "VariableDeclaration", + "scope": 1314, + "src": "4106:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1238, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4106:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1241, + "mutability": "mutable", + "name": "ui", + "nameLocation": "4127:2:6", + "nodeType": "VariableDeclaration", + "scope": 1314, + "src": "4119:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1240, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4119:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4072:58:6" + }, + "returnParameters": { + "id": 1243, + "nodeType": "ParameterList", + "parameters": [], + "src": "4140:0:6" + }, + "scope": 1869, + "src": "4048:698:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1395, + "nodeType": "Block", + "src": "4837:635:6", + "statements": [ + { + "assignments": [1324], + "declarations": [ + { + "constant": false, + "id": 1324, + "mutability": "mutable", + "name": "scP", + "nameLocation": "4852:3:6", + "nodeType": "VariableDeclaration", + "scope": 1395, + "src": "4847:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1323, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4847:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1327, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1325, + "name": "scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "4858:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4858:9:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4847:20:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1342, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1329, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "4885:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "4885:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1331, + "name": "txLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 909, + "src": "4898:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1332, + "name": "scP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1324, + "src": "4909:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4898:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1334, + "name": "scDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "4915:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4898:39:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4885:52:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1337, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "4941:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 84, + "src": "4941:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4941:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1340, + "name": "thresholdSupplySC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 905, + "src": "4969:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4941:45:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "4885:101:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "62757952433a207478206c696d6974206578636565646564", + "id": 1343, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4988:26:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_bd03837a08f168a40724e2eb339a12b246bb84006664616f15f28d79be2cb622", + "typeString": "literal_string \"buyRC: tx limit exceeded\"" + }, + "value": "buyRC: tx limit exceeded" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_bd03837a08f168a40724e2eb339a12b246bb84006664616f15f28d79be2cb622", + "typeString": "literal_string \"buyRC: tx limit exceeded\"" + } + ], + "id": 1328, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4877:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4877:138:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1345, + "nodeType": "ExpressionStatement", + "src": "4877:138:6" + }, + { + "assignments": [1347], + "declarations": [ + { + "constant": false, + "id": 1347, + "mutability": "mutable", + "name": "amountBC", + "nameLocation": "5030:8:6", + "nodeType": "VariableDeclaration", + "scope": 1395, + "src": "5025:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1346, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5025:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1354, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 1349, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5052:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "5052:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1351, + "name": "fee_ui", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1318, + "src": "5063:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1352, + "name": "ui", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1320, + "src": "5071:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1348, + "name": "deductFees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1691, + "src": "5041:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,address) returns (uint256)" + } + }, + "id": 1353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5041:33:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5025:49:6" + }, + { + "assignments": [1356], + "declarations": [ + { + "constant": false, + "id": 1356, + "mutability": "mutable", + "name": "amountRC", + "nameLocation": "5162:8:6", + "nodeType": "VariableDeclaration", + "scope": 1395, + "src": "5157:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1355, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5157:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1365, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1359, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1357, + "name": "amountBC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1347, + "src": "5174:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1358, + "name": "rcDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 915, + "src": "5185:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5174:33:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1360, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5173:35:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "arguments": [ + { + "id": 1362, + "name": "scP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1324, + "src": "5225:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1361, + "name": "rcBuyingPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "5211:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 1363, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5211:18:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5173:56:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5157:72:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1369, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1316, + "src": "5256:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1370, + "name": "amountRC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1356, + "src": "5266:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1366, + "name": "reserveCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "5239:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "mint", + "nodeType": "MemberAccess", + "referencedDeclaration": 858, + "src": "5239:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5239:36:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1372, + "nodeType": "ExpressionStatement", + "src": "5239:36:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1375, + "name": "scP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1324, + "src": "5309:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1374, + "name": "isRatioBelowMax", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1737, + "src": "5293:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 1376, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5293:20:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1377, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "5317:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 84, + "src": "5317:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5317:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1380, + "name": "thresholdSupplySC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 905, + "src": "5345:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5317:45:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5293:69:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "62757952433a20726174696f2061626f7665206d6178", + "id": 1383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5364:24:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b1c77569b873f66c95d060f6baa63268a591746d18822833dbbfd2df6c4a7f24", + "typeString": "literal_string \"buyRC: ratio above max\"" + }, + "value": "buyRC: ratio above max" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b1c77569b873f66c95d060f6baa63268a591746d18822833dbbfd2df6c4a7f24", + "typeString": "literal_string \"buyRC: ratio above max\"" + } + ], + "id": 1373, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5285:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5285:104:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1385, + "nodeType": "ExpressionStatement", + "src": "5285:104:6" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1387, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5423:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5423:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1389, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1316, + "src": "5435:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1390, + "name": "amountRC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1356, + "src": "5445:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "expression": { + "id": 1391, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5455:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1392, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "5455:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1386, + "name": "BoughtReserveCoins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 945, + "src": "5404:18:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5404:61:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1394, + "nodeType": "EmitStatement", + "src": "5399:66:6" + } + ] + }, + "functionSelector": "b77e31f9", + "id": 1396, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "buyReserveCoins", + "nameLocation": "4761:15:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1321, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1316, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "4785:8:6", + "nodeType": "VariableDeclaration", + "scope": 1396, + "src": "4777:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1315, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4777:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1318, + "mutability": "mutable", + "name": "fee_ui", + "nameLocation": "4800:6:6", + "nodeType": "VariableDeclaration", + "scope": 1396, + "src": "4795:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1317, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4795:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1320, + "mutability": "mutable", + "name": "ui", + "nameLocation": "4816:2:6", + "nodeType": "VariableDeclaration", + "scope": 1396, + "src": "4808:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1319, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4808:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4776:43:6" + }, + "returnParameters": { + "id": 1322, + "nodeType": "ParameterList", + "parameters": [], + "src": "4837:0:6" + }, + "scope": 1869, + "src": "4752:720:6", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1489, + "nodeType": "Block", + "src": "5574:719:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 1410, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "5614:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "5614:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1408, + "name": "reserveCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "5592:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 98, + "src": "5592:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5592:33:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1413, + "name": "amountRC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1398, + "src": "5629:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5592:45:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "73656c6c52433a20696e73756666696369656e742052432062616c616e6365", + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5639:33:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_480a439b416c315625264dff327c0dcf53464dddf7cdac850055a8d56198d05f", + "typeString": "literal_string \"sellRC: insufficient RC balance\"" + }, + "value": "sellRC: insufficient RC balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_480a439b416c315625264dff327c0dcf53464dddf7cdac850055a8d56198d05f", + "typeString": "literal_string \"sellRC: insufficient RC balance\"" + } + ], + "id": 1407, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5584:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5584:89:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1417, + "nodeType": "ExpressionStatement", + "src": "5584:89:6" + }, + { + "assignments": [1419], + "declarations": [ + { + "constant": false, + "id": 1419, + "mutability": "mutable", + "name": "scP", + "nameLocation": "5689:3:6", + "nodeType": "VariableDeclaration", + "scope": 1489, + "src": "5684:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1418, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5684:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1422, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1420, + "name": "scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "5695:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5695:9:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5684:20:6" + }, + { + "assignments": [1424], + "declarations": [ + { + "constant": false, + "id": 1424, + "mutability": "mutable", + "name": "value", + "nameLocation": "5719:5:6", + "nodeType": "VariableDeclaration", + "scope": 1489, + "src": "5714:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1423, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5714:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1432, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1425, + "name": "amountRC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1398, + "src": "5727:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 1427, + "name": "scP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1419, + "src": "5752:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1426, + "name": "rcTargetPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1834, + "src": "5738:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 1428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5738:18:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5727:29:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1430, + "name": "rcDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 915, + "src": "5759:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5727:54:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5714:67:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1446, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1434, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1424, + "src": "5799:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1437, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1435, + "name": "txLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 909, + "src": "5808:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1436, + "name": "scP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1419, + "src": "5818:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5808:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1438, + "name": "scDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "5824:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5808:38:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5799:47:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1445, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1441, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "5850:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 84, + "src": "5850:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5850:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1444, + "name": "thresholdSupplySC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 905, + "src": "5878:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5850:45:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "5799:96:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "73656c6c52433a207478206c696d6974206578636565646564", + "id": 1447, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5897:27:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_650e296c96d77eb6d2a260dc6c5a2d6ccc3c5712f36621fabf17659b7cb52917", + "typeString": "literal_string \"sellRC: tx limit exceeded\"" + }, + "value": "sellRC: tx limit exceeded" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_650e296c96d77eb6d2a260dc6c5a2d6ccc3c5712f36621fabf17659b7cb52917", + "typeString": "literal_string \"sellRC: tx limit exceeded\"" + } + ], + "id": 1433, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5791:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1448, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5791:134:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1449, + "nodeType": "ExpressionStatement", + "src": "5791:134:6" + }, + { + "assignments": [1451], + "declarations": [ + { + "constant": false, + "id": 1451, + "mutability": "mutable", + "name": "amountBC", + "nameLocation": "5940:8:6", + "nodeType": "VariableDeclaration", + "scope": 1489, + "src": "5935:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1450, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5935:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1457, + "initialValue": { + "arguments": [ + { + "id": 1453, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1424, + "src": "5962:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1454, + "name": "fee_ui", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1402, + "src": "5969:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1455, + "name": "ui", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1404, + "src": "5977:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1452, + "name": "deductFees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1691, + "src": "5951:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,address) returns (uint256)" + } + }, + "id": 1456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5951:29:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5935:45:6" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1461, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6080:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1462, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6080:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1463, + "name": "amountRC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1398, + "src": "6092:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1458, + "name": "reserveCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "6063:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 873, + "src": "6063:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1464, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6063:38:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1465, + "nodeType": "ExpressionStatement", + "src": "6063:38:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1471, + "name": "amountBC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1451, + "src": "6138:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1468, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1400, + "src": "6119:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1467, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6111:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 1466, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6111:8:6", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 1469, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6111:17:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "6111:26:6", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6111:36:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1473, + "nodeType": "ExpressionStatement", + "src": "6111:36:6" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1476, + "name": "scP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1419, + "src": "6181:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1475, + "name": "isRatioAboveMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1714, + "src": "6165:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 1477, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6165:20:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "73656c6c52433a20726174696f2062656c6f77206d696e", + "id": 1478, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6187:25:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_442fc2faa600bf718cfc7ab8ebe9cc4805442b3c671d169652a1f1d61fa5835a", + "typeString": "literal_string \"sellRC: ratio below min\"" + }, + "value": "sellRC: ratio below min" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_442fc2faa600bf718cfc7ab8ebe9cc4805442b3c671d169652a1f1d61fa5835a", + "typeString": "literal_string \"sellRC: ratio below min\"" + } + ], + "id": 1474, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "6157:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1479, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6157:56:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1480, + "nodeType": "ExpressionStatement", + "src": "6157:56:6" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1482, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6245:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6245:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1484, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1400, + "src": "6257:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1485, + "name": "amountRC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1398, + "src": "6267:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1486, + "name": "amountBC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1451, + "src": "6277:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1481, + "name": "SoldReserveCoins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 955, + "src": "6228:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256)" + } + }, + "id": 1487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6228:58:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1488, + "nodeType": "EmitStatement", + "src": "6223:63:6" + } + ] + }, + "functionSelector": "1ac8fc2f", + "id": 1490, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sellReserveCoins", + "nameLocation": "5490:16:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1405, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1398, + "mutability": "mutable", + "name": "amountRC", + "nameLocation": "5512:8:6", + "nodeType": "VariableDeclaration", + "scope": 1490, + "src": "5507:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1397, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5507:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1400, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "5530:8:6", + "nodeType": "VariableDeclaration", + "scope": 1490, + "src": "5522:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1399, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5522:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1402, + "mutability": "mutable", + "name": "fee_ui", + "nameLocation": "5545:6:6", + "nodeType": "VariableDeclaration", + "scope": 1490, + "src": "5540:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1401, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5540:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1404, + "mutability": "mutable", + "name": "ui", + "nameLocation": "5561:2:6", + "nodeType": "VariableDeclaration", + "scope": 1490, + "src": "5553:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1403, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5553:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5506:58:6" + }, + "returnParameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [], + "src": "5574:0:6" + }, + "scope": 1869, + "src": "5481:812:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1619, + "nodeType": "Block", + "src": "6404:988:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 1506, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6443:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6443:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1504, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "6422:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 98, + "src": "6422:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6422:32:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1509, + "name": "amountSC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "6458:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6422:44:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "73656c6c426f74683a20696e73756666696369656e742053432062616c616e6365", + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6468:35:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_65ae2b5d5587635dfbfe58e6c9f56eccdc0c0c72222a11e2f5452e6445923da3", + "typeString": "literal_string \"sellBoth: insufficient SC balance\"" + }, + "value": "sellBoth: insufficient SC balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_65ae2b5d5587635dfbfe58e6c9f56eccdc0c0c72222a11e2f5452e6445923da3", + "typeString": "literal_string \"sellBoth: insufficient SC balance\"" + } + ], + "id": 1503, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "6414:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6414:90:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1513, + "nodeType": "ExpressionStatement", + "src": "6414:90:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 1517, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6545:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6545:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 1515, + "name": "reserveCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "6523:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balanceOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 98, + "src": "6523:21:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view external returns (uint256)" + } + }, + "id": 1519, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6523:33:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1520, + "name": "amountRC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "6560:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6523:45:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "73656c6c426f74683a20696e73756666696369656e742052432062616c616e6365", + "id": 1522, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6570:35:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2ed3a35225dd7cde3fa56660d85e558f8e41560e2316ba4e502c27911e8f237f", + "typeString": "literal_string \"sellBoth: insufficient RC balance\"" + }, + "value": "sellBoth: insufficient RC balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2ed3a35225dd7cde3fa56660d85e558f8e41560e2316ba4e502c27911e8f237f", + "typeString": "literal_string \"sellBoth: insufficient RC balance\"" + } + ], + "id": 1514, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "6515:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1523, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6515:91:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1524, + "nodeType": "ExpressionStatement", + "src": "6515:91:6" + }, + { + "assignments": [1526], + "declarations": [ + { + "constant": false, + "id": 1526, + "mutability": "mutable", + "name": "scP", + "nameLocation": "6621:3:6", + "nodeType": "VariableDeclaration", + "scope": 1619, + "src": "6616:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1525, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6616:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1529, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1527, + "name": "scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "6627:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6627:9:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6616:20:6" + }, + { + "assignments": [1531], + "declarations": [ + { + "constant": false, + "id": 1531, + "mutability": "mutable", + "name": "preRatio", + "nameLocation": "6651:8:6", + "nodeType": "VariableDeclaration", + "scope": 1619, + "src": "6646:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1530, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6646:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1535, + "initialValue": { + "arguments": [ + { + "id": 1533, + "name": "scP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1526, + "src": "6668:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1532, + "name": "ratio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "6662:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 1534, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6662:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6646:26:6" + }, + { + "assignments": [1537], + "declarations": [ + { + "constant": false, + "id": 1537, + "mutability": "mutable", + "name": "value", + "nameLocation": "6687:5:6", + "nodeType": "VariableDeclaration", + "scope": 1619, + "src": "6682:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1536, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6682:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1551, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1542, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1538, + "name": "amountSC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "6695:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1539, + "name": "scP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1526, + "src": "6706:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6695:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1541, + "name": "scDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "6712:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6695:39:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1543, + "name": "amountRC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "6758:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 1545, + "name": "scP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1526, + "src": "6783:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1544, + "name": "rcTargetPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1834, + "src": "6769:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 1546, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6769:18:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6758:29:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1548, + "name": "rcDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 915, + "src": "6790:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6758:54:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6695:117:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "6682:130:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 1565, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1559, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1553, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1537, + "src": "6830:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1558, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1554, + "name": "txLimit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 909, + "src": "6839:7:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1555, + "name": "scP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1526, + "src": "6849:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6839:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1557, + "name": "scDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "6855:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6839:38:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6830:47:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1564, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1560, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "6881:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1561, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 84, + "src": "6881:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6881:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1563, + "name": "thresholdSupplySC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 905, + "src": "6909:17:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6881:45:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "6830:96:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "73656c6c426f74683a207478206c696d6974206578636565646564", + "id": 1566, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6928:29:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_65e236559dafdf1df6535e51309ead46fb081456a76a26150992bb03b61ee0e8", + "typeString": "literal_string \"sellBoth: tx limit exceeded\"" + }, + "value": "sellBoth: tx limit exceeded" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_65e236559dafdf1df6535e51309ead46fb081456a76a26150992bb03b61ee0e8", + "typeString": "literal_string \"sellBoth: tx limit exceeded\"" + } + ], + "id": 1552, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "6822:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6822:136:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1568, + "nodeType": "ExpressionStatement", + "src": "6822:136:6" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1572, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6984:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1573, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6984:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1574, + "name": "amountSC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "6996:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1569, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "6968:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1571, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 873, + "src": "6968:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6968:37:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1576, + "nodeType": "ExpressionStatement", + "src": "6968:37:6" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1580, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "7032:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1581, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7032:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1582, + "name": "amountRC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "7044:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1577, + "name": "reserveCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "7015:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "burn", + "nodeType": "MemberAccess", + "referencedDeclaration": 873, + "src": "7015:16:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256) external" + } + }, + "id": 1583, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7015:38:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1584, + "nodeType": "ExpressionStatement", + "src": "7015:38:6" + }, + { + "assignments": [1586], + "declarations": [ + { + "constant": false, + "id": 1586, + "mutability": "mutable", + "name": "amountBC", + "nameLocation": "7068:8:6", + "nodeType": "VariableDeclaration", + "scope": 1619, + "src": "7063:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1585, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7063:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1592, + "initialValue": { + "arguments": [ + { + "id": 1588, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1537, + "src": "7090:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1589, + "name": "fee_ui", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1498, + "src": "7097:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1590, + "name": "ui", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1500, + "src": "7105:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1587, + "name": "deductFees", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1691, + "src": "7079:10:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256,address) returns (uint256)" + } + }, + "id": 1591, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7079:29:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7063:45:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1598, + "name": "amountBC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1586, + "src": "7218:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1595, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1496, + "src": "7199:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1594, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7191:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 1593, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7191:8:6", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 1596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7191:17:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "7191:26:6", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1599, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7191:36:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1600, + "nodeType": "ExpressionStatement", + "src": "7191:36:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1606, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1603, + "name": "scP", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1526, + "src": "7251:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1602, + "name": "ratio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1153, + "src": "7245:5:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7245:10:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1605, + "name": "preRatio", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1531, + "src": "7259:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7245:22:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "73656c6c426f74683a207265736572766520726174696f20646563726561736564", + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7269:35:6", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_af2736abf7a0b33abcef0d278ba48f95fa8420131d719abbb8df4f380ab40636", + "typeString": "literal_string \"sellBoth: reserve ratio decreased\"" + }, + "value": "sellBoth: reserve ratio decreased" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_af2736abf7a0b33abcef0d278ba48f95fa8420131d719abbb8df4f380ab40636", + "typeString": "literal_string \"sellBoth: reserve ratio decreased\"" + } + ], + "id": 1601, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "7237:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7237:68:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1609, + "nodeType": "ExpressionStatement", + "src": "7237:68:6" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1611, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "7334:3:6", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "7334:10:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1613, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1496, + "src": "7346:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1614, + "name": "amountSC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "7356:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1615, + "name": "amountRC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1494, + "src": "7366:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1616, + "name": "amountBC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1586, + "src": "7376:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1610, + "name": "SoldBothCoins", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "7320:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256,uint256,uint256)" + } + }, + "id": 1617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7320:65:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1618, + "nodeType": "EmitStatement", + "src": "7315:70:6" + } + ] + }, + "functionSelector": "334fc513", + "id": 1620, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sellBothCoins", + "nameLocation": "6308:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1501, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "amountSC", + "nameLocation": "6327:8:6", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "6322:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1491, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6322:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1494, + "mutability": "mutable", + "name": "amountRC", + "nameLocation": "6342:8:6", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "6337:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1493, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6337:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1496, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "6360:8:6", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "6352:16:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1495, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6352:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1498, + "mutability": "mutable", + "name": "fee_ui", + "nameLocation": "6375:6:6", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "6370:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1497, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6370:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1500, + "mutability": "mutable", + "name": "ui", + "nameLocation": "6391:2:6", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "6383:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1499, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6383:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6321:73:6" + }, + "returnParameters": { + "id": 1502, + "nodeType": "ParameterList", + "parameters": [], + "src": "6404:0:6" + }, + "scope": 1869, + "src": "6299:1093:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1690, + "nodeType": "Block", + "src": "7509:588:6", + "statements": [ + { + "assignments": [1632], + "declarations": [ + { + "constant": false, + "id": 1632, + "mutability": "mutable", + "name": "f", + "nameLocation": "7524:1:6", + "nodeType": "VariableDeclaration", + "scope": 1690, + "src": "7519:6:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1631, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7519:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1638, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1637, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1635, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "7528:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1634, + "name": "fee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 903, + "src": "7536:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7528:11:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1636, + "name": "scalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 911, + "src": "7542:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7528:27:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7519:36:6" + }, + { + "assignments": [1640], + "declarations": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "f_ui", + "nameLocation": "7570:4:6", + "nodeType": "VariableDeclaration", + "scope": 1690, + "src": "7565:9:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1639, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7565:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1646, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1641, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "7577:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1642, + "name": "fee_ui", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1624, + "src": "7585:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7577:14:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1644, + "name": "scalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 911, + "src": "7594:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7577:30:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7565:42:6" + }, + { + "assignments": [1648], + "declarations": [ + { + "constant": false, + "id": 1648, + "mutability": "mutable", + "name": "f_t", + "nameLocation": "7622:3:6", + "nodeType": "VariableDeclaration", + "scope": 1690, + "src": "7617:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1647, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7617:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1655, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1654, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1649, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "7628:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1650, + "name": "treasuryFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1759, + "src": "7636:11:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7636:13:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7628:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1653, + "name": "scalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 911, + "src": "7652:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7628:37:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "7617:48:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1661, + "name": "f_ui", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "7826:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1658, + "name": "ui", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1626, + "src": "7813:2:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1657, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7805:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 1656, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7805:8:6", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 1659, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7805:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1660, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "7805:20:6", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1662, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7805:26:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1663, + "nodeType": "ExpressionStatement", + "src": "7805:26:6" + }, + { + "expression": { + "arguments": [ + { + "id": 1669, + "name": "f_t", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "7868:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1666, + "name": "treasury", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 890, + "src": "7849:8:6", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1665, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7841:8:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 1664, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7841:8:6", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 1667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7841:17:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "7841:26:6", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1670, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "7841:31:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1671, + "nodeType": "ExpressionStatement", + "src": "7841:31:6" + }, + { + "expression": { + "id": 1674, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1672, + "name": "treasuryRevenue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 897, + "src": "7883:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 1673, + "name": "f_t", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "7902:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7883:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1675, + "nodeType": "ExpressionStatement", + "src": "7883:22:6" + }, + { + "expression": { + "id": 1680, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1676, + "name": "oracleAvailableFunding", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1902, + "src": "7915:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1679, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1677, + "name": "f", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1632, + "src": "7941:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "3130", + "id": 1678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7945:2:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "7941:6:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7915:32:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1681, + "nodeType": "ExpressionStatement", + "src": "7915:32:6" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1688, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1686, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1684, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1682, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1622, + "src": "8056:5:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1683, + "name": "f", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1632, + "src": "8064:1:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8056:9:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1685, + "name": "f_ui", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "8068:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8056:16:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1687, + "name": "f_t", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1648, + "src": "8075:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8056:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1630, + "id": 1689, + "nodeType": "Return", + "src": "8049:29:6" + } + ] + }, + "id": 1691, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "deductFees", + "nameLocation": "7437:10:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1627, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1622, + "mutability": "mutable", + "name": "value", + "nameLocation": "7453:5:6", + "nodeType": "VariableDeclaration", + "scope": 1691, + "src": "7448:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1621, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7448:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1624, + "mutability": "mutable", + "name": "fee_ui", + "nameLocation": "7465:6:6", + "nodeType": "VariableDeclaration", + "scope": 1691, + "src": "7460:11:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1623, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7460:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1626, + "mutability": "mutable", + "name": "ui", + "nameLocation": "7481:2:6", + "nodeType": "VariableDeclaration", + "scope": 1691, + "src": "7473:10:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1625, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7473:7:6", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "7447:37:6" + }, + "returnParameters": { + "id": 1630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1629, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1691, + "src": "7503:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1628, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7503:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7502:6:6" + }, + "scope": 1869, + "src": "7428:669:6", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1713, + "nodeType": "Block", + "src": "8173:124:6", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1703, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1701, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1698, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "8190:1:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8190:3:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1700, + "name": "scalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 911, + "src": "8196:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8190:19:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1702, + "name": "scDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "8212:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8190:44:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1710, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1708, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1704, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "8237:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 84, + "src": "8237:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8237:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1707, + "name": "_scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1693, + "src": "8264:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8237:35:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1709, + "name": "reserveRatioMin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 899, + "src": "8275:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8237:53:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8190:100:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1697, + "id": 1712, + "nodeType": "Return", + "src": "8183:107:6" + } + ] + }, + "id": 1714, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isRatioAboveMin", + "nameLocation": "8113:15:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "_scPrice", + "nameLocation": "8134:8:6", + "nodeType": "VariableDeclaration", + "scope": 1714, + "src": "8129:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1692, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8129:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8128:15:6" + }, + "returnParameters": { + "id": 1697, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1696, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1714, + "src": "8167:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1695, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8167:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8166:6:6" + }, + "scope": 1869, + "src": "8104:193:6", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1736, + "nodeType": "Block", + "src": "8372:124:6", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1724, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1721, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "8389:1:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8389:3:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1723, + "name": "scalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 911, + "src": "8395:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8389:19:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1725, + "name": "scDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "8411:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8389:44:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1731, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1727, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "8436:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 84, + "src": "8436:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1729, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "8436:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1730, + "name": "_scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1716, + "src": "8463:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8436:35:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1732, + "name": "reserveRatioMax", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 901, + "src": "8474:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8436:53:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8389:100:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1720, + "id": 1735, + "nodeType": "Return", + "src": "8382:107:6" + } + ] + }, + "id": 1737, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isRatioBelowMax", + "nameLocation": "8312:15:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1717, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1716, + "mutability": "mutable", + "name": "_scPrice", + "nameLocation": "8333:8:6", + "nodeType": "VariableDeclaration", + "scope": 1737, + "src": "8328:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1715, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8328:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8327:15:6" + }, + "returnParameters": { + "id": 1720, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1719, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1737, + "src": "8366:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1718, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "8366:4:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "8365:6:6" + }, + "scope": 1869, + "src": "8303:193:6", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1758, + "nodeType": "Block", + "src": "8696:158:6", + "statements": [ + { + "expression": { + "condition": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1744, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1742, + "name": "treasuryRevenue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 897, + "src": "8714:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1743, + "name": "treasuryRevenueTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "8733:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8714:40:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1745, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8713:42:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1747, + "name": "initialTreasuryFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 892, + "src": "8762:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1750, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1748, + "name": "initialTreasuryFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 892, + "src": "8785:18:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1749, + "name": "treasuryRevenue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 897, + "src": "8806:15:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8785:36:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1751, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8784:38:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1752, + "name": "treasuryRevenueTarget", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 894, + "src": "8825:21:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8784:62:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1754, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "8783:64:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "8762:85:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1756, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "8713:134:6", + "trueExpression": { + "hexValue": "30", + "id": 1746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "8758:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1741, + "id": 1757, + "nodeType": "Return", + "src": "8706:141:6" + } + ] + }, + "functionSelector": "cc32d176", + "id": 1759, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "treasuryFee", + "nameLocation": "8655:11:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1738, + "nodeType": "ParameterList", + "parameters": [], + "src": "8666:2:6" + }, + "returnParameters": { + "id": 1741, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1740, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1759, + "src": "8690:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1739, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8690:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8689:6:6" + }, + "scope": 1869, + "src": "8646:208:6", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1793, + "nodeType": "Block", + "src": "8976:209:6", + "statements": [ + { + "assignments": [1765], + "declarations": [ + { + "constant": false, + "id": 1765, + "mutability": "mutable", + "name": "scTargetPrice", + "nameLocation": "8991:13:6", + "nodeType": "VariableDeclaration", + "scope": 1793, + "src": "8986:18:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1764, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8986:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1769, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1766, + "name": "oracle", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1899, + "src": "9007:6:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IOracle_$1893", + "typeString": "contract IOracle" + } + }, + "id": 1767, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "readData", + "nodeType": "MemberAccess", + "referencedDeclaration": 1876, + "src": "9007:15:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1768, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9007:17:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "8986:38:6" + }, + { + "assignments": [1771], + "declarations": [ + { + "constant": false, + "id": 1771, + "mutability": "mutable", + "name": "sSC", + "nameLocation": "9039:3:6", + "nodeType": "VariableDeclaration", + "scope": 1793, + "src": "9034:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1770, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9034:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1775, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1772, + "name": "stableCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "9045:10:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 84, + "src": "9045:22:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9045:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9034:35:6" + }, + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1776, + "name": "sSC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1771, + "src": "9086:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9093:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9086:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "arguments": [ + { + "id": 1782, + "name": "scTargetPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1765, + "src": "9126:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1783, + "name": "R", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1085, + "src": "9142:1:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9142:3:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1785, + "name": "scDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 913, + "src": "9148:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9142:28:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1787, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9141:30:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1788, + "name": "sSC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1771, + "src": "9174:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9141:36:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1780, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "9117:4:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$798_$", + "typeString": "type(library Math)" + } + }, + "id": 1781, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "min", + "nodeType": "MemberAccess", + "referencedDeclaration": 749, + "src": "9117:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1790, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9117:61:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1791, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "9086:92:6", + "trueExpression": { + "id": 1779, + "name": "scTargetPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1765, + "src": "9099:13:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1763, + "id": 1792, + "nodeType": "Return", + "src": "9079:99:6" + } + ] + }, + "functionSelector": "4c19586a", + "id": 1794, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "scPrice", + "nameLocation": "8939:7:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1760, + "nodeType": "ParameterList", + "parameters": [], + "src": "8946:2:6" + }, + "returnParameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1762, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1794, + "src": "8970:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1761, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "8970:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8969:6:6" + }, + "scope": 1869, + "src": "8930:255:6", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 1804, + "nodeType": "Block", + "src": "9245:36:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1800, + "name": "scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "9268:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9268:9:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1799, + "name": "rcTargetPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1834, + "src": "9254:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 1802, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9254:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1798, + "id": 1803, + "nodeType": "Return", + "src": "9247:31:6" + } + ] + }, + "functionSelector": "8d0d36b4", + "id": 1805, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "rcTargetPrice", + "nameLocation": "9200:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1795, + "nodeType": "ParameterList", + "parameters": [], + "src": "9213:2:6" + }, + "returnParameters": { + "id": 1798, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1797, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1805, + "src": "9239:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1796, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9239:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9238:6:6" + }, + "scope": 1869, + "src": "9191:90:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1833, + "nodeType": "Block", + "src": "9353:141:6", + "statements": [ + { + "assignments": [1813], + "declarations": [ + { + "constant": false, + "id": 1813, + "mutability": "mutable", + "name": "sRC", + "nameLocation": "9368:3:6", + "nodeType": "VariableDeclaration", + "scope": 1833, + "src": "9363:8:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1812, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9363:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1817, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1814, + "name": "reserveCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "9374:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 84, + "src": "9374:23:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1816, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9374:25:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "9363:36:6" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1821, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1819, + "name": "sRC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1813, + "src": "9417:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9424:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9417:8:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 1818, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "9409:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 1822, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9409:17:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1823, + "nodeType": "ExpressionStatement", + "src": "9409:17:6" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1831, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 1825, + "name": "_scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1807, + "src": "9446:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1824, + "name": "E", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1127, + "src": "9444:1:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 1826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9444:11:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1827, + "name": "rcDecimalScalingFactor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 915, + "src": "9458:22:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9444:36:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1829, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "9443:38:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1830, + "name": "sRC", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1813, + "src": "9484:3:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "9443:44:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1811, + "id": 1832, + "nodeType": "Return", + "src": "9436:51:6" + } + ] + }, + "id": 1834, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "rcTargetPrice", + "nameLocation": "9295:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1808, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1807, + "mutability": "mutable", + "name": "_scPrice", + "nameLocation": "9314:8:6", + "nodeType": "VariableDeclaration", + "scope": 1834, + "src": "9309:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1806, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9309:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9308:15:6" + }, + "returnParameters": { + "id": 1811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1810, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1834, + "src": "9347:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1809, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9347:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9346:6:6" + }, + "scope": 1869, + "src": "9286:208:6", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1844, + "nodeType": "Block", + "src": "9554:36:6", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 1840, + "name": "scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1794, + "src": "9577:7:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 1841, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9577:9:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1839, + "name": "rcBuyingPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1868, + "src": "9563:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9563:24:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1838, + "id": 1843, + "nodeType": "Return", + "src": "9556:31:6" + } + ] + }, + "functionSelector": "c11c0ee1", + "id": 1845, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "rcBuyingPrice", + "nameLocation": "9509:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [], + "src": "9522:2:6" + }, + "returnParameters": { + "id": 1838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1837, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1845, + "src": "9548:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1836, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9548:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9547:6:6" + }, + "scope": 1869, + "src": "9500:90:6", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1867, + "nodeType": "Block", + "src": "9662:119:6", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1856, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 1852, + "name": "reserveCoin", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 888, + "src": "9679:11:6", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Coin_$874", + "typeString": "contract Coin" + } + }, + "id": 1853, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "totalSupply", + "nodeType": "MemberAccess", + "referencedDeclaration": 84, + "src": "9679:23:6", + "typeDescriptions": { + "typeIdentifier": "t_function_external_view$__$returns$_t_uint256_$", + "typeString": "function () view external returns (uint256)" + } + }, + "id": 1854, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9679:25:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1855, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9708:1:6", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "9679:30:6", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "arguments": [ + { + "arguments": [ + { + "id": 1861, + "name": "_scPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1847, + "src": "9752:8:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1860, + "name": "rcTargetPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1834, + "src": "9738:13:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) view returns (uint256)" + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9738:23:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1863, + "name": "rcMinPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "9763:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 1858, + "name": "Math", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 798, + "src": "9729:4:6", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Math_$798_$", + "typeString": "type(library Math)" + } + }, + "id": 1859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "max", + "nodeType": "MemberAccess", + "referencedDeclaration": 731, + "src": "9729:8:6", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9729:45:6", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "9679:95:6", + "trueExpression": { + "id": 1857, + "name": "rcMinPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 907, + "src": "9714:10:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1851, + "id": 1866, + "nodeType": "Return", + "src": "9672:102:6" + } + ] + }, + "id": 1868, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "rcBuyingPrice", + "nameLocation": "9604:13:6", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1848, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1847, + "mutability": "mutable", + "name": "_scPrice", + "nameLocation": "9623:8:6", + "nodeType": "VariableDeclaration", + "scope": 1868, + "src": "9618:13:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1846, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9618:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9617:15:6" + }, + "returnParameters": { + "id": 1851, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1850, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1868, + "src": "9656:4:6", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1849, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "9656:4:6", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "9655:6:6" + }, + "scope": 1869, + "src": "9595:186:6", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1870, + "src": "189:9594:6", + "usedErrors": [] + } + ], + "src": "33:9750:6" + }, + "compiler": { + "name": "solc", + "version": "0.8.10+commit.fc410830.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.4.9", + "updatedAt": "2022-09-16T15:53:42.472Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + \ No newline at end of file diff --git a/src/artifacts/ShuOracle.json b/src/artifacts/ShuOracle.json new file mode 100644 index 00000000..dc325d30 --- /dev/null +++ b/src/artifacts/ShuOracle.json @@ -0,0 +1,22181 @@ +{ + "contractName": "ShuOracleConverter", + "abi": [ + { + "type": "constructor", + "inputs": [ + { + "name": "oracleAddress", + "type": "address", + "internalType": "address" + } + ], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "UPDATE_TIME_IN_HOUR", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "acceptTermsOfService", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + }, + { + "type": "function", + "name": "lastTimestamp", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "movingPrice", + "inputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "oracle", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "address", + "internalType": "contract IOracle" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "previousHour", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint8", + "internalType": "uint8" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "readMaxPrice", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "readMinPrice", + "inputs": [], + "outputs": [ + { + "name": "", + "type": "uint256", + "internalType": "uint256" + }, + { + "name": "", + "type": "uint256", + "internalType": "uint256" + } + ], + "stateMutability": "view" + }, + { + "type": "function", + "name": "updateOracleValues", + "inputs": [], + "outputs": [], + "stateMutability": "nonpayable" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"oracleAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"UPDATE_TIME_IN_HOUR\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptTermsOfService\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"lastTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"movingPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracle\",\"outputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"previousHour\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"readMaxPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"readMinPrice\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"updateOracleValues\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/ShuOracleConverter.sol\":\"ShuOracleConverter\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@api3dao/=lib/contracts/\",\":@chainlink/contracts/=node_modules/@chainlink/contracts/\",\":@eth-optimism/=node_modules/@eth-optimism/\",\":@hebeswap/=lib/hebeswap-contract/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hebeswap-contract/=lib/hebeswap-contract/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"src/IOracle.sol\":{\"keccak256\":\"0xbdb82189368be9100ec49015ca5838207a3bc5bfec11543d0aede20811cb07ad\",\"license\":\"AEL\",\"urls\":[\"bzz-raw://d6f64b8238eaa188a9b9d7acac753ba0bfccc770b458be512c37c47bc8cafe4c\",\"dweb:/ipfs/QmWB2nD9chE3EAKYa4joucZUsFstZNJDjRoDbrdXEKkYk1\"]},\"src/IOracleShu.sol\":{\"keccak256\":\"0x586f59d9e5c2908eecda1f3dd72b6e436be0c9df44940bb2afa7cdd47b158c2e\",\"license\":\"AEL\",\"urls\":[\"bzz-raw://5da2c758dabd3578feb63916c9cec1626205e0e919852bb15687b4586b7950f8\",\"dweb:/ipfs/Qmcj9uERu97gYkCm54qTWxGG7GsLcEpgyRFa8DhLXgi6AT\"]},\"src/ShuOracleConverter.sol\":{\"keccak256\":\"0x6311487e086c13fd03b85ed6c4f72b538e3360d4df7c531d7dde25506658e5ba\",\"license\":\"AEL\",\"urls\":[\"bzz-raw://4d1c1bb1117f625449495bcd58b892fbba8245a33bc10a6fe8759eb81bbf35f8\",\"dweb:/ipfs/QmVGkYBQmAaN2Cv7rEbp86jNE4aFTEcGC74vkYvEb3u3gY\"]}},\"version\":1}", + "bytecode": "0x6080604052600060045534801561001557600080fd5b506040516109543803806109548339810160408190526100349161015d565b600080546001600160a01b0319166001600160a01b03831690811782556040805163bef55ef360e01b8152905163bef55ef3916004808201926020929091908290030181865afa15801561008c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b0919061018d565b4260018190559091506018906100c990610e10906101bc565b6100d391906101d0565b601d805460ff191660ff9290921691909117905560005b601860ff82161015610121578160058260ff166018811061010d5761010d6101e4565b015580610119816101fa565b9150506100ea565b50600281905560035550601d805462ffff0019811662ff00001961010060ff938416908102918216929092179216176201000002179055610227565b60006020828403121561016f57600080fd5b81516001600160a01b038116811461018657600080fd5b9392505050565b60006020828403121561019f57600080fd5b5051919050565b634e487b7160e01b600052601260045260246000fd5b6000826101cb576101cb6101a6565b500490565b6000826101df576101df6101a6565b500690565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff810361021e57634e487b7160e01b600052601160045260246000fd5b60010192915050565b61071e806102366000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c80637f4a3f87116100665780637f4a3f871461010c57806386b629b51461012b578063cafc3d9e14610135578063d4316da81461013d578063dddd9e961461013357600080fd5b806319d8ac61146100985780636fbdfa47146100b45780637b682b5b146100ce5780637dc0d1d0146100e1575b600080fd5b6100a160015481565b6040519081526020015b60405180910390f35b600354425b604080519283526020830191909152016100ab565b6100a16100dc366004610583565b610146565b6000546100f4906001600160a01b031681565b6040516001600160a01b0390911681526020016100ab565b601d546101199060ff1681565b60405160ff90911681526020016100ab565b61013361015d565b005b610119601881565b600254426100b9565b6005816018811061015657600080fd5b0154905081565b6000601861016d610e10426105c8565b61017791906105dc565b601d5490915060019060ff1661018f610e10426105c8565b61019991906105f0565b106103145760006004819055601d5460ff908116908316116101d557601d5460ff166101c6836018610603565b6101d0919061061c565b6101e5565b601d546101e59060ff168361061c565b905060008060009054906101000a90046001600160a01b03166001600160a01b031663bef55ef36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025f9190610635565b905060015b8260ff168160ff1610156102bc57601d54829060059060189061028b90859060ff16610603565b610295919061064e565b60ff16601881106102a8576102a8610670565b0155806102b481610686565b915050610264565b50601d546102d290610100900460ff1684610459565b156102df576102df6104b5565b601d546102f59062010000900460ff1684610459565b156103025761030261051c565b5050601d805460ff191660ff83161790555b6000600454600161032591906106a5565b60008054906101000a90046001600160a01b03166001600160a01b031663bef55ef36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610376573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039a9190610635565b60045460058560ff16601881106103b3576103b3610670565b01546103bf91906106b8565b6103c991906106a5565b6103d391906105c8565b6004805491925060006103e5836106cf565b91905055508060058360ff166018811061040157610401610670565b015560035481101561042b576003819055601d805461ff00191661010060ff851602179055610451565b600254811115610451576002819055601d805462ff000019166201000060ff8516021790555b505042600155565b601d5460009060ff80841691161161049057601d5460ff80851691161180159061048957508160ff168360ff1611155b90506104af565b601d5460ff808516911611158061048957508160ff168360ff16111590505b92915050565b60001960005b601860ff8216101561051657600060058260ff16601881106104df576104df610670565b015490508281101561050357601d805461ff00191661010060ff8516021790559150815b508061050e81610686565b9150506104bb565b50600355565b6000805b601860ff8216101561057d57600060058260ff166018811061054457610544610670565b015490508281111561056a57601d805462ff000019166201000060ff8516021790559150815b508061057581610686565b915050610520565b50600255565b60006020828403121561059557600080fd5b5035919050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826105d7576105d761059c565b500490565b6000826105eb576105eb61059c565b500690565b818103818111156104af576104af6105b2565b60ff81811683821601908111156104af576104af6105b2565b60ff82811682821603908111156104af576104af6105b2565b60006020828403121561064757600080fd5b5051919050565b600060ff8316806106615761066161059c565b8060ff84160691505092915050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff810361069c5761069c6105b2565b60010192915050565b808201808211156104af576104af6105b2565b80820281158282048414176104af576104af6105b2565b6000600182016106e1576106e16105b2565b506001019056fea26469706673582212202e948c40b2306f61bb94e9ce6e463b07a3b64b7118841b24d22335d9ad0c8ca864736f6c63430008130033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100935760003560e01c80637f4a3f87116100665780637f4a3f871461010c57806386b629b51461012b578063cafc3d9e14610135578063d4316da81461013d578063dddd9e961461013357600080fd5b806319d8ac61146100985780636fbdfa47146100b45780637b682b5b146100ce5780637dc0d1d0146100e1575b600080fd5b6100a160015481565b6040519081526020015b60405180910390f35b600354425b604080519283526020830191909152016100ab565b6100a16100dc366004610583565b610146565b6000546100f4906001600160a01b031681565b6040516001600160a01b0390911681526020016100ab565b601d546101199060ff1681565b60405160ff90911681526020016100ab565b61013361015d565b005b610119601881565b600254426100b9565b6005816018811061015657600080fd5b0154905081565b6000601861016d610e10426105c8565b61017791906105dc565b601d5490915060019060ff1661018f610e10426105c8565b61019991906105f0565b106103145760006004819055601d5460ff908116908316116101d557601d5460ff166101c6836018610603565b6101d0919061061c565b6101e5565b601d546101e59060ff168361061c565b905060008060009054906101000a90046001600160a01b03166001600160a01b031663bef55ef36040518163ffffffff1660e01b8152600401602060405180830381865afa15801561023b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061025f9190610635565b905060015b8260ff168160ff1610156102bc57601d54829060059060189061028b90859060ff16610603565b610295919061064e565b60ff16601881106102a8576102a8610670565b0155806102b481610686565b915050610264565b50601d546102d290610100900460ff1684610459565b156102df576102df6104b5565b601d546102f59062010000900460ff1684610459565b156103025761030261051c565b5050601d805460ff191660ff83161790555b6000600454600161032591906106a5565b60008054906101000a90046001600160a01b03166001600160a01b031663bef55ef36040518163ffffffff1660e01b8152600401602060405180830381865afa158015610376573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061039a9190610635565b60045460058560ff16601881106103b3576103b3610670565b01546103bf91906106b8565b6103c991906106a5565b6103d391906105c8565b6004805491925060006103e5836106cf565b91905055508060058360ff166018811061040157610401610670565b015560035481101561042b576003819055601d805461ff00191661010060ff851602179055610451565b600254811115610451576002819055601d805462ff000019166201000060ff8516021790555b505042600155565b601d5460009060ff80841691161161049057601d5460ff80851691161180159061048957508160ff168360ff1611155b90506104af565b601d5460ff808516911611158061048957508160ff168360ff16111590505b92915050565b60001960005b601860ff8216101561051657600060058260ff16601881106104df576104df610670565b015490508281101561050357601d805461ff00191661010060ff8516021790559150815b508061050e81610686565b9150506104bb565b50600355565b6000805b601860ff8216101561057d57600060058260ff166018811061054457610544610670565b015490508281111561056a57601d805462ff000019166201000060ff8516021790559150815b508061057581610686565b915050610520565b50600255565b60006020828403121561059557600080fd5b5035919050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000826105d7576105d761059c565b500490565b6000826105eb576105eb61059c565b500690565b818103818111156104af576104af6105b2565b60ff81811683821601908111156104af576104af6105b2565b60ff82811682821603908111156104af576104af6105b2565b60006020828403121561064757600080fd5b5051919050565b600060ff8316806106615761066161059c565b8060ff84160691505092915050565b634e487b7160e01b600052603260045260246000fd5b600060ff821660ff810361069c5761069c6105b2565b60010192915050565b808201808211156104af576104af6105b2565b80820281158282048414176104af576104af6105b2565b6000600182016106e1576106e16105b2565b506001019056fea26469706673582212202e948c40b2306f61bb94e9ce6e463b07a3b64b7118841b24d22335d9ad0c8ca864736f6c63430008130033", + "immutableReferences": { + "570": [ + { + "length": 32, + "start": 3797 + }, + { + "length": 32, + "start": 4968 + }, + { + "length": 32, + "start": 5512 + } + ] + }, + "generatedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:10042:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "47:35:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "57:19:3", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "73:2:3", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "67:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "67:9:3" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "57:6:3" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "40:6:3", + "type": "" + } + ], + "src": "7:75:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "177:28:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "194:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "197:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "187:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "187:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "187:12:3" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "88:117:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "300:28:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "317:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "320:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "310:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "310:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "310:12:3" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "211:117:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "379:81:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "389:65:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "404:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "411:42:3", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "400:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "400:54:3" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "389:7:3" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "361:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "371:7:3", + "type": "" + } + ], + "src": "334:126:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "511:51:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "521:35:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "550:5:3" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "532:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "532:24:3" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "521:7:3" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "493:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "503:7:3", + "type": "" + } + ], + "src": "466:96:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "611:79:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "668:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "677:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "680:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "670:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "670:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "670:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "634:5:3" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "659:5:3" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "641:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "641:24:3" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "631:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "631:35:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "624:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "624:43:3" + }, + "nodeType": "YulIf", + "src": "621:63:3" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "604:5:3", + "type": "" + } + ], + "src": "568:122:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "759:80:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "769:22:3", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "784:6:3" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "778:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "778:13:3" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "769:5:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "827:5:3" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "800:26:3" + }, + "nodeType": "YulFunctionCall", + "src": "800:33:3" + }, + "nodeType": "YulExpressionStatement", + "src": "800:33:3" + } + ] + }, + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "737:6:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "745:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "753:5:3", + "type": "" + } + ], + "src": "696:143:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "934:28:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "951:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "954:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "944:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "944:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "944:12:3" + } + ] + }, + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulFunctionDefinition", + "src": "845:117:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1057:28:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1074:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1077:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1067:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "1067:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1067:12:3" + } + ] + }, + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulFunctionDefinition", + "src": "968:117:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1139:54:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1149:38:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1167:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1174:2:3", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1163:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1163:14:3" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1183:2:3", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "1179:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1179:7:3" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "1159:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1159:28:3" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "1149:6:3" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1122:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "1132:6:3", + "type": "" + } + ], + "src": "1091:102:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1227:152:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1244:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1247:77:3", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1237:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "1237:88:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1237:88:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1341:1:3", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1344:4:3", + "type": "", + "value": "0x41" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1334:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "1334:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1334:15:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1365:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1368:4:3", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1358:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "1358:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1358:15:3" + } + ] + }, + "name": "panic_error_0x41", + "nodeType": "YulFunctionDefinition", + "src": "1199:180:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1428:238:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1438:58:3", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1460:6:3" + }, + { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1490:4:3" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "1468:21:3" + }, + "nodeType": "YulFunctionCall", + "src": "1468:27:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1456:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1456:40:3" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "1442:10:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1607:22:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1609:16:3" + }, + "nodeType": "YulFunctionCall", + "src": "1609:18:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1609:18:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1550:10:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1562:18:3", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1547:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "1547:34:3" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1586:10:3" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1598:6:3" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1583:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "1583:22:3" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "1544:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "1544:62:3" + }, + "nodeType": "YulIf", + "src": "1541:88:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1645:2:3", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "1649:10:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1638:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "1638:22:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1638:22:3" + } + ] + }, + "name": "finalize_allocation", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1414:6:3", + "type": "" + }, + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1422:4:3", + "type": "" + } + ], + "src": "1385:281:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1713:88:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1723:30:3", + "value": { + "arguments": [], + "functionName": { + "name": "allocate_unbounded", + "nodeType": "YulIdentifier", + "src": "1733:18:3" + }, + "nodeType": "YulFunctionCall", + "src": "1733:20:3" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1723:6:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "1782:6:3" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "1790:4:3" + } + ], + "functionName": { + "name": "finalize_allocation", + "nodeType": "YulIdentifier", + "src": "1762:19:3" + }, + "nodeType": "YulFunctionCall", + "src": "1762:33:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1762:33:3" + } + ] + }, + "name": "allocate_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1697:4:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "1706:6:3", + "type": "" + } + ], + "src": "1672:129:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1874:241:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1979:22:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "1981:16:3" + }, + "nodeType": "YulFunctionCall", + "src": "1981:18:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1981:18:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1951:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1959:18:3", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1948:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "1948:30:3" + }, + "nodeType": "YulIf", + "src": "1945:56:3" + }, + { + "nodeType": "YulAssignment", + "src": "2011:37:3", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2041:6:3" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2019:21:3" + }, + "nodeType": "YulFunctionCall", + "src": "2019:29:3" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2011:4:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2085:23:3", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2097:4:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2103:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2093:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2093:15:3" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "2085:4:3" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1858:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "1869:4:3", + "type": "" + } + ], + "src": "1807:308:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2183:184:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2193:10:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2202:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "2197:1:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2262:63:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2287:3:3" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2292:1:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2283:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2283:11:3" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2306:3:3" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2311:1:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2302:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2302:11:3" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2296:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "2296:18:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2276:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "2276:39:3" + }, + "nodeType": "YulExpressionStatement", + "src": "2276:39:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2223:1:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2226:6:3" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "2220:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "2220:13:3" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2234:19:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2236:15:3", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2245:1:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2248:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2241:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2241:10:3" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2236:1:3" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "2216:3:3", + "statements": [] + }, + "src": "2212:113:3" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2345:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2350:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2341:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2341:16:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2359:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2334:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "2334:27:3" + }, + "nodeType": "YulExpressionStatement", + "src": "2334:27:3" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2165:3:3", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2170:3:3", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2175:6:3", + "type": "" + } + ], + "src": "2121:246:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2468:339:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2478:75:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2545:6:3" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2503:41:3" + }, + "nodeType": "YulFunctionCall", + "src": "2503:49:3" + } + ], + "functionName": { + "name": "allocate_memory", + "nodeType": "YulIdentifier", + "src": "2487:15:3" + }, + "nodeType": "YulFunctionCall", + "src": "2487:66:3" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2478:5:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2569:5:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2576:6:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2562:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "2562:21:3" + }, + "nodeType": "YulExpressionStatement", + "src": "2562:21:3" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "2592:27:3", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2607:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2614:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2603:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2603:16:3" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "2596:3:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2657:83:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae", + "nodeType": "YulIdentifier", + "src": "2659:77:3" + }, + "nodeType": "YulFunctionCall", + "src": "2659:79:3" + }, + "nodeType": "YulExpressionStatement", + "src": "2659:79:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2638:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2643:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2634:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2634:16:3" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2652:3:3" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "2631:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "2631:25:3" + }, + "nodeType": "YulIf", + "src": "2628:112:3" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2784:3:3" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2789:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2794:6:3" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "2749:34:3" + }, + "nodeType": "YulFunctionCall", + "src": "2749:52:3" + }, + "nodeType": "YulExpressionStatement", + "src": "2749:52:3" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "2441:3:3", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2446:6:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2454:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2462:5:3", + "type": "" + } + ], + "src": "2373:434:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2900:282:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2949:83:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d", + "nodeType": "YulIdentifier", + "src": "2951:77:3" + }, + "nodeType": "YulFunctionCall", + "src": "2951:79:3" + }, + "nodeType": "YulExpressionStatement", + "src": "2951:79:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2928:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2936:4:3", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2924:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2924:17:3" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2943:3:3" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2920:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2920:27:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "2913:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "2913:35:3" + }, + "nodeType": "YulIf", + "src": "2910:122:3" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "3041:27:3", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3061:6:3" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3055:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "3055:13:3" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "3045:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3077:99:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3149:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3157:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3145:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3145:17:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "3164:6:3" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "3172:3:3" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "3086:58:3" + }, + "nodeType": "YulFunctionCall", + "src": "3086:90:3" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "3077:5:3" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2878:6:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2886:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "2894:5:3", + "type": "" + } + ], + "src": "2827:355:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3233:32:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3243:16:3", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3254:5:3" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "3243:7:3" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3215:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "3225:7:3", + "type": "" + } + ], + "src": "3188:77:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3314:79:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3371:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3380:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3383:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3373:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "3373:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "3373:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3337:5:3" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3362:5:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3344:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "3344:24:3" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "3334:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "3334:35:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3327:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "3327:43:3" + }, + "nodeType": "YulIf", + "src": "3324:63:3" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3307:5:3", + "type": "" + } + ], + "src": "3271:122:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3462:80:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3472:22:3", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3487:6:3" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3481:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "3481:13:3" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3472:5:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3530:5:3" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "3503:26:3" + }, + "nodeType": "YulFunctionCall", + "src": "3503:33:3" + }, + "nodeType": "YulExpressionStatement", + "src": "3503:33:3" + } + ] + }, + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3440:6:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3448:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3456:5:3", + "type": "" + } + ], + "src": "3399:143:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3686:855:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3733:83:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3735:77:3" + }, + "nodeType": "YulFunctionCall", + "src": "3735:79:3" + }, + "nodeType": "YulExpressionStatement", + "src": "3735:79:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3707:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3716:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3703:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3703:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3728:3:3", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3699:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3699:33:3" + }, + "nodeType": "YulIf", + "src": "3696:120:3" + }, + { + "nodeType": "YulBlock", + "src": "3826:128:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3841:15:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3855:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3845:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3870:74:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3916:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3927:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3912:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3912:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3936:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_address_fromMemory", + "nodeType": "YulIdentifier", + "src": "3880:31:3" + }, + "nodeType": "YulFunctionCall", + "src": "3880:64:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3870:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3964:292:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3979:39:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4003:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4014:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3999:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3999:18:3" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "3993:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "3993:25:3" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3983:6:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4065:83:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulIdentifier", + "src": "4067:77:3" + }, + "nodeType": "YulFunctionCall", + "src": "4067:79:3" + }, + "nodeType": "YulExpressionStatement", + "src": "4067:79:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4037:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4045:18:3", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4034:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "4034:30:3" + }, + "nodeType": "YulIf", + "src": "4031:117:3" + }, + { + "nodeType": "YulAssignment", + "src": "4162:84:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4218:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4229:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4214:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4214:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4238:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr_fromMemory", + "nodeType": "YulIdentifier", + "src": "4172:41:3" + }, + "nodeType": "YulFunctionCall", + "src": "4172:74:3" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4162:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4266:129:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4281:16:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4295:2:3", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4285:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4311:74:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4357:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4368:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4353:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4353:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4377:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "4321:31:3" + }, + "nodeType": "YulFunctionCall", + "src": "4321:64:3" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "4311:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4405:129:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4420:16:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4434:2:3", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4424:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4450:74:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4496:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4507:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4492:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4492:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4516:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_uint256_fromMemory", + "nodeType": "YulIdentifier", + "src": "4460:31:3" + }, + "nodeType": "YulFunctionCall", + "src": "4460:64:3" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "4450:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_string_memory_ptrt_uint256t_uint256_fromMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3632:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3643:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3655:6:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3663:6:3", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3671:6:3", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3679:6:3", + "type": "" + } + ], + "src": "3548:993:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4606:40:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4617:22:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4633:5:3" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "4627:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "4627:12:3" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4617:6:3" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4589:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4599:6:3", + "type": "" + } + ], + "src": "4547:99:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4680:152:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4697:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4700:77:3", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4690:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "4690:88:3" + }, + "nodeType": "YulExpressionStatement", + "src": "4690:88:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4794:1:3", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4797:4:3", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4787:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "4787:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "4787:15:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4818:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4821:4:3", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4811:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "4811:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "4811:15:3" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "4652:180:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4889:269:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4899:22:3", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4913:4:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4919:1:3", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "4909:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4909:12:3" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "4899:6:3" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "4930:38:3", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "4960:4:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4966:1:3", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "4956:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4956:12:3" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "4934:18:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5007:51:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5021:27:3", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5035:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5043:4:3", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5031:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5031:17:3" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5021:6:3" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "4987:18:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "4980:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "4980:26:3" + }, + "nodeType": "YulIf", + "src": "4977:81:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5110:42:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "5124:16:3" + }, + "nodeType": "YulFunctionCall", + "src": "5124:18:3" + }, + "nodeType": "YulExpressionStatement", + "src": "5124:18:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "5074:18:3" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "5097:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5105:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "5094:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "5094:14:3" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "5071:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "5071:38:3" + }, + "nodeType": "YulIf", + "src": "5068:84:3" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "4873:4:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "4882:6:3", + "type": "" + } + ], + "src": "4838:320:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5218:87:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5228:11:3", + "value": { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5236:3:3" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5228:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5256:1:3", + "type": "", + "value": "0" + }, + { + "name": "ptr", + "nodeType": "YulIdentifier", + "src": "5259:3:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5249:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "5249:14:3" + }, + "nodeType": "YulExpressionStatement", + "src": "5249:14:3" + }, + { + "nodeType": "YulAssignment", + "src": "5272:26:3", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5290:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5293:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "keccak256", + "nodeType": "YulIdentifier", + "src": "5280:9:3" + }, + "nodeType": "YulFunctionCall", + "src": "5280:18:3" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "5272:4:3" + } + ] + } + ] + }, + "name": "array_dataslot_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "ptr", + "nodeType": "YulTypedName", + "src": "5205:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "5213:4:3", + "type": "" + } + ], + "src": "5164:141:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5355:49:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5365:33:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5383:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5390:2:3", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5379:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5379:14:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5395:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "5375:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5375:23:3" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "5365:6:3" + } + ] + } + ] + }, + "name": "divide_by_32_ceil", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5338:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "5348:6:3", + "type": "" + } + ], + "src": "5311:93:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5463:54:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5473:37:3", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "5498:4:3" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5504:5:3" + } + ], + "functionName": { + "name": "shl", + "nodeType": "YulIdentifier", + "src": "5494:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5494:16:3" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "5473:8:3" + } + ] + } + ] + }, + "name": "shift_left_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "5438:4:3", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5444:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "5454:8:3", + "type": "" + } + ], + "src": "5410:107:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5599:317:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5609:35:3", + "value": { + "arguments": [ + { + "name": "shiftBytes", + "nodeType": "YulIdentifier", + "src": "5630:10:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5642:1:3", + "type": "", + "value": "8" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "5626:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5626:18:3" + }, + "variables": [ + { + "name": "shiftBits", + "nodeType": "YulTypedName", + "src": "5613:9:3", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "5653:109:3", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "5684:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5695:66:3", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "5665:18:3" + }, + "nodeType": "YulFunctionCall", + "src": "5665:97:3" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "5657:4:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5771:51:3", + "value": { + "arguments": [ + { + "name": "shiftBits", + "nodeType": "YulIdentifier", + "src": "5802:9:3" + }, + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "5813:8:3" + } + ], + "functionName": { + "name": "shift_left_dynamic", + "nodeType": "YulIdentifier", + "src": "5783:18:3" + }, + "nodeType": "YulFunctionCall", + "src": "5783:39:3" + }, + "variableNames": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "5771:8:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5831:30:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5844:5:3" + }, + { + "arguments": [ + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "5855:4:3" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "5851:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5851:9:3" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5840:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5840:21:3" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5831:5:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5870:40:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5883:5:3" + }, + { + "arguments": [ + { + "name": "toInsert", + "nodeType": "YulIdentifier", + "src": "5894:8:3" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "5904:4:3" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5890:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5890:19:3" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "5880:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "5880:30:3" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "5870:6:3" + } + ] + } + ] + }, + "name": "update_byte_slice_dynamic32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5560:5:3", + "type": "" + }, + { + "name": "shiftBytes", + "nodeType": "YulTypedName", + "src": "5567:10:3", + "type": "" + }, + { + "name": "toInsert", + "nodeType": "YulTypedName", + "src": "5579:8:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "5592:6:3", + "type": "" + } + ], + "src": "5523:393:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5954:28:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5964:12:3", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5971:5:3" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "5964:3:3" + } + ] + } + ] + }, + "name": "identity", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5940:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "5950:3:3", + "type": "" + } + ], + "src": "5922:60:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6048:82:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6058:66:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6116:5:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6098:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "6098:24:3" + } + ], + "functionName": { + "name": "identity", + "nodeType": "YulIdentifier", + "src": "6089:8:3" + }, + "nodeType": "YulFunctionCall", + "src": "6089:34:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6071:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "6071:53:3" + }, + "variableNames": [ + { + "name": "converted", + "nodeType": "YulIdentifier", + "src": "6058:9:3" + } + ] + } + ] + }, + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6028:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "converted", + "nodeType": "YulTypedName", + "src": "6038:9:3", + "type": "" + } + ], + "src": "5988:142:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6183:28:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6193:12:3", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6200:5:3" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "6193:3:3" + } + ] + } + ] + }, + "name": "prepare_store_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6169:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "6179:3:3", + "type": "" + } + ], + "src": "6136:75:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6293:193:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6303:63:3", + "value": { + "arguments": [ + { + "name": "value_0", + "nodeType": "YulIdentifier", + "src": "6358:7:3" + } + ], + "functionName": { + "name": "convert_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "6327:30:3" + }, + "nodeType": "YulFunctionCall", + "src": "6327:39:3" + }, + "variables": [ + { + "name": "convertedValue_0", + "nodeType": "YulTypedName", + "src": "6307:16:3", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "6382:4:3" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "6422:4:3" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "6416:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "6416:11:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6429:6:3" + }, + { + "arguments": [ + { + "name": "convertedValue_0", + "nodeType": "YulIdentifier", + "src": "6461:16:3" + } + ], + "functionName": { + "name": "prepare_store_t_uint256", + "nodeType": "YulIdentifier", + "src": "6437:23:3" + }, + "nodeType": "YulFunctionCall", + "src": "6437:41:3" + } + ], + "functionName": { + "name": "update_byte_slice_dynamic32", + "nodeType": "YulIdentifier", + "src": "6388:27:3" + }, + "nodeType": "YulFunctionCall", + "src": "6388:91:3" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "6375:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "6375:105:3" + }, + "nodeType": "YulExpressionStatement", + "src": "6375:105:3" + } + ] + }, + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "6270:4:3", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6276:6:3", + "type": "" + }, + { + "name": "value_0", + "nodeType": "YulTypedName", + "src": "6284:7:3", + "type": "" + } + ], + "src": "6217:269:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6541:24:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6551:8:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6558:1:3", + "type": "", + "value": "0" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "6551:3:3" + } + ] + } + ] + }, + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "6537:3:3", + "type": "" + } + ], + "src": "6492:73:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6624:136:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6634:46:3", + "value": { + "arguments": [], + "functionName": { + "name": "zero_value_for_split_t_uint256", + "nodeType": "YulIdentifier", + "src": "6648:30:3" + }, + "nodeType": "YulFunctionCall", + "src": "6648:32:3" + }, + "variables": [ + { + "name": "zero_0", + "nodeType": "YulTypedName", + "src": "6638:6:3", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "6733:4:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6739:6:3" + }, + { + "name": "zero_0", + "nodeType": "YulIdentifier", + "src": "6747:6:3" + } + ], + "functionName": { + "name": "update_storage_value_t_uint256_to_t_uint256", + "nodeType": "YulIdentifier", + "src": "6689:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "6689:65:3" + }, + "nodeType": "YulExpressionStatement", + "src": "6689:65:3" + } + ] + }, + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "6610:4:3", + "type": "" + }, + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6616:6:3", + "type": "" + } + ], + "src": "6571:189:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6816:136:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6883:63:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "6927:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6934:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "storage_set_to_zero_t_uint256", + "nodeType": "YulIdentifier", + "src": "6897:29:3" + }, + "nodeType": "YulFunctionCall", + "src": "6897:39:3" + }, + "nodeType": "YulExpressionStatement", + "src": "6897:39:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "6836:5:3" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6843:3:3" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "6833:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "6833:14:3" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "6848:26:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6850:22:3", + "value": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "6863:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6870:1:3", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6859:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6859:13:3" + }, + "variableNames": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "6850:5:3" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "6830:2:3", + "statements": [] + }, + "src": "6826:120:3" + } + ] + }, + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "6804:5:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6811:3:3", + "type": "" + } + ], + "src": "6766:186:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7037:464:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7063:431:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7077:54:3", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "7125:5:3" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "7093:31:3" + }, + "nodeType": "YulFunctionCall", + "src": "7093:38:3" + }, + "variables": [ + { + "name": "dataArea", + "nodeType": "YulTypedName", + "src": "7081:8:3", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "7144:63:3", + "value": { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "7167:8:3" + }, + { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "7195:10:3" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "7177:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "7177:29:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7163:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7163:44:3" + }, + "variables": [ + { + "name": "deleteStart", + "nodeType": "YulTypedName", + "src": "7148:11:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7364:27:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7366:23:3", + "value": { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "7381:8:3" + }, + "variableNames": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "7366:11:3" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "startIndex", + "nodeType": "YulIdentifier", + "src": "7348:10:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7360:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "7345:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "7345:18:3" + }, + "nodeType": "YulIf", + "src": "7342:49:3" + }, + { + "expression": { + "arguments": [ + { + "name": "deleteStart", + "nodeType": "YulIdentifier", + "src": "7433:11:3" + }, + { + "arguments": [ + { + "name": "dataArea", + "nodeType": "YulIdentifier", + "src": "7450:8:3" + }, + { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7478:3:3" + } + ], + "functionName": { + "name": "divide_by_32_ceil", + "nodeType": "YulIdentifier", + "src": "7460:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "7460:22:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7446:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7446:37:3" + } + ], + "functionName": { + "name": "clear_storage_range_t_bytes1", + "nodeType": "YulIdentifier", + "src": "7404:28:3" + }, + "nodeType": "YulFunctionCall", + "src": "7404:80:3" + }, + "nodeType": "YulExpressionStatement", + "src": "7404:80:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "7054:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7059:2:3", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7051:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "7051:11:3" + }, + "nodeType": "YulIf", + "src": "7048:446:3" + } + ] + }, + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "7013:5:3", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "7020:3:3", + "type": "" + }, + { + "name": "startIndex", + "nodeType": "YulTypedName", + "src": "7025:10:3", + "type": "" + } + ], + "src": "6958:543:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7570:54:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7580:37:3", + "value": { + "arguments": [ + { + "name": "bits", + "nodeType": "YulIdentifier", + "src": "7605:4:3" + }, + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7611:5:3" + } + ], + "functionName": { + "name": "shr", + "nodeType": "YulIdentifier", + "src": "7601:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7601:16:3" + }, + "variableNames": [ + { + "name": "newValue", + "nodeType": "YulIdentifier", + "src": "7580:8:3" + } + ] + } + ] + }, + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "bits", + "nodeType": "YulTypedName", + "src": "7545:4:3", + "type": "" + }, + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7551:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "newValue", + "nodeType": "YulTypedName", + "src": "7561:8:3", + "type": "" + } + ], + "src": "7507:117:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7681:118:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7691:68:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7740:1:3", + "type": "", + "value": "8" + }, + { + "name": "bytes", + "nodeType": "YulIdentifier", + "src": "7743:5:3" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "7736:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7736:13:3" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7755:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "7751:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7751:6:3" + } + ], + "functionName": { + "name": "shift_right_unsigned_dynamic", + "nodeType": "YulIdentifier", + "src": "7707:28:3" + }, + "nodeType": "YulFunctionCall", + "src": "7707:51:3" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "7703:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7703:56:3" + }, + "variables": [ + { + "name": "mask", + "nodeType": "YulTypedName", + "src": "7695:4:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7768:25:3", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "7782:4:3" + }, + { + "name": "mask", + "nodeType": "YulIdentifier", + "src": "7788:4:3" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "7778:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7778:15:3" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "7768:6:3" + } + ] + } + ] + }, + "name": "mask_bytes_dynamic", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "7658:4:3", + "type": "" + }, + { + "name": "bytes", + "nodeType": "YulTypedName", + "src": "7664:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "7674:6:3", + "type": "" + } + ], + "src": "7630:169:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7885:214:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8018:37:3", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "8045:4:3" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "8051:3:3" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "8026:18:3" + }, + "nodeType": "YulFunctionCall", + "src": "8026:29:3" + }, + "variableNames": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "8018:4:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8064:29:3", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "8075:4:3" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8085:1:3", + "type": "", + "value": "2" + }, + { + "name": "len", + "nodeType": "YulIdentifier", + "src": "8088:3:3" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "8081:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8081:11:3" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "8072:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "8072:21:3" + }, + "variableNames": [ + { + "name": "used", + "nodeType": "YulIdentifier", + "src": "8064:4:3" + } + ] + } + ] + }, + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "7866:4:3", + "type": "" + }, + { + "name": "len", + "nodeType": "YulTypedName", + "src": "7872:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "used", + "nodeType": "YulTypedName", + "src": "7880:4:3", + "type": "" + } + ], + "src": "7804:295:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8196:1303:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8207:51:3", + "value": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8254:3:3" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8221:32:3" + }, + "nodeType": "YulFunctionCall", + "src": "8221:37:3" + }, + "variables": [ + { + "name": "newLen", + "nodeType": "YulTypedName", + "src": "8211:6:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8343:22:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x41", + "nodeType": "YulIdentifier", + "src": "8345:16:3" + }, + "nodeType": "YulFunctionCall", + "src": "8345:18:3" + }, + "nodeType": "YulExpressionStatement", + "src": "8345:18:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8315:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8323:18:3", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8312:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "8312:30:3" + }, + "nodeType": "YulIf", + "src": "8309:56:3" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8375:52:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8421:4:3" + } + ], + "functionName": { + "name": "sload", + "nodeType": "YulIdentifier", + "src": "8415:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "8415:11:3" + } + ], + "functionName": { + "name": "extract_byte_array_length", + "nodeType": "YulIdentifier", + "src": "8389:25:3" + }, + "nodeType": "YulFunctionCall", + "src": "8389:38:3" + }, + "variables": [ + { + "name": "oldLen", + "nodeType": "YulTypedName", + "src": "8379:6:3", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8520:4:3" + }, + { + "name": "oldLen", + "nodeType": "YulIdentifier", + "src": "8526:6:3" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8534:6:3" + } + ], + "functionName": { + "name": "clean_up_bytearray_end_slots_t_string_storage", + "nodeType": "YulIdentifier", + "src": "8474:45:3" + }, + "nodeType": "YulFunctionCall", + "src": "8474:67:3" + }, + "nodeType": "YulExpressionStatement", + "src": "8474:67:3" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8551:18:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8568:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "srcOffset", + "nodeType": "YulTypedName", + "src": "8555:9:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8579:17:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8592:4:3", + "type": "", + "value": "0x20" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8579:9:3" + } + ] + }, + { + "cases": [ + { + "body": { + "nodeType": "YulBlock", + "src": "8643:611:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8657:37:3", + "value": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8676:6:3" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8688:4:3", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "8684:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8684:9:3" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "8672:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8672:22:3" + }, + "variables": [ + { + "name": "loopEnd", + "nodeType": "YulTypedName", + "src": "8661:7:3", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8708:51:3", + "value": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "8754:4:3" + } + ], + "functionName": { + "name": "array_dataslot_t_string_storage", + "nodeType": "YulIdentifier", + "src": "8722:31:3" + }, + "nodeType": "YulFunctionCall", + "src": "8722:37:3" + }, + "variables": [ + { + "name": "dstPtr", + "nodeType": "YulTypedName", + "src": "8712:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "8772:10:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8781:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "8776:1:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8840:163:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8865:6:3" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "8883:3:3" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8888:9:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8879:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8879:19:3" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "8873:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "8873:26:3" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "8858:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "8858:42:3" + }, + "nodeType": "YulExpressionStatement", + "src": "8858:42:3" + }, + { + "nodeType": "YulAssignment", + "src": "8917:24:3", + "value": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8931:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8939:1:3", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8927:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8927:14:3" + }, + "variableNames": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "8917:6:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8958:31:3", + "value": { + "arguments": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8975:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8986:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8971:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8971:18:3" + }, + "variableNames": [ + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "8958:9:3" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8806:1:3" + }, + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "8809:7:3" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "8803:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "8803:14:3" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "8818:21:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8820:17:3", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8829:1:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8832:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8825:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8825:12:3" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "8820:1:3" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "8799:3:3", + "statements": [] + }, + "src": "8795:208:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9039:156:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9057:43:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "9084:3:3" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "9089:9:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9080:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9080:19:3" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "9074:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "9074:26:3" + }, + "variables": [ + { + "name": "lastValue", + "nodeType": "YulTypedName", + "src": "9061:9:3", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "dstPtr", + "nodeType": "YulIdentifier", + "src": "9124:6:3" + }, + { + "arguments": [ + { + "name": "lastValue", + "nodeType": "YulIdentifier", + "src": "9151:9:3" + }, + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "9166:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9174:4:3", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "9162:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9162:17:3" + } + ], + "functionName": { + "name": "mask_bytes_dynamic", + "nodeType": "YulIdentifier", + "src": "9132:18:3" + }, + "nodeType": "YulFunctionCall", + "src": "9132:48:3" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "9117:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "9117:64:3" + }, + "nodeType": "YulExpressionStatement", + "src": "9117:64:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "loopEnd", + "nodeType": "YulIdentifier", + "src": "9022:7:3" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "9031:6:3" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "9019:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "9019:19:3" + }, + "nodeType": "YulIf", + "src": "9016:179:3" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "9215:4:3" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "9229:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9237:1:3", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "9225:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9225:14:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9241:1:3", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9221:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9221:22:3" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "9208:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "9208:36:3" + }, + "nodeType": "YulExpressionStatement", + "src": "9208:36:3" + } + ] + }, + "nodeType": "YulCase", + "src": "8636:618:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8641:1:3", + "type": "", + "value": "1" + } + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9271:222:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "9285:14:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9298:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9289:5:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9322:67:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9340:35:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "9359:3:3" + }, + { + "name": "srcOffset", + "nodeType": "YulIdentifier", + "src": "9364:9:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9355:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9355:19:3" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "9349:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "9349:26:3" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9340:5:3" + } + ] + } + ] + }, + "condition": { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "9315:6:3" + }, + "nodeType": "YulIf", + "src": "9312:77:3" + }, + { + "expression": { + "arguments": [ + { + "name": "slot", + "nodeType": "YulIdentifier", + "src": "9409:4:3" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9468:5:3" + }, + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "9475:6:3" + } + ], + "functionName": { + "name": "extract_used_part_and_set_length_of_short_byte_array", + "nodeType": "YulIdentifier", + "src": "9415:52:3" + }, + "nodeType": "YulFunctionCall", + "src": "9415:67:3" + } + ], + "functionName": { + "name": "sstore", + "nodeType": "YulIdentifier", + "src": "9402:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "9402:81:3" + }, + "nodeType": "YulExpressionStatement", + "src": "9402:81:3" + } + ] + }, + "nodeType": "YulCase", + "src": "9263:230:3", + "value": "default" + } + ], + "expression": { + "arguments": [ + { + "name": "newLen", + "nodeType": "YulIdentifier", + "src": "8616:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8624:2:3", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8613:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "8613:14:3" + }, + "nodeType": "YulSwitch", + "src": "8606:887:3" + } + ] + }, + "name": "copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "slot", + "nodeType": "YulTypedName", + "src": "8185:4:3", + "type": "" + }, + { + "name": "src", + "nodeType": "YulTypedName", + "src": "8191:3:3", + "type": "" + } + ], + "src": "8104:1395:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9533:152:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9550:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9553:77:3", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9543:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "9543:88:3" + }, + "nodeType": "YulExpressionStatement", + "src": "9543:88:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9647:1:3", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9650:4:3", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9640:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "9640:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "9640:15:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9671:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9674:4:3", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "9664:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "9664:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "9664:15:3" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "9505:180:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9739:300:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9749:25:3", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9772:1:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9754:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "9754:20:3" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9749:1:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9783:25:3", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9806:1:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9788:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "9788:20:3" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9783:1:3" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9981:22:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "9983:16:3" + }, + "nodeType": "YulFunctionCall", + "src": "9983:18:3" + }, + "nodeType": "YulExpressionStatement", + "src": "9983:18:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9893:1:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9886:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "9886:9:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "9879:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "9879:17:3" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "9901:1:3" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9908:66:3", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "9976:1:3" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "9904:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9904:74:3" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "9898:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "9898:81:3" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "9875:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9875:105:3" + }, + "nodeType": "YulIf", + "src": "9872:131:3" + }, + { + "nodeType": "YulAssignment", + "src": "10013:20:3", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "10028:1:3" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "10031:1:3" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "10024:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "10024:9:3" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "10013:7:3" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "9722:1:3", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "9725:1:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "9731:7:3", + "type": "" + } + ], + "src": "9691:348:3" + } + ] + }, + "contents": "{\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_address(value)\n }\n\n function revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() {\n revert(0, 0)\n }\n\n function revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() {\n revert(0, 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function panic_error_0x41() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x41)\n revert(0, 0x24)\n }\n\n function finalize_allocation(memPtr, size) {\n let newFreePtr := add(memPtr, round_up_to_mul_of_32(size))\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n mstore(64, newFreePtr)\n }\n\n function allocate_memory(size) -> memPtr {\n memPtr := allocate_unbounded()\n finalize_allocation(memPtr, size)\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n\n size := round_up_to_mul_of_32(length)\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\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 mstore(add(dst, length), 0)\n }\n\n function abi_decode_available_length_t_string_memory_ptr_fromMemory(src, length, end) -> array {\n array := allocate_memory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert_error_987264b3b1d58a9c7f8255e93e81c77d86d6299019c33110a076957a3e06e2ae() }\n copy_memory_to_memory_with_cleanup(src, dst, length)\n }\n\n // string\n function abi_decode_t_string_memory_ptr_fromMemory(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert_error_1b9f4a0a5773e33b91aa01db23bf8c55fce1411167c872835e7fa00a4f17d46d() }\n let length := mload(offset)\n array := abi_decode_available_length_t_string_memory_ptr_fromMemory(add(offset, 0x20), length, end)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256_fromMemory(offset, end) -> value {\n value := mload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_addresst_string_memory_ptrt_uint256t_uint256_fromMemory(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := mload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() }\n\n value1 := abi_decode_t_string_memory_ptr_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint256_fromMemory(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function array_dataslot_t_string_storage(ptr) -> data {\n data := ptr\n\n mstore(0, ptr)\n data := keccak256(0, 0x20)\n\n }\n\n function divide_by_32_ceil(value) -> result {\n result := div(add(value, 31), 32)\n }\n\n function shift_left_dynamic(bits, value) -> newValue {\n newValue :=\n\n shl(bits, value)\n\n }\n\n function update_byte_slice_dynamic32(value, shiftBytes, toInsert) -> result {\n let shiftBits := mul(shiftBytes, 8)\n let mask := shift_left_dynamic(shiftBits, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)\n toInsert := shift_left_dynamic(shiftBits, toInsert)\n value := and(value, not(mask))\n result := or(value, and(toInsert, mask))\n }\n\n function identity(value) -> ret {\n ret := value\n }\n\n function convert_t_uint256_to_t_uint256(value) -> converted {\n converted := cleanup_t_uint256(identity(cleanup_t_uint256(value)))\n }\n\n function prepare_store_t_uint256(value) -> ret {\n ret := value\n }\n\n function update_storage_value_t_uint256_to_t_uint256(slot, offset, value_0) {\n let convertedValue_0 := convert_t_uint256_to_t_uint256(value_0)\n sstore(slot, update_byte_slice_dynamic32(sload(slot), offset, prepare_store_t_uint256(convertedValue_0)))\n }\n\n function zero_value_for_split_t_uint256() -> ret {\n ret := 0\n }\n\n function storage_set_to_zero_t_uint256(slot, offset) {\n let zero_0 := zero_value_for_split_t_uint256()\n update_storage_value_t_uint256_to_t_uint256(slot, offset, zero_0)\n }\n\n function clear_storage_range_t_bytes1(start, end) {\n for {} lt(start, end) { start := add(start, 1) }\n {\n storage_set_to_zero_t_uint256(start, 0)\n }\n }\n\n function clean_up_bytearray_end_slots_t_string_storage(array, len, startIndex) {\n\n if gt(len, 31) {\n let dataArea := array_dataslot_t_string_storage(array)\n let deleteStart := add(dataArea, divide_by_32_ceil(startIndex))\n // If we are clearing array to be short byte array, we want to clear only data starting from array data area.\n if lt(startIndex, 32) { deleteStart := dataArea }\n clear_storage_range_t_bytes1(deleteStart, add(dataArea, divide_by_32_ceil(len)))\n }\n\n }\n\n function shift_right_unsigned_dynamic(bits, value) -> newValue {\n newValue :=\n\n shr(bits, value)\n\n }\n\n function mask_bytes_dynamic(data, bytes) -> result {\n let mask := not(shift_right_unsigned_dynamic(mul(8, bytes), not(0)))\n result := and(data, mask)\n }\n function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used {\n // we want to save only elements that are part of the array after resizing\n // others should be set to zero\n data := mask_bytes_dynamic(data, len)\n used := or(data, mul(2, len))\n }\n function copy_byte_array_to_storage_from_t_string_memory_ptr_to_t_string_storage(slot, src) {\n\n let newLen := array_length_t_string_memory_ptr(src)\n // Make sure array length is sane\n if gt(newLen, 0xffffffffffffffff) { panic_error_0x41() }\n\n let oldLen := extract_byte_array_length(sload(slot))\n\n // potentially truncate data\n clean_up_bytearray_end_slots_t_string_storage(slot, oldLen, newLen)\n\n let srcOffset := 0\n\n srcOffset := 0x20\n\n switch gt(newLen, 31)\n case 1 {\n let loopEnd := and(newLen, not(0x1f))\n\n let dstPtr := array_dataslot_t_string_storage(slot)\n let i := 0\n for { } lt(i, loopEnd) { i := add(i, 0x20) } {\n sstore(dstPtr, mload(add(src, srcOffset)))\n dstPtr := add(dstPtr, 1)\n srcOffset := add(srcOffset, 32)\n }\n if lt(loopEnd, newLen) {\n let lastValue := mload(add(src, srcOffset))\n sstore(dstPtr, mask_bytes_dynamic(lastValue, and(newLen, 0x1f)))\n }\n sstore(slot, add(mul(newLen, 2), 1))\n }\n default {\n let value := 0\n if newLen {\n value := mload(add(src, srcOffset))\n }\n sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, newLen))\n }\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n}\n", + "id": 3, + "language": "Yul", + "name": "#utility.yul" + } + ], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:17974:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "52:32:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "62:16:3", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "73:5:3" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "62:7:3" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "34:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "44:7:3", + "type": "" + } + ], + "src": "7:77:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "155:53:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "172:3:3" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "195:5:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "177:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "177:24:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "165:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "165:37:3" + }, + "nodeType": "YulExpressionStatement", + "src": "165:37:3" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "143:5:3", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "150:3:3", + "type": "" + } + ], + "src": "90:118:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "312:124:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "322:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "334:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "345:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "330:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "330:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "322:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "402:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "415:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "426:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "411:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "411:17:3" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "358:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "358:71:3" + }, + "nodeType": "YulExpressionStatement", + "src": "358:71:3" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "284:9:3", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "296:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "307:4:3", + "type": "" + } + ], + "src": "214:222:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "482:35:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "492:19:3", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "508:2:3", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "502:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "502:9:3" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "492:6:3" + } + ] + } + ] + }, + "name": "allocate_unbounded", + "nodeType": "YulFunctionDefinition", + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "475:6:3", + "type": "" + } + ], + "src": "442:75:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "612:28:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "629:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "632:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "622:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "622:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "622:12:3" + } + ] + }, + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulFunctionDefinition", + "src": "523:117:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "735:28:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "752:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "755:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "745:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "745:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "745:12:3" + } + ] + }, + "name": "revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db", + "nodeType": "YulFunctionDefinition", + "src": "646:117:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "814:81:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "824:65:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "839:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "846:42:3", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "835:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "835:54:3" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "824:7:3" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "796:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "806:7:3", + "type": "" + } + ], + "src": "769:126:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "946:51:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "956:35:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "985:5:3" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "967:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "967:24:3" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "956:7:3" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "928:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "938:7:3", + "type": "" + } + ], + "src": "901:96:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1046:79:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1103:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1112:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1115:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1105:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "1105:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1105:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1069:5:3" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1094:5:3" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "1076:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "1076:24:3" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "1066:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "1066:35:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1059:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "1059:43:3" + }, + "nodeType": "YulIf", + "src": "1056:63:3" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1039:5:3", + "type": "" + } + ], + "src": "1003:122:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1183:87:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1193:29:3", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1215:6:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1202:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "1202:20:3" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1193:5:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1258:5:3" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "1231:26:3" + }, + "nodeType": "YulFunctionCall", + "src": "1231:33:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1231:33:3" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1161:6:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1169:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1177:5:3", + "type": "" + } + ], + "src": "1131:139:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1342:263:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1388:83:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "1390:77:3" + }, + "nodeType": "YulFunctionCall", + "src": "1390:79:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1390:79:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1363:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1372:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1359:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1359:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1384:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1355:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1355:32:3" + }, + "nodeType": "YulIf", + "src": "1352:119:3" + }, + { + "nodeType": "YulBlock", + "src": "1481:117:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1496:15:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1510:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1500:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1525:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1560:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1571:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1556:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1556:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1580:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "1535:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "1535:53:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1525:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1312:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1323:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1335:6:3", + "type": "" + } + ], + "src": "1276:329:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1670:40:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1681:22:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1697:5:3" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "1691:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "1691:12:3" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1681:6:3" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1653:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1663:6:3", + "type": "" + } + ], + "src": "1611:99:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1812:73:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1829:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1834:6:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "1822:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "1822:19:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1822:19:3" + }, + { + "nodeType": "YulAssignment", + "src": "1850:29:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "1869:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1874:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1865:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1865:14:3" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "1850:11:3" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "1784:3:3", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1789:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "1800:11:3", + "type": "" + } + ], + "src": "1716:169:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1953:184:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1963:10:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1972:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "1967:1:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2032:63:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2057:3:3" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2062:1:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2053:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2053:11:3" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "2076:3:3" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2081:1:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2072:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2072:11:3" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "2066:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "2066:18:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2046:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "2046:39:3" + }, + "nodeType": "YulExpressionStatement", + "src": "2046:39:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "1993:1:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1996:6:3" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "1990:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "1990:13:3" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "2004:19:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2006:15:3", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2015:1:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2018:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2011:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2011:10:3" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "2006:1:3" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "1986:3:3", + "statements": [] + }, + "src": "1982:113:3" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "2115:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2120:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2111:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2111:16:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2129:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2104:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "2104:27:3" + }, + "nodeType": "YulExpressionStatement", + "src": "2104:27:3" + } + ] + }, + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "1935:3:3", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "1940:3:3", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1945:6:3", + "type": "" + } + ], + "src": "1891:246:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2191:54:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2201:38:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2219:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2226:2:3", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2215:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2215:14:3" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2235:2:3", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "2231:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2231:7:3" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "2211:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2211:28:3" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "2201:6:3" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2174:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "2184:6:3", + "type": "" + } + ], + "src": "2143:102:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2343:285:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2353:53:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2400:5:3" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2367:32:3" + }, + "nodeType": "YulFunctionCall", + "src": "2367:39:3" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "2357:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2415:78:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2481:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2486:6:3" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2422:58:3" + }, + "nodeType": "YulFunctionCall", + "src": "2422:71:3" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2415:3:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2541:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2548:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2537:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2537:16:3" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2555:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2560:6:3" + } + ], + "functionName": { + "name": "copy_memory_to_memory_with_cleanup", + "nodeType": "YulIdentifier", + "src": "2502:34:3" + }, + "nodeType": "YulFunctionCall", + "src": "2502:65:3" + }, + "nodeType": "YulExpressionStatement", + "src": "2502:65:3" + }, + { + "nodeType": "YulAssignment", + "src": "2576:46:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "2587:3:3" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2614:6:3" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "2592:21:3" + }, + "nodeType": "YulFunctionCall", + "src": "2592:29:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2583:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2583:39:3" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2576:3:3" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2324:5:3", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "2331:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2339:3:3", + "type": "" + } + ], + "src": "2251:377:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2752:195:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2762:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2774:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2785:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2770:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2770:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2762:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2809:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2820:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2805:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2805:17:3" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2828:4:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2834:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2824:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2824:20:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "2798:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "2798:47:3" + }, + "nodeType": "YulExpressionStatement", + "src": "2798:47:3" + }, + { + "nodeType": "YulAssignment", + "src": "2854:86:3", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2926:6:3" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2935:4:3" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "2862:63:3" + }, + "nodeType": "YulFunctionCall", + "src": "2862:78:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "2854:4:3" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2724:9:3", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2736:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "2747:4:3", + "type": "" + } + ], + "src": "2634:313:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2996:79:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3053:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3062:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3065:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3055:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "3055:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "3055:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3019:5:3" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3044:5:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "3026:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "3026:24:3" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "3016:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "3016:35:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "3009:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "3009:43:3" + }, + "nodeType": "YulIf", + "src": "3006:63:3" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2989:5:3", + "type": "" + } + ], + "src": "2953:122:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3133:87:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "3143:29:3", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3165:6:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "3152:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "3152:20:3" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3143:5:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "3208:5:3" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "3181:26:3" + }, + "nodeType": "YulFunctionCall", + "src": "3181:33:3" + }, + "nodeType": "YulExpressionStatement", + "src": "3181:33:3" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3111:6:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "3119:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "3127:5:3", + "type": "" + } + ], + "src": "3081:139:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3292:263:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3338:83:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3340:77:3" + }, + "nodeType": "YulFunctionCall", + "src": "3340:79:3" + }, + "nodeType": "YulExpressionStatement", + "src": "3340:79:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3313:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3322:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3309:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3309:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3334:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3305:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3305:32:3" + }, + "nodeType": "YulIf", + "src": "3302:119:3" + }, + { + "nodeType": "YulBlock", + "src": "3431:117:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3446:15:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3460:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3450:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3475:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3510:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3521:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3506:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3506:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3530:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3485:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "3485:53:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3475:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3262:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3273:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3285:6:3", + "type": "" + } + ], + "src": "3226:329:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3644:391:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3690:83:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "3692:77:3" + }, + "nodeType": "YulFunctionCall", + "src": "3692:79:3" + }, + "nodeType": "YulExpressionStatement", + "src": "3692:79:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3665:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3674:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3661:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3661:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3686:2:3", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3657:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3657:32:3" + }, + "nodeType": "YulIf", + "src": "3654:119:3" + }, + { + "nodeType": "YulBlock", + "src": "3783:117:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3798:15:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3812:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3802:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3827:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3862:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3873:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3858:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3858:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3882:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3837:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "3837:53:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3827:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3910:118:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3925:16:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3939:2:3", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3929:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3955:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3990:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4001:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3986:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3986:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4010:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3965:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "3965:53:3" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3955:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3606:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3617:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3629:6:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3637:6:3", + "type": "" + } + ], + "src": "3561:474:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4124:391:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4170:83:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b", + "nodeType": "YulIdentifier", + "src": "4172:77:3" + }, + "nodeType": "YulFunctionCall", + "src": "4172:79:3" + }, + "nodeType": "YulExpressionStatement", + "src": "4172:79:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4145:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4154:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4141:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4141:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4166:2:3", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4137:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4137:32:3" + }, + "nodeType": "YulIf", + "src": "4134:119:3" + }, + { + "nodeType": "YulBlock", + "src": "4263:117:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4278:15:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4292:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4282:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4307:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4342:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4353:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4338:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4338:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4362:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4317:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "4317:53:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4307:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4390:118:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4405:16:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4419:2:3", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4409:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4435:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4470:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4481:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4466:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4466:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4490:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4445:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "4445:53:3" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4435:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4086:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4097:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4109:6:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4117:6:3", + "type": "" + } + ], + "src": "4041:474:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4627:71:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "4649:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4657:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4645:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4645:14:3" + }, + { + "hexValue": "6164647265737320697320616c726561647920616e206f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "4661:29:3", + "type": "", + "value": "address is already an owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4638:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "4638:53:3" + }, + "nodeType": "YulExpressionStatement", + "src": "4638:53:3" + } + ] + }, + "name": "store_literal_in_memory_9cc5fb360c3adab3067e050b8b1b3a1dbfe57bb45a3a5b6373474bd37488111a", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "4619:6:3", + "type": "" + } + ], + "src": "4521:177:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4850:220:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "4860:74:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4926:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4931:2:3", + "type": "", + "value": "27" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "4867:58:3" + }, + "nodeType": "YulFunctionCall", + "src": "4867:67:3" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4860:3:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5032:3:3" + } + ], + "functionName": { + "name": "store_literal_in_memory_9cc5fb360c3adab3067e050b8b1b3a1dbfe57bb45a3a5b6373474bd37488111a", + "nodeType": "YulIdentifier", + "src": "4943:88:3" + }, + "nodeType": "YulFunctionCall", + "src": "4943:93:3" + }, + "nodeType": "YulExpressionStatement", + "src": "4943:93:3" + }, + { + "nodeType": "YulAssignment", + "src": "5045:19:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "5056:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5061:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5052:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5052:12:3" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "5045:3:3" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_9cc5fb360c3adab3067e050b8b1b3a1dbfe57bb45a3a5b6373474bd37488111a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4838:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "4846:3:3", + "type": "" + } + ], + "src": "4704:366:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5247:248:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5257:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5269:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5280:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5265:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5265:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5257:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5304:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5315:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5300:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5300:17:3" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5323:4:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5329:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5319:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5319:20:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5293:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "5293:47:3" + }, + "nodeType": "YulExpressionStatement", + "src": "5293:47:3" + }, + { + "nodeType": "YulAssignment", + "src": "5349:139:3", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5483:4:3" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_9cc5fb360c3adab3067e050b8b1b3a1dbfe57bb45a3a5b6373474bd37488111a_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "5357:124:3" + }, + "nodeType": "YulFunctionCall", + "src": "5357:131:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5349:4:3" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_9cc5fb360c3adab3067e050b8b1b3a1dbfe57bb45a3a5b6373474bd37488111a__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5227:9:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5242:4:3", + "type": "" + } + ], + "src": "5076:419:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5529:152:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5546:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5549:77:3", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5539:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "5539:88:3" + }, + "nodeType": "YulExpressionStatement", + "src": "5539:88:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5643:1:3", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5646:4:3", + "type": "", + "value": "0x12" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5636:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "5636:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "5636:15:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5667:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5670:4:3", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5660:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "5660:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "5660:15:3" + } + ] + }, + "name": "panic_error_0x12", + "nodeType": "YulFunctionDefinition", + "src": "5501:180:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5715:152:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5732:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5735:77:3", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5725:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "5725:88:3" + }, + "nodeType": "YulExpressionStatement", + "src": "5725:88:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5829:1:3", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5832:4:3", + "type": "", + "value": "0x11" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "5822:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "5822:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "5822:15:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5853:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5856:4:3", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5846:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "5846:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "5846:15:3" + } + ] + }, + "name": "panic_error_0x11", + "nodeType": "YulFunctionDefinition", + "src": "5687:180:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5915:143:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5925:25:3", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5948:1:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5930:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "5930:20:3" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "5925:1:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5959:25:3", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5982:1:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "5964:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "5964:20:3" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "5959:1:3" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6006:22:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x12", + "nodeType": "YulIdentifier", + "src": "6008:16:3" + }, + "nodeType": "YulFunctionCall", + "src": "6008:18:3" + }, + "nodeType": "YulExpressionStatement", + "src": "6008:18:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6003:1:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5996:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "5996:9:3" + }, + "nodeType": "YulIf", + "src": "5993:35:3" + }, + { + "nodeType": "YulAssignment", + "src": "6038:14:3", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "6047:1:3" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "6050:1:3" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "6043:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6043:9:3" + }, + "variableNames": [ + { + "name": "r", + "nodeType": "YulIdentifier", + "src": "6038:1:3" + } + ] + } + ] + }, + "name": "checked_div_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "5904:1:3", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "5907:1:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "r", + "nodeType": "YulTypedName", + "src": "5913:1:3", + "type": "" + } + ], + "src": "5873:185:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6170:63:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "6192:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6200:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6188:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6188:14:3" + }, + { + "hexValue": "496e73756666696369656e742071756f72756d", + "kind": "string", + "nodeType": "YulLiteral", + "src": "6204:21:3", + "type": "", + "value": "Insufficient quorum" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6181:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "6181:45:3" + }, + "nodeType": "YulExpressionStatement", + "src": "6181:45:3" + } + ] + }, + "name": "store_literal_in_memory_ff74e91362f26a69e35baaddd54267c224f04274e715a7e428a59bcf67459bae", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "6162:6:3", + "type": "" + } + ], + "src": "6064:169:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6385:220:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6395:74:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6461:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6466:2:3", + "type": "", + "value": "19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6402:58:3" + }, + "nodeType": "YulFunctionCall", + "src": "6402:67:3" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6395:3:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6567:3:3" + } + ], + "functionName": { + "name": "store_literal_in_memory_ff74e91362f26a69e35baaddd54267c224f04274e715a7e428a59bcf67459bae", + "nodeType": "YulIdentifier", + "src": "6478:88:3" + }, + "nodeType": "YulFunctionCall", + "src": "6478:93:3" + }, + "nodeType": "YulExpressionStatement", + "src": "6478:93:3" + }, + { + "nodeType": "YulAssignment", + "src": "6580:19:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "6591:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6596:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6587:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6587:12:3" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "6580:3:3" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_ff74e91362f26a69e35baaddd54267c224f04274e715a7e428a59bcf67459bae_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "6373:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "6381:3:3", + "type": "" + } + ], + "src": "6239:366:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6782:248:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6792:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6804:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6815:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6800:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6800:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6792:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6839:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6850:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6835:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6835:17:3" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6858:4:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6864:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6854:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6854:20:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "6828:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "6828:47:3" + }, + "nodeType": "YulExpressionStatement", + "src": "6828:47:3" + }, + { + "nodeType": "YulAssignment", + "src": "6884:139:3", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7018:4:3" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_ff74e91362f26a69e35baaddd54267c224f04274e715a7e428a59bcf67459bae_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "6892:124:3" + }, + "nodeType": "YulFunctionCall", + "src": "6892:131:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "6884:4:3" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_ff74e91362f26a69e35baaddd54267c224f04274e715a7e428a59bcf67459bae__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6762:9:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "6777:4:3", + "type": "" + } + ], + "src": "6611:419:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7080:147:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7090:25:3", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7113:1:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7095:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "7095:20:3" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7090:1:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7124:25:3", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7147:1:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "7129:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "7129:20:3" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7124:1:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7158:16:3", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7169:1:3" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "7172:1:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7165:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7165:9:3" + }, + "variableNames": [ + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7158:3:3" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7198:22:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "7200:16:3" + }, + "nodeType": "YulFunctionCall", + "src": "7200:18:3" + }, + "nodeType": "YulExpressionStatement", + "src": "7200:18:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "7190:1:3" + }, + { + "name": "sum", + "nodeType": "YulIdentifier", + "src": "7193:3:3" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "7187:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "7187:10:3" + }, + "nodeType": "YulIf", + "src": "7184:36:3" + } + ] + }, + "name": "checked_add_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "7067:1:3", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "7070:1:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "sum", + "nodeType": "YulTypedName", + "src": "7076:3:3", + "type": "" + } + ], + "src": "7036:191:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7298:53:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7315:3:3" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7338:5:3" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "7320:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "7320:24:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7308:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "7308:37:3" + }, + "nodeType": "YulExpressionStatement", + "src": "7308:37:3" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7286:5:3", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7293:3:3", + "type": "" + } + ], + "src": "7233:118:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7455:124:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7465:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7477:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7488:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7473:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7473:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "7465:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7545:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7558:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7569:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7554:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7554:17:3" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "7501:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "7501:71:3" + }, + "nodeType": "YulExpressionStatement", + "src": "7501:71:3" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7427:9:3", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7439:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "7450:4:3", + "type": "" + } + ], + "src": "7357:222:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7691:67:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "7713:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7721:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7709:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7709:14:3" + }, + { + "hexValue": "61646472657373206973206e6f7420616e206f776e6572", + "kind": "string", + "nodeType": "YulLiteral", + "src": "7725:25:3", + "type": "", + "value": "address is not an owner" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7702:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "7702:49:3" + }, + "nodeType": "YulExpressionStatement", + "src": "7702:49:3" + } + ] + }, + "name": "store_literal_in_memory_7c9b101cb1e96ae9e8e5bc797f927ae2cec6f909e21b4dfc5ec3aea0644c0dea", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "7683:6:3", + "type": "" + } + ], + "src": "7585:173:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7910:220:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "7920:74:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7986:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7991:2:3", + "type": "", + "value": "23" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "7927:58:3" + }, + "nodeType": "YulFunctionCall", + "src": "7927:67:3" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7920:3:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8092:3:3" + } + ], + "functionName": { + "name": "store_literal_in_memory_7c9b101cb1e96ae9e8e5bc797f927ae2cec6f909e21b4dfc5ec3aea0644c0dea", + "nodeType": "YulIdentifier", + "src": "8003:88:3" + }, + "nodeType": "YulFunctionCall", + "src": "8003:93:3" + }, + "nodeType": "YulExpressionStatement", + "src": "8003:93:3" + }, + { + "nodeType": "YulAssignment", + "src": "8105:19:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8116:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8121:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8112:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8112:12:3" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8105:3:3" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_7c9b101cb1e96ae9e8e5bc797f927ae2cec6f909e21b4dfc5ec3aea0644c0dea_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7898:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "7906:3:3", + "type": "" + } + ], + "src": "7764:366:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8307:248:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8317:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8329:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8340:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8325:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8325:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8317:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8364:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8375:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8360:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8360:17:3" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8383:4:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "8389:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8379:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8379:20:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8353:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "8353:47:3" + }, + "nodeType": "YulExpressionStatement", + "src": "8353:47:3" + }, + { + "nodeType": "YulAssignment", + "src": "8409:139:3", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8543:4:3" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_7c9b101cb1e96ae9e8e5bc797f927ae2cec6f909e21b4dfc5ec3aea0644c0dea_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8417:124:3" + }, + "nodeType": "YulFunctionCall", + "src": "8417:131:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "8409:4:3" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_7c9b101cb1e96ae9e8e5bc797f927ae2cec6f909e21b4dfc5ec3aea0644c0dea__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "8287:9:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "8302:4:3", + "type": "" + } + ], + "src": "8136:419:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8606:149:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8616:25:3", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8639:1:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8621:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "8621:20:3" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8616:1:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8650:25:3", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8673:1:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "8655:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "8655:20:3" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8650:1:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8684:17:3", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8696:1:3" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "8699:1:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "8692:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8692:9:3" + }, + "variableNames": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "8684:4:3" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8726:22:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "8728:16:3" + }, + "nodeType": "YulFunctionCall", + "src": "8728:18:3" + }, + "nodeType": "YulExpressionStatement", + "src": "8728:18:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "diff", + "nodeType": "YulIdentifier", + "src": "8717:4:3" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "8723:1:3" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "8714:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "8714:11:3" + }, + "nodeType": "YulIf", + "src": "8711:37:3" + } + ] + }, + "name": "checked_sub_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "8592:1:3", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "8595:1:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "diff", + "nodeType": "YulTypedName", + "src": "8601:4:3", + "type": "" + } + ], + "src": "8561:194:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8789:152:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8806:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8809:77:3", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8799:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "8799:88:3" + }, + "nodeType": "YulExpressionStatement", + "src": "8799:88:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8903:1:3", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8906:4:3", + "type": "", + "value": "0x32" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "8896:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "8896:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "8896:15:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8927:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8930:4:3", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "8920:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "8920:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "8920:15:3" + } + ] + }, + "name": "panic_error_0x32", + "nodeType": "YulFunctionDefinition", + "src": "8761:180:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8990:190:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9000:33:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9027:5:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9009:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "9009:24:3" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9000:5:3" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9123:22:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "9125:16:3" + }, + "nodeType": "YulFunctionCall", + "src": "9125:18:3" + }, + "nodeType": "YulExpressionStatement", + "src": "9125:18:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9048:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9055:66:3", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "9045:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "9045:77:3" + }, + "nodeType": "YulIf", + "src": "9042:103:3" + }, + { + "nodeType": "YulAssignment", + "src": "9154:20:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9165:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9172:1:3", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9161:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9161:13:3" + }, + "variableNames": [ + { + "name": "ret", + "nodeType": "YulIdentifier", + "src": "9154:3:3" + } + ] + } + ] + }, + "name": "increment_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8976:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "ret", + "nodeType": "YulTypedName", + "src": "8986:3:3", + "type": "" + } + ], + "src": "8947:233:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9292:56:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "9314:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9322:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9310:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9310:14:3" + }, + { + "hexValue": "556e617574686f72697a6564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "9326:14:3", + "type": "", + "value": "Unauthorized" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9303:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "9303:38:3" + }, + "nodeType": "YulExpressionStatement", + "src": "9303:38:3" + } + ] + }, + "name": "store_literal_in_memory_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "9284:6:3", + "type": "" + } + ], + "src": "9186:162:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9500:220:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9510:74:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9576:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9581:2:3", + "type": "", + "value": "12" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "9517:58:3" + }, + "nodeType": "YulFunctionCall", + "src": "9517:67:3" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9510:3:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9682:3:3" + } + ], + "functionName": { + "name": "store_literal_in_memory_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5", + "nodeType": "YulIdentifier", + "src": "9593:88:3" + }, + "nodeType": "YulFunctionCall", + "src": "9593:93:3" + }, + "nodeType": "YulExpressionStatement", + "src": "9593:93:3" + }, + { + "nodeType": "YulAssignment", + "src": "9695:19:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9706:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9711:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9702:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9702:12:3" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9695:3:3" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9488:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9496:3:3", + "type": "" + } + ], + "src": "9354:366:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9897:248:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9907:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9919:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9930:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9915:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9915:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9907:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9954:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9965:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9950:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9950:17:3" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9973:4:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9979:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "9969:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9969:20:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9943:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "9943:47:3" + }, + "nodeType": "YulExpressionStatement", + "src": "9943:47:3" + }, + { + "nodeType": "YulAssignment", + "src": "9999:139:3", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10133:4:3" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10007:124:3" + }, + "nodeType": "YulFunctionCall", + "src": "10007:131:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9999:4:3" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9877:9:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9892:4:3", + "type": "" + } + ], + "src": "9726:419:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10277:206:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10287:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10299:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10310:2:3", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10295:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "10295:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10287:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10367:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10380:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10391:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10376:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "10376:17:3" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "10323:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "10323:71:3" + }, + "nodeType": "YulExpressionStatement", + "src": "10323:71:3" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "10448:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10461:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10472:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10457:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "10457:18:3" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10404:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "10404:72:3" + }, + "nodeType": "YulExpressionStatement", + "src": "10404:72:3" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10241:9:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "10253:6:3", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10261:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10272:4:3", + "type": "" + } + ], + "src": "10151:332:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10517:152:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10534:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10537:77:3", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10527:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "10527:88:3" + }, + "nodeType": "YulExpressionStatement", + "src": "10527:88:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10631:1:3", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10634:4:3", + "type": "", + "value": "0x22" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10624:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "10624:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "10624:15:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10655:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10658:4:3", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "10648:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "10648:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "10648:15:3" + } + ] + }, + "name": "panic_error_0x22", + "nodeType": "YulFunctionDefinition", + "src": "10489:180:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10726:269:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10736:22:3", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "10750:4:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10756:1:3", + "type": "", + "value": "2" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "10746:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "10746:12:3" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10736:6:3" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "10767:38:3", + "value": { + "arguments": [ + { + "name": "data", + "nodeType": "YulIdentifier", + "src": "10797:4:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10803:1:3", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "10793:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "10793:12:3" + }, + "variables": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulTypedName", + "src": "10771:18:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10844:51:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10858:27:3", + "value": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10872:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10880:4:3", + "type": "", + "value": "0x7f" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "10868:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "10868:17:3" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10858:6:3" + } + ] + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "10824:18:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "10817:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "10817:26:3" + }, + "nodeType": "YulIf", + "src": "10814:81:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10947:42:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x22", + "nodeType": "YulIdentifier", + "src": "10961:16:3" + }, + "nodeType": "YulFunctionCall", + "src": "10961:18:3" + }, + "nodeType": "YulExpressionStatement", + "src": "10961:18:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "outOfPlaceEncoding", + "nodeType": "YulIdentifier", + "src": "10911:18:3" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "10934:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10942:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "10931:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "10931:14:3" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "10908:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "10908:38:3" + }, + "nodeType": "YulIf", + "src": "10905:84:3" + } + ] + }, + "name": "extract_byte_array_length", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "data", + "nodeType": "YulTypedName", + "src": "10710:4:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "10719:6:3", + "type": "" + } + ], + "src": "10675:320:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11127:206:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11137:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11149:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11160:2:3", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11145:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "11145:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11137:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11217:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11230:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11241:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11226:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "11226:17:3" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "11173:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "11173:71:3" + }, + "nodeType": "YulExpressionStatement", + "src": "11173:71:3" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "11298:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11311:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11322:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11307:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "11307:18:3" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "11254:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "11254:72:3" + }, + "nodeType": "YulExpressionStatement", + "src": "11254:72:3" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11091:9:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "11103:6:3", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11111:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11122:4:3", + "type": "" + } + ], + "src": "11001:332:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11445:70:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "11467:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11475:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11463:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "11463:14:3" + }, + { + "hexValue": "6c6f636b696e6720706572696f64206e6f7420656c6170736564", + "kind": "string", + "nodeType": "YulLiteral", + "src": "11479:28:3", + "type": "", + "value": "locking period not elapsed" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11456:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "11456:52:3" + }, + "nodeType": "YulExpressionStatement", + "src": "11456:52:3" + } + ] + }, + "name": "store_literal_in_memory_e373a65136155e1dfb699bced8050fefa1b3e4cdfdbbac177c8461d84579cd6f", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "11437:6:3", + "type": "" + } + ], + "src": "11339:176:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11667:220:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11677:74:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11743:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11748:2:3", + "type": "", + "value": "26" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11684:58:3" + }, + "nodeType": "YulFunctionCall", + "src": "11684:67:3" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11677:3:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11849:3:3" + } + ], + "functionName": { + "name": "store_literal_in_memory_e373a65136155e1dfb699bced8050fefa1b3e4cdfdbbac177c8461d84579cd6f", + "nodeType": "YulIdentifier", + "src": "11760:88:3" + }, + "nodeType": "YulFunctionCall", + "src": "11760:93:3" + }, + "nodeType": "YulExpressionStatement", + "src": "11760:93:3" + }, + { + "nodeType": "YulAssignment", + "src": "11862:19:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "11873:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11878:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11869:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "11869:12:3" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "11862:3:3" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_e373a65136155e1dfb699bced8050fefa1b3e4cdfdbbac177c8461d84579cd6f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "11655:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "11663:3:3", + "type": "" + } + ], + "src": "11521:366:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12064:248:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12074:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12086:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12097:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12082:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12082:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12074:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12121:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12132:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12117:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12117:17:3" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12140:4:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12146:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12136:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12136:20:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12110:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "12110:47:3" + }, + "nodeType": "YulExpressionStatement", + "src": "12110:47:3" + }, + { + "nodeType": "YulAssignment", + "src": "12166:139:3", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12300:4:3" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_e373a65136155e1dfb699bced8050fefa1b3e4cdfdbbac177c8461d84579cd6f_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "12174:124:3" + }, + "nodeType": "YulFunctionCall", + "src": "12174:131:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12166:4:3" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_e373a65136155e1dfb699bced8050fefa1b3e4cdfdbbac177c8461d84579cd6f__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12044:9:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12059:4:3", + "type": "" + } + ], + "src": "11893:419:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12472:288:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12482:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12494:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12505:2:3", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12490:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12490:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "12482:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "12562:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12575:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12586:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12571:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12571:17:3" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "12518:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "12518:71:3" + }, + "nodeType": "YulExpressionStatement", + "src": "12518:71:3" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "12643:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12656:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12667:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12652:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12652:18:3" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "12599:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "12599:72:3" + }, + "nodeType": "YulExpressionStatement", + "src": "12599:72:3" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "12725:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12738:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12749:2:3", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12734:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12734:18:3" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "12681:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "12681:72:3" + }, + "nodeType": "YulExpressionStatement", + "src": "12681:72:3" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "12428:9:3", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "12440:6:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "12448:6:3", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "12456:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "12467:4:3", + "type": "" + } + ], + "src": "12318:442:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12872:63:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12894:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12902:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12890:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12890:14:3" + }, + { + "hexValue": "496e73756666696369656e7420637265646974", + "kind": "string", + "nodeType": "YulLiteral", + "src": "12906:21:3", + "type": "", + "value": "Insufficient credit" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12883:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "12883:45:3" + }, + "nodeType": "YulExpressionStatement", + "src": "12883:45:3" + } + ] + }, + "name": "store_literal_in_memory_53e85fda21889e930b90545943e5eef1e839e6cce682bf488a222abd3afdcd10", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "12864:6:3", + "type": "" + } + ], + "src": "12766:169:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13087:220:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13097:74:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13163:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13168:2:3", + "type": "", + "value": "19" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13104:58:3" + }, + "nodeType": "YulFunctionCall", + "src": "13104:67:3" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13097:3:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13269:3:3" + } + ], + "functionName": { + "name": "store_literal_in_memory_53e85fda21889e930b90545943e5eef1e839e6cce682bf488a222abd3afdcd10", + "nodeType": "YulIdentifier", + "src": "13180:88:3" + }, + "nodeType": "YulFunctionCall", + "src": "13180:93:3" + }, + "nodeType": "YulExpressionStatement", + "src": "13180:93:3" + }, + { + "nodeType": "YulAssignment", + "src": "13282:19:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13293:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13298:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13289:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "13289:12:3" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "13282:3:3" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_53e85fda21889e930b90545943e5eef1e839e6cce682bf488a222abd3afdcd10_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13075:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "13083:3:3", + "type": "" + } + ], + "src": "12941:366:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13484:248:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13494:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13506:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13517:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13502:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "13502:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13494:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13541:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13552:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13537:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "13537:17:3" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13560:4:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "13566:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "13556:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "13556:20:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13530:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "13530:47:3" + }, + "nodeType": "YulExpressionStatement", + "src": "13530:47:3" + }, + { + "nodeType": "YulAssignment", + "src": "13586:139:3", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13720:4:3" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_53e85fda21889e930b90545943e5eef1e839e6cce682bf488a222abd3afdcd10_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "13594:124:3" + }, + "nodeType": "YulFunctionCall", + "src": "13594:131:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "13586:4:3" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_53e85fda21889e930b90545943e5eef1e839e6cce682bf488a222abd3afdcd10__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "13464:9:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "13479:4:3", + "type": "" + } + ], + "src": "13313:419:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13786:300:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13796:25:3", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13819:1:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13801:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "13801:20:3" + }, + "variableNames": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13796:1:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13830:25:3", + "value": { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13853:1:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "13835:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "13835:20:3" + }, + "variableNames": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13830:1:3" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14028:22:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error_0x11", + "nodeType": "YulIdentifier", + "src": "14030:16:3" + }, + "nodeType": "YulFunctionCall", + "src": "14030:18:3" + }, + "nodeType": "YulExpressionStatement", + "src": "14030:18:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "13940:1:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "13933:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "13933:9:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "13926:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "13926:17:3" + }, + { + "arguments": [ + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "13948:1:3" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13955:66:3", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + }, + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "14023:1:3" + } + ], + "functionName": { + "name": "div", + "nodeType": "YulIdentifier", + "src": "13951:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "13951:74:3" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13945:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "13945:81:3" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "13922:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "13922:105:3" + }, + "nodeType": "YulIf", + "src": "13919:131:3" + }, + { + "nodeType": "YulAssignment", + "src": "14060:20:3", + "value": { + "arguments": [ + { + "name": "x", + "nodeType": "YulIdentifier", + "src": "14075:1:3" + }, + { + "name": "y", + "nodeType": "YulIdentifier", + "src": "14078:1:3" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "14071:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "14071:9:3" + }, + "variableNames": [ + { + "name": "product", + "nodeType": "YulIdentifier", + "src": "14060:7:3" + } + ] + } + ] + }, + "name": "checked_mul_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "x", + "nodeType": "YulTypedName", + "src": "13769:1:3", + "type": "" + }, + { + "name": "y", + "nodeType": "YulTypedName", + "src": "13772:1:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "product", + "nodeType": "YulTypedName", + "src": "13778:7:3", + "type": "" + } + ], + "src": "13738:348:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14246:288:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14256:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14268:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14279:2:3", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14264:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "14264:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "14256:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "14336:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14349:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14360:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14345:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "14345:17:3" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "14292:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "14292:71:3" + }, + "nodeType": "YulExpressionStatement", + "src": "14292:71:3" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "14417:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14430:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14441:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14426:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "14426:18:3" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "14373:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "14373:72:3" + }, + "nodeType": "YulExpressionStatement", + "src": "14373:72:3" + }, + { + "expression": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "14499:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "14512:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14523:2:3", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14508:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "14508:18:3" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "14455:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "14455:72:3" + }, + "nodeType": "YulExpressionStatement", + "src": "14455:72:3" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "14202:9:3", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "14214:6:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "14222:6:3", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "14230:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "14241:4:3", + "type": "" + } + ], + "src": "14092:442:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14646:62:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "14668:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14676:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14664:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "14664:14:3" + }, + { + "hexValue": "616c726561647920737570706f7274696e67", + "kind": "string", + "nodeType": "YulLiteral", + "src": "14680:20:3", + "type": "", + "value": "already supporting" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14657:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "14657:44:3" + }, + "nodeType": "YulExpressionStatement", + "src": "14657:44:3" + } + ] + }, + "name": "store_literal_in_memory_f7d1cf13cde4f668fcf614bc588a950fd755fd683d79d394cef04d472cbb1cff", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "14638:6:3", + "type": "" + } + ], + "src": "14540:168:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14860:220:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14870:74:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14936:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14941:2:3", + "type": "", + "value": "18" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "14877:58:3" + }, + "nodeType": "YulFunctionCall", + "src": "14877:67:3" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14870:3:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15042:3:3" + } + ], + "functionName": { + "name": "store_literal_in_memory_f7d1cf13cde4f668fcf614bc588a950fd755fd683d79d394cef04d472cbb1cff", + "nodeType": "YulIdentifier", + "src": "14953:88:3" + }, + "nodeType": "YulFunctionCall", + "src": "14953:93:3" + }, + "nodeType": "YulExpressionStatement", + "src": "14953:93:3" + }, + { + "nodeType": "YulAssignment", + "src": "15055:19:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "15066:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15071:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15062:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "15062:12:3" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "15055:3:3" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_f7d1cf13cde4f668fcf614bc588a950fd755fd683d79d394cef04d472cbb1cff_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "14848:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "14856:3:3", + "type": "" + } + ], + "src": "14714:366:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15257:248:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15267:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15279:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15290:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15275:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "15275:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15267:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15314:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15325:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15310:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "15310:17:3" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15333:4:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15339:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "15329:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "15329:20:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15303:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "15303:47:3" + }, + "nodeType": "YulExpressionStatement", + "src": "15303:47:3" + }, + { + "nodeType": "YulAssignment", + "src": "15359:139:3", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15493:4:3" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_f7d1cf13cde4f668fcf614bc588a950fd755fd683d79d394cef04d472cbb1cff_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "15367:124:3" + }, + "nodeType": "YulFunctionCall", + "src": "15367:131:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15359:4:3" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_f7d1cf13cde4f668fcf614bc588a950fd755fd683d79d394cef04d472cbb1cff__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15237:9:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15252:4:3", + "type": "" + } + ], + "src": "15086:419:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15637:206:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15647:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15659:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15670:2:3", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15655:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "15655:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "15647:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "15727:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15740:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15751:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15736:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "15736:17:3" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "15683:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "15683:71:3" + }, + "nodeType": "YulExpressionStatement", + "src": "15683:71:3" + }, + { + "expression": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "15808:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "15821:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15832:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15817:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "15817:18:3" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "15764:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "15764:72:3" + }, + "nodeType": "YulExpressionStatement", + "src": "15764:72:3" + } + ] + }, + "name": "abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "15601:9:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "15613:6:3", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "15621:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "15632:4:3", + "type": "" + } + ], + "src": "15511:332:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15955:64:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "15977:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15985:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15973:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "15973:14:3" + }, + { + "hexValue": "496e73756666696369656e742062616c616e6365", + "kind": "string", + "nodeType": "YulLiteral", + "src": "15989:22:3", + "type": "", + "value": "Insufficient balance" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15966:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "15966:46:3" + }, + "nodeType": "YulExpressionStatement", + "src": "15966:46:3" + } + ] + }, + "name": "store_literal_in_memory_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "15947:6:3", + "type": "" + } + ], + "src": "15849:170:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16171:220:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16181:74:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16247:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16252:2:3", + "type": "", + "value": "20" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16188:58:3" + }, + "nodeType": "YulFunctionCall", + "src": "16188:67:3" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16181:3:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16353:3:3" + } + ], + "functionName": { + "name": "store_literal_in_memory_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5", + "nodeType": "YulIdentifier", + "src": "16264:88:3" + }, + "nodeType": "YulFunctionCall", + "src": "16264:93:3" + }, + "nodeType": "YulExpressionStatement", + "src": "16264:93:3" + }, + { + "nodeType": "YulAssignment", + "src": "16366:19:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "16377:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16382:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16373:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "16373:12:3" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "16366:3:3" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "16159:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "16167:3:3", + "type": "" + } + ], + "src": "16025:366:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16568:248:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "16578:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16590:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16601:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16586:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "16586:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16578:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16625:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16636:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16621:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "16621:17:3" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16644:4:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "16650:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "16640:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "16640:20:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16614:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "16614:47:3" + }, + "nodeType": "YulExpressionStatement", + "src": "16614:47:3" + }, + { + "nodeType": "YulAssignment", + "src": "16670:139:3", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16804:4:3" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "16678:124:3" + }, + "nodeType": "YulFunctionCall", + "src": "16678:131:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "16670:4:3" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "16548:9:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "16563:4:3", + "type": "" + } + ], + "src": "16397:419:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "16928:60:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "16950:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "16958:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "16946:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "16946:14:3" + }, + { + "hexValue": "616c7265616479206f70706f73696e67", + "kind": "string", + "nodeType": "YulLiteral", + "src": "16962:18:3", + "type": "", + "value": "already opposing" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "16939:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "16939:42:3" + }, + "nodeType": "YulExpressionStatement", + "src": "16939:42:3" + } + ] + }, + "name": "store_literal_in_memory_79546f394416399c1f1b6f3016d949e48393df299533def85d52606c069234db", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "16920:6:3", + "type": "" + } + ], + "src": "16822:166:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17140:220:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17150:74:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17216:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17221:2:3", + "type": "", + "value": "16" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17157:58:3" + }, + "nodeType": "YulFunctionCall", + "src": "17157:67:3" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17150:3:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17322:3:3" + } + ], + "functionName": { + "name": "store_literal_in_memory_79546f394416399c1f1b6f3016d949e48393df299533def85d52606c069234db", + "nodeType": "YulIdentifier", + "src": "17233:88:3" + }, + "nodeType": "YulFunctionCall", + "src": "17233:93:3" + }, + "nodeType": "YulExpressionStatement", + "src": "17233:93:3" + }, + { + "nodeType": "YulAssignment", + "src": "17335:19:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "17346:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17351:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17342:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "17342:12:3" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "17335:3:3" + } + ] + } + ] + }, + "name": "abi_encode_t_stringliteral_79546f394416399c1f1b6f3016d949e48393df299533def85d52606c069234db_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "17128:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "17136:3:3", + "type": "" + } + ], + "src": "16994:366:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17537:248:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "17547:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17559:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17570:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17555:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "17555:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17547:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17594:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17605:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "17590:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "17590:17:3" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17613:4:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "17619:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "17609:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "17609:20:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17583:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "17583:47:3" + }, + "nodeType": "YulExpressionStatement", + "src": "17583:47:3" + }, + { + "nodeType": "YulAssignment", + "src": "17639:139:3", + "value": { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17773:4:3" + } + ], + "functionName": { + "name": "abi_encode_t_stringliteral_79546f394416399c1f1b6f3016d949e48393df299533def85d52606c069234db_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "17647:124:3" + }, + "nodeType": "YulFunctionCall", + "src": "17647:131:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "17639:4:3" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_stringliteral_79546f394416399c1f1b6f3016d949e48393df299533def85d52606c069234db__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "17517:9:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "17532:4:3", + "type": "" + } + ], + "src": "17366:419:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "17819:152:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17836:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17839:77:3", + "type": "", + "value": "35408467139433450592217433187231851964531694900788300625387963629091585785856" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17829:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "17829:88:3" + }, + "nodeType": "YulExpressionStatement", + "src": "17829:88:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17933:1:3", + "type": "", + "value": "4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17936:4:3", + "type": "", + "value": "0x31" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "17926:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "17926:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "17926:15:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17957:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "17960:4:3", + "type": "", + "value": "0x24" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "17950:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "17950:15:3" + }, + "nodeType": "YulExpressionStatement", + "src": "17950:15:3" + } + ] + }, + "name": "panic_error_0x31", + "nodeType": "YulFunctionDefinition", + "src": "17791:180:3" + } + ] + }, + "contents": "{\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function allocate_unbounded() -> memPtr {\n memPtr := mload(64)\n }\n\n function revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() {\n revert(0, 0)\n }\n\n function revert_error_c1322bf8034eace5e0b5c7295db60986aa89aae5e0ea0873e4689e076861a5db() {\n revert(0, 0)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function copy_memory_to_memory_with_cleanup(src, dst, length) {\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 mstore(add(dst, length), 0)\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory_with_cleanup(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert_error_dbdddcbe895c83990c08b3492a0e83918d802a52331272ac6fdb6a7c4aea3b1b() }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function store_literal_in_memory_9cc5fb360c3adab3067e050b8b1b3a1dbfe57bb45a3a5b6373474bd37488111a(memPtr) {\n\n mstore(add(memPtr, 0), \"address is already an owner\")\n\n }\n\n function abi_encode_t_stringliteral_9cc5fb360c3adab3067e050b8b1b3a1dbfe57bb45a3a5b6373474bd37488111a_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 27)\n store_literal_in_memory_9cc5fb360c3adab3067e050b8b1b3a1dbfe57bb45a3a5b6373474bd37488111a(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_9cc5fb360c3adab3067e050b8b1b3a1dbfe57bb45a3a5b6373474bd37488111a__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_9cc5fb360c3adab3067e050b8b1b3a1dbfe57bb45a3a5b6373474bd37488111a_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x12() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x12)\n revert(0, 0x24)\n }\n\n function panic_error_0x11() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x11)\n revert(0, 0x24)\n }\n\n function checked_div_t_uint256(x, y) -> r {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n if iszero(y) { panic_error_0x12() }\n\n r := div(x, y)\n }\n\n function store_literal_in_memory_ff74e91362f26a69e35baaddd54267c224f04274e715a7e428a59bcf67459bae(memPtr) {\n\n mstore(add(memPtr, 0), \"Insufficient quorum\")\n\n }\n\n function abi_encode_t_stringliteral_ff74e91362f26a69e35baaddd54267c224f04274e715a7e428a59bcf67459bae_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_ff74e91362f26a69e35baaddd54267c224f04274e715a7e428a59bcf67459bae(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_ff74e91362f26a69e35baaddd54267c224f04274e715a7e428a59bcf67459bae__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_ff74e91362f26a69e35baaddd54267c224f04274e715a7e428a59bcf67459bae_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_add_t_uint256(x, y) -> sum {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n sum := add(x, y)\n\n if gt(x, sum) { panic_error_0x11() }\n\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function store_literal_in_memory_7c9b101cb1e96ae9e8e5bc797f927ae2cec6f909e21b4dfc5ec3aea0644c0dea(memPtr) {\n\n mstore(add(memPtr, 0), \"address is not an owner\")\n\n }\n\n function abi_encode_t_stringliteral_7c9b101cb1e96ae9e8e5bc797f927ae2cec6f909e21b4dfc5ec3aea0644c0dea_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 23)\n store_literal_in_memory_7c9b101cb1e96ae9e8e5bc797f927ae2cec6f909e21b4dfc5ec3aea0644c0dea(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_7c9b101cb1e96ae9e8e5bc797f927ae2cec6f909e21b4dfc5ec3aea0644c0dea__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_7c9b101cb1e96ae9e8e5bc797f927ae2cec6f909e21b4dfc5ec3aea0644c0dea_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_sub_t_uint256(x, y) -> diff {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n diff := sub(x, y)\n\n if gt(diff, x) { panic_error_0x11() }\n\n }\n\n function panic_error_0x32() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x32)\n revert(0, 0x24)\n }\n\n function increment_t_uint256(value) -> ret {\n value := cleanup_t_uint256(value)\n if eq(value, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) { panic_error_0x11() }\n ret := add(value, 1)\n }\n\n function store_literal_in_memory_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5(memPtr) {\n\n mstore(add(memPtr, 0), \"Unauthorized\")\n\n }\n\n function abi_encode_t_stringliteral_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 12)\n store_literal_in_memory_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_1b2638459828301e8cd6c7c02856073bacf975379e0867f689bb14feacb780c5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_uint256__to_t_address_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function panic_error_0x22() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x22)\n revert(0, 0x24)\n }\n\n function extract_byte_array_length(data) -> length {\n length := div(data, 2)\n let outOfPlaceEncoding := and(data, 1)\n if iszero(outOfPlaceEncoding) {\n length := and(length, 0x7f)\n }\n\n if eq(outOfPlaceEncoding, lt(length, 32)) {\n panic_error_0x22()\n }\n }\n\n function abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n }\n\n function store_literal_in_memory_e373a65136155e1dfb699bced8050fefa1b3e4cdfdbbac177c8461d84579cd6f(memPtr) {\n\n mstore(add(memPtr, 0), \"locking period not elapsed\")\n\n }\n\n function abi_encode_t_stringliteral_e373a65136155e1dfb699bced8050fefa1b3e4cdfdbbac177c8461d84579cd6f_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 26)\n store_literal_in_memory_e373a65136155e1dfb699bced8050fefa1b3e4cdfdbbac177c8461d84579cd6f(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_e373a65136155e1dfb699bced8050fefa1b3e4cdfdbbac177c8461d84579cd6f__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_e373a65136155e1dfb699bced8050fefa1b3e4cdfdbbac177c8461d84579cd6f_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_uint256_t_uint256__to_t_address_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_53e85fda21889e930b90545943e5eef1e839e6cce682bf488a222abd3afdcd10(memPtr) {\n\n mstore(add(memPtr, 0), \"Insufficient credit\")\n\n }\n\n function abi_encode_t_stringliteral_53e85fda21889e930b90545943e5eef1e839e6cce682bf488a222abd3afdcd10_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 19)\n store_literal_in_memory_53e85fda21889e930b90545943e5eef1e839e6cce682bf488a222abd3afdcd10(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_53e85fda21889e930b90545943e5eef1e839e6cce682bf488a222abd3afdcd10__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_53e85fda21889e930b90545943e5eef1e839e6cce682bf488a222abd3afdcd10_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function checked_mul_t_uint256(x, y) -> product {\n x := cleanup_t_uint256(x)\n y := cleanup_t_uint256(y)\n\n // overflow, if x != 0 and y > (maxValue / x)\n if and(iszero(iszero(x)), gt(y, div(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff, x))) { panic_error_0x11() }\n\n product := mul(x, y)\n }\n\n function abi_encode_tuple_t_uint256_t_uint256_t_uint256__to_t_uint256_t_uint256_t_uint256__fromStack_reversed(headStart , value2, value1, value0) -> tail {\n tail := add(headStart, 96)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value1, add(headStart, 32))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value2, add(headStart, 64))\n\n }\n\n function store_literal_in_memory_f7d1cf13cde4f668fcf614bc588a950fd755fd683d79d394cef04d472cbb1cff(memPtr) {\n\n mstore(add(memPtr, 0), \"already supporting\")\n\n }\n\n function abi_encode_t_stringliteral_f7d1cf13cde4f668fcf614bc588a950fd755fd683d79d394cef04d472cbb1cff_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 18)\n store_literal_in_memory_f7d1cf13cde4f668fcf614bc588a950fd755fd683d79d394cef04d472cbb1cff(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_f7d1cf13cde4f668fcf614bc588a950fd755fd683d79d394cef04d472cbb1cff__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_f7d1cf13cde4f668fcf614bc588a950fd755fd683d79d394cef04d472cbb1cff_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function abi_encode_tuple_t_address_t_address__to_t_address_t_address__fromStack_reversed(headStart , value1, value0) -> tail {\n tail := add(headStart, 64)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n abi_encode_t_address_to_t_address_fromStack(value1, add(headStart, 32))\n\n }\n\n function store_literal_in_memory_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5(memPtr) {\n\n mstore(add(memPtr, 0), \"Insufficient balance\")\n\n }\n\n function abi_encode_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 20)\n store_literal_in_memory_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function store_literal_in_memory_79546f394416399c1f1b6f3016d949e48393df299533def85d52606c069234db(memPtr) {\n\n mstore(add(memPtr, 0), \"already opposing\")\n\n }\n\n function abi_encode_t_stringliteral_79546f394416399c1f1b6f3016d949e48393df299533def85d52606c069234db_to_t_string_memory_ptr_fromStack(pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, 16)\n store_literal_in_memory_79546f394416399c1f1b6f3016d949e48393df299533def85d52606c069234db(pos)\n end := add(pos, 32)\n }\n\n function abi_encode_tuple_t_stringliteral_79546f394416399c1f1b6f3016d949e48393df299533def85d52606c069234db__to_t_string_memory_ptr__fromStack_reversed(headStart ) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_stringliteral_79546f394416399c1f1b6f3016d949e48393df299533def85d52606c069234db_to_t_string_memory_ptr_fromStack( tail)\n\n }\n\n function panic_error_0x31() {\n mstore(0, 35408467139433450592217433187231851964531694900788300625387963629091585785856)\n mstore(4, 0x31)\n revert(0, 0x24)\n }\n\n}\n", + "id": 3, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "99:7858:2:-:0;;;578:1;553:26;;700:1;672:29;;811:1;789:23;;891:1;870:22;;1471:1;1445:27;;2757:260;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2862:6;1422:1:1;1410:9;:13;;;;1456:4;1434:5;:19;1440:12;1434:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;1365:103;2895:12:2::1;2881:11;:26;;;;;;:::i;:::-;;2934:14;2918:30;;;;::::0;::::1;2969:8;2959:7;:18;;;;3008:1;2997:8;:12;;;;:::i;:::-;2988:6;:21;;;;2757:260:::0;;;;99:7858;;7:75:3;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:143::-;753:5;784:6;778:13;769:22;;800:33;827:5;800:33;:::i;:::-;696:143;;;;:::o;845:117::-;954:1;951;944:12;968:117;1077:1;1074;1067:12;1091:102;1132:6;1183:2;1179:7;1174:2;1167:5;1163:14;1159:28;1149:38;;1091:102;;;:::o;1199:180::-;1247:77;1244:1;1237:88;1344:4;1341:1;1334:15;1368:4;1365:1;1358:15;1385:281;1468:27;1490:4;1468:27;:::i;:::-;1460:6;1456:40;1598:6;1586:10;1583:22;1562:18;1550:10;1547:34;1544:62;1541:88;;;1609:18;;:::i;:::-;1541:88;1649:10;1645:2;1638:22;1428:238;1385:281;;:::o;1672:129::-;1706:6;1733:20;;:::i;:::-;1723:30;;1762:33;1790:4;1782:6;1762:33;:::i;:::-;1672:129;;;:::o;1807:308::-;1869:4;1959:18;1951:6;1948:30;1945:56;;;1981:18;;:::i;:::-;1945:56;2019:29;2041:6;2019:29;:::i;:::-;2011:37;;2103:4;2097;2093:15;2085:23;;1807:308;;;:::o;2121:246::-;2202:1;2212:113;2226:6;2223:1;2220:13;2212:113;;;2311:1;2306:3;2302:11;2296:18;2292:1;2287:3;2283:11;2276:39;2248:2;2245:1;2241:10;2236:15;;2212:113;;;2359:1;2350:6;2345:3;2341:16;2334:27;2183:184;2121:246;;;:::o;2373:434::-;2462:5;2487:66;2503:49;2545:6;2503:49;:::i;:::-;2487:66;:::i;:::-;2478:75;;2576:6;2569:5;2562:21;2614:4;2607:5;2603:16;2652:3;2643:6;2638:3;2634:16;2631:25;2628:112;;;2659:79;;:::i;:::-;2628:112;2749:52;2794:6;2789:3;2784;2749:52;:::i;:::-;2468:339;2373:434;;;;;:::o;2827:355::-;2894:5;2943:3;2936:4;2928:6;2924:17;2920:27;2910:122;;2951:79;;:::i;:::-;2910:122;3061:6;3055:13;3086:90;3172:3;3164:6;3157:4;3149:6;3145:17;3086:90;:::i;:::-;3077:99;;2900:282;2827:355;;;;:::o;3188:77::-;3225:7;3254:5;3243:16;;3188:77;;;:::o;3271:122::-;3344:24;3362:5;3344:24;:::i;:::-;3337:5;3334:35;3324:63;;3383:1;3380;3373:12;3324:63;3271:122;:::o;3399:143::-;3456:5;3487:6;3481:13;3472:22;;3503:33;3530:5;3503:33;:::i;:::-;3399:143;;;;:::o;3548:993::-;3655:6;3663;3671;3679;3728:3;3716:9;3707:7;3703:23;3699:33;3696:120;;;3735:79;;:::i;:::-;3696:120;3855:1;3880:64;3936:7;3927:6;3916:9;3912:22;3880:64;:::i;:::-;3870:74;;3826:128;4014:2;4003:9;3999:18;3993:25;4045:18;4037:6;4034:30;4031:117;;;4067:79;;:::i;:::-;4031:117;4172:74;4238:7;4229:6;4218:9;4214:22;4172:74;:::i;:::-;4162:84;;3964:292;4295:2;4321:64;4377:7;4368:6;4357:9;4353:22;4321:64;:::i;:::-;4311:74;;4266:129;4434:2;4460:64;4516:7;4507:6;4496:9;4492:22;4460:64;:::i;:::-;4450:74;;4405:129;3548:993;;;;;;;:::o;4547:99::-;4599:6;4633:5;4627:12;4617:22;;4547:99;;;:::o;4652:180::-;4700:77;4697:1;4690:88;4797:4;4794:1;4787:15;4821:4;4818:1;4811:15;4838:320;4882:6;4919:1;4913:4;4909:12;4899:22;;4966:1;4960:4;4956:12;4987:18;4977:81;;5043:4;5035:6;5031:17;5021:27;;4977:81;5105:2;5097:6;5094:14;5074:18;5071:38;5068:84;;5124:18;;:::i;:::-;5068:84;4889:269;4838:320;;;:::o;5164:141::-;5213:4;5236:3;5228:11;;5259:3;5256:1;5249:14;5293:4;5290:1;5280:18;5272:26;;5164:141;;;:::o;5311:93::-;5348:6;5395:2;5390;5383:5;5379:14;5375:23;5365:33;;5311:93;;;:::o;5410:107::-;5454:8;5504:5;5498:4;5494:16;5473:37;;5410:107;;;;:::o;5523:393::-;5592:6;5642:1;5630:10;5626:18;5665:97;5695:66;5684:9;5665:97;:::i;:::-;5783:39;5813:8;5802:9;5783:39;:::i;:::-;5771:51;;5855:4;5851:9;5844:5;5840:21;5831:30;;5904:4;5894:8;5890:19;5883:5;5880:30;5870:40;;5599:317;;5523:393;;;;;:::o;5922:60::-;5950:3;5971:5;5964:12;;5922:60;;;:::o;5988:142::-;6038:9;6071:53;6089:34;6098:24;6116:5;6098:24;:::i;:::-;6089:34;:::i;:::-;6071:53;:::i;:::-;6058:66;;5988:142;;;:::o;6136:75::-;6179:3;6200:5;6193:12;;6136:75;;;:::o;6217:269::-;6327:39;6358:7;6327:39;:::i;:::-;6388:91;6437:41;6461:16;6437:41;:::i;:::-;6429:6;6422:4;6416:11;6388:91;:::i;:::-;6382:4;6375:105;6293:193;6217:269;;;:::o;6492:73::-;6537:3;6492:73;:::o;6571:189::-;6648:32;;:::i;:::-;6689:65;6747:6;6739;6733:4;6689:65;:::i;:::-;6624:136;6571:189;;:::o;6766:186::-;6826:120;6843:3;6836:5;6833:14;6826:120;;;6897:39;6934:1;6927:5;6897:39;:::i;:::-;6870:1;6863:5;6859:13;6850:22;;6826:120;;;6766:186;;:::o;6958:543::-;7059:2;7054:3;7051:11;7048:446;;;7093:38;7125:5;7093:38;:::i;:::-;7177:29;7195:10;7177:29;:::i;:::-;7167:8;7163:44;7360:2;7348:10;7345:18;7342:49;;;7381:8;7366:23;;7342:49;7404:80;7460:22;7478:3;7460:22;:::i;:::-;7450:8;7446:37;7433:11;7404:80;:::i;:::-;7063:431;;7048:446;6958:543;;;:::o;7507:117::-;7561:8;7611:5;7605:4;7601:16;7580:37;;7507:117;;;;:::o;7630:169::-;7674:6;7707:51;7755:1;7751:6;7743:5;7740:1;7736:13;7707:51;:::i;:::-;7703:56;7788:4;7782;7778:15;7768:25;;7681:118;7630:169;;;;:::o;7804:295::-;7880:4;8026:29;8051:3;8045:4;8026:29;:::i;:::-;8018:37;;8088:3;8085:1;8081:11;8075:4;8072:21;8064:29;;7804:295;;;;:::o;8104:1395::-;8221:37;8254:3;8221:37;:::i;:::-;8323:18;8315:6;8312:30;8309:56;;;8345:18;;:::i;:::-;8309:56;8389:38;8421:4;8415:11;8389:38;:::i;:::-;8474:67;8534:6;8526;8520:4;8474:67;:::i;:::-;8568:1;8592:4;8579:17;;8624:2;8616:6;8613:14;8641:1;8636:618;;;;9298:1;9315:6;9312:77;;;9364:9;9359:3;9355:19;9349:26;9340:35;;9312:77;9415:67;9475:6;9468:5;9415:67;:::i;:::-;9409:4;9402:81;9271:222;8606:887;;8636:618;8688:4;8684:9;8676:6;8672:22;8722:37;8754:4;8722:37;:::i;:::-;8781:1;8795:208;8809:7;8806:1;8803:14;8795:208;;;8888:9;8883:3;8879:19;8873:26;8865:6;8858:42;8939:1;8931:6;8927:14;8917:24;;8986:2;8975:9;8971:18;8958:31;;8832:4;8829:1;8825:12;8820:17;;8795:208;;;9031:6;9022:7;9019:19;9016:179;;;9089:9;9084:3;9080:19;9074:26;9132:48;9174:4;9166:6;9162:17;9151:9;9132:48;:::i;:::-;9124:6;9117:64;9039:156;9016:179;9241:1;9237;9229:6;9225:14;9221:22;9215:4;9208:36;8643:611;;;8606:887;;8196:1303;;;8104:1395;;:::o;9505:180::-;9553:77;9550:1;9543:88;9650:4;9647:1;9640:15;9674:4;9671:1;9664:15;9691:348;9731:7;9754:20;9772:1;9754:20;:::i;:::-;9749:25;;9788:20;9806:1;9788:20;:::i;:::-;9783:25;;9976:1;9908:66;9904:74;9901:1;9898:81;9893:1;9886:9;9879:17;9875:105;9872:131;;;9983:18;;:::i;:::-;9872:131;10031:1;10028;10024:9;10013:20;;9691:348;;;;:::o;99:7858:2:-;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "99:7858:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1051:18;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1481:214:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1121:22:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4152:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1703:460:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2779:79;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3784:80:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6387:195;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;313:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3176:77:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;959:19:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;159:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3956:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7360:303;;;;;;;;;;;;;:::i;:::-;;4888:274;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1222:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5170:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1445:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5420:202;;;;;;;;;;;;;:::i;:::-;;4581:299;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1382:23;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3300:476;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3071:221;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;254:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4055:91;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6038:261;;;;;;;;;;;;;:::i;:::-;;2175:297:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6590:294:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7003:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2480:291:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1321:22:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1051:18;;;;:::o;1481:214:1:-;1525:1;1311:5;:8;1317:1;1311:8;;;;;;;;;;;;;;;;;;;;;;;;;1310:9;1302:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;1580:1:::1;1568:9;;:13;;;;:::i;:::-;1548:14;:17;1563:1;1548:17;;;;;;;;;;;;;;;;:33;1540:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;1629:1;1616:9:::0;::::1;:14;;;;;;;:::i;:::-;;;;;;;;1653:4;1642:5;:8:::0;1648:1:::1;1642:8;;;;;;;;;;;;;;;;:15;;;;;;;;;;;;;;;;;;1674:13;1685:1;1674:13;;;;;;:::i;:::-;;;;;;;;1481:214:::0;;:::o;1121:22:2:-;;;;:::o;4152:107::-;4206:4;4221:35;4227:8;4237:18;4246:8;4237;:18::i;:::-;4221:5;:35::i;:::-;4214:42;;4152:107;;;:::o;1703:460:1:-;1747:1;1221:5;:8;1227:1;1221:8;;;;;;;;;;;;;;;;;;;;;;;;;1213:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;1805:1:::1;1793:9;;:13;;;;:::i;:::-;1770:17;:20;1788:1;1770:20;;;;;;;;;;;;;;;;:36;1762:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;1854:1;1841:9:::0;::::1;:14;;;;;;;:::i;:::-;;;;;;;;1871:9;1866:82;1890:10;:13;1901:1;1890:13;;;;;;;;;;;;;;;:20;;;;1886:1;:24;1866:82;;;1917:31;1928:10;:13;1939:1;1928:13;;;;;;;;;;;;;;;1942:1;1928:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1946:1;1917:10;:31::i;:::-;1912:3;;;;;:::i;:::-;;;;1866:82;;;;1966:10;:13;1977:1;1966:13;;;;;;;;;;;;;;;;1959:20;;;;:::i;:::-;1995:9;1990:77;2014:8;:11;2023:1;2014:11;;;;;;;;;;;;;;;:18;;;;2010:1;:22;1990:77;;;2039:28;2049:8;:11;2058:1;2049:11;;;;;;;;;;;;;;;2061:1;2049:14;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2065:1;2039:9;:28::i;:::-;2034:3;;;;;:::i;:::-;;;;1990:77;;;;2085:8;:11;2094:1;2085:11;;;;;;;;;;;;;;;;2078:18;;;;:::i;:::-;2118:5;2107::::0;:8:::1;2113:1;2107:8;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;2140:15;2153:1;2140:15;;;;;;:::i;:::-;;;;;;;;1703:460:::0;;:::o;2779:79::-;1137:5;:17;1143:10;1137:17;;;;;;;;;;;;;;;;;;;;;;;;;1129:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;2830:25:::1;2841:1;2844:10;2830;:25::i;:::-;2779:79:::0;:::o;3784:80:2:-;3842:4;1137:5:1;:17;1143:10;1137:17;;;;;;;;;;;;;;;;;;;;;;;;;1129:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;3857:4:2::1;;3850:11;;3784:80:::0;:::o;6387:195::-;6477:9;6457:6;:16;6464:8;6457:16;;;;;;;;;;;;;;;;:29;;;;;;;:::i;:::-;;;;;;;;6513:9;6498:11;;:24;;;;;;;:::i;:::-;;;;;;;;6538:36;6554:8;6564:9;6538:36;;;;;;;:::i;:::-;;;;;;;;6387:195;:::o;313:35::-;;;:::o;3176:77:1:-;1137:5;:17;1143:10;1137:17;;;;;;;;;;;;;;;;;;;;;;;;;1129:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;3226:24:::1;3236:1;3239:10;3226:9;:24::i;:::-;3176:77:::0;:::o;959:19:2:-;;;;:::o;159:25::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;3956:93::-;4015:4;4030:6;:16;4037:8;4030:16;;;;;;;;;;;;;;;;4023:23;;3956:93;;;:::o;7360:303::-;7416:30;7422:9;;7433:12;;7416:30;;;;;;;:::i;:::-;;;;;;;;7473:12;;7461:9;;:24;7457:199;;;7515:12;;7502:9;;:25;;;;;;;:::i;:::-;;;;;;;;7557:1;7542:12;:16;;;;7457:199;;;7607:9;;7591:12;;:25;;;;;;;:::i;:::-;;;;;;;;7643:1;7631:9;:13;;;;7457:199;7360:303::o;4888:274::-;1137:5:1;:17;1143:10;1137:17;;;;;;;;;;;;;;;;;;;;;;;;;1129:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;4985:14:2::1;:24;5000:8;4985:24;;;;;;;;;;;;;;;;4966:15;:43;;4958:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;5051:6;5060:10;:20;5071:8;5060:20;;;;;;;;;;;;;;;;5051:29;;5110:1;5091:6;:16;5098:8;5091:16;;;;;;;;;;;;;;;:20;;;;5127:27;5142:8;5152:1;5127:27;;;;;;;:::i;:::-;;;;;;;;4947:215;4888:274:::0;:::o;1222:26::-;;;;:::o;5170:242::-;1137:5:1;:17;1143:10;1137:17;;;;;;;;;;;;;;;;;;;;;;;;;1129:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;5287:13:2::1;5269:15;:31;;;;:::i;:::-;5252:14;:48;;;;5324:11;5311:10;:24;;;;5351:53;5377:14;;5393:10;;5351:53;;;;;;;:::i;:::-;;;;;;;;5170:242:::0;:::o;1445:27::-;;;;:::o;5420:202::-;1137:5:1;:17;1143:10;1137:17;;;;;;;;;;;;;;;;;;;;;;;;;1129:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;5501:14:2::1;;5482:15;:33;;5474:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;5566:10;;5557:6;:19;;;;5592:22;5607:6;;5592:22;;;;;;:::i;:::-;;;;;;;;5420:202::o:0;4581:299::-;1137:5:1;:17;1143:10;1137:17;;;;;;;;;;;;;;;;;;;;;;;;;1129:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;4681:6:2::1;4708:13;4690:15;:31;;;;:::i;:::-;4681:40;;4759:1;4732:14;:24;4747:8;4732:24;;;;;;;;;;;;;;;:28;;;;4794:11;4771:10;:20;4782:8;4771:20;;;;;;;;;;;;;;;:34;;;;4821:51;4847:8;4857:1;4860:11;4821:51;;;;;;;;:::i;:::-;;;;;;;;4670:210;4581:299:::0;;:::o;1382:23::-;;;;:::o;3300:476::-;3338:4;3355:6;3364:20;3373:10;3364:8;:20::i;:::-;3355:29;;3395:6;3404:20;3410:10;3422:1;3404:5;:20::i;:::-;3395:29;;3465:1;3443:6;:18;3450:10;3443:18;;;;;;;;;;;;;;;;:23;;3435:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;3523:1;3501:6;:18;3508:10;3501:18;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;3574:1;3565:5;;:10;;;;;;;:::i;:::-;;;;;;;;3602:1;3586:12;;:17;;;;;;;:::i;:::-;;;;;;;;3639:15;3614:10;:22;3625:10;3614:22;;;;;;;;;;;;;;;:40;;;;3717:29;3726:10;3738:1;3741:4;;3717:29;;;;;;;;:::i;:::-;;;;;;;;3764:4;;3757:11;;;;3300:476;:::o;3071:221::-;1137:5:1;:17;1143:10;1137:17;;;;;;;;;;;;;;;;;;;;;;;;;1129:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;3153:1:2::1;3143:6;;:11;;;;;;;:::i;:::-;;;;;;;;3172:5;3165:4;:12;;;;3202:15;3188:11;:29;;;;3241:4;3228:9;;:17;;;;;;;:::i;:::-;;;;;;;;3261:23;3273:4;;3279;3261:23;;;;;;;:::i;:::-;;;;;;;;3071:221:::0;;:::o;254:35::-;285:4;254:35;:::o;4055:91::-;4112:4;4127:6;:16;4134:8;4127:16;;;;;;;;;;;;;;;;4120:23;;4055:91;;;:::o;6038:261::-;6093:102;6171:1;6162:5;;:10;6161:24;;6184:1;6161:24;;;6176:5;;6161:24;6097:60;6133:9;;6123:6;;6110:10;;:19;;;;:::i;:::-;6109:33;;;;:::i;:::-;6144:12;;6097:11;:60::i;:::-;:89;;;;:::i;:::-;6188:6;;6093:3;:102::i;:::-;6083:7;:112;;;;6211:39;6227:6;;6235:5;;6242:7;;6211:39;;;;;;;;:::i;:::-;;;;;;;;6270:1;6261:6;:10;;;;6290:1;6282:5;:9;;;;6038:261::o;2175:297:1:-;1137:5;:17;1143:10;1137:17;;;;;;;;;;;;;;;;;;;;;;;;;1129:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;2233:1:::1;1311:5;:8:::0;1317:1:::1;1311:8;;;;;;;;;;;;;;;;;;;;;;;;;1310:9;1302:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;2256:10:::2;:13;2267:1;2256:13;;;;;;;;;;;;;;;:25;2270:10;2256:25;;;;;;;;;;;;;;;;;;;;;;;;;2255:26;2247:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;2336:1;2315:14;:17;2330:1;2315:17;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;2376:4;2348:10;:13;2359:1;2348:13;;;;;;;;;;;;;;;:25;2362:10;2348:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;2391:10;:22;2402:10;2391:22;;;;;;;;;;;;;;;2419:1;2391:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2437:27;2450:1;2453:10;2437:27;;;;;;;:::i;:::-;;;;;;;;1173:1:::1;2175:297:::0;:::o;6590:294:2:-;6677:6;6655;:18;6662:10;6655:18;;;;;;;;;;;;;;;;:28;;6647:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;6740:6;6718;:18;6725:10;6718:18;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;6772:6;6757:11;;:21;;;;;;;:::i;:::-;;;;;;;;6797:10;6789:28;;:36;6818:6;6789:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6841:35;6857:10;6869:6;6841:35;;;;;;;:::i;:::-;;;;;;;;6590:294;:::o;7003:260::-;1137:5:1;:17;1143:10;1137:17;;;;;;;;;;;;;;;;;;;;;;;;;1129:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;7129:6:2::1;7114:11;;7090:21;:35;;;;:::i;:::-;:45;;7082:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;7179:8;7171:26;;:34;7198:6;7171:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;7221;7238:8;7248:6;7221:34;;;;;;;:::i;:::-;;;;;;;;7003:260:::0;;:::o;2480:291:1:-;1137:5;:17;1143:10;1137:17;;;;;;;;;;;;;;;;;;;;;;;;;1129:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;2534:1:::1;1221:5;:8:::0;1227:1:::1;1221:8;;;;;;;;;;;;;;;;;;;;;;;;;1213:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;2557:8:::2;:11;2566:1;2557:11;;;;;;;;;;;;;;;:23;2569:10;2557:23;;;;;;;;;;;;;;;;;;;;;;;;;2556:24;2548:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;2636:1;2612:17;:20;2630:1;2612:20;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;2674:4;2648:8;:11;2657:1;2648:11;;;;;;;;;;;;;;;:23;2660:10;2648:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;2689:8;:20;2698:10;2689:20;;;;;;;;;;;;;;;2715:1;2689:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2733:30;2749:1;2752:10;2733:30;;;;;;;:::i;:::-;;;;;;;;1173:1:::1;2480:291:::0;:::o;1321:22:2:-;;;;:::o;4265:148::-;4335:4;4373:11;;4350:10;:20;4361:8;4350:20;;;;;;;;;;;;;;;;:34;:60;;4402:7;;4392;:17;;;;:::i;:::-;4350:60;;;4387:1;4350:60;4343:67;;4265:148;;;;:::o;2864:304:1:-;2931:1;1311:5;:8;1317:1;1311:8;;;;;;;;;;;;;;;;;;;;;;;;;1310:9;1302:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;2949:10:::1;:13;2960:1;2949:13;;;;;;;;;;;;;;;:21;2963:6;2949:21;;;;;;;;;;;;;;;;;;;;;;;;;2945:175;;;3008:1;2987:14;:17;3002:1;2987:17;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;3048:5;3024:10;:13;3035:1;3024:13;;;;;;;;;;;;;;;:21;3038:6;3024:21;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;3068:40;3082:10;:22;3093:10;3082:22;;;;;;;;;;;;;;;3106:1;3068:13;:40::i;:::-;2945:175;3135:25;3150:1;3153:6;3135:25;;;;;;;:::i;:::-;;;;;;;;2864:304:::0;;;:::o;3260:300::-;3323:1;1221:5;:8;1227:1;1221:8;;;;;;;;;;;;;;;;;;;;;;;;;1213:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;3341:8:::1;:11;3350:1;3341:11;;;;;;;;;;;;;;;:19;3353:6;3341:19;;;;;;;;;;;;;;;;;;;;;;;;;3337:172;;;3401:1;3377:17;:20;3395:1;3377:20;;;;;;;;;;;;;;;;:25;;;;;;;:::i;:::-;;;;;;;;3439:5;3417:8;:11;3426:1;3417:11;;;;;;;;;;;;;;;:19;3429:6;3417:19;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;3459:38;3473:8;:20;3482:10;3473:20;;;;;;;;;;;;;;;3495:1;3459:13;:38::i;:::-;3337:172;3524:28;3542:1;3545:6;3524:28;;;;;;;:::i;:::-;;;;;;;;3260:300:::0;;;:::o;7671:99:2:-;7731:4;7751:1;7747;:5;7746:21;;7766:1;7746:21;;;7761:1;7757;:5;;;;:::i;:::-;7746:21;7739:28;;7671:99;;;;:::o;7869:85::-;7921:4;7941:1;7937;:5;7936:15;;7950:1;7936:15;;;7946:1;7936:15;7929:22;;7869:85;;;;:::o;3568:276:1:-;3646:13;3674:57;3697:1;3681:17;;:5;3687;3681:12;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:17;;;;:41;;;;;3710:5;:12;;;;3702:5;:20;3681:41;3674:57;;;3724:7;;;;;:::i;:::-;;;;3674:57;;;3747:9;3759:5;3747:17;;3742:72;3785:1;3770:5;:12;;;;:16;;;;:::i;:::-;3766:1;:20;3742:72;;;3804:5;3812:1;3810;:3;;;;:::i;:::-;3804:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3793:5;3799:1;3793:8;;;;;;;;:::i;:::-;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;3788:3;;;;;:::i;:::-;;;;3742:72;;;;3825:5;:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3635:209;3568:276;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:77:3:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;523:117::-;632:1;629;622:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:329::-;1335:6;1384:2;1372:9;1363:7;1359:23;1355:32;1352:119;;;1390:79;;:::i;:::-;1352:119;1510:1;1535:53;1580:7;1571:6;1560:9;1556:22;1535:53;:::i;:::-;1525:63;;1481:117;1276:329;;;;:::o;1611:99::-;1663:6;1697:5;1691:12;1681:22;;1611:99;;;:::o;1716:169::-;1800:11;1834:6;1829:3;1822:19;1874:4;1869:3;1865:14;1850:29;;1716:169;;;;:::o;1891:246::-;1972:1;1982:113;1996:6;1993:1;1990:13;1982:113;;;2081:1;2076:3;2072:11;2066:18;2062:1;2057:3;2053:11;2046:39;2018:2;2015:1;2011:10;2006:15;;1982:113;;;2129:1;2120:6;2115:3;2111:16;2104:27;1953:184;1891:246;;;:::o;2143:102::-;2184:6;2235:2;2231:7;2226:2;2219:5;2215:14;2211:28;2201:38;;2143:102;;;:::o;2251:377::-;2339:3;2367:39;2400:5;2367:39;:::i;:::-;2422:71;2486:6;2481:3;2422:71;:::i;:::-;2415:78;;2502:65;2560:6;2555:3;2548:4;2541:5;2537:16;2502:65;:::i;:::-;2592:29;2614:6;2592:29;:::i;:::-;2587:3;2583:39;2576:46;;2343:285;2251:377;;;;:::o;2634:313::-;2747:4;2785:2;2774:9;2770:18;2762:26;;2834:9;2828:4;2824:20;2820:1;2809:9;2805:17;2798:47;2862:78;2935:4;2926:6;2862:78;:::i;:::-;2854:86;;2634:313;;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:329::-;3285:6;3334:2;3322:9;3313:7;3309:23;3305:32;3302:119;;;3340:79;;:::i;:::-;3302:119;3460:1;3485:53;3530:7;3521:6;3510:9;3506:22;3485:53;:::i;:::-;3475:63;;3431:117;3226:329;;;;:::o;3561:474::-;3629:6;3637;3686:2;3674:9;3665:7;3661:23;3657:32;3654:119;;;3692:79;;:::i;:::-;3654:119;3812:1;3837:53;3882:7;3873:6;3862:9;3858:22;3837:53;:::i;:::-;3827:63;;3783:117;3939:2;3965:53;4010:7;4001:6;3990:9;3986:22;3965:53;:::i;:::-;3955:63;;3910:118;3561:474;;;;;:::o;4041:::-;4109:6;4117;4166:2;4154:9;4145:7;4141:23;4137:32;4134:119;;;4172:79;;:::i;:::-;4134:119;4292:1;4317:53;4362:7;4353:6;4342:9;4338:22;4317:53;:::i;:::-;4307:63;;4263:117;4419:2;4445:53;4490:7;4481:6;4470:9;4466:22;4445:53;:::i;:::-;4435:63;;4390:118;4041:474;;;;;:::o;4521:177::-;4661:29;4657:1;4649:6;4645:14;4638:53;4521:177;:::o;4704:366::-;4846:3;4867:67;4931:2;4926:3;4867:67;:::i;:::-;4860:74;;4943:93;5032:3;4943:93;:::i;:::-;5061:2;5056:3;5052:12;5045:19;;4704:366;;;:::o;5076:419::-;5242:4;5280:2;5269:9;5265:18;5257:26;;5329:9;5323:4;5319:20;5315:1;5304:9;5300:17;5293:47;5357:131;5483:4;5357:131;:::i;:::-;5349:139;;5076:419;;;:::o;5501:180::-;5549:77;5546:1;5539:88;5646:4;5643:1;5636:15;5670:4;5667:1;5660:15;5687:180;5735:77;5732:1;5725:88;5832:4;5829:1;5822:15;5856:4;5853:1;5846:15;5873:185;5913:1;5930:20;5948:1;5930:20;:::i;:::-;5925:25;;5964:20;5982:1;5964:20;:::i;:::-;5959:25;;6003:1;5993:35;;6008:18;;:::i;:::-;5993:35;6050:1;6047;6043:9;6038:14;;5873:185;;;;:::o;6064:169::-;6204:21;6200:1;6192:6;6188:14;6181:45;6064:169;:::o;6239:366::-;6381:3;6402:67;6466:2;6461:3;6402:67;:::i;:::-;6395:74;;6478:93;6567:3;6478:93;:::i;:::-;6596:2;6591:3;6587:12;6580:19;;6239:366;;;:::o;6611:419::-;6777:4;6815:2;6804:9;6800:18;6792:26;;6864:9;6858:4;6854:20;6850:1;6839:9;6835:17;6828:47;6892:131;7018:4;6892:131;:::i;:::-;6884:139;;6611:419;;;:::o;7036:191::-;7076:3;7095:20;7113:1;7095:20;:::i;:::-;7090:25;;7129:20;7147:1;7129:20;:::i;:::-;7124:25;;7172:1;7169;7165:9;7158:16;;7193:3;7190:1;7187:10;7184:36;;;7200:18;;:::i;:::-;7184:36;7036:191;;;;:::o;7233:118::-;7320:24;7338:5;7320:24;:::i;:::-;7315:3;7308:37;7233:118;;:::o;7357:222::-;7450:4;7488:2;7477:9;7473:18;7465:26;;7501:71;7569:1;7558:9;7554:17;7545:6;7501:71;:::i;:::-;7357:222;;;;:::o;7585:173::-;7725:25;7721:1;7713:6;7709:14;7702:49;7585:173;:::o;7764:366::-;7906:3;7927:67;7991:2;7986:3;7927:67;:::i;:::-;7920:74;;8003:93;8092:3;8003:93;:::i;:::-;8121:2;8116:3;8112:12;8105:19;;7764:366;;;:::o;8136:419::-;8302:4;8340:2;8329:9;8325:18;8317:26;;8389:9;8383:4;8379:20;8375:1;8364:9;8360:17;8353:47;8417:131;8543:4;8417:131;:::i;:::-;8409:139;;8136:419;;;:::o;8561:194::-;8601:4;8621:20;8639:1;8621:20;:::i;:::-;8616:25;;8655:20;8673:1;8655:20;:::i;:::-;8650:25;;8699:1;8696;8692:9;8684:17;;8723:1;8717:4;8714:11;8711:37;;;8728:18;;:::i;:::-;8711:37;8561:194;;;;:::o;8761:180::-;8809:77;8806:1;8799:88;8906:4;8903:1;8896:15;8930:4;8927:1;8920:15;8947:233;8986:3;9009:24;9027:5;9009:24;:::i;:::-;9000:33;;9055:66;9048:5;9045:77;9042:103;;9125:18;;:::i;:::-;9042:103;9172:1;9165:5;9161:13;9154:20;;8947:233;;;:::o;9186:162::-;9326:14;9322:1;9314:6;9310:14;9303:38;9186:162;:::o;9354:366::-;9496:3;9517:67;9581:2;9576:3;9517:67;:::i;:::-;9510:74;;9593:93;9682:3;9593:93;:::i;:::-;9711:2;9706:3;9702:12;9695:19;;9354:366;;;:::o;9726:419::-;9892:4;9930:2;9919:9;9915:18;9907:26;;9979:9;9973:4;9969:20;9965:1;9954:9;9950:17;9943:47;10007:131;10133:4;10007:131;:::i;:::-;9999:139;;9726:419;;;:::o;10151:332::-;10272:4;10310:2;10299:9;10295:18;10287:26;;10323:71;10391:1;10380:9;10376:17;10367:6;10323:71;:::i;:::-;10404:72;10472:2;10461:9;10457:18;10448:6;10404:72;:::i;:::-;10151:332;;;;;:::o;10489:180::-;10537:77;10534:1;10527:88;10634:4;10631:1;10624:15;10658:4;10655:1;10648:15;10675:320;10719:6;10756:1;10750:4;10746:12;10736:22;;10803:1;10797:4;10793:12;10824:18;10814:81;;10880:4;10872:6;10868:17;10858:27;;10814:81;10942:2;10934:6;10931:14;10911:18;10908:38;10905:84;;10961:18;;:::i;:::-;10905:84;10726:269;10675:320;;;:::o;11001:332::-;11122:4;11160:2;11149:9;11145:18;11137:26;;11173:71;11241:1;11230:9;11226:17;11217:6;11173:71;:::i;:::-;11254:72;11322:2;11311:9;11307:18;11298:6;11254:72;:::i;:::-;11001:332;;;;;:::o;11339:176::-;11479:28;11475:1;11467:6;11463:14;11456:52;11339:176;:::o;11521:366::-;11663:3;11684:67;11748:2;11743:3;11684:67;:::i;:::-;11677:74;;11760:93;11849:3;11760:93;:::i;:::-;11878:2;11873:3;11869:12;11862:19;;11521:366;;;:::o;11893:419::-;12059:4;12097:2;12086:9;12082:18;12074:26;;12146:9;12140:4;12136:20;12132:1;12121:9;12117:17;12110:47;12174:131;12300:4;12174:131;:::i;:::-;12166:139;;11893:419;;;:::o;12318:442::-;12467:4;12505:2;12494:9;12490:18;12482:26;;12518:71;12586:1;12575:9;12571:17;12562:6;12518:71;:::i;:::-;12599:72;12667:2;12656:9;12652:18;12643:6;12599:72;:::i;:::-;12681;12749:2;12738:9;12734:18;12725:6;12681:72;:::i;:::-;12318:442;;;;;;:::o;12766:169::-;12906:21;12902:1;12894:6;12890:14;12883:45;12766:169;:::o;12941:366::-;13083:3;13104:67;13168:2;13163:3;13104:67;:::i;:::-;13097:74;;13180:93;13269:3;13180:93;:::i;:::-;13298:2;13293:3;13289:12;13282:19;;12941:366;;;:::o;13313:419::-;13479:4;13517:2;13506:9;13502:18;13494:26;;13566:9;13560:4;13556:20;13552:1;13541:9;13537:17;13530:47;13594:131;13720:4;13594:131;:::i;:::-;13586:139;;13313:419;;;:::o;13738:348::-;13778:7;13801:20;13819:1;13801:20;:::i;:::-;13796:25;;13835:20;13853:1;13835:20;:::i;:::-;13830:25;;14023:1;13955:66;13951:74;13948:1;13945:81;13940:1;13933:9;13926:17;13922:105;13919:131;;;14030:18;;:::i;:::-;13919:131;14078:1;14075;14071:9;14060:20;;13738:348;;;;:::o;14092:442::-;14241:4;14279:2;14268:9;14264:18;14256:26;;14292:71;14360:1;14349:9;14345:17;14336:6;14292:71;:::i;:::-;14373:72;14441:2;14430:9;14426:18;14417:6;14373:72;:::i;:::-;14455;14523:2;14512:9;14508:18;14499:6;14455:72;:::i;:::-;14092:442;;;;;;:::o;14540:168::-;14680:20;14676:1;14668:6;14664:14;14657:44;14540:168;:::o;14714:366::-;14856:3;14877:67;14941:2;14936:3;14877:67;:::i;:::-;14870:74;;14953:93;15042:3;14953:93;:::i;:::-;15071:2;15066:3;15062:12;15055:19;;14714:366;;;:::o;15086:419::-;15252:4;15290:2;15279:9;15275:18;15267:26;;15339:9;15333:4;15329:20;15325:1;15314:9;15310:17;15303:47;15367:131;15493:4;15367:131;:::i;:::-;15359:139;;15086:419;;;:::o;15511:332::-;15632:4;15670:2;15659:9;15655:18;15647:26;;15683:71;15751:1;15740:9;15736:17;15727:6;15683:71;:::i;:::-;15764:72;15832:2;15821:9;15817:18;15808:6;15764:72;:::i;:::-;15511:332;;;;;:::o;15849:170::-;15989:22;15985:1;15977:6;15973:14;15966:46;15849:170;:::o;16025:366::-;16167:3;16188:67;16252:2;16247:3;16188:67;:::i;:::-;16181:74;;16264:93;16353:3;16264:93;:::i;:::-;16382:2;16377:3;16373:12;16366:19;;16025:366;;;:::o;16397:419::-;16563:4;16601:2;16590:9;16586:18;16578:26;;16650:9;16644:4;16640:20;16636:1;16625:9;16621:17;16614:47;16678:131;16804:4;16678:131;:::i;:::-;16670:139;;16397:419;;;:::o;16822:166::-;16962:18;16958:1;16950:6;16946:14;16939:42;16822:166;:::o;16994:366::-;17136:3;17157:67;17221:2;17216:3;17157:67;:::i;:::-;17150:74;;17233:93;17322:3;17233:93;:::i;:::-;17351:2;17346:3;17342:12;17335:19;;16994:366;;;:::o;17366:419::-;17532:4;17570:2;17559:9;17555:18;17547:26;;17619:9;17613:4;17609:20;17605:1;17594:9;17590:17;17583:47;17647:131;17773:4;17647:131;:::i;:::-;17639:139;;17366:419;;;:::o;17791:180::-;17839:77;17836:1;17829:88;17936:4;17933:1;17926:15;17960:4;17957:1;17950:15", + "source": "// SPDX-License-Identifier: UNLICENSED\r\npragma solidity 0.8.16;\r\n\r\nimport \"./MultiOwnable.sol\";\r\n\r\ncontract Oracle is MultiOwnable {\r\n // # Parameters\r\n string public description; // short string describing this oracle's data (e.g. \"ADA/USD\")\r\n uint public constant scaling = 1e18; // 18 decimals\r\n uint public immutable lockingPeriod; // locking period (in seconds) for changes by the owners that may negatively affect consumers\r\n\r\n // # State Variables\r\n uint private data; // latest data provided by the oracle\r\n uint private totalCost = 0; // sum of costs informed by owners for writing data (resettable to avoid overflow)\r\n uint private totalRevenue = 0; // sum of fees paid by consumers for reading data (resettable to avoid overflow)\r\n uint private writes = 0; // number of writes since last base fee adjustment\r\n uint private reads = 0; // number of weighted reads since last base fee adjustment\r\n uint public baseFee; // fee to read the data once, only paid if the data is new\r\n uint public maxFee; // maximum fee to read the data once\r\n uint public maxFeeNext; // next maximum fee, which replaced `maxFee` after `maxFeeTimelock`\r\n uint public maxFeeTimelock; // timestamp of the earliest time for the next max fee adjustment\r\n uint public latestCost; // latest cost of writing data\r\n uint public latestWrite; // timestamp of the latest write\r\n uint public totalCredit = 0; // sum of credits of all consumers\r\n mapping(address => uint) private credit; // credit of a consumer, used to pay for data reads\r\n mapping(address => uint) private latestRead; // timestamps of the latest reads of consumers\r\n mapping(address => uint) private weight; // weight imposed by owners on consumers that are reselling the data, to prevent free-riding\r\n mapping(address => uint) private weightNext; // next weight, which replaces the current weight after the timelock\r\n mapping(address => uint) private weightTimelock; // timestamp of the earliest time for the next weight adjustment\r\n \r\n event DataWritten(uint data, uint cost);\r\n event DataRead(address consumer, uint weight, uint data);\r\n event WeightAdjustmentScheduled(address consumer, uint weightTimelock, uint weightNext);\r\n event WeightAdjusted(address consumer, uint weight);\r\n event MaxFeeAdjustmentScheduled(uint maxFeeTimelock, uint maxFeeNext);\r\n event MaxFeeAdjusted(uint maxFee);\r\n event BaseFeeAdjusted(uint writes, uint reads, uint fee); \r\n event CreditDeposited(address consumer, uint amount);\r\n event CreditWithdrawn(address consumer, uint amount);\r\n event RevenueWithdrawn(address receiver, uint amount);\r\n event Reset(uint cost, uint revenue);\r\n\r\n constructor(address _owner, string memory _description, uint _lockingPeriod, uint _baseFee) MultiOwnable(_owner) {\r\n description = _description;\r\n lockingPeriod = _lockingPeriod;\r\n baseFee = _baseFee;\r\n maxFee = _baseFee * 3;\r\n }\r\n\r\n // # Functions to Write and Read Data.\r\n\r\n function writeData(uint _data, uint cost) external onlyOwner {\r\n writes += 1;\r\n data = _data;\r\n latestWrite = block.timestamp;\r\n totalCost += cost;\r\n emit DataWritten(data, cost);\r\n }\r\n\r\n function readData() external returns (uint) {\r\n uint w = weightOf(msg.sender);\r\n uint f = feeOf(msg.sender, w);\r\n require(credit[msg.sender] >= f, \"Insufficient credit\");\r\n credit[msg.sender] -= f; // Consumer pays to read data\r\n reads += w;\r\n totalRevenue += f;\r\n latestRead[msg.sender] = block.timestamp; // update the consumer's latest read timestamp\r\n emit DataRead(msg.sender, w, data);\r\n return data;\r\n }\r\n\r\n function inspectData() external view onlyOwner() returns (uint) { return data; } // Owners can read data for free.\r\n\r\n // # Functions to View a Consumer's State.\r\n\r\n function creditOf(address consumer) external view returns (uint) { return credit[consumer]; }\r\n function weightOf(address consumer) public view returns (uint) { return weight[consumer]; }\r\n function feeOf(address consumer) public view returns (uint) { return feeOf(consumer, weightOf(consumer)); }\r\n function feeOf(address consumer, uint _weight) internal view returns (uint) { return latestRead[consumer] > latestWrite ? 0 : (_weight * baseFee); }\r\n\r\n // # Functions for owners to adjust fees and weights\r\n //\r\n // To protect consumers from sudden changes, adjustments must be scheduled in advance.\r\n\r\n function scheduleWeightAdjustment(address consumer, uint _weightNext) external onlyOwner {\r\n uint t = block.timestamp + lockingPeriod;\r\n weightTimelock[consumer] = t;\r\n weightNext[consumer] = _weightNext;\r\n emit WeightAdjustmentScheduled(consumer, t, _weightNext);\r\n }\r\n\r\n function adjustWeight(address consumer) external onlyOwner {\r\n require(block.timestamp >= weightTimelock[consumer], \"locking period not elapsed\");\r\n uint w = weightNext[consumer];\r\n weight[consumer] = w;\r\n emit WeightAdjusted(consumer, w);\r\n }\r\n\r\n function scheduleMaxFeeAdjustment(uint _maxFeeNext) external onlyOwner {\r\n maxFeeTimelock = block.timestamp + lockingPeriod;\r\n maxFeeNext = _maxFeeNext;\r\n emit MaxFeeAdjustmentScheduled(maxFeeTimelock, maxFeeNext);\r\n }\r\n\r\n function adjustMaxFee() external onlyOwner {\r\n require(block.timestamp >= maxFeeTimelock, \"locking period not elapsed\");\r\n maxFee = maxFeeNext;\r\n emit MaxFeeAdjusted(maxFee);\r\n }\r\n\r\n // We extrapolate that, from now until next call to `adjustFee`, number of writes and reads will be the same as in previous period.\r\n // We extrapolate that the cost of every future write will be the same as the cost of the latest write.\r\n // If true and we are not in a corner case of integer subtraction or division, `totalCost` will be equal to `totalRevenue` at the next call to `adjustFees`.\r\n function adjustBaseFee() external {\r\n baseFee = min(subtraction((latestCost * writes) + totalCost, totalRevenue) / ((reads != 0) ? reads : 1), maxFee);\r\n emit BaseFeeAdjusted(writes, reads, baseFee);\r\n writes = 0;\r\n reads = 0;\r\n }\r\n\r\n // # Functions for consumers to deposit, withdraw and view their credits\r\n\r\n function depositCredit(address consumer) external payable { \r\n credit[consumer] += msg.value; \r\n totalCredit += msg.value;\r\n emit CreditDeposited(consumer, msg.value);\r\n }\r\n\r\n function withdrawCredit(uint amount) external {\r\n require(credit[msg.sender] >= amount, \"Insufficient credit\");\r\n credit[msg.sender] -= amount;\r\n totalCredit -= amount;\r\n payable(msg.sender).transfer(amount);\r\n emit CreditWithdrawn(msg.sender, amount);\r\n }\r\n\r\n // Withdraws part of the revenue accumulated by the contract to a receiver specified by the calling owner\r\n function withdraw(address receiver, uint amount) external onlyOwner {\r\n require(address(this).balance - totalCredit >= amount, \"Insufficient balance\");\r\n payable(receiver).transfer(amount);\r\n emit RevenueWithdrawn(receiver, amount);\r\n }\r\n\r\n // Prevents overflow of `totalCost` and `totalRevenue`, preserving their difference\r\n function resetCostAndRevenue() external {\r\n emit Reset(totalCost, totalRevenue);\r\n if (totalCost > totalRevenue) {\r\n totalCost -= totalRevenue;\r\n totalRevenue = 0;\r\n } else {\r\n totalRevenue -= totalCost;\r\n totalCost = 0;\r\n }\r\n }\r\n\r\n function subtraction(uint a, uint b) internal pure returns (uint) { return (b < a) ? (a - b) : 0; } \r\n function max(uint a, uint b) internal pure returns (uint) { return (b < a) ? a : b; } \r\n function min(uint a, uint b) internal pure returns (uint) { return (b < a) ? b : a; }\r\n}\r\n", + "sourcePath": "/Users/bruno/Dropbox/DjedAlliance/Code/Oracle-Solidity/contracts/Oracle.sol", + "ast": { + "absolutePath": "project:/contracts/Oracle.sol", + "exportedSymbols": { + "MultiOwnable": [558], + "Oracle": [1237] + }, + "id": 1238, + "license": "UNLICENSED", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 560, + "literals": ["solidity", "0.8", ".16"], + "nodeType": "PragmaDirective", + "src": "40:23:2" + }, + { + "absolutePath": "project:/contracts/MultiOwnable.sol", + "file": "./MultiOwnable.sol", + "id": 561, + "nameLocation": "-1:-1:-1", + "nodeType": "ImportDirective", + "scope": 1238, + "sourceUnit": 559, + "src": "67:28:2", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 562, + "name": "MultiOwnable", + "nameLocations": ["118:12:2"], + "nodeType": "IdentifierPath", + "referencedDeclaration": 558, + "src": "118:12:2" + }, + "id": 563, + "nodeType": "InheritanceSpecifier", + "src": "118:12:2" + } + ], + "canonicalName": "Oracle", + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 1237, + "linearizedBaseContracts": [1237, 558], + "name": "Oracle", + "nameLocation": "108:6:2", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "7284e416", + "id": 565, + "mutability": "mutable", + "name": "description", + "nameLocation": "173:11:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "159:25:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 564, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "159:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "public" + }, + { + "constant": true, + "functionSelector": "cbfa3c9c", + "id": 568, + "mutability": "constant", + "name": "scaling", + "nameLocation": "275:7:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "254:35:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 566, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "254:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "31653138", + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "285:4:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1000000000000000000_by_1", + "typeString": "int_const 1000000000000000000" + }, + "value": "1e18" + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "550066d5", + "id": 570, + "mutability": "immutable", + "name": "lockingPeriod", + "nameLocation": "335:13:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "313:35:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 569, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "313:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "id": 572, + "mutability": "mutable", + "name": "data", + "nameLocation": "492:4:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "479:17:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 571, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "479:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "totalCost", + "nameLocation": "566:9:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "553:26:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 573, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "553:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 574, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "578:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "totalRevenue", + "nameLocation": "685:12:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "672:29:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 576, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "672:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 577, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "700:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 581, + "mutability": "mutable", + "name": "writes", + "nameLocation": "802:6:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "789:23:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 579, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "789:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "811:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 584, + "mutability": "mutable", + "name": "reads", + "nameLocation": "883:5:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "870:22:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 582, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "870:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 583, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "891:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "private" + }, + { + "constant": false, + "functionSelector": "6ef25c3a", + "id": 586, + "mutability": "mutable", + "name": "baseFee", + "nameLocation": "971:7:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "959:19:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 585, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "959:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "01f59d16", + "id": 588, + "mutability": "mutable", + "name": "maxFee", + "nameLocation": "1063:6:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "1051:18:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 587, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1051:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "22588d21", + "id": 590, + "mutability": "mutable", + "name": "maxFeeNext", + "nameLocation": "1133:10:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "1121:22:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 589, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1121:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "9d61ab35", + "id": 592, + "mutability": "mutable", + "name": "maxFeeTimelock", + "nameLocation": "1234:14:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "1222:26:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 591, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1222:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "ff8c51b9", + "id": 594, + "mutability": "mutable", + "name": "latestCost", + "nameLocation": "1333:10:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "1321:22:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 593, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1321:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "bc7f2925", + "id": 596, + "mutability": "mutable", + "name": "latestWrite", + "nameLocation": "1394:11:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "1382:23:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 595, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1382:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "a43d6404", + "id": 599, + "mutability": "mutable", + "name": "totalCredit", + "nameLocation": "1457:11:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "1445:27:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 597, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1445:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "30", + "id": 598, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1471:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "visibility": "public" + }, + { + "constant": false, + "id": 603, + "mutability": "mutable", + "name": "credit", + "nameLocation": "1547:6:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "1514:39:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 602, + "keyType": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1522:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1514:24:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 601, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1533:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 607, + "mutability": "mutable", + "name": "latestRead", + "nameLocation": "1645:10:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "1612:43:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 606, + "keyType": { + "id": 604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1620:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1612:24:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 605, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1631:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "weight", + "nameLocation": "1742:6:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "1709:39:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 610, + "keyType": { + "id": 608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1717:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1709:24:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 609, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1728:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 615, + "mutability": "mutable", + "name": "weightNext", + "nameLocation": "1881:10:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "1848:43:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 614, + "keyType": { + "id": 612, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1856:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1848:24:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 613, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1867:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 619, + "mutability": "mutable", + "name": "weightTimelock", + "nameLocation": "2000:14:2", + "nodeType": "VariableDeclaration", + "scope": 1237, + "src": "1967:47:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "typeName": { + "id": 618, + "keyType": { + "id": 616, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1975:7:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "1967:24:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + }, + "valueType": { + "id": 617, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1986:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "private" + }, + { + "anonymous": false, + "eventSelector": "36c0e38a11934bb6e80e00c4ae42212be021022fdb5aff12c53720f1d951c281", + "id": 625, + "name": "DataWritten", + "nameLocation": "2098:11:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 624, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 621, + "indexed": false, + "mutability": "mutable", + "name": "data", + "nameLocation": "2115:4:2", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "2110:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 620, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2110:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 623, + "indexed": false, + "mutability": "mutable", + "name": "cost", + "nameLocation": "2126:4:2", + "nodeType": "VariableDeclaration", + "scope": 625, + "src": "2121:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 622, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2121:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2109:22:2" + }, + "src": "2092:40:2" + }, + { + "anonymous": false, + "eventSelector": "0b841b0dd45a0ceb3028a50d58ac2563abc277ee39d4891235612bd8154c3069", + "id": 633, + "name": "DataRead", + "nameLocation": "2144:8:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 632, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "indexed": false, + "mutability": "mutable", + "name": "consumer", + "nameLocation": "2161:8:2", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "2153:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2153:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "indexed": false, + "mutability": "mutable", + "name": "weight", + "nameLocation": "2176:6:2", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "2171:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 628, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2171:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 631, + "indexed": false, + "mutability": "mutable", + "name": "data", + "nameLocation": "2189:4:2", + "nodeType": "VariableDeclaration", + "scope": 633, + "src": "2184:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 630, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2184:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2152:42:2" + }, + "src": "2138:57:2" + }, + { + "anonymous": false, + "eventSelector": "e43cbf9eca83a4940ed48969b421f37c7c14904fe7332cd4da4e08b7b01ac601", + "id": 641, + "name": "WeightAdjustmentScheduled", + "nameLocation": "2207:25:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 640, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "indexed": false, + "mutability": "mutable", + "name": "consumer", + "nameLocation": "2241:8:2", + "nodeType": "VariableDeclaration", + "scope": 641, + "src": "2233:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2233:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "indexed": false, + "mutability": "mutable", + "name": "weightTimelock", + "nameLocation": "2256:14:2", + "nodeType": "VariableDeclaration", + "scope": 641, + "src": "2251:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 636, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2251:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 639, + "indexed": false, + "mutability": "mutable", + "name": "weightNext", + "nameLocation": "2277:10:2", + "nodeType": "VariableDeclaration", + "scope": 641, + "src": "2272:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 638, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2272:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2232:56:2" + }, + "src": "2201:88:2" + }, + { + "anonymous": false, + "eventSelector": "f457312d77aa724190c6961073d18cdabdb4c610f46bc9679c153738180c1e48", + "id": 647, + "name": "WeightAdjusted", + "nameLocation": "2301:14:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 643, + "indexed": false, + "mutability": "mutable", + "name": "consumer", + "nameLocation": "2324:8:2", + "nodeType": "VariableDeclaration", + "scope": 647, + "src": "2316:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 642, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2316:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 645, + "indexed": false, + "mutability": "mutable", + "name": "weight", + "nameLocation": "2339:6:2", + "nodeType": "VariableDeclaration", + "scope": 647, + "src": "2334:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 644, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2334:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2315:31:2" + }, + "src": "2295:52:2" + }, + { + "anonymous": false, + "eventSelector": "d05ff85280ce31a64abd90c4bb911d84b3a96742acbf1bad123828c5029fedfb", + "id": 653, + "name": "MaxFeeAdjustmentScheduled", + "nameLocation": "2359:25:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 649, + "indexed": false, + "mutability": "mutable", + "name": "maxFeeTimelock", + "nameLocation": "2390:14:2", + "nodeType": "VariableDeclaration", + "scope": 653, + "src": "2385:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 648, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2385:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "indexed": false, + "mutability": "mutable", + "name": "maxFeeNext", + "nameLocation": "2411:10:2", + "nodeType": "VariableDeclaration", + "scope": 653, + "src": "2406:15:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 650, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2406:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2384:38:2" + }, + "src": "2353:70:2" + }, + { + "anonymous": false, + "eventSelector": "08469e8bd7ea4f066203be1e316190e4aa6cf2f3ba37dc2e91b57c40949a9d46", + "id": 657, + "name": "MaxFeeAdjusted", + "nameLocation": "2435:14:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 656, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 655, + "indexed": false, + "mutability": "mutable", + "name": "maxFee", + "nameLocation": "2455:6:2", + "nodeType": "VariableDeclaration", + "scope": 657, + "src": "2450:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 654, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2450:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2449:13:2" + }, + "src": "2429:34:2" + }, + { + "anonymous": false, + "eventSelector": "11ae82e96e5463f0bace04bd352539e862763064581bf1ebd4ae4ff675d02c4c", + "id": 665, + "name": "BaseFeeAdjusted", + "nameLocation": "2475:15:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 659, + "indexed": false, + "mutability": "mutable", + "name": "writes", + "nameLocation": "2496:6:2", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "2491:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 658, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2491:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 661, + "indexed": false, + "mutability": "mutable", + "name": "reads", + "nameLocation": "2509:5:2", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "2504:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 660, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2504:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 663, + "indexed": false, + "mutability": "mutable", + "name": "fee", + "nameLocation": "2521:3:2", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "2516:8:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 662, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2516:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2490:35:2" + }, + "src": "2469:57:2" + }, + { + "anonymous": false, + "eventSelector": "2f278cf5a42176fbdf59ee579498869d5c3005156b7a8013c5adc90797a086c5", + "id": 671, + "name": "CreditDeposited", + "nameLocation": "2540:15:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 667, + "indexed": false, + "mutability": "mutable", + "name": "consumer", + "nameLocation": "2564:8:2", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "2556:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 666, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2556:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 669, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2579:6:2", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "2574:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 668, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2574:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2555:31:2" + }, + "src": "2534:53:2" + }, + { + "anonymous": false, + "eventSelector": "6b00960292e7976c9eb5434816470b38a441061eee645921536131ccb937cafe", + "id": 677, + "name": "CreditWithdrawn", + "nameLocation": "2599:15:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 676, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 673, + "indexed": false, + "mutability": "mutable", + "name": "consumer", + "nameLocation": "2623:8:2", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "2615:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 672, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2615:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 675, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2638:6:2", + "nodeType": "VariableDeclaration", + "scope": 677, + "src": "2633:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 674, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2633:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2614:31:2" + }, + "src": "2593:53:2" + }, + { + "anonymous": false, + "eventSelector": "86a5cc8fe9af9ae68fb50f62885307a7755a30cbd290131644377f0bd94a7181", + "id": 683, + "name": "RevenueWithdrawn", + "nameLocation": "2658:16:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 679, + "indexed": false, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "2683:8:2", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "2675:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 678, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2675:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 681, + "indexed": false, + "mutability": "mutable", + "name": "amount", + "nameLocation": "2698:6:2", + "nodeType": "VariableDeclaration", + "scope": 683, + "src": "2693:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 680, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2693:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2674:31:2" + }, + "src": "2652:54:2" + }, + { + "anonymous": false, + "eventSelector": "5ae2e83411b15aef3c1609c37f90fc7c912666cfac3ba72a9ba900a39c5bfaa3", + "id": 689, + "name": "Reset", + "nameLocation": "2718:5:2", + "nodeType": "EventDefinition", + "parameters": { + "id": 688, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 685, + "indexed": false, + "mutability": "mutable", + "name": "cost", + "nameLocation": "2729:4:2", + "nodeType": "VariableDeclaration", + "scope": 689, + "src": "2724:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 684, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2724:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 687, + "indexed": false, + "mutability": "mutable", + "name": "revenue", + "nameLocation": "2740:7:2", + "nodeType": "VariableDeclaration", + "scope": 689, + "src": "2735:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 686, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2735:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2723:25:2" + }, + "src": "2712:37:2" + }, + { + "body": { + "id": 721, + "nodeType": "Block", + "src": "2870:147:2", + "statements": [ + { + "expression": { + "id": 705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 703, + "name": "description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 565, + "src": "2881:11:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 704, + "name": "_description", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 693, + "src": "2895:12:2", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "2881:26:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 706, + "nodeType": "ExpressionStatement", + "src": "2881:26:2" + }, + { + "expression": { + "id": 709, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 707, + "name": "lockingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 570, + "src": "2918:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 708, + "name": "_lockingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 695, + "src": "2934:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2918:30:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 710, + "nodeType": "ExpressionStatement", + "src": "2918:30:2" + }, + { + "expression": { + "id": 713, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 711, + "name": "baseFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "2959:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 712, + "name": "_baseFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 697, + "src": "2969:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2959:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 714, + "nodeType": "ExpressionStatement", + "src": "2959:18:2" + }, + { + "expression": { + "id": 719, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 715, + "name": "maxFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 588, + "src": "2988:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 718, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 716, + "name": "_baseFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 697, + "src": "2997:8:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "hexValue": "33", + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3008:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "2997:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2988:21:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 720, + "nodeType": "ExpressionStatement", + "src": "2988:21:2" + } + ] + }, + "id": 722, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "id": 700, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 691, + "src": "2862:6:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "id": 701, + "kind": "baseConstructorSpecifier", + "modifierName": { + "id": 699, + "name": "MultiOwnable", + "nameLocations": ["2849:12:2"], + "nodeType": "IdentifierPath", + "referencedDeclaration": 558, + "src": "2849:12:2" + }, + "nodeType": "ModifierInvocation", + "src": "2849:20:2" + } + ], + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 698, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 691, + "mutability": "mutable", + "name": "_owner", + "nameLocation": "2777:6:2", + "nodeType": "VariableDeclaration", + "scope": 722, + "src": "2769:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 690, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2769:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "_description", + "nameLocation": "2799:12:2", + "nodeType": "VariableDeclaration", + "scope": 722, + "src": "2785:26:2", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 692, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "2785:6:2", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "_lockingPeriod", + "nameLocation": "2818:14:2", + "nodeType": "VariableDeclaration", + "scope": 722, + "src": "2813:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2813:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 697, + "mutability": "mutable", + "name": "_baseFee", + "nameLocation": "2839:8:2", + "nodeType": "VariableDeclaration", + "scope": 722, + "src": "2834:13:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 696, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2834:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2768:80:2" + }, + "returnParameters": { + "id": 702, + "nodeType": "ParameterList", + "parameters": [], + "src": "2870:0:2" + }, + "scope": 1237, + "src": "2757:260:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 753, + "nodeType": "Block", + "src": "3132:160:2", + "statements": [ + { + "expression": { + "id": 733, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 731, + "name": "writes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 581, + "src": "3143:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3153:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3143:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 734, + "nodeType": "ExpressionStatement", + "src": "3143:11:2" + }, + { + "expression": { + "id": 737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 735, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "3165:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 736, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 724, + "src": "3172:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3165:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 738, + "nodeType": "ExpressionStatement", + "src": "3165:12:2" + }, + { + "expression": { + "id": 742, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 739, + "name": "latestWrite", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "3188:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 740, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "3202:5:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 741, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3208:9:2", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "3202:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3188:29:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 743, + "nodeType": "ExpressionStatement", + "src": "3188:29:2" + }, + { + "expression": { + "id": 746, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 744, + "name": "totalCost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 575, + "src": "3228:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 745, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "3241:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3228:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 747, + "nodeType": "ExpressionStatement", + "src": "3228:17:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 749, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "3273:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 750, + "name": "cost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "3279:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 748, + "name": "DataWritten", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 625, + "src": "3261:11:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3261:23:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 752, + "nodeType": "EmitStatement", + "src": "3256:28:2" + } + ] + }, + "functionSelector": "c71ba63b", + "id": 754, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 729, + "kind": "modifierInvocation", + "modifierName": { + "id": 728, + "name": "onlyOwner", + "nameLocations": ["3122:9:2"], + "nodeType": "IdentifierPath", + "referencedDeclaration": 114, + "src": "3122:9:2" + }, + "nodeType": "ModifierInvocation", + "src": "3122:9:2" + } + ], + "name": "writeData", + "nameLocation": "3080:9:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 727, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 724, + "mutability": "mutable", + "name": "_data", + "nameLocation": "3095:5:2", + "nodeType": "VariableDeclaration", + "scope": 754, + "src": "3090:10:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 723, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3090:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 726, + "mutability": "mutable", + "name": "cost", + "nameLocation": "3107:4:2", + "nodeType": "VariableDeclaration", + "scope": 754, + "src": "3102:9:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 725, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3102:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3089:23:2" + }, + "returnParameters": { + "id": 730, + "nodeType": "ParameterList", + "parameters": [], + "src": "3132:0:2" + }, + "scope": 1237, + "src": "3071:221:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 816, + "nodeType": "Block", + "src": "3344:432:2", + "statements": [ + { + "assignments": [760], + "declarations": [ + { + "constant": false, + "id": 760, + "mutability": "mutable", + "name": "w", + "nameLocation": "3360:1:2", + "nodeType": "VariableDeclaration", + "scope": 816, + "src": "3355:6:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 759, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3355:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 765, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 762, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3373:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3377:6:2", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3373:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 761, + "name": "weightOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "3364:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3364:20:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3355:29:2" + }, + { + "assignments": [767], + "declarations": [ + { + "constant": false, + "id": 767, + "mutability": "mutable", + "name": "f", + "nameLocation": "3400:1:2", + "nodeType": "VariableDeclaration", + "scope": 816, + "src": "3395:6:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 766, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3395:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 773, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 769, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3410:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3414:6:2", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3410:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 771, + "name": "w", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 760, + "src": "3422:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 768, + "name": "feeOf", + "nodeType": "Identifier", + "overloadedDeclarations": [866, 888], + "referencedDeclaration": 888, + "src": "3404:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view returns (uint256)" + } + }, + "id": 772, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3404:20:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3395:29:2" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 775, + "name": "credit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 603, + "src": "3443:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 778, + "indexExpression": { + "expression": { + "id": 776, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3450:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3454:6:2", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3450:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3443:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 779, + "name": "f", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "3465:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3443:23:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e73756666696369656e7420637265646974", + "id": 781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3468:21:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_53e85fda21889e930b90545943e5eef1e839e6cce682bf488a222abd3afdcd10", + "typeString": "literal_string \"Insufficient credit\"" + }, + "value": "Insufficient credit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_53e85fda21889e930b90545943e5eef1e839e6cce682bf488a222abd3afdcd10", + "typeString": "literal_string \"Insufficient credit\"" + } + ], + "id": 774, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3435:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 782, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3435:55:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 783, + "nodeType": "ExpressionStatement", + "src": "3435:55:2" + }, + { + "expression": { + "id": 789, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 784, + "name": "credit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 603, + "src": "3501:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 787, + "indexExpression": { + "expression": { + "id": 785, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3508:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3512:6:2", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3508:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3501:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 788, + "name": "f", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "3523:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3501:23:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 790, + "nodeType": "ExpressionStatement", + "src": "3501:23:2" + }, + { + "expression": { + "id": 793, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 791, + "name": "reads", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "3565:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 792, + "name": "w", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 760, + "src": "3574:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3565:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 794, + "nodeType": "ExpressionStatement", + "src": "3565:10:2" + }, + { + "expression": { + "id": 797, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 795, + "name": "totalRevenue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 578, + "src": "3586:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 796, + "name": "f", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 767, + "src": "3602:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3586:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 798, + "nodeType": "ExpressionStatement", + "src": "3586:17:2" + }, + { + "expression": { + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 799, + "name": "latestRead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "3614:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 802, + "indexExpression": { + "expression": { + "id": 800, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3625:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 801, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3629:6:2", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3625:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3614:22:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 803, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "3639:5:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3645:9:2", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "3639:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3614:40:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 806, + "nodeType": "ExpressionStatement", + "src": "3614:40:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 808, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3726:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "3730:6:2", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3726:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 810, + "name": "w", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 760, + "src": "3738:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 811, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "3741:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 807, + "name": "DataRead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "3717:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 812, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "3717:29:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 813, + "nodeType": "EmitStatement", + "src": "3712:34:2" + }, + { + "expression": { + "id": 814, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "3764:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 758, + "id": 815, + "nodeType": "Return", + "src": "3757:11:2" + } + ] + }, + "functionSelector": "bef55ef3", + "id": 817, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "readData", + "nameLocation": "3309:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 755, + "nodeType": "ParameterList", + "parameters": [], + "src": "3317:2:2" + }, + "returnParameters": { + "id": 758, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 757, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 817, + "src": "3338:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 756, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3338:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3337:6:2" + }, + "scope": 1237, + "src": "3300:476:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 826, + "nodeType": "Block", + "src": "3848:16:2", + "statements": [ + { + "expression": { + "id": 824, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "3857:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 823, + "id": 825, + "nodeType": "Return", + "src": "3850:11:2" + } + ] + }, + "functionSelector": "43835a6c", + "id": 827, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "arguments": [], + "id": 820, + "kind": "modifierInvocation", + "modifierName": { + "id": 819, + "name": "onlyOwner", + "nameLocations": ["3821:9:2"], + "nodeType": "IdentifierPath", + "referencedDeclaration": 114, + "src": "3821:9:2" + }, + "nodeType": "ModifierInvocation", + "src": "3821:11:2" + } + ], + "name": "inspectData", + "nameLocation": "3793:11:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 818, + "nodeType": "ParameterList", + "parameters": [], + "src": "3804:2:2" + }, + "returnParameters": { + "id": 823, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 827, + "src": "3842:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 821, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3842:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3841:6:2" + }, + "scope": 1237, + "src": "3784:80:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 838, + "nodeType": "Block", + "src": "4021:28:2", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 834, + "name": "credit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 603, + "src": "4030:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 836, + "indexExpression": { + "id": 835, + "name": "consumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 829, + "src": "4037:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4030:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 833, + "id": 837, + "nodeType": "Return", + "src": "4023:23:2" + } + ] + }, + "functionSelector": "75807250", + "id": 839, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "creditOf", + "nameLocation": "3965:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 830, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 829, + "mutability": "mutable", + "name": "consumer", + "nameLocation": "3982:8:2", + "nodeType": "VariableDeclaration", + "scope": 839, + "src": "3974:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 828, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3974:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "3973:18:2" + }, + "returnParameters": { + "id": 833, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 832, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 839, + "src": "4015:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 831, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4015:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4014:6:2" + }, + "scope": 1237, + "src": "3956:93:2", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 850, + "nodeType": "Block", + "src": "4118:28:2", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 846, + "name": "weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 611, + "src": "4127:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 848, + "indexExpression": { + "id": 847, + "name": "consumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 841, + "src": "4134:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4127:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 845, + "id": 849, + "nodeType": "Return", + "src": "4120:23:2" + } + ] + }, + "functionSelector": "dd4bc101", + "id": 851, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "weightOf", + "nameLocation": "4064:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 842, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 841, + "mutability": "mutable", + "name": "consumer", + "nameLocation": "4081:8:2", + "nodeType": "VariableDeclaration", + "scope": 851, + "src": "4073:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 840, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4073:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4072:18:2" + }, + "returnParameters": { + "id": 845, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 844, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 851, + "src": "4112:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 843, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4112:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4111:6:2" + }, + "scope": 1237, + "src": "4055:91:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 865, + "nodeType": "Block", + "src": "4212:47:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 859, + "name": "consumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 853, + "src": "4227:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "id": 861, + "name": "consumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 853, + "src": "4246:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 860, + "name": "weightOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 851, + "src": "4237:8:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4237:18:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 858, + "name": "feeOf", + "nodeType": "Identifier", + "overloadedDeclarations": [866, 888], + "referencedDeclaration": 888, + "src": "4221:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (address,uint256) view returns (uint256)" + } + }, + "id": 863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4221:35:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 857, + "id": 864, + "nodeType": "Return", + "src": "4214:42:2" + } + ] + }, + "functionSelector": "25dddba4", + "id": 866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "feeOf", + "nameLocation": "4161:5:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 854, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 853, + "mutability": "mutable", + "name": "consumer", + "nameLocation": "4175:8:2", + "nodeType": "VariableDeclaration", + "scope": 866, + "src": "4167:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 852, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4167:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4166:18:2" + }, + "returnParameters": { + "id": 857, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 856, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 866, + "src": "4206:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 855, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4206:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4205:6:2" + }, + "scope": 1237, + "src": "4152:107:2", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 887, + "nodeType": "Block", + "src": "4341:72:2", + "statements": [ + { + "expression": { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 875, + "name": "latestRead", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 607, + "src": "4350:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 877, + "indexExpression": { + "id": 876, + "name": "consumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 868, + "src": "4361:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4350:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 878, + "name": "latestWrite", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 596, + "src": "4373:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4350:34:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 881, + "name": "_weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 870, + "src": "4392:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 882, + "name": "baseFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "4402:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4392:17:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 884, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4391:19:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "4350:60:2", + "trueExpression": { + "hexValue": "30", + "id": 880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4387:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 874, + "id": 886, + "nodeType": "Return", + "src": "4343:67:2" + } + ] + }, + "id": 888, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "feeOf", + "nameLocation": "4274:5:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 871, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 868, + "mutability": "mutable", + "name": "consumer", + "nameLocation": "4288:8:2", + "nodeType": "VariableDeclaration", + "scope": 888, + "src": "4280:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 867, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4280:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 870, + "mutability": "mutable", + "name": "_weight", + "nameLocation": "4303:7:2", + "nodeType": "VariableDeclaration", + "scope": 888, + "src": "4298:12:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 869, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4298:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4279:32:2" + }, + "returnParameters": { + "id": 874, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 873, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 888, + "src": "4335:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 872, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4335:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4334:6:2" + }, + "scope": 1237, + "src": "4265:148:2", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 922, + "nodeType": "Block", + "src": "4670:210:2", + "statements": [ + { + "assignments": [898], + "declarations": [ + { + "constant": false, + "id": 898, + "mutability": "mutable", + "name": "t", + "nameLocation": "4686:1:2", + "nodeType": "VariableDeclaration", + "scope": 922, + "src": "4681:6:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 897, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4681:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 903, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 899, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "4690:5:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 900, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4696:9:2", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4690:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 901, + "name": "lockingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 570, + "src": "4708:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4690:31:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "4681:40:2" + }, + { + "expression": { + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 904, + "name": "weightTimelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 619, + "src": "4732:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 906, + "indexExpression": { + "id": 905, + "name": "consumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 890, + "src": "4747:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4732:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 907, + "name": "t", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 898, + "src": "4759:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4732:28:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 909, + "nodeType": "ExpressionStatement", + "src": "4732:28:2" + }, + { + "expression": { + "id": 914, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 910, + "name": "weightNext", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 615, + "src": "4771:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 912, + "indexExpression": { + "id": 911, + "name": "consumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 890, + "src": "4782:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "4771:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 913, + "name": "_weightNext", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 892, + "src": "4794:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4771:34:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 915, + "nodeType": "ExpressionStatement", + "src": "4771:34:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 917, + "name": "consumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 890, + "src": "4847:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 918, + "name": "t", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 898, + "src": "4857:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 919, + "name": "_weightNext", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 892, + "src": "4860:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 916, + "name": "WeightAdjustmentScheduled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 641, + "src": "4821:25:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256,uint256)" + } + }, + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4821:51:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 921, + "nodeType": "EmitStatement", + "src": "4816:56:2" + } + ] + }, + "functionSelector": "b2958501", + "id": 923, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 895, + "kind": "modifierInvocation", + "modifierName": { + "id": 894, + "name": "onlyOwner", + "nameLocations": ["4660:9:2"], + "nodeType": "IdentifierPath", + "referencedDeclaration": 114, + "src": "4660:9:2" + }, + "nodeType": "ModifierInvocation", + "src": "4660:9:2" + } + ], + "name": "scheduleWeightAdjustment", + "nameLocation": "4590:24:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "consumer", + "nameLocation": "4623:8:2", + "nodeType": "VariableDeclaration", + "scope": 923, + "src": "4615:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 889, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4615:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 892, + "mutability": "mutable", + "name": "_weightNext", + "nameLocation": "4638:11:2", + "nodeType": "VariableDeclaration", + "scope": 923, + "src": "4633:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 891, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4633:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4614:36:2" + }, + "returnParameters": { + "id": 896, + "nodeType": "ParameterList", + "parameters": [], + "src": "4670:0:2" + }, + "scope": 1237, + "src": "4581:299:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 957, + "nodeType": "Block", + "src": "4947:215:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 936, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 931, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "4966:5:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "4972:9:2", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "4966:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "baseExpression": { + "id": 933, + "name": "weightTimelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 619, + "src": "4985:14:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 935, + "indexExpression": { + "id": 934, + "name": "consumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 925, + "src": "5000:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "4985:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4966:43:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "6c6f636b696e6720706572696f64206e6f7420656c6170736564", + "id": 937, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5011:28:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e373a65136155e1dfb699bced8050fefa1b3e4cdfdbbac177c8461d84579cd6f", + "typeString": "literal_string \"locking period not elapsed\"" + }, + "value": "locking period not elapsed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e373a65136155e1dfb699bced8050fefa1b3e4cdfdbbac177c8461d84579cd6f", + "typeString": "literal_string \"locking period not elapsed\"" + } + ], + "id": 930, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "4958:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "4958:82:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 939, + "nodeType": "ExpressionStatement", + "src": "4958:82:2" + }, + { + "assignments": [941], + "declarations": [ + { + "constant": false, + "id": 941, + "mutability": "mutable", + "name": "w", + "nameLocation": "5056:1:2", + "nodeType": "VariableDeclaration", + "scope": 957, + "src": "5051:6:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5051:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 945, + "initialValue": { + "baseExpression": { + "id": 942, + "name": "weightNext", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 615, + "src": "5060:10:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 944, + "indexExpression": { + "id": 943, + "name": "consumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 925, + "src": "5071:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "5060:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "5051:29:2" + }, + { + "expression": { + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 946, + "name": "weight", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 611, + "src": "5091:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 948, + "indexExpression": { + "id": 947, + "name": "consumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 925, + "src": "5098:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "5091:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 949, + "name": "w", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "5110:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5091:20:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 951, + "nodeType": "ExpressionStatement", + "src": "5091:20:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 953, + "name": "consumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 925, + "src": "5142:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 954, + "name": "w", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "5152:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 952, + "name": "WeightAdjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 647, + "src": "5127:14:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5127:27:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 956, + "nodeType": "EmitStatement", + "src": "5122:32:2" + } + ] + }, + "functionSelector": "812035e2", + "id": 958, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 928, + "kind": "modifierInvocation", + "modifierName": { + "id": 927, + "name": "onlyOwner", + "nameLocations": ["4937:9:2"], + "nodeType": "IdentifierPath", + "referencedDeclaration": 114, + "src": "4937:9:2" + }, + "nodeType": "ModifierInvocation", + "src": "4937:9:2" + } + ], + "name": "adjustWeight", + "nameLocation": "4897:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 926, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 925, + "mutability": "mutable", + "name": "consumer", + "nameLocation": "4918:8:2", + "nodeType": "VariableDeclaration", + "scope": 958, + "src": "4910:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 924, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4910:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "4909:18:2" + }, + "returnParameters": { + "id": 929, + "nodeType": "ParameterList", + "parameters": [], + "src": "4947:0:2" + }, + "scope": 1237, + "src": "4888:274:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 981, + "nodeType": "Block", + "src": "5241:171:2", + "statements": [ + { + "expression": { + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 965, + "name": "maxFeeTimelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "5252:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 969, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 966, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "5269:5:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5275:9:2", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "5269:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 968, + "name": "lockingPeriod", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 570, + "src": "5287:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5269:31:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5252:48:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 971, + "nodeType": "ExpressionStatement", + "src": "5252:48:2" + }, + { + "expression": { + "id": 974, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 972, + "name": "maxFeeNext", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "5311:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 973, + "name": "_maxFeeNext", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 960, + "src": "5324:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5311:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 975, + "nodeType": "ExpressionStatement", + "src": "5311:24:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 977, + "name": "maxFeeTimelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "5377:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 978, + "name": "maxFeeNext", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "5393:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 976, + "name": "MaxFeeAdjustmentScheduled", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 653, + "src": "5351:25:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 979, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5351:53:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 980, + "nodeType": "EmitStatement", + "src": "5346:58:2" + } + ] + }, + "functionSelector": "a161d088", + "id": 982, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 963, + "kind": "modifierInvocation", + "modifierName": { + "id": 962, + "name": "onlyOwner", + "nameLocations": ["5231:9:2"], + "nodeType": "IdentifierPath", + "referencedDeclaration": 114, + "src": "5231:9:2" + }, + "nodeType": "ModifierInvocation", + "src": "5231:9:2" + } + ], + "name": "scheduleMaxFeeAdjustment", + "nameLocation": "5179:24:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 961, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 960, + "mutability": "mutable", + "name": "_maxFeeNext", + "nameLocation": "5209:11:2", + "nodeType": "VariableDeclaration", + "scope": 982, + "src": "5204:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 959, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5204:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5203:18:2" + }, + "returnParameters": { + "id": 964, + "nodeType": "ParameterList", + "parameters": [], + "src": "5241:0:2" + }, + "scope": 1237, + "src": "5170:242:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1003, + "nodeType": "Block", + "src": "5463:159:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 988, + "name": "block", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967292, + "src": "5482:5:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_block", + "typeString": "block" + } + }, + "id": 989, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "5488:9:2", + "memberName": "timestamp", + "nodeType": "MemberAccess", + "src": "5482:15:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 990, + "name": "maxFeeTimelock", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "5501:14:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5482:33:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "6c6f636b696e6720706572696f64206e6f7420656c6170736564", + "id": 992, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5517:28:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_e373a65136155e1dfb699bced8050fefa1b3e4cdfdbbac177c8461d84579cd6f", + "typeString": "literal_string \"locking period not elapsed\"" + }, + "value": "locking period not elapsed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_e373a65136155e1dfb699bced8050fefa1b3e4cdfdbbac177c8461d84579cd6f", + "typeString": "literal_string \"locking period not elapsed\"" + } + ], + "id": 987, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "5474:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 993, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5474:72:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 994, + "nodeType": "ExpressionStatement", + "src": "5474:72:2" + }, + { + "expression": { + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 995, + "name": "maxFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 588, + "src": "5557:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 996, + "name": "maxFeeNext", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "5566:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5557:19:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 998, + "nodeType": "ExpressionStatement", + "src": "5557:19:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1000, + "name": "maxFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 588, + "src": "5607:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 999, + "name": "MaxFeeAdjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 657, + "src": "5592:14:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1001, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "5592:22:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1002, + "nodeType": "EmitStatement", + "src": "5587:27:2" + } + ] + }, + "functionSelector": "acdfe255", + "id": 1004, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 985, + "kind": "modifierInvocation", + "modifierName": { + "id": 984, + "name": "onlyOwner", + "nameLocations": ["5453:9:2"], + "nodeType": "IdentifierPath", + "referencedDeclaration": 114, + "src": "5453:9:2" + }, + "nodeType": "ModifierInvocation", + "src": "5453:9:2" + } + ], + "name": "adjustMaxFee", + "nameLocation": "5429:12:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 983, + "nodeType": "ParameterList", + "parameters": [], + "src": "5441:2:2" + }, + "returnParameters": { + "id": 986, + "nodeType": "ParameterList", + "parameters": [], + "src": "5463:0:2" + }, + "scope": 1237, + "src": "5420:202:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1045, + "nodeType": "Block", + "src": "6072:227:2", + "statements": [ + { + "expression": { + "id": 1029, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1007, + "name": "baseFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "6083:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1026, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1015, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1010, + "name": "latestCost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 594, + "src": "6110:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1011, + "name": "writes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 581, + "src": "6123:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6110:19:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1013, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6109:21:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 1014, + "name": "totalCost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 575, + "src": "6133:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6109:33:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1016, + "name": "totalRevenue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 578, + "src": "6144:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1009, + "name": "subtraction", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1200, + "src": "6097:11:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6097:60:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "components": [ + { + "condition": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1020, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1018, + "name": "reads", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "6162:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1019, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6171:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6162:10:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1021, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6161:12:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "31", + "id": 1023, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6184:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "id": 1024, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "6161:24:2", + "trueExpression": { + "id": 1022, + "name": "reads", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "6176:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1025, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "6160:26:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6097:89:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1027, + "name": "maxFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 588, + "src": "6188:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1008, + "name": "min", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1236, + "src": "6093:3:2", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256,uint256) pure returns (uint256)" + } + }, + "id": 1028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6093:102:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6083:112:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1030, + "nodeType": "ExpressionStatement", + "src": "6083:112:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1032, + "name": "writes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 581, + "src": "6227:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1033, + "name": "reads", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "6235:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1034, + "name": "baseFee", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "6242:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1031, + "name": "BaseFeeAdjusted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 665, + "src": "6211:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256,uint256)" + } + }, + "id": 1035, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6211:39:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1036, + "nodeType": "EmitStatement", + "src": "6206:44:2" + }, + { + "expression": { + "id": 1039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1037, + "name": "writes", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 581, + "src": "6261:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 1038, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6270:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6261:10:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1040, + "nodeType": "ExpressionStatement", + "src": "6261:10:2" + }, + { + "expression": { + "id": 1043, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1041, + "name": "reads", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "6282:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 1042, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6290:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "6282:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1044, + "nodeType": "ExpressionStatement", + "src": "6282:9:2" + } + ] + }, + "functionSelector": "ddee192f", + "id": 1046, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "adjustBaseFee", + "nameLocation": "6047:13:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1005, + "nodeType": "ParameterList", + "parameters": [], + "src": "6060:2:2" + }, + "returnParameters": { + "id": 1006, + "nodeType": "ParameterList", + "parameters": [], + "src": "6072:0:2" + }, + "scope": 1237, + "src": "6038:261:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1069, + "nodeType": "Block", + "src": "6445:137:2", + "statements": [ + { + "expression": { + "id": 1056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1051, + "name": "credit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 603, + "src": "6457:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1053, + "indexExpression": { + "id": 1052, + "name": "consumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1048, + "src": "6464:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6457:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "expression": { + "id": 1054, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6477:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6481:5:2", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "6477:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6457:29:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1057, + "nodeType": "ExpressionStatement", + "src": "6457:29:2" + }, + { + "expression": { + "id": 1061, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1058, + "name": "totalCredit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "6498:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "expression": { + "id": 1059, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6513:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1060, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6517:5:2", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "6513:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6498:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1062, + "nodeType": "ExpressionStatement", + "src": "6498:24:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1064, + "name": "consumer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1048, + "src": "6554:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 1065, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6564:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6568:5:2", + "memberName": "value", + "nodeType": "MemberAccess", + "src": "6564:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1063, + "name": "CreditDeposited", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 671, + "src": "6538:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1067, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6538:36:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1068, + "nodeType": "EmitStatement", + "src": "6533:41:2" + } + ] + }, + "functionSelector": "49fdfb58", + "id": 1070, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "depositCredit", + "nameLocation": "6396:13:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1048, + "mutability": "mutable", + "name": "consumer", + "nameLocation": "6418:8:2", + "nodeType": "VariableDeclaration", + "scope": 1070, + "src": "6410:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1047, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6410:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "6409:18:2" + }, + "returnParameters": { + "id": 1050, + "nodeType": "ParameterList", + "parameters": [], + "src": "6445:0:2" + }, + "scope": 1237, + "src": "6387:195:2", + "stateMutability": "payable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1111, + "nodeType": "Block", + "src": "6636:248:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1081, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "id": 1076, + "name": "credit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 603, + "src": "6655:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1079, + "indexExpression": { + "expression": { + "id": 1077, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6662:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1078, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6666:6:2", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6662:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "6655:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1080, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "6677:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6655:28:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e73756666696369656e7420637265646974", + "id": 1082, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6685:21:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_53e85fda21889e930b90545943e5eef1e839e6cce682bf488a222abd3afdcd10", + "typeString": "literal_string \"Insufficient credit\"" + }, + "value": "Insufficient credit" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_53e85fda21889e930b90545943e5eef1e839e6cce682bf488a222abd3afdcd10", + "typeString": "literal_string \"Insufficient credit\"" + } + ], + "id": 1075, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "6647:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6647:60:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1084, + "nodeType": "ExpressionStatement", + "src": "6647:60:2" + }, + { + "expression": { + "id": 1090, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 1085, + "name": "credit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 603, + "src": "6718:6:2", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", + "typeString": "mapping(address => uint256)" + } + }, + "id": 1088, + "indexExpression": { + "expression": { + "id": 1086, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6725:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1087, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6729:6:2", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6725:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6718:18:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 1089, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "6740:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6718:28:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1091, + "nodeType": "ExpressionStatement", + "src": "6718:28:2" + }, + { + "expression": { + "id": 1094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1092, + "name": "totalCredit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "6757:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 1093, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "6772:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6757:21:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1095, + "nodeType": "ExpressionStatement", + "src": "6757:21:2" + }, + { + "expression": { + "arguments": [ + { + "id": 1102, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "6818:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "expression": { + "id": 1098, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6797:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1099, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6801:6:2", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6797:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1097, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "6789:8:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 1096, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6789:8:2", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6789:19:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6809:8:2", + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "6789:28:2", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6789:36:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "6789:36:2" + }, + { + "eventCall": { + "arguments": [ + { + "expression": { + "id": 1106, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "6857:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "6861:6:2", + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "6857:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1108, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1072, + "src": "6869:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1105, + "name": "CreditWithdrawn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 677, + "src": "6841:15:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "6841:35:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1110, + "nodeType": "EmitStatement", + "src": "6836:40:2" + } + ] + }, + "functionSelector": "ef6f886a", + "id": 1112, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "withdrawCredit", + "nameLocation": "6599:14:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "amount", + "nameLocation": "6619:6:2", + "nodeType": "VariableDeclaration", + "scope": 1112, + "src": "6614:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1071, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6614:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6613:13:2" + }, + "returnParameters": { + "id": 1074, + "nodeType": "ParameterList", + "parameters": [], + "src": "6636:0:2" + }, + "scope": 1237, + "src": "6590:294:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1147, + "nodeType": "Block", + "src": "7071:192:2", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1128, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1124, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "7098:4:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Oracle_$1237", + "typeString": "contract Oracle" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Oracle_$1237", + "typeString": "contract Oracle" + } + ], + "id": 1123, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7090:7:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1122, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7090:7:2", + "typeDescriptions": {} + } + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7090:13:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7104:7:2", + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "7090:21:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1127, + "name": "totalCredit", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 599, + "src": "7114:11:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7090:35:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1129, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "7129:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7090:45:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "496e73756666696369656e742062616c616e6365", + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7137:22:2", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5", + "typeString": "literal_string \"Insufficient balance\"" + }, + "value": "Insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_47533c3652efd02135ecc34b3fac8efc7b14bf0618b9392fd6e044a3d8a6eef5", + "typeString": "literal_string \"Insufficient balance\"" + } + ], + "id": 1121, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "7082:7:2", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1132, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7082:78:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1133, + "nodeType": "ExpressionStatement", + "src": "7082:78:2" + }, + { + "expression": { + "arguments": [ + { + "id": 1139, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "7198:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "arguments": [ + { + "id": 1136, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "7179:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1135, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "7171:8:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_payable_$", + "typeString": "type(address payable)" + }, + "typeName": { + "id": 1134, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7171:8:2", + "stateMutability": "payable", + "typeDescriptions": {} + } + }, + "id": 1137, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7171:17:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1138, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberLocation": "7189:8:2", + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "7171:26:2", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 1140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7171:34:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1141, + "nodeType": "ExpressionStatement", + "src": "7171:34:2" + }, + { + "eventCall": { + "arguments": [ + { + "id": 1143, + "name": "receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1114, + "src": "7238:8:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1144, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1116, + "src": "7248:6:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1142, + "name": "RevenueWithdrawn", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 683, + "src": "7221:16:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 1145, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7221:34:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1146, + "nodeType": "EmitStatement", + "src": "7216:39:2" + } + ] + }, + "functionSelector": "f3fef3a3", + "id": 1148, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 1119, + "kind": "modifierInvocation", + "modifierName": { + "id": 1118, + "name": "onlyOwner", + "nameLocations": ["7061:9:2"], + "nodeType": "IdentifierPath", + "referencedDeclaration": 114, + "src": "7061:9:2" + }, + "nodeType": "ModifierInvocation", + "src": "7061:9:2" + } + ], + "name": "withdraw", + "nameLocation": "7012:8:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1117, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1114, + "mutability": "mutable", + "name": "receiver", + "nameLocation": "7029:8:2", + "nodeType": "VariableDeclaration", + "scope": 1148, + "src": "7021:16:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1113, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7021:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1116, + "mutability": "mutable", + "name": "amount", + "nameLocation": "7044:6:2", + "nodeType": "VariableDeclaration", + "scope": 1148, + "src": "7039:11:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1115, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7039:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7020:31:2" + }, + "returnParameters": { + "id": 1120, + "nodeType": "ParameterList", + "parameters": [], + "src": "7071:0:2" + }, + "scope": 1237, + "src": "7003:260:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1178, + "nodeType": "Block", + "src": "7400:263:2", + "statements": [ + { + "eventCall": { + "arguments": [ + { + "id": 1152, + "name": "totalCost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 575, + "src": "7422:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 1153, + "name": "totalRevenue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 578, + "src": "7433:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1151, + "name": "Reset", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 689, + "src": "7416:5:2", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$", + "typeString": "function (uint256,uint256)" + } + }, + "id": 1154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "nameLocations": [], + "names": [], + "nodeType": "FunctionCall", + "src": "7416:30:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1155, + "nodeType": "EmitStatement", + "src": "7411:35:2" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1158, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1156, + "name": "totalCost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 575, + "src": "7461:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1157, + "name": "totalRevenue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 578, + "src": "7473:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7461:24:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1176, + "nodeType": "Block", + "src": "7576:80:2", + "statements": [ + { + "expression": { + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1168, + "name": "totalRevenue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 578, + "src": "7591:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 1169, + "name": "totalCost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 575, + "src": "7607:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7591:25:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1171, + "nodeType": "ExpressionStatement", + "src": "7591:25:2" + }, + { + "expression": { + "id": 1174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1172, + "name": "totalCost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 575, + "src": "7631:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 1173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7643:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7631:13:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1175, + "nodeType": "ExpressionStatement", + "src": "7631:13:2" + } + ] + }, + "id": 1177, + "nodeType": "IfStatement", + "src": "7457:199:2", + "trueBody": { + "id": 1167, + "nodeType": "Block", + "src": "7487:83:2", + "statements": [ + { + "expression": { + "id": 1161, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1159, + "name": "totalCost", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 575, + "src": "7502:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 1160, + "name": "totalRevenue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 578, + "src": "7515:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7502:25:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1162, + "nodeType": "ExpressionStatement", + "src": "7502:25:2" + }, + { + "expression": { + "id": 1165, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 1163, + "name": "totalRevenue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 578, + "src": "7542:12:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "30", + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7557:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "7542:16:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1166, + "nodeType": "ExpressionStatement", + "src": "7542:16:2" + } + ] + } + } + ] + }, + "functionSelector": "7cff0fc5", + "id": 1179, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "resetCostAndRevenue", + "nameLocation": "7369:19:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1149, + "nodeType": "ParameterList", + "parameters": [], + "src": "7388:2:2" + }, + "returnParameters": { + "id": 1150, + "nodeType": "ParameterList", + "parameters": [], + "src": "7400:0:2" + }, + "scope": 1237, + "src": "7360:303:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 1199, + "nodeType": "Block", + "src": "7737:33:2", + "statements": [ + { + "expression": { + "condition": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1190, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1188, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1183, + "src": "7747:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1189, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1181, + "src": "7751:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7747:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1191, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7746:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "hexValue": "30", + "id": 1196, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7766:1:2", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "id": 1197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "7746:21:2", + "trueExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1192, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1181, + "src": "7757:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1193, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1183, + "src": "7761:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7757:5:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 1195, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7756:7:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1187, + "id": 1198, + "nodeType": "Return", + "src": "7739:28:2" + } + ] + }, + "id": 1200, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "subtraction", + "nameLocation": "7680:11:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1184, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1181, + "mutability": "mutable", + "name": "a", + "nameLocation": "7697:1:2", + "nodeType": "VariableDeclaration", + "scope": 1200, + "src": "7692:6:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1180, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7692:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1183, + "mutability": "mutable", + "name": "b", + "nameLocation": "7705:1:2", + "nodeType": "VariableDeclaration", + "scope": 1200, + "src": "7700:6:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1182, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7700:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7691:16:2" + }, + "returnParameters": { + "id": 1187, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1186, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1200, + "src": "7731:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1185, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7731:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7730:6:2" + }, + "scope": 1237, + "src": "7671:99:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1217, + "nodeType": "Block", + "src": "7835:27:2", + "statements": [ + { + "expression": { + "condition": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1209, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "7845:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1210, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1202, + "src": "7849:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7845:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1212, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7844:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 1214, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1204, + "src": "7858:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1215, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "7844:15:2", + "trueExpression": { + "id": 1213, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1202, + "src": "7854:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1208, + "id": 1216, + "nodeType": "Return", + "src": "7837:22:2" + } + ] + }, + "id": 1218, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "max", + "nameLocation": "7786:3:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1202, + "mutability": "mutable", + "name": "a", + "nameLocation": "7795:1:2", + "nodeType": "VariableDeclaration", + "scope": 1218, + "src": "7790:6:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1201, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7790:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1204, + "mutability": "mutable", + "name": "b", + "nameLocation": "7803:1:2", + "nodeType": "VariableDeclaration", + "scope": 1218, + "src": "7798:6:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1203, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7798:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7789:16:2" + }, + "returnParameters": { + "id": 1208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1207, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1218, + "src": "7829:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1206, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7829:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7828:6:2" + }, + "scope": 1237, + "src": "7777:85:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1235, + "nodeType": "Block", + "src": "7927:27:2", + "statements": [ + { + "expression": { + "condition": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1227, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "7937:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 1228, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "7941:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7937:5:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 1230, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7936:7:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseExpression": { + "id": 1232, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1220, + "src": "7950:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1233, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "Conditional", + "src": "7936:15:2", + "trueExpression": { + "id": 1231, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1222, + "src": "7946:1:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1226, + "id": 1234, + "nodeType": "Return", + "src": "7929:22:2" + } + ] + }, + "id": 1236, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "min", + "nameLocation": "7878:3:2", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1223, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1220, + "mutability": "mutable", + "name": "a", + "nameLocation": "7887:1:2", + "nodeType": "VariableDeclaration", + "scope": 1236, + "src": "7882:6:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1219, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7882:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1222, + "mutability": "mutable", + "name": "b", + "nameLocation": "7895:1:2", + "nodeType": "VariableDeclaration", + "scope": 1236, + "src": "7890:6:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1221, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7890:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7881:16:2" + }, + "returnParameters": { + "id": 1226, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1225, + "mutability": "mutable", + "name": "", + "nameLocation": "-1:-1:-1", + "nodeType": "VariableDeclaration", + "scope": 1236, + "src": "7921:4:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1224, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "7921:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7920:6:2" + }, + "scope": 1237, + "src": "7869:85:2", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 1238, + "src": "99:7858:2", + "usedErrors": [] + } + ], + "src": "40:7919:2" + }, + "compiler": { + "name": "solc", + "version": "0.8.16+commit.07a7930e.Emscripten.clang" + }, + "networks": { + "5777": { + "events": {}, + "links": {}, + "address": "0x8C540C1D1C9c7228595FEB2D491666BBA266Bc8b", + "transactionHash": "0x85d83d939fbd21d02d72f1342b592c345d6fb5c3ddf17a8f4d8107877a2941d7" + } + }, + "schemaVersion": "3.4.9", + "updatedAt": "2022-09-14T11:16:19.165Z", + "networkType": "ethereum", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } + } + \ No newline at end of file diff --git a/src/components/molecules/CoinCard/CoinCard.jsx b/src/components/molecules/CoinCard/CoinCard.jsx index f23d253f..63eb494c 100644 --- a/src/components/molecules/CoinCard/CoinCard.jsx +++ b/src/components/molecules/CoinCard/CoinCard.jsx @@ -12,7 +12,8 @@ const CoinCard = ({ sellPriceAmount, circulatingAmount, tokenName, - equivalence + equivalence, + isShu }) => { // const invPrice = 1e6 / parseFloat(priceAmount?.replaceAll(",", "")); // const invPriceScaled = decimalScaling(invPrice.toFixed(0).toString(10), 6); @@ -32,14 +33,32 @@ const CoinCard = ({ {sellPriceAmount} {CHAIN_COIN} - ) : ( -
- Current Price -

- {priceAmount} {CHAIN_COIN} -

-
- )} + ) : isShu ? + ( + <> +
+ Current Minimum Price +

+ {priceAmount} {CHAIN_COIN} +

+
+ +
+ Current Maximum Price +

+ {priceAmount} {CHAIN_COIN} +

+
+ + ) + : ( +
+ Current Price +

+ {priceAmount} {CHAIN_COIN} +

+
+ )}
Circulating Supply diff --git a/src/context/AppProvider.jsx b/src/context/AppProvider.jsx index 10cfe0c1..5418900b 100644 --- a/src/context/AppProvider.jsx +++ b/src/context/AppProvider.jsx @@ -16,7 +16,12 @@ import { getCoinBudgets, calculateIsRatioBelowMax, calculateIsRatioAboveMin, - calculateFutureScPrice + calculateFutureScPrice, + getDjedShuContract, + getShuOracleContract, + getShuCoinDetails, + calculateFutureMinScPrice, + calculateFutureMaxScPrice } from "../utils/ethereum"; import useInterval from "../utils/hooks/useInterval"; import { @@ -50,6 +55,7 @@ export const AppProvider = ({ children }) => { const [djedContract, setDjedContract] = useState(null); const [oracleContract, setOracleContract] = useState(null); const [coinContracts, setCoinContracts] = useState(null); + const [isShu, setShu] = useState(process.env.REACT_APP_SHU_VERSION); const [decimals, setDecimals] = useState(null); const [coinsDetails, setCoinsDetails] = useState(null); const [systemParams, setSystemParams] = useState(null); @@ -82,22 +88,32 @@ export const AppProvider = ({ children }) => { const init = async () => { try { const web3 = await getWeb3(); - const djed = getDjedContract(web3); + const djed = isShu ? getDjedShuContract(web3) : getDjedContract(web3); const oracle = await getOracleAddress(djed).then((addr) => - getOracleContract(web3, addr, djed._address) + isShu + ? getShuOracleContract(web3, addr, djed._address) + : getOracleContract(web3, addr, djed._address) ); const coinContracts = await getCoinContracts(djed, web3); const decimals = await getDecimals( coinContracts.stableCoin, coinContracts.reserveCoin ); - const coinsDetails = await getCoinDetails( - coinContracts.stableCoin, - coinContracts.reserveCoin, - djed, - decimals.scDecimals, - decimals.rcDecimals - ); + const coinsDetails = isShu + ? await getShuCoinDetails( + coinContracts.stableCoin, + coinContracts.reserveCoin, + djed, + decimals.scDecimals, + decimals.rcDecimals + ) + : await getCoinDetails( + coinContracts.stableCoin, + coinContracts.reserveCoin, + djed, + decimals.scDecimals, + decimals.rcDecimals + ); const systemParams = await getSystemParams(djed); setWeb3(web3); setDjedContract(djed); @@ -225,14 +241,21 @@ export const AppProvider = ({ children }) => { useInterval( async () => { if (coinContracts == null || !isVisible) return; - const coinsDetails = await getCoinDetails( - coinContracts.stableCoin, - coinContracts.reserveCoin, - djedContract, - decimals.scDecimals, - decimals.rcDecimals, - oracleContract - ); + const coinsDetails = isShu + ? await getShuCoinDetails( + coinContracts.stableCoin, + coinContracts.reserveCoin, + djedContract, + decimals.scDecimals, + decimals.rcDecimals + ) + : await getCoinDetails( + coinContracts.stableCoin, + coinContracts.reserveCoin, + djedContract, + decimals.scDecimals, + decimals.rcDecimals + ); setCoinsDetails(coinsDetails); }, isWalletConnected && isVisible ? COIN_DETAILS_REQUEST_INTERVAL : null @@ -274,8 +297,8 @@ export const AppProvider = ({ children }) => { * @param {string} amountSC The unscaled amount of StableCoin (e.g. for 1SC, value should be 1 * 10^SC_DECIMALS) * @returns future stablecoin price as result of calculateFutureScPrice function */ - const getFutureScPrice = async ({ amountBC, amountSC }) => - calculateFutureScPrice({ + const getFuturePrice = async ({ amountBC, amountSC, method }) => { + return method({ amountBC, amountSC, djedContract, @@ -283,6 +306,11 @@ export const AppProvider = ({ children }) => { stableCoinContract: coinContracts.stableCoin, scDecimalScalingFactor: BigNumber.from(10).pow(decimals.scDecimals) }); + }; + + const getFutureScPrice = async (params) => getFuturePrice({ ...params, method: calculateFutureScPrice }); + const getFutureMinScPrice = async (params) => getFuturePrice({ ...params, method: calculateFutureMinScPrice }); + const getFutureMaxScPrice = async (params) => getFuturePrice({ ...params, method: calculateFutureMaxScPrice }); if (isLoading) { return ; @@ -299,6 +327,7 @@ export const AppProvider = ({ children }) => { systemParams, accountDetails, coinBudgets, + isShu, isMetamaskWalletInstalled: typeof window !== "undefined" ? window?.ethereum?.isMetaMask : false, isFlintWalletInstalled: @@ -327,7 +356,9 @@ export const AppProvider = ({ children }) => { signer, isRatioBelowMax, isRatioAboveMin, - getFutureScPrice + getFutureScPrice, + getFutureMinScPrice, + getFutureMaxScPrice }} > {children} diff --git a/src/routes/protocol.jsx b/src/routes/protocol.jsx index 1c31a324..c3888a63 100644 --- a/src/routes/protocol.jsx +++ b/src/routes/protocol.jsx @@ -15,7 +15,7 @@ import { } from "../utils/helpers"; export default function Protocol() { - const { coinsDetails, systemParams } = useAppProvider(); + const { coinsDetails, isShu, systemParams } = useAppProvider(); const scFloat = parseFloat(coinsDetails?.scaledNumberSc.replaceAll(",", "")); const scConverted = getScAdaEquivalent(coinsDetails, scFloat); @@ -91,9 +91,12 @@ export default function Protocol() { coinIcon="/coin-icon-one.png" coinName={`${process.env.REACT_APP_SC_NAME}`} priceAmount={coinsDetails?.scaledPriceSc} //"0.31152640" + minPriceAmount={coinsDetails?.scaledMinPriceSc} + maxPriceAmount={coinsDetails?.scaledMaxPriceSc} circulatingAmount={coinsDetails?.scaledNumberSc} //"1,345,402.15" tokenName={`${process.env.REACT_APP_SC_SYMBOL}`} equivalence={`${scConverted} ${process.env.REACT_APP_CHAIN_COIN}`} + isShu={isShu} />
diff --git a/src/utils/ethereum.js b/src/utils/ethereum.js index a8807ede..2d11ed17 100644 --- a/src/utils/ethereum.js +++ b/src/utils/ethereum.js @@ -2,6 +2,8 @@ import Web3 from "web3"; import djedArtifact from "../artifacts/Djed.json"; import coinArtifact from "../artifacts/Coin.json"; import oracleArtifact from "../artifacts/Oracle.json"; +import djedShuArtifact from "../artifacts/DjedShu.json"; +import shuOracleArtifact from "../artifacts/ShuOracle.json"; import { buildTx, @@ -19,6 +21,7 @@ import { BigNumber } from "ethers"; const BLOCKCHAIN_URI = process.env.REACT_APP_BLOCKCHAIN_URI; export const DJED_ADDRESS = process.env.REACT_APP_DJED_ADDRESS; +export const DJED_SHU_ADDRESS = process.env.REACT_APP_DJED_SHU_ADDRESS; const FEE_UI = process.env.REACT_APP_FEE_UI; export const UI = process.env.REACT_APP_UI; @@ -48,6 +51,11 @@ export const getDjedContract = (web3) => { return djed; }; +export const getDjedShuContract = (web3) => { + const djed = new web3.eth.Contract(djedShuArtifact.abi, DJED_SHU_ADDRESS); + return djed; +}; + export const getOracleAddress = async (djedContract) => { return await web3Promise(djedContract, "oracle"); }; @@ -59,6 +67,13 @@ export const getOracleContract = (web3, oracleAddress, msgSender) => { return oracle; }; +export const getShuOracleContract = (web3, oracleAddress, msgSender) => { + const oracle = new web3.eth.Contract(shuOracleArtifact.abi, oracleAddress, { + from: msgSender + }); + return oracle; +}; + export const getCoinContracts = async (djedContract, web3) => { const [stableCoinAddress, reserveCoinAddress] = await Promise.all([ web3Promise(djedContract, "stableCoin"), @@ -135,6 +150,68 @@ export const getCoinDetails = async ( }; }; +export const getShuCoinDetails = async ( + stableCoin, + reserveCoin, + djed, + scDecimals, + rcDecimals +) => { + console.log(await web3Promise(djed, "rcBuyingPrice", 0)); + const [ + [scaledNumberSc, unscaledNumberSc], + [scaledMinPriceSc, unscaledMinPriceSc], + [scaledMaxPriceSc, unscaledMaxPriceSc], + [scaledNumberRc, unscaledNumberRc], + [scaledReserveBc, unscaledReserveBc], + scaledBuyPriceRc, + ] = await Promise.all([ + scaledUnscaledPromise(web3Promise(stableCoin, "totalSupply"), scDecimals), + scaledUnscaledPromise(web3Promise(djed, "scMinPrice", 0), BC_DECIMALS), + scaledUnscaledPromise(web3Promise(djed, "scMaxPrice", 0), BC_DECIMALS), + scaledUnscaledPromise(web3Promise(reserveCoin, "totalSupply"), rcDecimals), + scaledUnscaledPromise(web3Promise(djed, "R", 0), BC_DECIMALS), + scaledPromise(web3Promise(djed, "rcBuyingPrice", 0), BC_DECIMALS), + ]); + const emptyValue = decimalScaling("0".toString(10), BC_DECIMALS); + let scaledSellPriceRc = emptyValue; + let unscaledSellPriceRc = emptyValue; + let percentReserveRatio = emptyValue; + const scaledScExchangeRate = scaledPromise((unscaledMinPriceSc + unscaledMaxPriceSc) / 2, BC_DECIMALS); + + //Check total stablecoin supply + if (!BigNumber.from(unscaledNumberRc).isZero()) { + [scaledSellPriceRc, unscaledSellPriceRc] = await scaledUnscaledPromise( + web3Promise(djed, "rcTargetPrice", 0), + BC_DECIMALS + ); + } + //Check total reservecoin supply + if (!BigNumber.from(unscaledNumberSc).isZero()) { + percentReserveRatio = await percentScaledPromise( + web3Promise(djed, "ratio"), + SCALING_DECIMALS + ); + } + return { + scaledNumberSc, + unscaledNumberSc, + scaledMinPriceSc, + unscaledMinPriceSc, + scaledMaxPriceSc, + unscaledMaxPriceSc, + scaledNumberRc, + unscaledNumberRc, + scaledReserveBc, + unscaledReserveBc, + percentReserveRatio, + scaledBuyPriceRc, + scaledSellPriceRc, + unscaledSellPriceRc, + scaledScExchangeRate + }; +}; + export const getSystemParams = async (djed) => { const [ reserveRatioMinUnscaled, @@ -425,9 +502,9 @@ export const checkSellableRc = (djed, unscaledAmountRc, unscaledBalanceRc) => { * @param {*} amountScaled Stable coin amount that user wants to buy * @returns */ -export const tradeDataPriceBuySc = async (djed, scDecimals, amountScaled) => { +export const tradeDataPriceBuySc = async (djed, scDecimals, amountScaled, method) => { try { - const data = await tradeDataPriceCore(djed, "scPrice", scDecimals, amountScaled); + const data = await tradeDataPriceCore(djed, method, scDecimals, amountScaled); const { treasuryFee, fee } = await getFees(djed); const totalBCUnscaled = appendFees( data.totalUnscaled, @@ -453,9 +530,9 @@ export const tradeDataPriceBuySc = async (djed, scDecimals, amountScaled) => { * @param {*} amountScaled Stable coin amount that user wants to sell * @returns */ -export const tradeDataPriceSellSc = async (djed, scDecimals, amountScaled) => { +export const tradeDataPriceSellSc = async (djed, scDecimals, amountScaled, method) => { try { - const data = await tradeDataPriceCore(djed, "scPrice", scDecimals, amountScaled); + const data = await tradeDataPriceCore(djed, method, scDecimals, amountScaled); const { treasuryFee, fee } = await getFees(djed); const value = convertToBC( data.amountUnscaled, @@ -566,17 +643,18 @@ export const isTxLimitReached = (amountUSD, totalSCSupply, thresholdSCSupply) => * @param scDecimalScalingFactor - If stablecoin has 6 decimals, scDecimalScalingFactor will be calculated as 10^6 * @returns future stablecoin price */ -export const calculateFutureScPrice = async ({ +const calculateFuturePrice = async ({ amountBC, amountSC, djedContract, oracleContract, stableCoinContract, - scDecimalScalingFactor + scDecimalScalingFactor, + readPriceMethod }) => { try { const [scTargetPrice, scSupply, ratio] = await Promise.all([ - web3Promise(oracleContract, "readData"), + web3Promise(oracleContract, readPriceMethod), web3Promise(stableCoinContract, "totalSupply"), web3Promise(djedContract, "R", 0) ]); @@ -593,6 +671,18 @@ export const calculateFutureScPrice = async ({ : futurePrice.toString(); } } catch (error) { - console.log("calculateFutureScPrice error ", error); + console.log("calculateFuturePrice error", error); } }; + +export const calculateFutureScPrice = (params) => { + return calculateFuturePrice({ ...params, readPriceMethod: "readData" }); +}; + +export const calculateFutureMinScPrice = (params) => { + return calculateFuturePrice({ ...params, readPriceMethod: "readMinPrice" }); +}; + +export const calculateFutureMaxScPrice = (params) => { + return calculateFuturePrice({ ...params, readPriceMethod: "readMaxPrice" }); +}; \ No newline at end of file diff --git a/src/utils/helpers.js b/src/utils/helpers.js index 1802078e..46784f6b 100644 --- a/src/utils/helpers.js +++ b/src/utils/helpers.js @@ -124,7 +124,7 @@ export function getRcUsdEquivalent(coinsDetails, amountFloat) { } export function getScAdaEquivalent(coinsDetails, amountFloat) { - const adaPerSc = parseFloat(coinsDetails?.scaledPriceSc.replaceAll(",", "")); + const adaPerSc = parseFloat(coinsDetails?.scaledScExchangeRate.replaceAll(",", "")); const eqPrice = 1e6 * amountFloat * adaPerSc; return decimalScaling(eqPrice.toFixed(0).toString(10), 6); } From 5f73eeedd6f02b0ea451d00fafda08932daac277 Mon Sep 17 00:00:00 2001 From: yogesh0509 Date: Fri, 13 Sep 2024 17:56:26 +0530 Subject: [PATCH 2/5] lint fixes --- src/MainLayout.jsx | 3 +- .../molecules/CoinCard/CoinCard.jsx | 38 ++++++------- src/context/AppProvider.jsx | 57 ++++++++++--------- src/routes/reservecoin.jsx | 30 +++++----- src/routes/stablecoin.jsx | 12 ++-- src/utils/ethereum.js | 19 +++++-- 6 files changed, 85 insertions(+), 74 deletions(-) diff --git a/src/MainLayout.jsx b/src/MainLayout.jsx index 6d387fd1..13a19322 100644 --- a/src/MainLayout.jsx +++ b/src/MainLayout.jsx @@ -59,7 +59,8 @@ export default function MainLayout() { diff --git a/src/components/molecules/CoinCard/CoinCard.jsx b/src/components/molecules/CoinCard/CoinCard.jsx index 63eb494c..3ebfeedf 100644 --- a/src/components/molecules/CoinCard/CoinCard.jsx +++ b/src/components/molecules/CoinCard/CoinCard.jsx @@ -33,32 +33,30 @@ const CoinCard = ({ {sellPriceAmount} {CHAIN_COIN}
- ) : isShu ? - ( - <> -
- Current Minimum Price -

- {priceAmount} {CHAIN_COIN} -

-
+ ) : isShu ? ( + <> +
+ Current Minimum Price +

+ {priceAmount} {CHAIN_COIN} +

+
-
- Current Maximum Price -

- {priceAmount} {CHAIN_COIN} -

-
- - ) - : (
- Current Price + Current Maximum Price

{priceAmount} {CHAIN_COIN}

- )} + + ) : ( +
+ Current Price +

+ {priceAmount} {CHAIN_COIN} +

+
+ )}
Circulating Supply diff --git a/src/context/AppProvider.jsx b/src/context/AppProvider.jsx index 5418900b..c4be8c16 100644 --- a/src/context/AppProvider.jsx +++ b/src/context/AppProvider.jsx @@ -101,19 +101,19 @@ export const AppProvider = ({ children }) => { ); const coinsDetails = isShu ? await getShuCoinDetails( - coinContracts.stableCoin, - coinContracts.reserveCoin, - djed, - decimals.scDecimals, - decimals.rcDecimals - ) + coinContracts.stableCoin, + coinContracts.reserveCoin, + djed, + decimals.scDecimals, + decimals.rcDecimals + ) : await getCoinDetails( - coinContracts.stableCoin, - coinContracts.reserveCoin, - djed, - decimals.scDecimals, - decimals.rcDecimals - ); + coinContracts.stableCoin, + coinContracts.reserveCoin, + djed, + decimals.scDecimals, + decimals.rcDecimals + ); const systemParams = await getSystemParams(djed); setWeb3(web3); setDjedContract(djed); @@ -243,19 +243,19 @@ export const AppProvider = ({ children }) => { if (coinContracts == null || !isVisible) return; const coinsDetails = isShu ? await getShuCoinDetails( - coinContracts.stableCoin, - coinContracts.reserveCoin, - djedContract, - decimals.scDecimals, - decimals.rcDecimals - ) + coinContracts.stableCoin, + coinContracts.reserveCoin, + djedContract, + decimals.scDecimals, + decimals.rcDecimals + ) : await getCoinDetails( - coinContracts.stableCoin, - coinContracts.reserveCoin, - djedContract, - decimals.scDecimals, - decimals.rcDecimals - ); + coinContracts.stableCoin, + coinContracts.reserveCoin, + djedContract, + decimals.scDecimals, + decimals.rcDecimals + ); setCoinsDetails(coinsDetails); }, isWalletConnected && isVisible ? COIN_DETAILS_REQUEST_INTERVAL : null @@ -308,9 +308,12 @@ export const AppProvider = ({ children }) => { }); }; - const getFutureScPrice = async (params) => getFuturePrice({ ...params, method: calculateFutureScPrice }); - const getFutureMinScPrice = async (params) => getFuturePrice({ ...params, method: calculateFutureMinScPrice }); - const getFutureMaxScPrice = async (params) => getFuturePrice({ ...params, method: calculateFutureMaxScPrice }); + const getFutureScPrice = async (params) => + getFuturePrice({ ...params, method: calculateFutureScPrice }); + const getFutureMinScPrice = async (params) => + getFuturePrice({ ...params, method: calculateFutureMinScPrice }); + const getFutureMaxScPrice = async (params) => + getFuturePrice({ ...params, method: calculateFutureMaxScPrice }); if (isLoading) { return ; diff --git a/src/routes/reservecoin.jsx b/src/routes/reservecoin.jsx index bc171712..2c012bf8 100644 --- a/src/routes/reservecoin.jsx +++ b/src/routes/reservecoin.jsx @@ -99,13 +99,13 @@ export default function ReserveCoin() { const futureSCPrice = isShu ? await getFutureMinScPrice({ - amountBC: data.totalUnscaled, - amountSC: 0 - }) + amountBC: data.totalUnscaled, + amountSC: 0 + }) : await getFutureScPrice({ - amountBC: data.totalUnscaled, - amountSC: 0 - }); + amountBC: data.totalUnscaled, + amountSC: 0 + }); const { f } = calculateTxFees(data.totalUnscaled, systemParams?.feeUnscaled, 0); const isRatioBelowMaximum = isRatioBelowMax({ @@ -171,15 +171,15 @@ export default function ReserveCoin() { coinsDetails, parseFloat(data.amountScaled.replaceAll(",", "")) ).replaceAll(",", ""); - const futureSCPrice = isShu - ? await getFutureMaxScPrice({ - amountBC: data.totalUnscaled, - amountSC: 0 - }) - : await getFutureScPrice({ - amountBC: data.totalUnscaled, - amountSC: 0 - }); + const futureSCPrice = isShu + ? await getFutureMaxScPrice({ + amountBC: data.totalUnscaled, + amountSC: 0 + }) + : await getFutureScPrice({ + amountBC: data.totalUnscaled, + amountSC: 0 + }); const { f } = calculateTxFees(data.totalUnscaled, systemParams?.feeUnscaled, 0); const isRatioAboveMinimum = isRatioAboveMin({ totalScSupply: BigNumber.from(coinsDetails?.unscaledNumberSc), diff --git a/src/routes/stablecoin.jsx b/src/routes/stablecoin.jsx index f0ebcd4c..a8848a17 100644 --- a/src/routes/stablecoin.jsx +++ b/src/routes/stablecoin.jsx @@ -97,13 +97,13 @@ export default function Stablecoin() { const futureSCPrice = isShu ? await getFutureMaxScPrice({ - amountBC: data.totalUnscaled, - amountSC: data.amountUnscaled - }) + amountBC: data.totalUnscaled, + amountSC: data.amountUnscaled + }) : await getFutureScPrice({ - amountBC: data.totalUnscaled, - amountSC: data.amountUnscaled - }); + amountBC: data.totalUnscaled, + amountSC: data.amountUnscaled + }); const { f } = calculateTxFees(data.totalUnscaled, systemParams?.feeUnscaled, 0); const isRatioAboveMinimum = isRatioAboveMin({ diff --git a/src/utils/ethereum.js b/src/utils/ethereum.js index 2d11ed17..ff35b2cf 100644 --- a/src/utils/ethereum.js +++ b/src/utils/ethereum.js @@ -16,7 +16,13 @@ import { web3Promise, percentageScale } from "./helpers"; -import { TRANSACTION_USD_LIMIT, TRANSACTION_VALIDITY, BC_TOKEN_DECIMALS, HIGH_PRECISION_DECIMALS, REFRESH_PERIOD_MS } from "./constants"; +import { + TRANSACTION_USD_LIMIT, + TRANSACTION_VALIDITY, + BC_TOKEN_DECIMALS, + HIGH_PRECISION_DECIMALS, + REFRESH_PERIOD_MS +} from "./constants"; import { BigNumber } from "ethers"; const BLOCKCHAIN_URI = process.env.REACT_APP_BLOCKCHAIN_URI; @@ -164,20 +170,23 @@ export const getShuCoinDetails = async ( [scaledMaxPriceSc, unscaledMaxPriceSc], [scaledNumberRc, unscaledNumberRc], [scaledReserveBc, unscaledReserveBc], - scaledBuyPriceRc, + scaledBuyPriceRc ] = await Promise.all([ scaledUnscaledPromise(web3Promise(stableCoin, "totalSupply"), scDecimals), scaledUnscaledPromise(web3Promise(djed, "scMinPrice", 0), BC_DECIMALS), scaledUnscaledPromise(web3Promise(djed, "scMaxPrice", 0), BC_DECIMALS), scaledUnscaledPromise(web3Promise(reserveCoin, "totalSupply"), rcDecimals), scaledUnscaledPromise(web3Promise(djed, "R", 0), BC_DECIMALS), - scaledPromise(web3Promise(djed, "rcBuyingPrice", 0), BC_DECIMALS), + scaledPromise(web3Promise(djed, "rcBuyingPrice", 0), BC_DECIMALS) ]); const emptyValue = decimalScaling("0".toString(10), BC_DECIMALS); let scaledSellPriceRc = emptyValue; let unscaledSellPriceRc = emptyValue; let percentReserveRatio = emptyValue; - const scaledScExchangeRate = scaledPromise((unscaledMinPriceSc + unscaledMaxPriceSc) / 2, BC_DECIMALS); + const scaledScExchangeRate = scaledPromise( + (unscaledMinPriceSc + unscaledMaxPriceSc) / 2, + BC_DECIMALS + ); //Check total stablecoin supply if (!BigNumber.from(unscaledNumberRc).isZero()) { @@ -685,4 +694,4 @@ export const calculateFutureMinScPrice = (params) => { export const calculateFutureMaxScPrice = (params) => { return calculateFuturePrice({ ...params, readPriceMethod: "readMaxPrice" }); -}; \ No newline at end of file +}; From dc153ce0df96b7aa441120697f4702fee5edc9a7 Mon Sep 17 00:00:00 2001 From: yogesh0509 Date: Mon, 16 Sep 2024 11:27:04 +0530 Subject: [PATCH 3/5] fixed bugs and created ci/cd pipelines --- .github/workflows/ci.yml | 2 +- .github/workflows/codepreview.yml | 9 +++++-- env/milkomeda-testnet.env | 2 +- env/milkomeda.env | 2 +- env/shu-mordor.env | 8 +++--- package.json | 4 +-- .../molecules/CoinCard/CoinCard.jsx | 6 +++-- .../molecules/ReservesCard/ReservesCard.jsx | 8 ++++-- src/routes/protocol.jsx | 7 +++++- src/utils/ethereum.js | 25 +++++++++---------- 10 files changed, 44 insertions(+), 29 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a1b00d53..e8992b02 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,4 +38,4 @@ jobs: # run: npm run test - name: Prepare production build - run: npm run build:milkomeda-c1-testnet + run: npm run build diff --git a/.github/workflows/codepreview.yml b/.github/workflows/codepreview.yml index 10e95079..5779b111 100644 --- a/.github/workflows/codepreview.yml +++ b/.github/workflows/codepreview.yml @@ -2,9 +2,9 @@ name: Create preview environment on: pull_request: - branches: [main, milkomeda-c1-testnet] + branches: [main] push: - branches: [main, milkomeda-c1-testnet] + branches: [main] concurrency: # The preview script can't handle concurrent deploys @@ -55,6 +55,11 @@ jobs: if: ${{ (github.head_ref || github.ref_name) == 'main' }} run: CI=false npm run build:milkomeda-c1 + # CI=false disables reporting warnings as errors + - name: Prepare build (main) + if: ${{ (github.head_ref || github.ref_name) == 'main' }} + run: CI=false npm run build:shu-mordor + - name: Create SSH key run: | mkdir -p ~/.ssh/ diff --git a/env/milkomeda-testnet.env b/env/milkomeda-testnet.env index ee477df8..d8400037 100644 --- a/env/milkomeda-testnet.env +++ b/env/milkomeda-testnet.env @@ -6,7 +6,7 @@ REACT_APP_CHAIN_ID=200101 REACT_APP_DJED_ADDRESS=0xc4C0669Ea7BFF70A6cFa5905A0Ba487fC181Dc37 REACT_APP_FEE_UI=0 REACT_APP_UI=0x0232556C83791b8291E9b23BfEa7d67405Bd9839 -REACT_APP_MILKOMEDA_C1_EXPLORER=https://explorer-devnet-cardano-evm.c1.milkomeda.com/ +REACT_APP_EXPLORER=https://explorer-devnet-cardano-evm.c1.milkomeda.com/ REACT_APP_BC=Milkomeda REACT_APP_PROTOCOL_CHAIN_DESCRIPTION=Milkomeda is the EVM-compatible chain of the Cardano ecosystem. Its native currency is mADA, a bridged version of Cardano`s ADA REACT_APP_CHAIN_COIN=mADA diff --git a/env/milkomeda.env b/env/milkomeda.env index 1a9fe528..66de6add 100644 --- a/env/milkomeda.env +++ b/env/milkomeda.env @@ -6,7 +6,7 @@ REACT_APP_CHAIN_ID=2001 REACT_APP_DJED_ADDRESS=0x67A30B399F5Ed499C1a6Bc0358FA6e42Ea4BCe76 REACT_APP_FEE_UI=0.01 REACT_APP_UI=0x6AfD84920971Ba96118a302deaA6d11e7ce18b03 -REACT_APP_MILKOMEDA_C1_EXPLORER=https://explorer-mainnet-cardano-evm.c1.milkomeda.com/ +REACT_APP_EXPLORER=https://explorer-mainnet-cardano-evm.c1.milkomeda.com/ REACT_APP_BC=Milkomeda REACT_APP_PROTOCOL_CHAIN_DESCRIPTION=Milkomeda is the EVM-compatible chain of the Cardano ecosystem. Its native currency is mADA, a bridged version of Cardano`s ADA REACT_APP_CHAIN_COIN=mADA diff --git a/env/shu-mordor.env b/env/shu-mordor.env index c91f6a66..646f4c89 100644 --- a/env/shu-mordor.env +++ b/env/shu-mordor.env @@ -3,8 +3,8 @@ ############### REACT_APP_BLOCKCHAIN_URI=https://rpc.mordor.etccooperative.org REACT_APP_CHAIN_ID=63 -REACT_APP_DJED_ADDRESS=0x7535E14d98c8a8744DcFe216Aa0af3b95c76a5E3 -REACT_APP_DJED_SHU_ADDRESS=0x7535E14d98c8a8744DcFe216Aa0af3b95c76a5E3 +REACT_APP_DJED_ADDRESS=0x1F09D7d259073414a81E5663C74a76182B05852D +REACT_APP_DJED_SHU_ADDRESS=0x1F09D7d259073414a81E5663C74a76182B05852D REACT_APP_FEE_UI=0 REACT_APP_UI=0x0232556C83791b8291E9b23BfEa7d67405Bd9839 REACT_APP_EXPLORER=https://etc-mordor.blockscout.com/ @@ -16,8 +16,8 @@ REACT_APP_SC_SYMBOL=ECSD REACT_APP_RC_NAME=Ethereum Classic Reserve Surplus Share REACT_APP_RC_SYMBOL=ECRS REACT_APP_LIMIT_PER_TXN=10000 -REACT_APP_EVM_RESERVECOIN_ADDRESS=0x81D6C9F0dd8823Ae664B9E43e25Bf3e6A79dC351 -REACT_APP_EVM_STABLECOIN_ADDRESS=0x4746e9c3cB00f70Af6e25a699AE3490e43207Fd9 +REACT_APP_EVM_RESERVECOIN_ADDRESS=0x851D24a058fED2b0458c875BFb512BAc04dDeE09 +REACT_APP_EVM_STABLECOIN_ADDRESS=0x6b7ff59Ddb17610146c2666Dd6eB402b3BC5C59D # Color Theme REACT_APP_GRADIENT_THEME='gradient-theme-7' diff --git a/package.json b/package.json index c2ae8886..c2b76fd7 100644 --- a/package.json +++ b/package.json @@ -25,9 +25,9 @@ "scripts": { "start": "craco start", "build": "craco build", - "build:milkomeda-testnet": "npx -y env-cmd -f ./env/milkomeda-testnet.env npm run build", + "build:milkomeda-c1-testnet": "npx -y env-cmd -f ./env/milkomeda-testnet.env npm run build", "build:sepolia": "npx -y env-cmd -f ./env/sepolia.env npm run build", - "build:milkomeda": "npx -y env-cmd -f ./env/milkomeda.env npm run build", + "build:milkomeda-c1": "npx -y env-cmd -f ./env/milkomeda.env npm run build", "build:mordor": "npx -y env-cmd -f ./env/mordor.env npm run build", "build:ethereum-classic": "npx -y env-cmd -f ./env/ethereum-classic.env npm run build", "build:shu-mordor": "npx -y env-cmd -f ./env/shu-mordor.env npm run build", diff --git a/src/components/molecules/CoinCard/CoinCard.jsx b/src/components/molecules/CoinCard/CoinCard.jsx index 3ebfeedf..e5292a6c 100644 --- a/src/components/molecules/CoinCard/CoinCard.jsx +++ b/src/components/molecules/CoinCard/CoinCard.jsx @@ -9,6 +9,8 @@ const CoinCard = ({ coinIcon, coinName, priceAmount, + minPriceAmount, + maxPriceAmount, sellPriceAmount, circulatingAmount, tokenName, @@ -38,14 +40,14 @@ const CoinCard = ({
Current Minimum Price

- {priceAmount} {CHAIN_COIN} + {minPriceAmount} {CHAIN_COIN}

Current Maximum Price

- {priceAmount} {CHAIN_COIN} + {maxPriceAmount} {CHAIN_COIN}

diff --git a/src/components/molecules/ReservesCard/ReservesCard.jsx b/src/components/molecules/ReservesCard/ReservesCard.jsx index 3c4bdca1..4d5f8935 100644 --- a/src/components/molecules/ReservesCard/ReservesCard.jsx +++ b/src/components/molecules/ReservesCard/ReservesCard.jsx @@ -13,7 +13,8 @@ const ReservesCard = ({ reserveRatio, reserveRatioMin, reserveRatioMax, - showCurrentReserveRatio + showCurrentReserveRatio, + isShu }) => (
@@ -30,7 +31,10 @@ const ReservesCard = ({ {showCurrentReserveRatio && ( - + )}
diff --git a/src/routes/protocol.jsx b/src/routes/protocol.jsx index c3888a63..39fc767b 100644 --- a/src/routes/protocol.jsx +++ b/src/routes/protocol.jsx @@ -51,7 +51,11 @@ export default function Protocol() { . Here you can interact with a{" "} @@ -116,6 +120,7 @@ export default function Protocol() { reserveRatioMin={systemParams?.reserveRatioMin} reserveRatioMax={systemParams?.reserveRatioMax} showCurrentReserveRatio={Number(coinsDetails?.unscaledNumberSc) > 0} + isShu={isShu} />
diff --git a/src/utils/ethereum.js b/src/utils/ethereum.js index ff35b2cf..7c21f882 100644 --- a/src/utils/ethereum.js +++ b/src/utils/ethereum.js @@ -163,7 +163,6 @@ export const getShuCoinDetails = async ( scDecimals, rcDecimals ) => { - console.log(await web3Promise(djed, "rcBuyingPrice", 0)); const [ [scaledNumberSc, unscaledNumberSc], [scaledMinPriceSc, unscaledMinPriceSc], @@ -183,10 +182,10 @@ export const getShuCoinDetails = async ( let scaledSellPriceRc = emptyValue; let unscaledSellPriceRc = emptyValue; let percentReserveRatio = emptyValue; - const scaledScExchangeRate = scaledPromise( - (unscaledMinPriceSc + unscaledMaxPriceSc) / 2, - BC_DECIMALS - ); + const scaledScExchangeRate = ( + (parseFloat(scaledMinPriceSc) + parseFloat(scaledMaxPriceSc)) / + 2 + ).toString(); //Check total stablecoin supply if (!BigNumber.from(unscaledNumberRc).isZero()) { @@ -197,10 +196,10 @@ export const getShuCoinDetails = async ( } //Check total reservecoin supply if (!BigNumber.from(unscaledNumberSc).isZero()) { - percentReserveRatio = await percentScaledPromise( - web3Promise(djed, "ratio"), - SCALING_DECIMALS - ); + percentReserveRatio = [ + await percentScaledPromise(web3Promise(djed, "ratioMin"), SCALING_DECIMALS), + await percentScaledPromise(web3Promise(djed, "ratioMax"), SCALING_DECIMALS) + ]; } return { scaledNumberSc, @@ -668,16 +667,16 @@ const calculateFuturePrice = async ({ web3Promise(djedContract, "R", 0) ]); + const price = readPriceMethod === "readData" ? scTargetPrice : scTargetPrice[0]; + const futureScSupply = BigNumber.from(scSupply).add(BigNumber.from(amountSC)); const futureRatio = BigNumber.from(ratio).add(BigNumber.from(amountBC)); if (futureScSupply.isZero()) { - return scTargetPrice; + return price; } else { const futurePrice = futureRatio.mul(scDecimalScalingFactor).div(futureScSupply); - return BigNumber.from(scTargetPrice).lt(futurePrice) - ? scTargetPrice - : futurePrice.toString(); + return BigNumber.from(price).lt(futurePrice) ? price : futurePrice.toString(); } } catch (error) { console.log("calculateFuturePrice error", error); From 6e2f4fd71350e990a9bc26b2567221dff0dce47f Mon Sep 17 00:00:00 2001 From: yogesh0509 Date: Thu, 19 Sep 2024 17:52:27 +0530 Subject: [PATCH 4/5] fix: ci pipelines --- .github/workflows/codepreview.yml | 4 ++-- src/context/AppProvider.jsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codepreview.yml b/.github/workflows/codepreview.yml index 5779b111..04cdcd2f 100644 --- a/.github/workflows/codepreview.yml +++ b/.github/workflows/codepreview.yml @@ -43,12 +43,12 @@ jobs: # CI=false disables reporting warnings as errors - name: Prepare build (pr) if: ${{ (github.head_ref || github.ref_name) != 'main' }} - run: CI=false npm run build:sepolia-testnet + run: CI=false npm run build:sepolia # CI=false disables reporting warnings as errors - name: Prepare build (pr) if: ${{ (github.head_ref || github.ref_name) != 'main' }} - run: CI=false npm run build:ethereum-classic-mordor + run: CI=false npm run build:ethereum-classic # CI=false disables reporting warnings as errors - name: Prepare build (main) diff --git a/src/context/AppProvider.jsx b/src/context/AppProvider.jsx index c4be8c16..9f12f902 100644 --- a/src/context/AppProvider.jsx +++ b/src/context/AppProvider.jsx @@ -55,7 +55,7 @@ export const AppProvider = ({ children }) => { const [djedContract, setDjedContract] = useState(null); const [oracleContract, setOracleContract] = useState(null); const [coinContracts, setCoinContracts] = useState(null); - const [isShu, setShu] = useState(process.env.REACT_APP_SHU_VERSION); + const [isShu] = useState(process.env.REACT_APP_SHU_VERSION); const [decimals, setDecimals] = useState(null); const [coinsDetails, setCoinsDetails] = useState(null); const [systemParams, setSystemParams] = useState(null); @@ -130,7 +130,7 @@ export const AppProvider = ({ children }) => { }; setIsLoading(true); init(); - }, []); + }, [isShu]); const redirectToMetamask = () => { window.open("https://metamask.io/", "_blank"); From 0a7df563b0bdf4cc11aba4b5ab1feda05fa421b9 Mon Sep 17 00:00:00 2001 From: yogesh0509 Date: Sat, 21 Sep 2024 13:36:10 +0530 Subject: [PATCH 5/5] fix: removed c1 naming convention from network --- .github/workflows/codepreview.yml | 4 ++-- package.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codepreview.yml b/.github/workflows/codepreview.yml index 04cdcd2f..7ab91411 100644 --- a/.github/workflows/codepreview.yml +++ b/.github/workflows/codepreview.yml @@ -38,7 +38,7 @@ jobs: # CI=false disables reporting warnings as errors - name: Prepare build (pr) if: ${{ (github.head_ref || github.ref_name) != 'main' }} - run: CI=false npm run build:milkomeda-c1-testnet + run: CI=false npm run build:milkomeda-testnet # CI=false disables reporting warnings as errors - name: Prepare build (pr) @@ -53,7 +53,7 @@ jobs: # CI=false disables reporting warnings as errors - name: Prepare build (main) if: ${{ (github.head_ref || github.ref_name) == 'main' }} - run: CI=false npm run build:milkomeda-c1 + run: CI=false npm run build:milkomeda # CI=false disables reporting warnings as errors - name: Prepare build (main) diff --git a/package.json b/package.json index c2b76fd7..c2ae8886 100644 --- a/package.json +++ b/package.json @@ -25,9 +25,9 @@ "scripts": { "start": "craco start", "build": "craco build", - "build:milkomeda-c1-testnet": "npx -y env-cmd -f ./env/milkomeda-testnet.env npm run build", + "build:milkomeda-testnet": "npx -y env-cmd -f ./env/milkomeda-testnet.env npm run build", "build:sepolia": "npx -y env-cmd -f ./env/sepolia.env npm run build", - "build:milkomeda-c1": "npx -y env-cmd -f ./env/milkomeda.env npm run build", + "build:milkomeda": "npx -y env-cmd -f ./env/milkomeda.env npm run build", "build:mordor": "npx -y env-cmd -f ./env/mordor.env npm run build", "build:ethereum-classic": "npx -y env-cmd -f ./env/ethereum-classic.env npm run build", "build:shu-mordor": "npx -y env-cmd -f ./env/shu-mordor.env npm run build",