{"file_path":"lib/mento-core-2.6.5/contracts/tokens/StableTokenJPYProxy.sol","creation_status":"success","source_code":"// SPDX-License-Identifier: GPL-3.0-or-later\npragma solidity ^0.5.13;\n\nimport \"celo/contracts/common/Proxy.sol\";\n\n/* solhint-disable-next-line no-empty-blocks */\ncontract StableTokenJPYProxy is Proxy {}\n","deployed_bytecode":"0x60806040526004361061005a5760003560e01c8063bb913f4111610043578063bb913f41146102a7578063d29d44ee146102e7578063f7e6af80146103275761005a565b806303386ba3146101da57806342404e0714610269575b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01805473ffffffffffffffffffffffffffffffffffffffff811661013257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f20496d706c656d656e746174696f6e207365740000000000000000000000604482015290519081900360640190fd5b61013b8161033c565b6101a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b60405136810160405236600082376000803683855af43d604051818101604052816000823e8280156101d6578282f35b8282fd5b610267600480360360408110156101f057600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561022857600080fd5b82018360208201111561023a57600080fd5b8035906020019184600183028401116401000000008311171561025c57600080fd5b509092509050610378565b005b34801561027557600080fd5b5061027e61050c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102b357600080fd5b50610267600480360360208110156102ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610564565b3480156102f357600080fd5b506102676004803603602081101561030a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610715565b34801561033357600080fd5b5061027e6107c2565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061037057508115155b949350505050565b6103806107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461041957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b61042283610564565b600060608473ffffffffffffffffffffffffffffffffffffffff1684846040518083838082843760405192019450600093509091505080830381855af49150503d806000811461048e576040519150601f19603f3d011682016040523d82523d6000602084013e610493565b606091505b5090925090508161050557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f696e697469616c697a6174696f6e2063616c6c6261636b206661696c65640000604482015290519081900360640190fd5b5050505050565b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b61056c6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461060557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016106628261033c565b6106cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b81815560405173ffffffffffffffffffffffffffffffffffffffff8316907fab64f92ab780ecbf4f3866f57cee465ff36c89450dcce20237ca7a8d81fb7d1390600090a25050565b61071d6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b6107bf8161081a565b50565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b73ffffffffffffffffffffffffffffffffffffffff811661089c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6f776e65722063616e6e6f742062652030000000000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130181207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018281559073ffffffffffffffffffffffffffffffffffffffff8316907f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe290600090a2505056fea265627a7a723158208d0565be3cb60fd02598976a24e61b6ee19139b2d438d43c00f902d7e1af864164736f6c63430005110032","optimization_enabled":true,"verified_twin_address_hash":null,"is_verified":true,"compiler_settings":{"evmVersion":"istanbul","libraries":{"AddressLinkedList":"0x6200f54d73491d56b8d7a975c9ee18efb4d518df","AddressSortedLinkedListWithMedian":"0xed477a99035d0c1e11369f1d7a4e587893cc002b"},"optimizer":{"enabled":true,"runs":10000},"remappings":[":@celo/=lib/mento-core-2.6.0/node_modules/@celo/contracts/",":@chainlink/contracts/=lib/mento-core-2.6.5/lib/foundry-chainlink-toolkit/lib/chainlink-brownie-contracts/contracts/src/",":@openzeppelin/=lib/mento-core-2.6.5/lib/foundry-chainlink-toolkit/lib/openzeppelin-contracts/",":@prb/test/=lib/mento-core-2.6.5/lib/prb-math/lib/prb-test/src/",":celo-foundry/=lib/celo-foundry/src/",":celo/=node_modules/@celo/",":chainlink-brownie-contracts/=lib/mento-core-2.6.5/lib/foundry-chainlink-toolkit/lib/chainlink-brownie-contracts/contracts/src/v0.6/vendor/@arbitrum/nitro-contracts/src/",":contracts/=contracts/",":ds-test/=lib/celo-foundry/lib/forge-std/lib/ds-test/src/",":forge-std-next/=lib/forge-std-next/src/",":forge-std/=lib/celo-foundry/lib/forge-std/src/",":foundry-chainlink-toolkit/=lib/mento-core-2.6.5/lib/foundry-chainlink-toolkit/",":mento-core-2.0.0/=lib/mento-core-2.0.0/contracts/",":mento-core-2.1.0/=lib/mento-core-2.1.0/contracts/",":mento-core-2.2.0/=lib/mento-core-2.2.0/contracts/",":mento-core-2.3.1/=lib/mento-core-2.3.1/contracts/",":mento-core-2.5.0/=lib/mento-core-2.5.0/contracts/",":mento-core-2.6.0-oz/=lib/mento-core-2.6.0/lib/openzeppelin-contracts-next/",":mento-core-2.6.0/=lib/mento-core-2.6.0/contracts/",":mento-core-2.6.2/=lib/mento-core-2.6.2/contracts/",":mento-core-2.6.3/=lib/mento-core-2.6.3/contracts/",":mento-core-2.6.4/=lib/mento-core-2.6.4/contracts/",":mento-core-2.6.5/=lib/mento-core-2.6.5/contracts/",":mento-std/=lib/mento-core-2.6.5/lib/mento-std/src/",":merkle-distributor/=lib/merkle-distributor/contracts/",":openzeppelin-contracts-next/=lib/mento-core-2.6.5/lib/openzeppelin-contracts-next/",":openzeppelin-contracts-upgradeable/=lib/mento-core-2.6.5/lib/openzeppelin-contracts-upgradeable/",":openzeppelin-contracts/=lib/mento-core-2.6.5/lib/openzeppelin-contracts-next/",":openzeppelin-solidity/=lib/mento-core-2.0.0/lib/openzeppelin-contracts/",":prb-math/=lib/mento-core-2.6.5/lib/prb-math/src/",":prb-test/=lib/mento-core-2.6.5/lib/prb-math/lib/prb-test/src/",":prb/math/=lib/mento-core-2.6.5/lib/prb-math/src/",":safe-contracts/=lib/mento-core-2.6.5/lib/safe-contracts/",":src/=lib/mento-core-2.6.5/lib/prb-math/src/",":test/=lib/mento-core-2.6.5/test/"]},"optimization_runs":10000,"sourcify_repo_url":"https://repo.sourcify.dev/contracts/partial_match/42220/0xc45eCF20f3CD864B32D9794d6f76814aE8892e20/","decoded_constructor_args":null,"compiler_version":"0.5.17+commit.d19bba13","is_verified_via_verifier_alliance":false,"verified_at":"2025-05-13T11:15:47.505219Z","implementations":[{"address_hash":"0x815795C30D0758A297B08cD4e0643620c974c318","name":"StableTokenV3"}],"proxy_type":"eip1967","external_libraries":[{"name":"AddressLinkedList","address_hash":"0x6200F54D73491d56b8d7A975C9ee18EFb4D518Df"},{"name":"AddressSortedLinkedListWithMedian","address_hash":"0xED477A99035d0c1e11369F1D7A4e587893cc002B"}],"creation_bytecode":"0x6080604052610016336001600160e01b0361001b16565b6100d9565b6001600160a01b03811661006a576040805162461bcd60e51b815260206004820152601160248201527006f776e65722063616e6e6f74206265203607c1b604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e61646d696e000000000000000000000000008152905190819003601301812060001901828155906001600160a01b038316907f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe290600090a25050565b61096b806100e86000396000f3fe60806040526004361061005a5760003560e01c8063bb913f4111610043578063bb913f41146102a7578063d29d44ee146102e7578063f7e6af80146103275761005a565b806303386ba3146101da57806342404e0714610269575b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01805473ffffffffffffffffffffffffffffffffffffffff811661013257604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4e6f20496d706c656d656e746174696f6e207365740000000000000000000000604482015290519081900360640190fd5b61013b8161033c565b6101a657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b60405136810160405236600082376000803683855af43d604051818101604052816000823e8280156101d6578282f35b8282fd5b610267600480360360408110156101f057600080fd5b73ffffffffffffffffffffffffffffffffffffffff823516919081019060408101602082013564010000000081111561022857600080fd5b82018360208201111561023a57600080fd5b8035906020019184600183028401116401000000008311171561025c57600080fd5b509092509050610378565b005b34801561027557600080fd5b5061027e61050c565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b3480156102b357600080fd5b50610267600480360360208110156102ca57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610564565b3480156102f357600080fd5b506102676004803603602081101561030a57600080fd5b503573ffffffffffffffffffffffffffffffffffffffff16610715565b34801561033357600080fd5b5061027e6107c2565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061037057508115155b949350505050565b6103806107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461041957604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b61042283610564565b600060608473ffffffffffffffffffffffffffffffffffffffff1684846040518083838082843760405192019450600093509091505080830381855af49150503d806000811461048e576040519150601f19603f3d011682016040523d82523d6000602084013e610493565b606091505b5090925090508161050557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f696e697469616c697a6174696f6e2063616c6c6261636b206661696c65640000604482015290519081900360640190fd5b5050505050565b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b61056c6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461060557604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e696d706c656d656e746174696f6e000000008152905190819003601c0190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016106628261033c565b6106cd57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f496e76616c696420636f6e747261637420616464726573730000000000000000604482015290519081900360640190fd5b81815560405173ffffffffffffffffffffffffffffffffffffffff8316907fab64f92ab780ecbf4f3866f57cee465ff36c89450dcce20237ca7a8d81fb7d1390600090a25050565b61071d6107c2565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b657604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f73656e64657220776173206e6f74206f776e6572000000000000000000000000604482015290519081900360640190fd5b6107bf8161081a565b50565b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130190207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff015490565b73ffffffffffffffffffffffffffffffffffffffff811661089c57604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601160248201527f6f776e65722063616e6e6f742062652030000000000000000000000000000000604482015290519081900360640190fd5b604080517f656970313936372e70726f78792e61646d696e00000000000000000000000000815290519081900360130181207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff018281559073ffffffffffffffffffffffffffffffffffffffff8316907f50146d0e3c60aa1d17a70635b05494f864e86144a2201275021014fbf08bafe290600090a2505056fea265627a7a723158208d0565be3cb60fd02598976a24e61b6ee19139b2d438d43c00f902d7e1af864164736f6c63430005110032","name":"StableTokenJPYProxy","is_blueprint":false,"license_type":"none","is_fully_verified":false,"is_verified_via_eth_bytecode_db":true,"language":"solidity","evm_version":"istanbul","can_be_visualized_via_sol2uml":true,"is_verified_via_sourcify":true,"additional_sources":[{"file_path":"lib/mento-core-2.0.0/lib/openzeppelin-contracts/contracts/utils/Address.sol","source_code":"pragma solidity ^0.5.5;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n    /**\n     * @dev Returns true if `account` is a contract.\n     *\n     * [IMPORTANT]\n     * ====\n     * It is unsafe to assume that an address for which this function returns\n     * false is an externally-owned account (EOA) and not a contract.\n     *\n     * Among others, `isContract` will return false for the following \n     * types of addresses:\n     *\n     *  - an externally-owned account\n     *  - a contract in construction\n     *  - an address where a contract will be created\n     *  - an address where a contract lived, but was destroyed\n     * ====\n     */\n    function isContract(address account) internal view returns (bool) {\n        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts\n        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned\n        // for accounts without code, i.e. `keccak256('')`\n        bytes32 codehash;\n        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;\n        // solhint-disable-next-line no-inline-assembly\n        assembly { codehash := extcodehash(account) }\n        return (codehash != accountHash && codehash != 0x0);\n    }\n\n    /**\n     * @dev Converts an `address` into `address payable`. Note that this is\n     * simply a type cast: the actual underlying value is not changed.\n     *\n     * _Available since v2.4.0._\n     */\n    function toPayable(address account) internal pure returns (address payable) {\n        return address(uint160(account));\n    }\n\n    /**\n     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n     * `recipient`, forwarding all available gas and reverting on errors.\n     *\n     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n     * of certain opcodes, possibly making contracts go over the 2300 gas limit\n     * imposed by `transfer`, making them unable to receive funds via\n     * `transfer`. {sendValue} removes this limitation.\n     *\n     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n     *\n     * IMPORTANT: because control is transferred to `recipient`, care must be\n     * taken to not create reentrancy vulnerabilities. Consider using\n     * {ReentrancyGuard} or the\n     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n     *\n     * _Available since v2.4.0._\n     */\n    function sendValue(address payable recipient, uint256 amount) internal {\n        require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n        // solhint-disable-next-line avoid-call-value\n        (bool success, ) = recipient.call.value(amount)(\"\");\n        require(success, \"Address: unable to send value, recipient may have reverted\");\n    }\n}\n"},{"file_path":"node_modules/@celo/contracts/common/Proxy.sol","source_code":"pragma solidity ^0.5.13;\n/* solhint-disable no-inline-assembly, no-complex-fallback, avoid-low-level-calls */\n\nimport \"openzeppelin-solidity/contracts/utils/Address.sol\";\n\n/**\n * @title A Proxy utilizing the Unstructured Storage pattern.\n */\ncontract Proxy {\n  // Used to store the address of the owner.\n  bytes32 private constant OWNER_POSITION = bytes32(uint256(keccak256(\"eip1967.proxy.admin\")) - 1);\n  // Used to store the address of the implementation contract.\n  bytes32 private constant IMPLEMENTATION_POSITION = bytes32(\n    uint256(keccak256(\"eip1967.proxy.implementation\")) - 1\n  );\n\n  event OwnerSet(address indexed owner);\n  event ImplementationSet(address indexed implementation);\n\n  constructor() public {\n    _setOwner(msg.sender);\n  }\n\n  /**\n   * @notice Throws if called by any account other than the owner.\n   */\n  modifier onlyOwner() {\n    require(msg.sender == _getOwner(), \"sender was not owner\");\n    _;\n  }\n\n  /**\n   * @notice Delegates calls to the implementation contract.\n   */\n  function() external payable {\n    bytes32 implementationPosition = IMPLEMENTATION_POSITION;\n\n    address implementationAddress;\n\n    // Load the address of the implementation contract from an explicit storage slot.\n    assembly {\n      implementationAddress := sload(implementationPosition)\n    }\n\n    // Avoid checking if address is a contract or executing delegated call when\n    // implementation address is 0x0\n    require(implementationAddress != address(0), \"No Implementation set\");\n    require(Address.isContract(implementationAddress), \"Invalid contract address\");\n\n    assembly {\n      // Extract the position of the transaction data (i.e. function ID and arguments).\n      let newCallDataPosition := mload(0x40)\n      mstore(0x40, add(newCallDataPosition, calldatasize))\n      calldatacopy(newCallDataPosition, 0, calldatasize)\n\n      // Call the smart contract at `implementationAddress` in the context of the proxy contract,\n      // with the same msg.sender and value.\n      let delegatecallSuccess := delegatecall(\n        gas,\n        implementationAddress,\n        newCallDataPosition,\n        calldatasize,\n        0,\n        0\n      )\n\n      // Copy the return value of the call so it can be returned.\n      let returnDataSize := returndatasize\n      let returnDataPosition := mload(0x40)\n      mstore(0x40, add(returnDataPosition, returnDataSize))\n      returndatacopy(returnDataPosition, 0, returnDataSize)\n\n      // Revert or return depending on whether or not the call was successful.\n      switch delegatecallSuccess\n        case 0 {\n          revert(returnDataPosition, returnDataSize)\n        }\n        default {\n          return(returnDataPosition, returnDataSize)\n        }\n    }\n  }\n\n  /**\n   * @notice Transfers ownership of Proxy to a new owner.\n   * @param newOwner Address of the new owner account.\n   */\n  function _transferOwnership(address newOwner) external onlyOwner {\n    _setOwner(newOwner);\n  }\n\n  /**\n   * @notice Sets the address of the implementation contract and calls into it.\n   * @param implementation Address of the new target contract.\n   * @param callbackData The abi-encoded function call to perform in the implementation\n   * contract.\n   * @dev Throws if the initialization callback fails.\n   * @dev If the target contract does not need initialization, use\n   * setImplementation instead.\n   */\n  function _setAndInitializeImplementation(address implementation, bytes calldata callbackData)\n    external\n    payable\n    onlyOwner\n  {\n    _setImplementation(implementation);\n    bool success;\n    bytes memory returnValue;\n    (success, returnValue) = implementation.delegatecall(callbackData);\n    require(success, \"initialization callback failed\");\n  }\n\n  /**\n   * @notice Returns the implementation address.\n   */\n  function _getImplementation() external view returns (address implementation) {\n    bytes32 implementationPosition = IMPLEMENTATION_POSITION;\n    // Load the address of the implementation contract from an explicit storage slot.\n    assembly {\n      implementation := sload(implementationPosition)\n    }\n  }\n\n  /**\n   * @notice Sets the address of the implementation contract.\n   * @param implementation Address of the new target contract.\n   * @dev If the target contract needs to be initialized, call\n   * setAndInitializeImplementation instead.\n   */\n  function _setImplementation(address implementation) public onlyOwner {\n    bytes32 implementationPosition = IMPLEMENTATION_POSITION;\n\n    require(Address.isContract(implementation), \"Invalid contract address\");\n\n    // Store the address of the implementation contract in an explicit storage slot.\n    assembly {\n      sstore(implementationPosition, implementation)\n    }\n\n    emit ImplementationSet(implementation);\n  }\n\n  /**\n   * @notice Returns the Proxy owner's address.\n   */\n  function _getOwner() public view returns (address owner) {\n    bytes32 position = OWNER_POSITION;\n    // Load the address of the contract owner from an explicit storage slot.\n    assembly {\n      owner := sload(position)\n    }\n  }\n\n  function _setOwner(address newOwner) internal {\n    require(newOwner != address(0), \"owner cannot be 0\");\n    bytes32 position = OWNER_POSITION;\n    // Store the address of the contract owner in an explicit storage slot.\n    assembly {\n      sstore(position, newOwner)\n    }\n    emit OwnerSet(newOwner);\n  }\n}\n"}],"certified":false,"conflicting_implementations":null,"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"ImplementationSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"}],"name":"OwnerSet","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[],"name":"_getImplementation","outputs":[{"internalType":"address","name":"implementation","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"_getOwner","outputs":[{"internalType":"address","name":"owner","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"implementation","type":"address"},{"internalType":"bytes","name":"callbackData","type":"bytes"}],"name":"_setAndInitializeImplementation","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"_setImplementation","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"_transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}],"is_changed_bytecode":false,"is_partially_verified":true,"constructor_args":null}