{
  "id": "f5d2b958d293dbefb0c351ff84248409",
  "_format": "hh-sol-build-info-1",
  "solcVersion": "0.6.10",
  "solcLongVersion": "0.6.10+commit.00c0fcaf",
  "input": {
    "language": "Solidity",
    "sources": {
      "contracts/protocol/integration/wrap/RgtMigrationWrapAdapter.sol": {
        "content": "/*\n    Copyright 2021 Set Labs Inc.\n\n    Licensed under the Apache License, Version 2.0 (the \"License\");\n    you may not use this file except in compliance with the License.\n    You may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\n    Unless required by applicable law or agreed to in writing, software\n    distributed under the License is distributed on an \"AS IS\" BASIS,\n    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n    See the License for the specific language governing permissions and\n    limitations under the License.\n\n    SPDX-License-Identifier: Apache License, Version 2.0\n*/\n\npragma solidity 0.6.10;\npragma experimental \"ABIEncoderV2\";\n\n/**\n  * @title RgtMigrationWrapAdater\n  * @author FlattestWhite\n  *\n  * Wrap adapter for one time token migration that returns data for wrapping RGT into TRIBE. \n  * Note: RGT can not be unwrapped into TRIBE, because migration can not be reversed.\n */\ncontract RgtMigrationWrapAdapter {\n\n    /* ============ State Variables ============ */\n\n    address public immutable pegExchanger;\n\n    /* ============ Constructor ============ */\n\n    /**\n     * Set state variables\n     *\n     * @param _pegExchanger                       Address of PegExchanger contract\n     */\n    constructor(\n        address _pegExchanger\n    )\n        public\n    {\n        pegExchanger = _pegExchanger;\n    } \n\n    /* ============ External Getter Functions ============ */\n\n    /**\n     * Generates the calldata to migrate RGT tokens to TRIBE tokens.\n     *\n     * @param _underlyingUnits      Total quantity of underlying units to wrap\n     *\n     * @return address              Target contract address\n     * @return uint256              Total quantity of underlying units (if underlying is ETH)\n     * @return bytes                Wrap calldata\n     */\n    function getWrapCallData(\n        address /* _underlyingToken */,\n        address /* _wrappedToken */,\n        uint256 _underlyingUnits\n    )\n        external\n        view\n        returns (address, uint256, bytes memory)\n    {\n        // exchange(uint256 amount)\n        bytes memory callData = abi.encodeWithSignature(\"exchange(uint256)\", _underlyingUnits);\n\n        return (pegExchanger, 0, callData);\n    }\n\n    /**\n     * This function will revert, since migration cannot be reversed.\n     */\n    function getUnwrapCallData(\n        address /* _underlyingToken */,\n        address /* _wrappedToken */,\n        uint256 /* _wrappedTokenUnits */\n    )\n        external\n        pure\n        returns (address, uint256, bytes memory)\n    {\n        revert(\"RGT migration cannot be reversed\");\n    }\n\n    /**\n     * Returns the address to approve source tokens for wrapping.\n     *\n     * @return address        Address of the contract to approve tokens to\n     */\n    function getSpenderAddress(address /* _underlyingToken */, address /* _wrappedToken */) external view returns(address) {\n        return pegExchanger;\n    }\n}\n"
      }
    },
    "settings": {
      "optimizer": {
        "enabled": true,
        "runs": 200
      },
      "outputSelection": {
        "*": {
          "*": [
            "abi",
            "evm.bytecode",
            "evm.deployedBytecode",
            "evm.methodIdentifiers"
          ],
          "": [
            "ast"
          ]
        }
      }
    }
  },
  "output": {
    "contracts": {
      "contracts/protocol/integration/wrap/RgtMigrationWrapAdapter.sol": {
        "RgtMigrationWrapAdapter": {
          "abi": [
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "_pegExchanger",
                  "type": "address"
                }
              ],
              "stateMutability": "nonpayable",
              "type": "constructor"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "name": "getSpenderAddress",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                }
              ],
              "name": "getUnwrapCallData",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "",
                  "type": "bytes"
                }
              ],
              "stateMutability": "pure",
              "type": "function"
            },
            {
              "inputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "_underlyingUnits",
                  "type": "uint256"
                }
              ],
              "name": "getWrapCallData",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "",
                  "type": "bytes"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            },
            {
              "inputs": [],
              "name": "pegExchanger",
              "outputs": [
                {
                  "internalType": "address",
                  "name": "",
                  "type": "address"
                }
              ],
              "stateMutability": "view",
              "type": "function"
            }
          ],
          "evm": {
            "bytecode": {
              "linkReferences": {},
              "object": "60a060405234801561001057600080fd5b506040516103ca3803806103ca83398101604081905261002f91610044565b60601b6001600160601b031916608052610072565b600060208284031215610055578081fd5b81516001600160a01b038116811461006b578182fd5b9392505050565b60805160601c6103326100986000398060b9528061011e528061017752506103326000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80635e7ded341461005157806377b1aaf81461006f578063a22fe98e14610091578063de68a3da146100a4575b600080fd5b6100596100b7565b6040516100669190610228565b60405180910390f35b61008261007d3660046101e8565b6100db565b6040516100669392919061023c565b61008261009f3660046101e8565b61014f565b6100596100b23660046101b4565b610175565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080606080846040516024016100f291906102db565b60408051601f198184030181529190526020810180516001600160e01b0316635355655960e01b1790527f000000000000000000000000000000000000000000000000000000000000000094506000935091505093509350939050565b600080606060405162461bcd60e51b815260040161016c906102a6565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000005b92915050565b80356001600160a01b038116811461019757600080fd5b600080604083850312156101c6578182fd5b6101d0848461019d565b91506101df846020850161019d565b90509250929050565b6000806000606084860312156101fc578081fd5b8335610207816102e4565b92506020840135610217816102e4565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b600060018060a01b038516825260208481840152606060408401528351806060850152825b8181101561027d57858101830151858201608001528201610261565b8181111561028e5783608083870101525b50601f01601f19169290920160800195945050505050565b6020808252818101527f524754206d6967726174696f6e2063616e6e6f74206265207265766572736564604082015260600190565b90815260200190565b6001600160a01b03811681146102f957600080fd5b5056fea26469706673582212204a873504336a12d9d30ea2531eb4ea32d21f4901d9820121a6b228616bd1ad2164736f6c634300060a0033",
              "opcodes": "PUSH1 0xA0 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x40 MLOAD PUSH2 0x3CA CODESIZE SUB DUP1 PUSH2 0x3CA DUP4 CODECOPY DUP2 ADD PUSH1 0x40 DUP2 SWAP1 MSTORE PUSH2 0x2F SWAP2 PUSH2 0x44 JUMP JUMPDEST PUSH1 0x60 SHL PUSH1 0x1 PUSH1 0x1 PUSH1 0x60 SHL SUB NOT AND PUSH1 0x80 MSTORE PUSH2 0x72 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x55 JUMPI DUP1 DUP2 REVERT JUMPDEST DUP2 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x6B JUMPI DUP2 DUP3 REVERT JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x80 MLOAD PUSH1 0x60 SHR PUSH2 0x332 PUSH2 0x98 PUSH1 0x0 CODECOPY DUP1 PUSH1 0xB9 MSTORE DUP1 PUSH2 0x11E MSTORE DUP1 PUSH2 0x177 MSTORE POP PUSH2 0x332 PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5E7DED34 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x77B1AAF8 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0xA22FE98E EQ PUSH2 0x91 JUMPI DUP1 PUSH4 0xDE68A3DA EQ PUSH2 0xA4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xB7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x228 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x82 PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x1E8 JUMP JUMPDEST PUSH2 0xDB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x23C JUMP JUMPDEST PUSH2 0x82 PUSH2 0x9F CALLDATASIZE PUSH1 0x4 PUSH2 0x1E8 JUMP JUMPDEST PUSH2 0x14F JUMP JUMPDEST PUSH2 0x59 PUSH2 0xB2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B4 JUMP JUMPDEST PUSH2 0x175 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP1 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0xF2 SWAP2 SWAP1 PUSH2 0x2DB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x53556559 PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH32 0x0 SWAP5 POP PUSH1 0x0 SWAP4 POP SWAP2 POP POP SWAP4 POP SWAP4 POP SWAP4 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16C SWAP1 PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x197 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C6 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1D0 DUP5 DUP5 PUSH2 0x19D JUMP JUMPDEST SWAP2 POP PUSH2 0x1DF DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x19D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1FC JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x207 DUP2 PUSH2 0x2E4 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x217 DUP2 PUSH2 0x2E4 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP3 MSTORE PUSH1 0x20 DUP5 DUP2 DUP5 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x60 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27D JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x80 ADD MSTORE DUP3 ADD PUSH2 0x261 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x28E JUMPI DUP4 PUSH1 0x80 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x80 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x524754206D6967726174696F6E2063616E6E6F74206265207265766572736564 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4A DUP8 CALLDATALOAD DIV CALLER PUSH11 0x12D9D30EA2531EB4EA32D2 0x1F 0x49 ADD 0xD9 DUP3 ADD 0x21 0xA6 0xB2 0x28 PUSH2 0x6BD1 0xAD 0x21 PUSH5 0x736F6C6343 STOP MOD EXP STOP CALLER ",
              "sourceMap": "968:2006:0:-:0;;;1287:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1365:28;;-1:-1:-1;;;;;;1365:28:0;;;968:2006;;146:263:-1;;261:2;249:9;240:7;236:23;232:32;229:2;;;-1:-1;;267:12;229:2;83:13;;-1:-1;;;;;576:54;;701:35;;691:2;;-1:-1;;740:12;691:2;319:74;223:186;-1:-1;;;223:186;;968:2006:0;;;;;;;;;;;"
            },
            "deployedBytecode": {
              "immutableReferences": {
                "5": [
                  {
                    "length": 32,
                    "start": 185
                  },
                  {
                    "length": 32,
                    "start": 286
                  },
                  {
                    "length": 32,
                    "start": 375
                  }
                ]
              },
              "linkReferences": {},
              "object": "608060405234801561001057600080fd5b506004361061004c5760003560e01c80635e7ded341461005157806377b1aaf81461006f578063a22fe98e14610091578063de68a3da146100a4575b600080fd5b6100596100b7565b6040516100669190610228565b60405180910390f35b61008261007d3660046101e8565b6100db565b6040516100669392919061023c565b61008261009f3660046101e8565b61014f565b6100596100b23660046101b4565b610175565b7f000000000000000000000000000000000000000000000000000000000000000081565b600080606080846040516024016100f291906102db565b60408051601f198184030181529190526020810180516001600160e01b0316635355655960e01b1790527f000000000000000000000000000000000000000000000000000000000000000094506000935091505093509350939050565b600080606060405162461bcd60e51b815260040161016c906102a6565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000005b92915050565b80356001600160a01b038116811461019757600080fd5b600080604083850312156101c6578182fd5b6101d0848461019d565b91506101df846020850161019d565b90509250929050565b6000806000606084860312156101fc578081fd5b8335610207816102e4565b92506020840135610217816102e4565b929592945050506040919091013590565b6001600160a01b0391909116815260200190565b600060018060a01b038516825260208481840152606060408401528351806060850152825b8181101561027d57858101830151858201608001528201610261565b8181111561028e5783608083870101525b50601f01601f19169290920160800195945050505050565b6020808252818101527f524754206d6967726174696f6e2063616e6e6f74206265207265766572736564604082015260600190565b90815260200190565b6001600160a01b03811681146102f957600080fd5b5056fea26469706673582212204a873504336a12d9d30ea2531eb4ea32d21f4901d9820121a6b228616bd1ad2164736f6c634300060a0033",
              "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x4C JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x5E7DED34 EQ PUSH2 0x51 JUMPI DUP1 PUSH4 0x77B1AAF8 EQ PUSH2 0x6F JUMPI DUP1 PUSH4 0xA22FE98E EQ PUSH2 0x91 JUMPI DUP1 PUSH4 0xDE68A3DA EQ PUSH2 0xA4 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x59 PUSH2 0xB7 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP2 SWAP1 PUSH2 0x228 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x82 PUSH2 0x7D CALLDATASIZE PUSH1 0x4 PUSH2 0x1E8 JUMP JUMPDEST PUSH2 0xDB JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x66 SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x23C JUMP JUMPDEST PUSH2 0x82 PUSH2 0x9F CALLDATASIZE PUSH1 0x4 PUSH2 0x1E8 JUMP JUMPDEST PUSH2 0x14F JUMP JUMPDEST PUSH2 0x59 PUSH2 0xB2 CALLDATASIZE PUSH1 0x4 PUSH2 0x1B4 JUMP JUMPDEST PUSH2 0x175 JUMP JUMPDEST PUSH32 0x0 DUP2 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 DUP1 DUP5 PUSH1 0x40 MLOAD PUSH1 0x24 ADD PUSH2 0xF2 SWAP2 SWAP1 PUSH2 0x2DB JUMP JUMPDEST PUSH1 0x40 DUP1 MLOAD PUSH1 0x1F NOT DUP2 DUP5 SUB ADD DUP2 MSTORE SWAP2 SWAP1 MSTORE PUSH1 0x20 DUP2 ADD DUP1 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xE0 SHL SUB AND PUSH4 0x53556559 PUSH1 0xE0 SHL OR SWAP1 MSTORE PUSH32 0x0 SWAP5 POP PUSH1 0x0 SWAP4 POP SWAP2 POP POP SWAP4 POP SWAP4 POP SWAP4 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x60 PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x16C SWAP1 PUSH2 0x2A6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH32 0x0 JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x197 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x1C6 JUMPI DUP2 DUP3 REVERT JUMPDEST PUSH2 0x1D0 DUP5 DUP5 PUSH2 0x19D JUMP JUMPDEST SWAP2 POP PUSH2 0x1DF DUP5 PUSH1 0x20 DUP6 ADD PUSH2 0x19D JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x1FC JUMPI DUP1 DUP2 REVERT JUMPDEST DUP4 CALLDATALOAD PUSH2 0x207 DUP2 PUSH2 0x2E4 JUMP JUMPDEST SWAP3 POP PUSH1 0x20 DUP5 ADD CALLDATALOAD PUSH2 0x217 DUP2 PUSH2 0x2E4 JUMP JUMPDEST SWAP3 SWAP6 SWAP3 SWAP5 POP POP POP PUSH1 0x40 SWAP2 SWAP1 SWAP2 ADD CALLDATALOAD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP2 SWAP1 SWAP2 AND DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 DUP1 PUSH1 0xA0 SHL SUB DUP6 AND DUP3 MSTORE PUSH1 0x20 DUP5 DUP2 DUP5 ADD MSTORE PUSH1 0x60 PUSH1 0x40 DUP5 ADD MSTORE DUP4 MLOAD DUP1 PUSH1 0x60 DUP6 ADD MSTORE DUP3 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x27D JUMPI DUP6 DUP2 ADD DUP4 ADD MLOAD DUP6 DUP3 ADD PUSH1 0x80 ADD MSTORE DUP3 ADD PUSH2 0x261 JUMP JUMPDEST DUP2 DUP2 GT ISZERO PUSH2 0x28E JUMPI DUP4 PUSH1 0x80 DUP4 DUP8 ADD ADD MSTORE JUMPDEST POP PUSH1 0x1F ADD PUSH1 0x1F NOT AND SWAP3 SWAP1 SWAP3 ADD PUSH1 0x80 ADD SWAP6 SWAP5 POP POP POP POP POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP2 DUP2 ADD MSTORE PUSH32 0x524754206D6967726174696F6E2063616E6E6F74206265207265766572736564 PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST SWAP1 DUP2 MSTORE PUSH1 0x20 ADD SWAP1 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x2F9 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0x4A DUP8 CALLDATALOAD DIV CALLER PUSH11 0x12D9D30EA2531EB4EA32D2 0x1F 0x49 ADD 0xD9 DUP3 ADD 0x21 0xA6 0xB2 0x28 PUSH2 0x6BD1 0xAD 0x21 PUSH5 0x736F6C6343 STOP MOD EXP STOP CALLER ",
              "sourceMap": "968:2006:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1061:37;;;:::i;:::-;;;;;;;;;;;;;;;;1852:409;;;;;;;;;:::i;:::-;;;;;;;;;;2353:294;;;;;;;;;:::i;2817:155::-;;;;;;;;;:::i;1061:37::-;;;:::o;1852:409::-;2041:7;2050;2059:12;2123:21;2192:16;2147:62;;;;;;;;;;;;;-1:-1:-1;;2147:62:0;;;;;;;;;;;;;;-1:-1:-1;;;;;2147:62:0;-1:-1:-1;;;2147:62:0;;;2228:12;;-1:-1:-1;;;;2147:62:0;-1:-1:-1;;1852:409:0;;;;;;;:::o;2353:294::-;2552:7;2561;2570:12;2598:42;;-1:-1:-1;;;2598:42:0;;;;;;;;;;;;;;;;2817:155;2953:12;2817:155;;;;;:::o;5:130:-1:-;72:20;;-1:-1;;;;;4128:54;;4714:35;;4704:2;;4763:1;;4753:12;279:366;;;400:2;388:9;379:7;375:23;371:32;368:2;;;-1:-1;;406:12;368:2;468:53;513:7;489:22;468:53;;;458:63;;576:53;621:7;558:2;601:9;597:22;576:53;;;566:63;;362:283;;;;;;652:491;;;;790:2;778:9;769:7;765:23;761:32;758:2;;;-1:-1;;796:12;758:2;85:6;72:20;97:33;124:5;97:33;;;848:63;-1:-1;948:2;987:22;;72:20;97:33;72:20;97:33;;;752:391;;956:63;;-1:-1;;;1056:2;1095:22;;;;209:20;;752:391;2081:222;-1:-1;;;;;4128:54;;;;1221:37;;2208:2;2193:18;;2179:124;2310:528;;4139:42;;;;;4132:5;4128:54;1228:3;1221:37;2675:2;2062:5;2675:2;2664:9;2660:18;2032:37;2511:2;2712;2701:9;2697:18;2690:48;1412:5;3584:12;3740:6;2511:2;2500:9;2496:18;3728:19;-1:-1;4346:101;4360:6;4357:1;4354:13;4346:101;;;4427:11;;;;;4421:18;4408:11;;;3768:14;4408:11;4401:39;4375:10;;4346:101;;;4462:6;4459:1;4456:13;4453:2;;;-1:-1;3768:14;4518:6;2500:9;4509:16;;4502:27;4453:2;-1:-1;4634:7;4618:14;-1:-1;;4614:28;1569:39;;;;3768:14;1569:39;;2482:356;-1:-1;;;;;2482:356;2845:416;3045:2;3059:47;;;3030:18;;;3728:19;1881:34;3768:14;;;1861:55;1935:12;;;3016:245;3268:222;2032:37;;;3395:2;3380:18;;3366:124;4655:117;-1:-1;;;;;4128:54;;4714:35;;4704:2;;4763:1;;4753:12;4704:2;4698:74;"
            },
            "methodIdentifiers": {
              "getSpenderAddress(address,address)": "de68a3da",
              "getUnwrapCallData(address,address,uint256)": "a22fe98e",
              "getWrapCallData(address,address,uint256)": "77b1aaf8",
              "pegExchanger()": "5e7ded34"
            }
          }
        }
      }
    },
    "sources": {
      "contracts/protocol/integration/wrap/RgtMigrationWrapAdapter.sol": {
        "ast": {
          "absolutePath": "contracts/protocol/integration/wrap/RgtMigrationWrapAdapter.sol",
          "exportedSymbols": {
            "RgtMigrationWrapAdapter": [
              81
            ]
          },
          "id": 82,
          "license": "Apache License",
          "nodeType": "SourceUnit",
          "nodes": [
            {
              "id": 1,
              "literals": [
                "solidity",
                "0.6",
                ".10"
              ],
              "nodeType": "PragmaDirective",
              "src": "655:23:0"
            },
            {
              "id": 2,
              "literals": [
                "experimental",
                "ABIEncoderV2"
              ],
              "nodeType": "PragmaDirective",
              "src": "679:35:0"
            },
            {
              "abstract": false,
              "baseContracts": [],
              "contractDependencies": [],
              "contractKind": "contract",
              "documentation": {
                "id": 3,
                "nodeType": "StructuredDocumentation",
                "src": "716:251:0",
                "text": " @title RgtMigrationWrapAdater\n @author FlattestWhite\n Wrap adapter for one time token migration that returns data for wrapping RGT into TRIBE. \n Note: RGT can not be unwrapped into TRIBE, because migration can not be reversed."
              },
              "fullyImplemented": true,
              "id": 81,
              "linearizedBaseContracts": [
                81
              ],
              "name": "RgtMigrationWrapAdapter",
              "nodeType": "ContractDefinition",
              "nodes": [
                {
                  "constant": false,
                  "functionSelector": "5e7ded34",
                  "id": 5,
                  "mutability": "immutable",
                  "name": "pegExchanger",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 81,
                  "src": "1061:37:0",
                  "stateVariable": true,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 4,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1061:7:0",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "public"
                },
                {
                  "body": {
                    "id": 15,
                    "nodeType": "Block",
                    "src": "1355:45:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 13,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 11,
                            "name": "pegExchanger",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5,
                            "src": "1365:12:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "id": 12,
                            "name": "_pegExchanger",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8,
                            "src": "1380:13:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "1365:28:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 14,
                        "nodeType": "ExpressionStatement",
                        "src": "1365:28:0"
                      }
                    ]
                  },
                  "documentation": {
                    "id": 6,
                    "nodeType": "StructuredDocumentation",
                    "src": "1154:128:0",
                    "text": " Set state variables\n @param _pegExchanger                       Address of PegExchanger contract"
                  },
                  "id": 16,
                  "implemented": true,
                  "kind": "constructor",
                  "modifiers": [],
                  "name": "",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 9,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 8,
                        "mutability": "mutable",
                        "name": "_pegExchanger",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 16,
                        "src": "1308:21:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 7,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1308:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "1298:37:0"
                  },
                  "returnParameters": {
                    "id": 10,
                    "nodeType": "ParameterList",
                    "parameters": [],
                    "src": "1355:0:0"
                  },
                  "scope": 81,
                  "src": "1287:113:0",
                  "stateMutability": "nonpayable",
                  "virtual": false,
                  "visibility": "public"
                },
                {
                  "body": {
                    "id": 45,
                    "nodeType": "Block",
                    "src": "2077:184:0",
                    "statements": [
                      {
                        "assignments": [
                          33
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 33,
                            "mutability": "mutable",
                            "name": "callData",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 45,
                            "src": "2123:21:0",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes_memory_ptr",
                              "typeString": "bytes"
                            },
                            "typeName": {
                              "id": 32,
                              "name": "bytes",
                              "nodeType": "ElementaryTypeName",
                              "src": "2123:5:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_storage_ptr",
                                "typeString": "bytes"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 39,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "65786368616e67652875696e7432353629",
                              "id": 36,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2171:19:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_535565596623cd9994e68bd2dc695676e96d9d02dc92617da7c92dc3c3648de0",
                                "typeString": "literal_string \"exchange(uint256)\""
                              },
                              "value": "exchange(uint256)"
                            },
                            {
                              "argumentTypes": null,
                              "id": 37,
                              "name": "_underlyingUnits",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 23,
                              "src": "2192:16:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_535565596623cd9994e68bd2dc695676e96d9d02dc92617da7c92dc3c3648de0",
                                "typeString": "literal_string \"exchange(uint256)\""
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 34,
                              "name": "abi",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -1,
                              "src": "2147:3:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_abi",
                                "typeString": "abi"
                              }
                            },
                            "id": 35,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "memberName": "encodeWithSignature",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "2147:23:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_abiencodewithsignature_pure$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$",
                              "typeString": "function (string memory) pure returns (bytes memory)"
                            }
                          },
                          "id": 38,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2147:62:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2123:86:0"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 40,
                              "name": "pegExchanger",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5,
                              "src": "2228:12:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 41,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2242:1:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            {
                              "argumentTypes": null,
                              "id": 42,
                              "name": "callData",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 33,
                              "src": "2245:8:0",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "id": 43,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2227:27:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$_t_address_$_t_rational_0_by_1_$_t_bytes_memory_ptr_$",
                            "typeString": "tuple(address,int_const 0,bytes memory)"
                          }
                        },
                        "functionReturnParameters": 31,
                        "id": 44,
                        "nodeType": "Return",
                        "src": "2220:34:0"
                      }
                    ]
                  },
                  "documentation": {
                    "id": 17,
                    "nodeType": "StructuredDocumentation",
                    "src": "1470:377:0",
                    "text": " Generates the calldata to migrate RGT tokens to TRIBE tokens.\n @param _underlyingUnits      Total quantity of underlying units to wrap\n @return address              Target contract address\n @return uint256              Total quantity of underlying units (if underlying is ETH)\n @return bytes                Wrap calldata"
                  },
                  "functionSelector": "77b1aaf8",
                  "id": 46,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getWrapCallData",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 24,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 19,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 46,
                        "src": "1886:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 18,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1886:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 21,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 46,
                        "src": "1926:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 20,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "1926:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 23,
                        "mutability": "mutable",
                        "name": "_underlyingUnits",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 46,
                        "src": "1963:24:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 22,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1963:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "1876:117:0"
                  },
                  "returnParameters": {
                    "id": 31,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 26,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 46,
                        "src": "2041:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 25,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2041:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 28,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 46,
                        "src": "2050:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 27,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2050:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 30,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 46,
                        "src": "2059:12:0",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 29,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "2059:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "2040:32:0"
                  },
                  "scope": 81,
                  "src": "1852:409:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "body": {
                    "id": 66,
                    "nodeType": "Block",
                    "src": "2588:59:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "524754206d6967726174696f6e2063616e6e6f74206265207265766572736564",
                              "id": 63,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2605:34:0",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_ede4bcac8656505599cd279c3e072628e19b99456107126ec9c5eb57b83b6cdd",
                                "typeString": "literal_string \"RGT migration cannot be reversed\""
                              },
                              "value": "RGT migration cannot be reversed"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_ede4bcac8656505599cd279c3e072628e19b99456107126ec9c5eb57b83b6cdd",
                                "typeString": "literal_string \"RGT migration cannot be reversed\""
                              }
                            ],
                            "id": 62,
                            "name": "revert",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              -19,
                              -19
                            ],
                            "referencedDeclaration": -19,
                            "src": "2598:6:0",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (string memory) pure"
                            }
                          },
                          "id": 64,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2598:42:0",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 65,
                        "nodeType": "ExpressionStatement",
                        "src": "2598:42:0"
                      }
                    ]
                  },
                  "documentation": {
                    "id": 47,
                    "nodeType": "StructuredDocumentation",
                    "src": "2267:81:0",
                    "text": " This function will revert, since migration cannot be reversed."
                  },
                  "functionSelector": "a22fe98e",
                  "id": 67,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getUnwrapCallData",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 54,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 49,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 67,
                        "src": "2389:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 48,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2389:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 51,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 67,
                        "src": "2429:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 50,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2429:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 53,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 67,
                        "src": "2466:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 52,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2466:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "2379:125:0"
                  },
                  "returnParameters": {
                    "id": 61,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 56,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 67,
                        "src": "2552:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 55,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2552:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 58,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 67,
                        "src": "2561:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 57,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2561:7:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 60,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 67,
                        "src": "2570:12:0",
                        "stateVariable": false,
                        "storageLocation": "memory",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes"
                        },
                        "typeName": {
                          "id": 59,
                          "name": "bytes",
                          "nodeType": "ElementaryTypeName",
                          "src": "2570:5:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_storage_ptr",
                            "typeString": "bytes"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "2551:32:0"
                  },
                  "scope": 81,
                  "src": "2353:294:0",
                  "stateMutability": "pure",
                  "virtual": false,
                  "visibility": "external"
                },
                {
                  "body": {
                    "id": 79,
                    "nodeType": "Block",
                    "src": "2936:36:0",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 77,
                          "name": "pegExchanger",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5,
                          "src": "2953:12:0",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "functionReturnParameters": 76,
                        "id": 78,
                        "nodeType": "Return",
                        "src": "2946:19:0"
                      }
                    ]
                  },
                  "documentation": {
                    "id": 68,
                    "nodeType": "StructuredDocumentation",
                    "src": "2653:159:0",
                    "text": " Returns the address to approve source tokens for wrapping.\n @return address        Address of the contract to approve tokens to"
                  },
                  "functionSelector": "de68a3da",
                  "id": 80,
                  "implemented": true,
                  "kind": "function",
                  "modifiers": [],
                  "name": "getSpenderAddress",
                  "nodeType": "FunctionDefinition",
                  "overrides": null,
                  "parameters": {
                    "id": 73,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 70,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 80,
                        "src": "2844:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 69,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2844:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      },
                      {
                        "constant": false,
                        "id": 72,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 80,
                        "src": "2876:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 71,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2876:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "2843:61:0"
                  },
                  "returnParameters": {
                    "id": 76,
                    "nodeType": "ParameterList",
                    "parameters": [
                      {
                        "constant": false,
                        "id": 75,
                        "mutability": "mutable",
                        "name": "",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 80,
                        "src": "2927:7:0",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "typeName": {
                          "id": 74,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "2927:7:0",
                          "stateMutability": "nonpayable",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "src": "2926:9:0"
                  },
                  "scope": 81,
                  "src": "2817:155:0",
                  "stateMutability": "view",
                  "virtual": false,
                  "visibility": "external"
                }
              ],
              "scope": 82,
              "src": "968:2006:0"
            }
          ],
          "src": "655:2320:0"
        },
        "id": 0
      }
    }
  }
}
