Commit 7b054b20 authored by Ben Wilson's avatar Ben Wilson Committed by GitHub

bedrock-goerli genesis from commit 69ee68 (#2978)

Co-authored-by: default avatarmergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
parent 0cb3929e
import { ethers } from 'ethers' import { ethers } from 'ethers'
const sequencerAddress = '0x5743191a8a1ffcedfc24f5b7219cb6714df0e5bb' const sequencerAddress = '0x0631f9bccb86548dc4a574c730a46d6ca283a338'
const startingTimestamp = 1656654016 const startingTimestamp = 1656654016
const config = { const config = {
...@@ -41,12 +41,12 @@ const config = { ...@@ -41,12 +41,12 @@ const config = {
sequencerWindowSize: 120, sequencerWindowSize: 120,
channelTimeout: 120, channelTimeout: 120,
proxyAdmin: '0x863516d59eefd135485669e14cff3a8fb3836e74', proxyAdmin: '0x05e22b779967b86fb9572e8292090be2d5c1cab7',
optimismBaseFeeRecipient: '0xf3841b313eb0da41d6dd47d82c149dcfa89aafbf', optimismBaseFeeRecipient: '0xec4f588262821a7c1f722e5bc40dc5332335c47f',
optimismL1FeeRecipient: '0xce80bf47c3cc7cf824e917c7b6ff24513b09eba2', optimismL1FeeRecipient: '0x8fd8d6b9e556cf4791ff9c99a56420ac2fdd2b59',
optimismL2FeeRecipient: '0xd9c09e21b57c98e58a80552c170989b426766aa7', optimismL2FeeRecipient: '0x7890eee9efd42496c63f3ec71bf61bf96af088d0',
outputOracleOwner: '0x7edca314d8e7f3bd7748c2c65f1de12d1a03b780', outputOracleOwner: '0x0f01ce071078396040a4a0de613aa024aba2d18f',
batchSenderAddress: '0x6ec80601358a8297249f20ecf9248a6b16da1aaa', batchSenderAddress: '0x32b317fc8d35e015cd9942bc9c7cecaf7f651838',
} }
export default config export default config
{ {
"address": "0xa929d534Cad3530383d1b9134785D7a15362E593", "address": "0xFa81801E2F87694F4d7883b7E6e78ac546050E51",
"abi": [ "abi": [
{ {
"inputs": [ "inputs": [
...@@ -125,43 +125,43 @@ ...@@ -125,43 +125,43 @@
"type": "function" "type": "function"
} }
], ],
"transactionHash": "0x0e16bb486a25245f704a94287e187351fbce918f3fe961f34d72886a08d882e9", "transactionHash": "0x580e1e922cbca246529a81d4dd0fcdf56cfeb40769c5f91d4abce562df09b94a",
"receipt": { "receipt": {
"to": null, "to": null,
"from": "0xCFf7a9856DB3C60AB546b8F43dC5D1A4336786A0", "from": "0x3a605B442055DF2898E18cF518feb2e2A6BD0D31",
"contractAddress": "0xa929d534Cad3530383d1b9134785D7a15362E593", "contractAddress": "0xFa81801E2F87694F4d7883b7E6e78ac546050E51",
"transactionIndex": 2, "transactionIndex": 1,
"gasUsed": "492029", "gasUsed": "520158",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000400000000000001000000000000000000000000000000000000000000000000000000000000000000000000", "logsBloom": "0x00200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000008000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0x82501f5d83e6c2aa70fdb09538b81596671f40afa637ec4ee453cb2973c536a4", "blockHash": "0xde8ba6cbdd8780230ac54915852192fa0aa8e142fe28cedbbd922087c5d51daa",
"transactionHash": "0x0e16bb486a25245f704a94287e187351fbce918f3fe961f34d72886a08d882e9", "transactionHash": "0x580e1e922cbca246529a81d4dd0fcdf56cfeb40769c5f91d4abce562df09b94a",
"logs": [ "logs": [
{ {
"transactionIndex": 2, "transactionIndex": 1,
"blockNumber": 7149180, "blockNumber": 7209635,
"transactionHash": "0x0e16bb486a25245f704a94287e187351fbce918f3fe961f34d72886a08d882e9", "transactionHash": "0x580e1e922cbca246529a81d4dd0fcdf56cfeb40769c5f91d4abce562df09b94a",
"address": "0xa929d534Cad3530383d1b9134785D7a15362E593", "address": "0xFa81801E2F87694F4d7883b7E6e78ac546050E51",
"topics": [ "topics": [
"0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"
], ],
"data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cff7a9856db3c60ab546b8f43dc5d1a4336786a0", "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a605b442055df2898e18cf518feb2e2a6bd0d31",
"logIndex": 1, "logIndex": 0,
"blockHash": "0x82501f5d83e6c2aa70fdb09538b81596671f40afa637ec4ee453cb2973c536a4" "blockHash": "0xde8ba6cbdd8780230ac54915852192fa0aa8e142fe28cedbbd922087c5d51daa"
} }
], ],
"blockNumber": 7149180, "blockNumber": 7209635,
"cumulativeGasUsed": "562540", "cumulativeGasUsed": "541158",
"status": 1, "status": 1,
"byzantium": true "byzantium": true
}, },
"args": [ "args": [
"0xCFf7a9856DB3C60AB546b8F43dC5D1A4336786A0" "0x3a605B442055DF2898E18cF518feb2e2A6BD0D31"
], ],
"numDeployments": 1, "numDeployments": 1,
"solcInputHash": "6658e3fd5601f689e56bcac3b135b23e", "solcInputHash": "599c82b18bfb932a0753a57de385b407",
"metadata": "\"{\\\"compiler\\\":{\\\"version\\\":\\\"0.8.10+commit.fc410830\\\"},\\\"language\\\":\\\"Solidity\\\",\\\"output\\\":{\\\"abi\\\":[{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"constructor\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"previousAdmin\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"newAdmin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"AdminChanged\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"Upgraded\\\",\\\"type\\\":\\\"event\\\"},{\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"fallback\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"admin\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"changeAdmin\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"implementation\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"upgradeTo\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"_data\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"name\\\":\\\"upgradeToAndCall\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"function\\\"}],\\\"devdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"params\\\":{\\\"newAdmin\\\":\\\"The new owner of the contract\\\",\\\"previousAdmin\\\":\\\"The previous owner of the contract\\\"}},\\\"Upgraded(address)\\\":{\\\"params\\\":{\\\"implementation\\\":\\\"The address of the implementation contract\\\"}}},\\\"kind\\\":\\\"dev\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Owner address.\\\"}},\\\"changeAdmin(address)\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"New owner of the proxy contract.\\\"}},\\\"constructor\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"Address of the initial contract owner. The owner has the ability to access the transparent proxy interface.\\\"}},\\\"implementation()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Implementation address.\\\"}},\\\"upgradeTo(address)\\\":{\\\"params\\\":{\\\"_implementation\\\":\\\"The address of the implementation contract\\\"}},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"params\\\":{\\\"_data\\\":\\\"The calldata to delegatecall the new implementation with\\\",\\\"_implementation\\\":\\\"The address of the implementation contract\\\"}}},\\\"title\\\":\\\"Proxy\\\",\\\"version\\\":1},\\\"userdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the owner is upgraded. This event is part of the EIP 1967 spec.\\\"},\\\"Upgraded(address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the implementation is changed. This event is part of the EIP 1967 spec.\\\"}},\\\"kind\\\":\\\"user\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"notice\\\":\\\"Gets the owner of the proxy contract.\\\"},\\\"changeAdmin(address)\\\":{\\\"notice\\\":\\\"Changes the owner of the proxy contract. Only callable by the owner.\\\"},\\\"constructor\\\":{\\\"notice\\\":\\\"set the initial owner during contract deployment. The owner is stored at the eip1967 owner storage slot so that storage collision with the implementation is not possible.\\\"},\\\"implementation()\\\":{\\\"notice\\\":\\\"Queries the implementation address.\\\"},\\\"upgradeTo(address)\\\":{\\\"notice\\\":\\\"Set the implementation contract address. The code at this address will execute when this contract is called.\\\"},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"notice\\\":\\\"Set the implementation and call a function in a single transaction. This is useful to ensure atomic `initialize()` based upgrades.\\\"}},\\\"notice\\\":\\\"Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is `address(0)`, meaning that the call originated from an offchain simulation.\\\",\\\"version\\\":1}},\\\"settings\\\":{\\\"compilationTarget\\\":{\\\"contracts/universal/Proxy.sol\\\":\\\"Proxy\\\"},\\\"evmVersion\\\":\\\"london\\\",\\\"libraries\\\":{},\\\"metadata\\\":{\\\"bytecodeHash\\\":\\\"none\\\"},\\\"optimizer\\\":{\\\"enabled\\\":true,\\\"runs\\\":999999},\\\"remappings\\\":[\\\":@openzeppelin/=node_modules/@openzeppelin/\\\",\\\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\\\",\\\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\\\",\\\":@rari-capital/=node_modules/@rari-capital/\\\",\\\":@rari-capital/solmate/=node_modules/@rari-capital/solmate/\\\",\\\":contracts/=contracts/\\\",\\\":ds-test/=node_modules/ds-test/src/\\\",\\\":excessively-safe-call/=node_modules/excessively-safe-call/\\\",\\\":forge-std/=node_modules/forge-std/src/\\\",\\\":test/=test/\\\"]},\\\"sources\\\":{\\\"contracts/universal/Proxy.sol\\\":{\\\"keccak256\\\":\\\"0x2a6719fd9a11adf0efba0243e5c68d56b255296b84cc82bd39326c902e055077\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://bb38ea7b5b0423b752c65450e24b925a638cf70982e6e161c7a07417c64f3720\\\",\\\"dweb:/ipfs/QmfT9ht3nDRNqYwB5gpQBnTZErTgrKFVkETmGeoc6hDDeQ\\\"]}},\\\"version\\\":1}\"", "metadata": "\"{\\\"compiler\\\":{\\\"version\\\":\\\"0.8.10+commit.fc410830\\\"},\\\"language\\\":\\\"Solidity\\\",\\\"output\\\":{\\\"abi\\\":[{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"constructor\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"previousAdmin\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"newAdmin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"AdminChanged\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"Upgraded\\\",\\\"type\\\":\\\"event\\\"},{\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"fallback\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"admin\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"changeAdmin\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"implementation\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"upgradeTo\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"_data\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"name\\\":\\\"upgradeToAndCall\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"function\\\"}],\\\"devdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"params\\\":{\\\"newAdmin\\\":\\\"The new owner of the contract\\\",\\\"previousAdmin\\\":\\\"The previous owner of the contract\\\"}},\\\"Upgraded(address)\\\":{\\\"params\\\":{\\\"implementation\\\":\\\"The address of the implementation contract\\\"}}},\\\"kind\\\":\\\"dev\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Owner address.\\\"}},\\\"changeAdmin(address)\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"New owner of the proxy contract.\\\"}},\\\"constructor\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"Address of the initial contract admin. Admin as the ability to access the transparent proxy interface.\\\"}},\\\"implementation()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Implementation address.\\\"}},\\\"upgradeTo(address)\\\":{\\\"params\\\":{\\\"_implementation\\\":\\\"Address of the implementation contract.\\\"}},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"params\\\":{\\\"_data\\\":\\\"Calldata to delegatecall the new implementation with.\\\",\\\"_implementation\\\":\\\"Address of the implementation contract.\\\"}}},\\\"title\\\":\\\"Proxy\\\",\\\"version\\\":1},\\\"userdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the owner is upgraded. This event is part of the EIP-1967 specification.\\\"},\\\"Upgraded(address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the implementation is changed. This event is part of the EIP-1967 specification.\\\"}},\\\"kind\\\":\\\"user\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"notice\\\":\\\"Gets the owner of the proxy contract.\\\"},\\\"changeAdmin(address)\\\":{\\\"notice\\\":\\\"Changes the owner of the proxy contract. Only callable by the owner.\\\"},\\\"constructor\\\":{\\\"notice\\\":\\\"Sets the initial admin during contract deployment. Admin address is stored at the EIP-1967 admin storage slot so that accidental storage collision with the implementation is not possible.\\\"},\\\"implementation()\\\":{\\\"notice\\\":\\\"Queries the implementation address.\\\"},\\\"upgradeTo(address)\\\":{\\\"notice\\\":\\\"Set the implementation contract address. The code at the given address will execute when this contract is called.\\\"},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"notice\\\":\\\"Set the implementation and call a function in a single transaction. Useful to ensure atomic execution of initialization-based upgrades.\\\"}},\\\"notice\\\":\\\"Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is address(0), meaning that the call originated from an off-chain simulation.\\\",\\\"version\\\":1}},\\\"settings\\\":{\\\"compilationTarget\\\":{\\\"contracts/universal/Proxy.sol\\\":\\\"Proxy\\\"},\\\"evmVersion\\\":\\\"london\\\",\\\"libraries\\\":{},\\\"metadata\\\":{\\\"bytecodeHash\\\":\\\"none\\\"},\\\"optimizer\\\":{\\\"enabled\\\":true,\\\"runs\\\":999999},\\\"remappings\\\":[\\\":@openzeppelin/=node_modules/@openzeppelin/\\\",\\\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\\\",\\\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\\\",\\\":@rari-capital/=node_modules/@rari-capital/\\\",\\\":@rari-capital/solmate/=node_modules/@rari-capital/solmate/\\\",\\\":contracts/=contracts/\\\",\\\":ds-test/=node_modules/ds-test/src/\\\",\\\":excessively-safe-call/=node_modules/excessively-safe-call/\\\",\\\":forge-std/=node_modules/forge-std/src/\\\",\\\":test/=test/\\\"]},\\\"sources\\\":{\\\"contracts/universal/Proxy.sol\\\":{\\\"keccak256\\\":\\\"0xfbd3b9b280c82e08ed10690e0aa683cfa97417139f83349e89a38e01f9601422\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://579a350f080617001c0f747414e5160f7b1c571c381137a759b54d8278450531\\\",\\\"dweb:/ipfs/QmP2wjj8pGwXx64oYCGftF1XbKceMge9ByqxdrX8UjEdR9\\\"]}},\\\"version\\\":1}\"",
"bytecode": "0x608060405234801561001057600080fd5b5060405161088338038061088383398101604081905261002f916100b2565b6100388161003e565b506100e2565b60006100566000805160206108638339815191525490565b600080516020610863833981519152839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b6000602082840312156100c457600080fd5b81516001600160a01b03811681146100db57600080fd5b9392505050565b610772806100f16000396000f3fe60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f366004610644565b610212565b61009761009236600461065f565b610284565b6040516100a491906106e2565b60405180910390f35b3480156100b957600080fd5b506100c2610384565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b50610062610102366004610644565b61041b565b34801561011357600080fd5b506100c2610482565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a6564000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b3660008037600080366000845af43d6000803e8061020c573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026b575033155b1561027c576102798161050e565b50565b61027961011c565b60606102ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e5575033155b15610375576102f38461050e565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031d929190610755565b600060405180830381855af49150503d8060008114610358576040519150601f19603f3d011682016040523d82523d6000602084013e61035d565b606091505b50915091508161036c57600080fd5b915061037d9050565b61037d61011c565b9392505050565b60006103ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103e5575033155b1561041057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61041861011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610474575033155b1561027c5761027981610576565b60006104ac7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104e3575033155b1561041057507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006105a07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461063f57600080fd5b919050565b60006020828403121561065657600080fd5b61037d8261061b565b60008060006040848603121561067457600080fd5b61067d8461061b565b9250602084013567ffffffffffffffff8082111561069a57600080fd5b818601915086601f8301126106ae57600080fd5b8135818111156106bd57600080fd5b8760208285010111156106cf57600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561070f578581018301518582016040015282016106f3565b81811115610721576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", "bytecode": "0x608060405234801561001057600080fd5b5060405161090738038061090783398101604081905261002f916100b2565b6100388161003e565b506100e2565b60006100566000805160206108e78339815191525490565b6000805160206108e7833981519152839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b6000602082840312156100c457600080fd5b81516001600160a01b03811681146100db57600080fd5b9392505050565b6107f6806100f16000396000f3fe60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f3660046106c8565b610213565b6100976100923660046106e3565b610285565b6040516100a49190610766565b60405180910390f35b3480156100b957600080fd5b506100c2610408565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b506100626101023660046106c8565b61049f565b34801561011357600080fd5b506100c2610506565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8061020d573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026c575033155b1561027d5761027a81610592565b50565b61027a61011c565b60606102af7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e6575033155b156103f9576102f484610592565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031e9291906107d9565b600060405180830381855af49150503d8060008114610359576040519150601f19603f3d011682016040523d82523d6000602084013e61035e565b606091505b5091509150816103f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c65640000000000000060648201526084016101e7565b91506104019050565b61040161011c565b9392505050565b60006104327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610469575033155b1561049457507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61049c61011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104f8575033155b1561027d5761027a816105fa565b60006105307fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610567575033155b1561049457507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006106247fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106c357600080fd5b919050565b6000602082840312156106da57600080fd5b6104018261069f565b6000806000604084860312156106f857600080fd5b6107018461069f565b9250602084013567ffffffffffffffff8082111561071e57600080fd5b818601915086601f83011261073257600080fd5b81358181111561074157600080fd5b87602082850101111561075357600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561079357858101830151858201604001528201610777565b818111156107a5576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103",
"deployedBytecode": "0x60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f366004610644565b610212565b61009761009236600461065f565b610284565b6040516100a491906106e2565b60405180910390f35b3480156100b957600080fd5b506100c2610384565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b50610062610102366004610644565b61041b565b34801561011357600080fd5b506100c2610482565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a6564000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b3660008037600080366000845af43d6000803e8061020c573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026b575033155b1561027c576102798161050e565b50565b61027961011c565b60606102ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e5575033155b15610375576102f38461050e565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031d929190610755565b600060405180830381855af49150503d8060008114610358576040519150601f19603f3d011682016040523d82523d6000602084013e61035d565b606091505b50915091508161036c57600080fd5b915061037d9050565b61037d61011c565b9392505050565b60006103ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103e5575033155b1561041057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61041861011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610474575033155b1561027c5761027981610576565b60006104ac7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104e3575033155b1561041057507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006105a07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461063f57600080fd5b919050565b60006020828403121561065657600080fd5b61037d8261061b565b60008060006040848603121561067457600080fd5b61067d8461061b565b9250602084013567ffffffffffffffff8082111561069a57600080fd5b818601915086601f8301126106ae57600080fd5b8135818111156106bd57600080fd5b8760208285010111156106cf57600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561070f578581018301518582016040015282016106f3565b81811115610721576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000a", "deployedBytecode": "0x60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f3660046106c8565b610213565b6100976100923660046106e3565b610285565b6040516100a49190610766565b60405180910390f35b3480156100b957600080fd5b506100c2610408565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b506100626101023660046106c8565b61049f565b34801561011357600080fd5b506100c2610506565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8061020d573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026c575033155b1561027d5761027a81610592565b50565b61027a61011c565b60606102af7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e6575033155b156103f9576102f484610592565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031e9291906107d9565b600060405180830381855af49150503d8060008114610359576040519150601f19603f3d011682016040523d82523d6000602084013e61035e565b606091505b5091509150816103f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c65640000000000000060648201526084016101e7565b91506104019050565b61040161011c565b9392505050565b60006104327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610469575033155b1561049457507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61049c61011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104f8575033155b1561027d5761027a816105fa565b60006105307fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610567575033155b1561049457507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006106247fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106c357600080fd5b919050565b6000602082840312156106da57600080fd5b6104018261069f565b6000806000604084860312156106f857600080fd5b6107018461069f565b9250602084013567ffffffffffffffff8082111561071e57600080fd5b818601915086601f83011261073257600080fd5b81358181111561074157600080fd5b87602082850101111561075357600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561079357858101830151858201604001528201610777565b818111156107a5576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000a",
"devdoc": { "devdoc": {
"version": 1, "version": 1,
"kind": "dev", "kind": "dev",
...@@ -178,7 +178,7 @@ ...@@ -178,7 +178,7 @@
}, },
"constructor": { "constructor": {
"params": { "params": {
"_admin": "Address of the initial contract owner. The owner has the ability to access the transparent proxy interface." "_admin": "Address of the initial contract admin. Admin as the ability to access the transparent proxy interface."
} }
}, },
"implementation()": { "implementation()": {
...@@ -188,13 +188,13 @@ ...@@ -188,13 +188,13 @@
}, },
"upgradeTo(address)": { "upgradeTo(address)": {
"params": { "params": {
"_implementation": "The address of the implementation contract" "_implementation": "Address of the implementation contract."
} }
}, },
"upgradeToAndCall(address,bytes)": { "upgradeToAndCall(address,bytes)": {
"params": { "params": {
"_data": "The calldata to delegatecall the new implementation with", "_data": "Calldata to delegatecall the new implementation with.",
"_implementation": "The address of the implementation contract" "_implementation": "Address of the implementation contract."
} }
} }
}, },
...@@ -224,26 +224,26 @@ ...@@ -224,26 +224,26 @@
"notice": "Changes the owner of the proxy contract. Only callable by the owner." "notice": "Changes the owner of the proxy contract. Only callable by the owner."
}, },
"constructor": { "constructor": {
"notice": "set the initial owner during contract deployment. The owner is stored at the eip1967 owner storage slot so that storage collision with the implementation is not possible." "notice": "Sets the initial admin during contract deployment. Admin address is stored at the EIP-1967 admin storage slot so that accidental storage collision with the implementation is not possible."
}, },
"implementation()": { "implementation()": {
"notice": "Queries the implementation address." "notice": "Queries the implementation address."
}, },
"upgradeTo(address)": { "upgradeTo(address)": {
"notice": "Set the implementation contract address. The code at this address will execute when this contract is called." "notice": "Set the implementation contract address. The code at the given address will execute when this contract is called."
}, },
"upgradeToAndCall(address,bytes)": { "upgradeToAndCall(address,bytes)": {
"notice": "Set the implementation and call a function in a single transaction. This is useful to ensure atomic `initialize()` based upgrades." "notice": "Set the implementation and call a function in a single transaction. Useful to ensure atomic execution of initialization-based upgrades."
} }
}, },
"events": { "events": {
"AdminChanged(address,address)": { "AdminChanged(address,address)": {
"notice": "An event that is emitted each time the owner is upgraded. This event is part of the EIP 1967 spec." "notice": "An event that is emitted each time the owner is upgraded. This event is part of the EIP-1967 specification."
}, },
"Upgraded(address)": { "Upgraded(address)": {
"notice": "An event that is emitted each time the implementation is changed. This event is part of the EIP 1967 spec." "notice": "An event that is emitted each time the implementation is changed. This event is part of the EIP-1967 specification."
} }
}, },
"notice": "Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is `address(0)`, meaning that the call originated from an offchain simulation." "notice": "Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is address(0), meaning that the call originated from an off-chain simulation."
} }
} }
\ No newline at end of file
{ {
"address": "0xA959fF505C54c5641341E29dC81E7cd2Bf647f9a", "address": "0x8D421F3880eBBF8DF62165d542baF08a62bDe913",
"abi": [ "abi": [
{ {
"inputs": [ "inputs": [
...@@ -125,43 +125,43 @@ ...@@ -125,43 +125,43 @@
"type": "function" "type": "function"
} }
], ],
"transactionHash": "0x3284a07fa6fd16b463f385b142b76310865fdda878d35e254e03955434d1cdec", "transactionHash": "0xf2207c1d7b4e179c46225f44785fbc9882a944393c1c306fb47923f9d1db054c",
"receipt": { "receipt": {
"to": null, "to": null,
"from": "0xCFf7a9856DB3C60AB546b8F43dC5D1A4336786A0", "from": "0x3a605B442055DF2898E18cF518feb2e2A6BD0D31",
"contractAddress": "0xA959fF505C54c5641341E29dC81E7cd2Bf647f9a", "contractAddress": "0x8D421F3880eBBF8DF62165d542baF08a62bDe913",
"transactionIndex": 1, "transactionIndex": 0,
"gasUsed": "492029", "gasUsed": "520158",
"logsBloom": "0x00000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000002000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000200000000000000000000000000000", "logsBloom": "0x00000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0xed3753441bf4c45ca8ed9335d9df6f77e7549d459bc1069d005258949441ef58", "blockHash": "0xc169aa9cfa3c64f0ba68c2bbd4f7deafb29d56b00e91a73c26346cfdc2071fc6",
"transactionHash": "0x3284a07fa6fd16b463f385b142b76310865fdda878d35e254e03955434d1cdec", "transactionHash": "0xf2207c1d7b4e179c46225f44785fbc9882a944393c1c306fb47923f9d1db054c",
"logs": [ "logs": [
{ {
"transactionIndex": 1, "transactionIndex": 0,
"blockNumber": 7149183, "blockNumber": 7209638,
"transactionHash": "0x3284a07fa6fd16b463f385b142b76310865fdda878d35e254e03955434d1cdec", "transactionHash": "0xf2207c1d7b4e179c46225f44785fbc9882a944393c1c306fb47923f9d1db054c",
"address": "0xA959fF505C54c5641341E29dC81E7cd2Bf647f9a", "address": "0x8D421F3880eBBF8DF62165d542baF08a62bDe913",
"topics": [ "topics": [
"0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"
], ],
"data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cff7a9856db3c60ab546b8f43dc5d1a4336786a0", "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a605b442055df2898e18cf518feb2e2a6bd0d31",
"logIndex": 4, "logIndex": 0,
"blockHash": "0xed3753441bf4c45ca8ed9335d9df6f77e7549d459bc1069d005258949441ef58" "blockHash": "0xc169aa9cfa3c64f0ba68c2bbd4f7deafb29d56b00e91a73c26346cfdc2071fc6"
} }
], ],
"blockNumber": 7149183, "blockNumber": 7209638,
"cumulativeGasUsed": "640427", "cumulativeGasUsed": "520158",
"status": 1, "status": 1,
"byzantium": true "byzantium": true
}, },
"args": [ "args": [
"0xCFf7a9856DB3C60AB546b8F43dC5D1A4336786A0" "0x3a605B442055DF2898E18cF518feb2e2A6BD0D31"
], ],
"numDeployments": 1, "numDeployments": 1,
"solcInputHash": "6658e3fd5601f689e56bcac3b135b23e", "solcInputHash": "599c82b18bfb932a0753a57de385b407",
"metadata": "\"{\\\"compiler\\\":{\\\"version\\\":\\\"0.8.10+commit.fc410830\\\"},\\\"language\\\":\\\"Solidity\\\",\\\"output\\\":{\\\"abi\\\":[{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"constructor\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"previousAdmin\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"newAdmin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"AdminChanged\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"Upgraded\\\",\\\"type\\\":\\\"event\\\"},{\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"fallback\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"admin\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"changeAdmin\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"implementation\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"upgradeTo\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"_data\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"name\\\":\\\"upgradeToAndCall\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"function\\\"}],\\\"devdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"params\\\":{\\\"newAdmin\\\":\\\"The new owner of the contract\\\",\\\"previousAdmin\\\":\\\"The previous owner of the contract\\\"}},\\\"Upgraded(address)\\\":{\\\"params\\\":{\\\"implementation\\\":\\\"The address of the implementation contract\\\"}}},\\\"kind\\\":\\\"dev\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Owner address.\\\"}},\\\"changeAdmin(address)\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"New owner of the proxy contract.\\\"}},\\\"constructor\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"Address of the initial contract owner. The owner has the ability to access the transparent proxy interface.\\\"}},\\\"implementation()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Implementation address.\\\"}},\\\"upgradeTo(address)\\\":{\\\"params\\\":{\\\"_implementation\\\":\\\"The address of the implementation contract\\\"}},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"params\\\":{\\\"_data\\\":\\\"The calldata to delegatecall the new implementation with\\\",\\\"_implementation\\\":\\\"The address of the implementation contract\\\"}}},\\\"title\\\":\\\"Proxy\\\",\\\"version\\\":1},\\\"userdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the owner is upgraded. This event is part of the EIP 1967 spec.\\\"},\\\"Upgraded(address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the implementation is changed. This event is part of the EIP 1967 spec.\\\"}},\\\"kind\\\":\\\"user\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"notice\\\":\\\"Gets the owner of the proxy contract.\\\"},\\\"changeAdmin(address)\\\":{\\\"notice\\\":\\\"Changes the owner of the proxy contract. Only callable by the owner.\\\"},\\\"constructor\\\":{\\\"notice\\\":\\\"set the initial owner during contract deployment. The owner is stored at the eip1967 owner storage slot so that storage collision with the implementation is not possible.\\\"},\\\"implementation()\\\":{\\\"notice\\\":\\\"Queries the implementation address.\\\"},\\\"upgradeTo(address)\\\":{\\\"notice\\\":\\\"Set the implementation contract address. The code at this address will execute when this contract is called.\\\"},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"notice\\\":\\\"Set the implementation and call a function in a single transaction. This is useful to ensure atomic `initialize()` based upgrades.\\\"}},\\\"notice\\\":\\\"Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is `address(0)`, meaning that the call originated from an offchain simulation.\\\",\\\"version\\\":1}},\\\"settings\\\":{\\\"compilationTarget\\\":{\\\"contracts/universal/Proxy.sol\\\":\\\"Proxy\\\"},\\\"evmVersion\\\":\\\"london\\\",\\\"libraries\\\":{},\\\"metadata\\\":{\\\"bytecodeHash\\\":\\\"none\\\"},\\\"optimizer\\\":{\\\"enabled\\\":true,\\\"runs\\\":999999},\\\"remappings\\\":[\\\":@openzeppelin/=node_modules/@openzeppelin/\\\",\\\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\\\",\\\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\\\",\\\":@rari-capital/=node_modules/@rari-capital/\\\",\\\":@rari-capital/solmate/=node_modules/@rari-capital/solmate/\\\",\\\":contracts/=contracts/\\\",\\\":ds-test/=node_modules/ds-test/src/\\\",\\\":excessively-safe-call/=node_modules/excessively-safe-call/\\\",\\\":forge-std/=node_modules/forge-std/src/\\\",\\\":test/=test/\\\"]},\\\"sources\\\":{\\\"contracts/universal/Proxy.sol\\\":{\\\"keccak256\\\":\\\"0x2a6719fd9a11adf0efba0243e5c68d56b255296b84cc82bd39326c902e055077\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://bb38ea7b5b0423b752c65450e24b925a638cf70982e6e161c7a07417c64f3720\\\",\\\"dweb:/ipfs/QmfT9ht3nDRNqYwB5gpQBnTZErTgrKFVkETmGeoc6hDDeQ\\\"]}},\\\"version\\\":1}\"", "metadata": "\"{\\\"compiler\\\":{\\\"version\\\":\\\"0.8.10+commit.fc410830\\\"},\\\"language\\\":\\\"Solidity\\\",\\\"output\\\":{\\\"abi\\\":[{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"constructor\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"previousAdmin\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"newAdmin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"AdminChanged\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"Upgraded\\\",\\\"type\\\":\\\"event\\\"},{\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"fallback\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"admin\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"changeAdmin\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"implementation\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"upgradeTo\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"_data\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"name\\\":\\\"upgradeToAndCall\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"function\\\"}],\\\"devdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"params\\\":{\\\"newAdmin\\\":\\\"The new owner of the contract\\\",\\\"previousAdmin\\\":\\\"The previous owner of the contract\\\"}},\\\"Upgraded(address)\\\":{\\\"params\\\":{\\\"implementation\\\":\\\"The address of the implementation contract\\\"}}},\\\"kind\\\":\\\"dev\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Owner address.\\\"}},\\\"changeAdmin(address)\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"New owner of the proxy contract.\\\"}},\\\"constructor\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"Address of the initial contract admin. Admin as the ability to access the transparent proxy interface.\\\"}},\\\"implementation()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Implementation address.\\\"}},\\\"upgradeTo(address)\\\":{\\\"params\\\":{\\\"_implementation\\\":\\\"Address of the implementation contract.\\\"}},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"params\\\":{\\\"_data\\\":\\\"Calldata to delegatecall the new implementation with.\\\",\\\"_implementation\\\":\\\"Address of the implementation contract.\\\"}}},\\\"title\\\":\\\"Proxy\\\",\\\"version\\\":1},\\\"userdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the owner is upgraded. This event is part of the EIP-1967 specification.\\\"},\\\"Upgraded(address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the implementation is changed. This event is part of the EIP-1967 specification.\\\"}},\\\"kind\\\":\\\"user\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"notice\\\":\\\"Gets the owner of the proxy contract.\\\"},\\\"changeAdmin(address)\\\":{\\\"notice\\\":\\\"Changes the owner of the proxy contract. Only callable by the owner.\\\"},\\\"constructor\\\":{\\\"notice\\\":\\\"Sets the initial admin during contract deployment. Admin address is stored at the EIP-1967 admin storage slot so that accidental storage collision with the implementation is not possible.\\\"},\\\"implementation()\\\":{\\\"notice\\\":\\\"Queries the implementation address.\\\"},\\\"upgradeTo(address)\\\":{\\\"notice\\\":\\\"Set the implementation contract address. The code at the given address will execute when this contract is called.\\\"},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"notice\\\":\\\"Set the implementation and call a function in a single transaction. Useful to ensure atomic execution of initialization-based upgrades.\\\"}},\\\"notice\\\":\\\"Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is address(0), meaning that the call originated from an off-chain simulation.\\\",\\\"version\\\":1}},\\\"settings\\\":{\\\"compilationTarget\\\":{\\\"contracts/universal/Proxy.sol\\\":\\\"Proxy\\\"},\\\"evmVersion\\\":\\\"london\\\",\\\"libraries\\\":{},\\\"metadata\\\":{\\\"bytecodeHash\\\":\\\"none\\\"},\\\"optimizer\\\":{\\\"enabled\\\":true,\\\"runs\\\":999999},\\\"remappings\\\":[\\\":@openzeppelin/=node_modules/@openzeppelin/\\\",\\\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\\\",\\\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\\\",\\\":@rari-capital/=node_modules/@rari-capital/\\\",\\\":@rari-capital/solmate/=node_modules/@rari-capital/solmate/\\\",\\\":contracts/=contracts/\\\",\\\":ds-test/=node_modules/ds-test/src/\\\",\\\":excessively-safe-call/=node_modules/excessively-safe-call/\\\",\\\":forge-std/=node_modules/forge-std/src/\\\",\\\":test/=test/\\\"]},\\\"sources\\\":{\\\"contracts/universal/Proxy.sol\\\":{\\\"keccak256\\\":\\\"0xfbd3b9b280c82e08ed10690e0aa683cfa97417139f83349e89a38e01f9601422\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://579a350f080617001c0f747414e5160f7b1c571c381137a759b54d8278450531\\\",\\\"dweb:/ipfs/QmP2wjj8pGwXx64oYCGftF1XbKceMge9ByqxdrX8UjEdR9\\\"]}},\\\"version\\\":1}\"",
"bytecode": "0x608060405234801561001057600080fd5b5060405161088338038061088383398101604081905261002f916100b2565b6100388161003e565b506100e2565b60006100566000805160206108638339815191525490565b600080516020610863833981519152839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b6000602082840312156100c457600080fd5b81516001600160a01b03811681146100db57600080fd5b9392505050565b610772806100f16000396000f3fe60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f366004610644565b610212565b61009761009236600461065f565b610284565b6040516100a491906106e2565b60405180910390f35b3480156100b957600080fd5b506100c2610384565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b50610062610102366004610644565b61041b565b34801561011357600080fd5b506100c2610482565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a6564000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b3660008037600080366000845af43d6000803e8061020c573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026b575033155b1561027c576102798161050e565b50565b61027961011c565b60606102ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e5575033155b15610375576102f38461050e565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031d929190610755565b600060405180830381855af49150503d8060008114610358576040519150601f19603f3d011682016040523d82523d6000602084013e61035d565b606091505b50915091508161036c57600080fd5b915061037d9050565b61037d61011c565b9392505050565b60006103ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103e5575033155b1561041057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61041861011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610474575033155b1561027c5761027981610576565b60006104ac7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104e3575033155b1561041057507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006105a07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461063f57600080fd5b919050565b60006020828403121561065657600080fd5b61037d8261061b565b60008060006040848603121561067457600080fd5b61067d8461061b565b9250602084013567ffffffffffffffff8082111561069a57600080fd5b818601915086601f8301126106ae57600080fd5b8135818111156106bd57600080fd5b8760208285010111156106cf57600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561070f578581018301518582016040015282016106f3565b81811115610721576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", "bytecode": "0x608060405234801561001057600080fd5b5060405161090738038061090783398101604081905261002f916100b2565b6100388161003e565b506100e2565b60006100566000805160206108e78339815191525490565b6000805160206108e7833981519152839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b6000602082840312156100c457600080fd5b81516001600160a01b03811681146100db57600080fd5b9392505050565b6107f6806100f16000396000f3fe60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f3660046106c8565b610213565b6100976100923660046106e3565b610285565b6040516100a49190610766565b60405180910390f35b3480156100b957600080fd5b506100c2610408565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b506100626101023660046106c8565b61049f565b34801561011357600080fd5b506100c2610506565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8061020d573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026c575033155b1561027d5761027a81610592565b50565b61027a61011c565b60606102af7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e6575033155b156103f9576102f484610592565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031e9291906107d9565b600060405180830381855af49150503d8060008114610359576040519150601f19603f3d011682016040523d82523d6000602084013e61035e565b606091505b5091509150816103f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c65640000000000000060648201526084016101e7565b91506104019050565b61040161011c565b9392505050565b60006104327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610469575033155b1561049457507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61049c61011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104f8575033155b1561027d5761027a816105fa565b60006105307fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610567575033155b1561049457507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006106247fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106c357600080fd5b919050565b6000602082840312156106da57600080fd5b6104018261069f565b6000806000604084860312156106f857600080fd5b6107018461069f565b9250602084013567ffffffffffffffff8082111561071e57600080fd5b818601915086601f83011261073257600080fd5b81358181111561074157600080fd5b87602082850101111561075357600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561079357858101830151858201604001528201610777565b818111156107a5576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103",
"deployedBytecode": "0x60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f366004610644565b610212565b61009761009236600461065f565b610284565b6040516100a491906106e2565b60405180910390f35b3480156100b957600080fd5b506100c2610384565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b50610062610102366004610644565b61041b565b34801561011357600080fd5b506100c2610482565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a6564000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b3660008037600080366000845af43d6000803e8061020c573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026b575033155b1561027c576102798161050e565b50565b61027961011c565b60606102ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e5575033155b15610375576102f38461050e565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031d929190610755565b600060405180830381855af49150503d8060008114610358576040519150601f19603f3d011682016040523d82523d6000602084013e61035d565b606091505b50915091508161036c57600080fd5b915061037d9050565b61037d61011c565b9392505050565b60006103ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103e5575033155b1561041057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61041861011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610474575033155b1561027c5761027981610576565b60006104ac7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104e3575033155b1561041057507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006105a07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461063f57600080fd5b919050565b60006020828403121561065657600080fd5b61037d8261061b565b60008060006040848603121561067457600080fd5b61067d8461061b565b9250602084013567ffffffffffffffff8082111561069a57600080fd5b818601915086601f8301126106ae57600080fd5b8135818111156106bd57600080fd5b8760208285010111156106cf57600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561070f578581018301518582016040015282016106f3565b81811115610721576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000a", "deployedBytecode": "0x60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f3660046106c8565b610213565b6100976100923660046106e3565b610285565b6040516100a49190610766565b60405180910390f35b3480156100b957600080fd5b506100c2610408565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b506100626101023660046106c8565b61049f565b34801561011357600080fd5b506100c2610506565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8061020d573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026c575033155b1561027d5761027a81610592565b50565b61027a61011c565b60606102af7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e6575033155b156103f9576102f484610592565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031e9291906107d9565b600060405180830381855af49150503d8060008114610359576040519150601f19603f3d011682016040523d82523d6000602084013e61035e565b606091505b5091509150816103f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c65640000000000000060648201526084016101e7565b91506104019050565b61040161011c565b9392505050565b60006104327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610469575033155b1561049457507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61049c61011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104f8575033155b1561027d5761027a816105fa565b60006105307fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610567575033155b1561049457507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006106247fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106c357600080fd5b919050565b6000602082840312156106da57600080fd5b6104018261069f565b6000806000604084860312156106f857600080fd5b6107018461069f565b9250602084013567ffffffffffffffff8082111561071e57600080fd5b818601915086601f83011261073257600080fd5b81358181111561074157600080fd5b87602082850101111561075357600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561079357858101830151858201604001528201610777565b818111156107a5576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000a",
"devdoc": { "devdoc": {
"version": 1, "version": 1,
"kind": "dev", "kind": "dev",
...@@ -178,7 +178,7 @@ ...@@ -178,7 +178,7 @@
}, },
"constructor": { "constructor": {
"params": { "params": {
"_admin": "Address of the initial contract owner. The owner has the ability to access the transparent proxy interface." "_admin": "Address of the initial contract admin. Admin as the ability to access the transparent proxy interface."
} }
}, },
"implementation()": { "implementation()": {
...@@ -188,13 +188,13 @@ ...@@ -188,13 +188,13 @@
}, },
"upgradeTo(address)": { "upgradeTo(address)": {
"params": { "params": {
"_implementation": "The address of the implementation contract" "_implementation": "Address of the implementation contract."
} }
}, },
"upgradeToAndCall(address,bytes)": { "upgradeToAndCall(address,bytes)": {
"params": { "params": {
"_data": "The calldata to delegatecall the new implementation with", "_data": "Calldata to delegatecall the new implementation with.",
"_implementation": "The address of the implementation contract" "_implementation": "Address of the implementation contract."
} }
} }
}, },
...@@ -224,26 +224,26 @@ ...@@ -224,26 +224,26 @@
"notice": "Changes the owner of the proxy contract. Only callable by the owner." "notice": "Changes the owner of the proxy contract. Only callable by the owner."
}, },
"constructor": { "constructor": {
"notice": "set the initial owner during contract deployment. The owner is stored at the eip1967 owner storage slot so that storage collision with the implementation is not possible." "notice": "Sets the initial admin during contract deployment. Admin address is stored at the EIP-1967 admin storage slot so that accidental storage collision with the implementation is not possible."
}, },
"implementation()": { "implementation()": {
"notice": "Queries the implementation address." "notice": "Queries the implementation address."
}, },
"upgradeTo(address)": { "upgradeTo(address)": {
"notice": "Set the implementation contract address. The code at this address will execute when this contract is called." "notice": "Set the implementation contract address. The code at the given address will execute when this contract is called."
}, },
"upgradeToAndCall(address,bytes)": { "upgradeToAndCall(address,bytes)": {
"notice": "Set the implementation and call a function in a single transaction. This is useful to ensure atomic `initialize()` based upgrades." "notice": "Set the implementation and call a function in a single transaction. Useful to ensure atomic execution of initialization-based upgrades."
} }
}, },
"events": { "events": {
"AdminChanged(address,address)": { "AdminChanged(address,address)": {
"notice": "An event that is emitted each time the owner is upgraded. This event is part of the EIP 1967 spec." "notice": "An event that is emitted each time the owner is upgraded. This event is part of the EIP-1967 specification."
}, },
"Upgraded(address)": { "Upgraded(address)": {
"notice": "An event that is emitted each time the implementation is changed. This event is part of the EIP 1967 spec." "notice": "An event that is emitted each time the implementation is changed. This event is part of the EIP-1967 specification."
} }
}, },
"notice": "Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is `address(0)`, meaning that the call originated from an offchain simulation." "notice": "Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is address(0), meaning that the call originated from an off-chain simulation."
} }
} }
\ No newline at end of file
{ {
"address": "0x7Ae52934C62F417CdDf1Ea6714eaD677d96cD679", "address": "0x9772e58A8B40d81582da6E225A8E36f5E4989B9b",
"abi": [ "abi": [
{ {
"inputs": [ "inputs": [
...@@ -125,43 +125,43 @@ ...@@ -125,43 +125,43 @@
"type": "function" "type": "function"
} }
], ],
"transactionHash": "0x99199dab418ab77fd3d1ad2900511763e06d80702fb7a7b60b1be5c57122be15", "transactionHash": "0x4d21e4d3cc206ce9a420f215ccebc91d86457644125c07eee8e63a30a805351e",
"receipt": { "receipt": {
"to": null, "to": null,
"from": "0xCFf7a9856DB3C60AB546b8F43dC5D1A4336786A0", "from": "0x3a605B442055DF2898E18cF518feb2e2A6BD0D31",
"contractAddress": "0x7Ae52934C62F417CdDf1Ea6714eaD677d96cD679", "contractAddress": "0x9772e58A8B40d81582da6E225A8E36f5E4989B9b",
"transactionIndex": 2, "transactionIndex": 2,
"gasUsed": "492029", "gasUsed": "520158",
"logsBloom": "0x00000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000400000000000000000000000000000000040000000000000000000000000000000000000000000000000000", "logsBloom": "0x00000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000001000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0xb568c0df99b67d842503233818b1e92c10b4f0e27c32268db580ab27533543b9", "blockHash": "0xf775c8fbe7136bea1e1348fa9981f4607fecb599c3681875dded572df0797c52",
"transactionHash": "0x99199dab418ab77fd3d1ad2900511763e06d80702fb7a7b60b1be5c57122be15", "transactionHash": "0x4d21e4d3cc206ce9a420f215ccebc91d86457644125c07eee8e63a30a805351e",
"logs": [ "logs": [
{ {
"transactionIndex": 2, "transactionIndex": 2,
"blockNumber": 7149172, "blockNumber": 7209628,
"transactionHash": "0x99199dab418ab77fd3d1ad2900511763e06d80702fb7a7b60b1be5c57122be15", "transactionHash": "0x4d21e4d3cc206ce9a420f215ccebc91d86457644125c07eee8e63a30a805351e",
"address": "0x7Ae52934C62F417CdDf1Ea6714eaD677d96cD679", "address": "0x9772e58A8B40d81582da6E225A8E36f5E4989B9b",
"topics": [ "topics": [
"0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"
], ],
"data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cff7a9856db3c60ab546b8f43dc5d1a4336786a0", "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a605b442055df2898e18cf518feb2e2a6bd0d31",
"logIndex": 0, "logIndex": 0,
"blockHash": "0xb568c0df99b67d842503233818b1e92c10b4f0e27c32268db580ab27533543b9" "blockHash": "0xf775c8fbe7136bea1e1348fa9981f4607fecb599c3681875dded572df0797c52"
} }
], ],
"blockNumber": 7149172, "blockNumber": 7209628,
"cumulativeGasUsed": "629507", "cumulativeGasUsed": "601820",
"status": 1, "status": 1,
"byzantium": true "byzantium": true
}, },
"args": [ "args": [
"0xCFf7a9856DB3C60AB546b8F43dC5D1A4336786A0" "0x3a605B442055DF2898E18cF518feb2e2A6BD0D31"
], ],
"numDeployments": 1, "numDeployments": 1,
"solcInputHash": "6658e3fd5601f689e56bcac3b135b23e", "solcInputHash": "599c82b18bfb932a0753a57de385b407",
"metadata": "\"{\\\"compiler\\\":{\\\"version\\\":\\\"0.8.10+commit.fc410830\\\"},\\\"language\\\":\\\"Solidity\\\",\\\"output\\\":{\\\"abi\\\":[{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"constructor\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"previousAdmin\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"newAdmin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"AdminChanged\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"Upgraded\\\",\\\"type\\\":\\\"event\\\"},{\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"fallback\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"admin\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"changeAdmin\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"implementation\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"upgradeTo\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"_data\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"name\\\":\\\"upgradeToAndCall\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"function\\\"}],\\\"devdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"params\\\":{\\\"newAdmin\\\":\\\"The new owner of the contract\\\",\\\"previousAdmin\\\":\\\"The previous owner of the contract\\\"}},\\\"Upgraded(address)\\\":{\\\"params\\\":{\\\"implementation\\\":\\\"The address of the implementation contract\\\"}}},\\\"kind\\\":\\\"dev\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Owner address.\\\"}},\\\"changeAdmin(address)\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"New owner of the proxy contract.\\\"}},\\\"constructor\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"Address of the initial contract owner. The owner has the ability to access the transparent proxy interface.\\\"}},\\\"implementation()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Implementation address.\\\"}},\\\"upgradeTo(address)\\\":{\\\"params\\\":{\\\"_implementation\\\":\\\"The address of the implementation contract\\\"}},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"params\\\":{\\\"_data\\\":\\\"The calldata to delegatecall the new implementation with\\\",\\\"_implementation\\\":\\\"The address of the implementation contract\\\"}}},\\\"title\\\":\\\"Proxy\\\",\\\"version\\\":1},\\\"userdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the owner is upgraded. This event is part of the EIP 1967 spec.\\\"},\\\"Upgraded(address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the implementation is changed. This event is part of the EIP 1967 spec.\\\"}},\\\"kind\\\":\\\"user\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"notice\\\":\\\"Gets the owner of the proxy contract.\\\"},\\\"changeAdmin(address)\\\":{\\\"notice\\\":\\\"Changes the owner of the proxy contract. Only callable by the owner.\\\"},\\\"constructor\\\":{\\\"notice\\\":\\\"set the initial owner during contract deployment. The owner is stored at the eip1967 owner storage slot so that storage collision with the implementation is not possible.\\\"},\\\"implementation()\\\":{\\\"notice\\\":\\\"Queries the implementation address.\\\"},\\\"upgradeTo(address)\\\":{\\\"notice\\\":\\\"Set the implementation contract address. The code at this address will execute when this contract is called.\\\"},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"notice\\\":\\\"Set the implementation and call a function in a single transaction. This is useful to ensure atomic `initialize()` based upgrades.\\\"}},\\\"notice\\\":\\\"Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is `address(0)`, meaning that the call originated from an offchain simulation.\\\",\\\"version\\\":1}},\\\"settings\\\":{\\\"compilationTarget\\\":{\\\"contracts/universal/Proxy.sol\\\":\\\"Proxy\\\"},\\\"evmVersion\\\":\\\"london\\\",\\\"libraries\\\":{},\\\"metadata\\\":{\\\"bytecodeHash\\\":\\\"none\\\"},\\\"optimizer\\\":{\\\"enabled\\\":true,\\\"runs\\\":999999},\\\"remappings\\\":[\\\":@openzeppelin/=node_modules/@openzeppelin/\\\",\\\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\\\",\\\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\\\",\\\":@rari-capital/=node_modules/@rari-capital/\\\",\\\":@rari-capital/solmate/=node_modules/@rari-capital/solmate/\\\",\\\":contracts/=contracts/\\\",\\\":ds-test/=node_modules/ds-test/src/\\\",\\\":excessively-safe-call/=node_modules/excessively-safe-call/\\\",\\\":forge-std/=node_modules/forge-std/src/\\\",\\\":test/=test/\\\"]},\\\"sources\\\":{\\\"contracts/universal/Proxy.sol\\\":{\\\"keccak256\\\":\\\"0x2a6719fd9a11adf0efba0243e5c68d56b255296b84cc82bd39326c902e055077\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://bb38ea7b5b0423b752c65450e24b925a638cf70982e6e161c7a07417c64f3720\\\",\\\"dweb:/ipfs/QmfT9ht3nDRNqYwB5gpQBnTZErTgrKFVkETmGeoc6hDDeQ\\\"]}},\\\"version\\\":1}\"", "metadata": "\"{\\\"compiler\\\":{\\\"version\\\":\\\"0.8.10+commit.fc410830\\\"},\\\"language\\\":\\\"Solidity\\\",\\\"output\\\":{\\\"abi\\\":[{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"constructor\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"previousAdmin\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"newAdmin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"AdminChanged\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"Upgraded\\\",\\\"type\\\":\\\"event\\\"},{\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"fallback\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"admin\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"changeAdmin\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"implementation\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"upgradeTo\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"_data\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"name\\\":\\\"upgradeToAndCall\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"function\\\"}],\\\"devdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"params\\\":{\\\"newAdmin\\\":\\\"The new owner of the contract\\\",\\\"previousAdmin\\\":\\\"The previous owner of the contract\\\"}},\\\"Upgraded(address)\\\":{\\\"params\\\":{\\\"implementation\\\":\\\"The address of the implementation contract\\\"}}},\\\"kind\\\":\\\"dev\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Owner address.\\\"}},\\\"changeAdmin(address)\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"New owner of the proxy contract.\\\"}},\\\"constructor\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"Address of the initial contract admin. Admin as the ability to access the transparent proxy interface.\\\"}},\\\"implementation()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Implementation address.\\\"}},\\\"upgradeTo(address)\\\":{\\\"params\\\":{\\\"_implementation\\\":\\\"Address of the implementation contract.\\\"}},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"params\\\":{\\\"_data\\\":\\\"Calldata to delegatecall the new implementation with.\\\",\\\"_implementation\\\":\\\"Address of the implementation contract.\\\"}}},\\\"title\\\":\\\"Proxy\\\",\\\"version\\\":1},\\\"userdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the owner is upgraded. This event is part of the EIP-1967 specification.\\\"},\\\"Upgraded(address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the implementation is changed. This event is part of the EIP-1967 specification.\\\"}},\\\"kind\\\":\\\"user\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"notice\\\":\\\"Gets the owner of the proxy contract.\\\"},\\\"changeAdmin(address)\\\":{\\\"notice\\\":\\\"Changes the owner of the proxy contract. Only callable by the owner.\\\"},\\\"constructor\\\":{\\\"notice\\\":\\\"Sets the initial admin during contract deployment. Admin address is stored at the EIP-1967 admin storage slot so that accidental storage collision with the implementation is not possible.\\\"},\\\"implementation()\\\":{\\\"notice\\\":\\\"Queries the implementation address.\\\"},\\\"upgradeTo(address)\\\":{\\\"notice\\\":\\\"Set the implementation contract address. The code at the given address will execute when this contract is called.\\\"},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"notice\\\":\\\"Set the implementation and call a function in a single transaction. Useful to ensure atomic execution of initialization-based upgrades.\\\"}},\\\"notice\\\":\\\"Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is address(0), meaning that the call originated from an off-chain simulation.\\\",\\\"version\\\":1}},\\\"settings\\\":{\\\"compilationTarget\\\":{\\\"contracts/universal/Proxy.sol\\\":\\\"Proxy\\\"},\\\"evmVersion\\\":\\\"london\\\",\\\"libraries\\\":{},\\\"metadata\\\":{\\\"bytecodeHash\\\":\\\"none\\\"},\\\"optimizer\\\":{\\\"enabled\\\":true,\\\"runs\\\":999999},\\\"remappings\\\":[\\\":@openzeppelin/=node_modules/@openzeppelin/\\\",\\\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\\\",\\\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\\\",\\\":@rari-capital/=node_modules/@rari-capital/\\\",\\\":@rari-capital/solmate/=node_modules/@rari-capital/solmate/\\\",\\\":contracts/=contracts/\\\",\\\":ds-test/=node_modules/ds-test/src/\\\",\\\":excessively-safe-call/=node_modules/excessively-safe-call/\\\",\\\":forge-std/=node_modules/forge-std/src/\\\",\\\":test/=test/\\\"]},\\\"sources\\\":{\\\"contracts/universal/Proxy.sol\\\":{\\\"keccak256\\\":\\\"0xfbd3b9b280c82e08ed10690e0aa683cfa97417139f83349e89a38e01f9601422\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://579a350f080617001c0f747414e5160f7b1c571c381137a759b54d8278450531\\\",\\\"dweb:/ipfs/QmP2wjj8pGwXx64oYCGftF1XbKceMge9ByqxdrX8UjEdR9\\\"]}},\\\"version\\\":1}\"",
"bytecode": "0x608060405234801561001057600080fd5b5060405161088338038061088383398101604081905261002f916100b2565b6100388161003e565b506100e2565b60006100566000805160206108638339815191525490565b600080516020610863833981519152839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b6000602082840312156100c457600080fd5b81516001600160a01b03811681146100db57600080fd5b9392505050565b610772806100f16000396000f3fe60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f366004610644565b610212565b61009761009236600461065f565b610284565b6040516100a491906106e2565b60405180910390f35b3480156100b957600080fd5b506100c2610384565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b50610062610102366004610644565b61041b565b34801561011357600080fd5b506100c2610482565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a6564000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b3660008037600080366000845af43d6000803e8061020c573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026b575033155b1561027c576102798161050e565b50565b61027961011c565b60606102ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e5575033155b15610375576102f38461050e565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031d929190610755565b600060405180830381855af49150503d8060008114610358576040519150601f19603f3d011682016040523d82523d6000602084013e61035d565b606091505b50915091508161036c57600080fd5b915061037d9050565b61037d61011c565b9392505050565b60006103ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103e5575033155b1561041057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61041861011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610474575033155b1561027c5761027981610576565b60006104ac7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104e3575033155b1561041057507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006105a07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461063f57600080fd5b919050565b60006020828403121561065657600080fd5b61037d8261061b565b60008060006040848603121561067457600080fd5b61067d8461061b565b9250602084013567ffffffffffffffff8082111561069a57600080fd5b818601915086601f8301126106ae57600080fd5b8135818111156106bd57600080fd5b8760208285010111156106cf57600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561070f578581018301518582016040015282016106f3565b81811115610721576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", "bytecode": "0x608060405234801561001057600080fd5b5060405161090738038061090783398101604081905261002f916100b2565b6100388161003e565b506100e2565b60006100566000805160206108e78339815191525490565b6000805160206108e7833981519152839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b6000602082840312156100c457600080fd5b81516001600160a01b03811681146100db57600080fd5b9392505050565b6107f6806100f16000396000f3fe60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f3660046106c8565b610213565b6100976100923660046106e3565b610285565b6040516100a49190610766565b60405180910390f35b3480156100b957600080fd5b506100c2610408565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b506100626101023660046106c8565b61049f565b34801561011357600080fd5b506100c2610506565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8061020d573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026c575033155b1561027d5761027a81610592565b50565b61027a61011c565b60606102af7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e6575033155b156103f9576102f484610592565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031e9291906107d9565b600060405180830381855af49150503d8060008114610359576040519150601f19603f3d011682016040523d82523d6000602084013e61035e565b606091505b5091509150816103f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c65640000000000000060648201526084016101e7565b91506104019050565b61040161011c565b9392505050565b60006104327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610469575033155b1561049457507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61049c61011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104f8575033155b1561027d5761027a816105fa565b60006105307fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610567575033155b1561049457507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006106247fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106c357600080fd5b919050565b6000602082840312156106da57600080fd5b6104018261069f565b6000806000604084860312156106f857600080fd5b6107018461069f565b9250602084013567ffffffffffffffff8082111561071e57600080fd5b818601915086601f83011261073257600080fd5b81358181111561074157600080fd5b87602082850101111561075357600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561079357858101830151858201604001528201610777565b818111156107a5576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103",
"deployedBytecode": "0x60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f366004610644565b610212565b61009761009236600461065f565b610284565b6040516100a491906106e2565b60405180910390f35b3480156100b957600080fd5b506100c2610384565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b50610062610102366004610644565b61041b565b34801561011357600080fd5b506100c2610482565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a6564000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b3660008037600080366000845af43d6000803e8061020c573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026b575033155b1561027c576102798161050e565b50565b61027961011c565b60606102ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e5575033155b15610375576102f38461050e565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031d929190610755565b600060405180830381855af49150503d8060008114610358576040519150601f19603f3d011682016040523d82523d6000602084013e61035d565b606091505b50915091508161036c57600080fd5b915061037d9050565b61037d61011c565b9392505050565b60006103ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103e5575033155b1561041057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61041861011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610474575033155b1561027c5761027981610576565b60006104ac7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104e3575033155b1561041057507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006105a07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461063f57600080fd5b919050565b60006020828403121561065657600080fd5b61037d8261061b565b60008060006040848603121561067457600080fd5b61067d8461061b565b9250602084013567ffffffffffffffff8082111561069a57600080fd5b818601915086601f8301126106ae57600080fd5b8135818111156106bd57600080fd5b8760208285010111156106cf57600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561070f578581018301518582016040015282016106f3565b81811115610721576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000a", "deployedBytecode": "0x60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f3660046106c8565b610213565b6100976100923660046106e3565b610285565b6040516100a49190610766565b60405180910390f35b3480156100b957600080fd5b506100c2610408565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b506100626101023660046106c8565b61049f565b34801561011357600080fd5b506100c2610506565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8061020d573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026c575033155b1561027d5761027a81610592565b50565b61027a61011c565b60606102af7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e6575033155b156103f9576102f484610592565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031e9291906107d9565b600060405180830381855af49150503d8060008114610359576040519150601f19603f3d011682016040523d82523d6000602084013e61035e565b606091505b5091509150816103f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c65640000000000000060648201526084016101e7565b91506104019050565b61040161011c565b9392505050565b60006104327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610469575033155b1561049457507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61049c61011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104f8575033155b1561027d5761027a816105fa565b60006105307fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610567575033155b1561049457507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006106247fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106c357600080fd5b919050565b6000602082840312156106da57600080fd5b6104018261069f565b6000806000604084860312156106f857600080fd5b6107018461069f565b9250602084013567ffffffffffffffff8082111561071e57600080fd5b818601915086601f83011261073257600080fd5b81358181111561074157600080fd5b87602082850101111561075357600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561079357858101830151858201604001528201610777565b818111156107a5576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000a",
"devdoc": { "devdoc": {
"version": 1, "version": 1,
"kind": "dev", "kind": "dev",
...@@ -178,7 +178,7 @@ ...@@ -178,7 +178,7 @@
}, },
"constructor": { "constructor": {
"params": { "params": {
"_admin": "Address of the initial contract owner. The owner has the ability to access the transparent proxy interface." "_admin": "Address of the initial contract admin. Admin as the ability to access the transparent proxy interface."
} }
}, },
"implementation()": { "implementation()": {
...@@ -188,13 +188,13 @@ ...@@ -188,13 +188,13 @@
}, },
"upgradeTo(address)": { "upgradeTo(address)": {
"params": { "params": {
"_implementation": "The address of the implementation contract" "_implementation": "Address of the implementation contract."
} }
}, },
"upgradeToAndCall(address,bytes)": { "upgradeToAndCall(address,bytes)": {
"params": { "params": {
"_data": "The calldata to delegatecall the new implementation with", "_data": "Calldata to delegatecall the new implementation with.",
"_implementation": "The address of the implementation contract" "_implementation": "Address of the implementation contract."
} }
} }
}, },
...@@ -224,26 +224,26 @@ ...@@ -224,26 +224,26 @@
"notice": "Changes the owner of the proxy contract. Only callable by the owner." "notice": "Changes the owner of the proxy contract. Only callable by the owner."
}, },
"constructor": { "constructor": {
"notice": "set the initial owner during contract deployment. The owner is stored at the eip1967 owner storage slot so that storage collision with the implementation is not possible." "notice": "Sets the initial admin during contract deployment. Admin address is stored at the EIP-1967 admin storage slot so that accidental storage collision with the implementation is not possible."
}, },
"implementation()": { "implementation()": {
"notice": "Queries the implementation address." "notice": "Queries the implementation address."
}, },
"upgradeTo(address)": { "upgradeTo(address)": {
"notice": "Set the implementation contract address. The code at this address will execute when this contract is called." "notice": "Set the implementation contract address. The code at the given address will execute when this contract is called."
}, },
"upgradeToAndCall(address,bytes)": { "upgradeToAndCall(address,bytes)": {
"notice": "Set the implementation and call a function in a single transaction. This is useful to ensure atomic `initialize()` based upgrades." "notice": "Set the implementation and call a function in a single transaction. Useful to ensure atomic execution of initialization-based upgrades."
} }
}, },
"events": { "events": {
"AdminChanged(address,address)": { "AdminChanged(address,address)": {
"notice": "An event that is emitted each time the owner is upgraded. This event is part of the EIP 1967 spec." "notice": "An event that is emitted each time the owner is upgraded. This event is part of the EIP-1967 specification."
}, },
"Upgraded(address)": { "Upgraded(address)": {
"notice": "An event that is emitted each time the implementation is changed. This event is part of the EIP 1967 spec." "notice": "An event that is emitted each time the implementation is changed. This event is part of the EIP-1967 specification."
} }
}, },
"notice": "Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is `address(0)`, meaning that the call originated from an offchain simulation." "notice": "Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is address(0), meaning that the call originated from an off-chain simulation."
} }
} }
\ No newline at end of file
{
"address": "0x4a9679954EF1103aD367cF9F966b663246d69b14",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_admin",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "previousAdmin",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newAdmin",
"type": "address"
}
],
"name": "AdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "admin",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_admin",
"type": "address"
}
],
"name": "changeAdmin",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "implementation",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_implementation",
"type": "address"
}
],
"name": "upgradeTo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_implementation",
"type": "address"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "upgradeToAndCall",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "payable",
"type": "function"
}
],
"transactionHash": "0x2112d79fa8148143ec54b40cc0b776765c5d87c8428e193749bfd1beb4bc0852",
"receipt": {
"to": null,
"from": "0xCFf7a9856DB3C60AB546b8F43dC5D1A4336786A0",
"contractAddress": "0x4a9679954EF1103aD367cF9F966b663246d69b14",
"transactionIndex": 7,
"gasUsed": "492029",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000200000000000000000000000000000000000000004",
"blockHash": "0x881fe6c9afb41667c42cf7c2a25c322d9cadfbbab548ccd4ae61e2c288ac3864",
"transactionHash": "0x2112d79fa8148143ec54b40cc0b776765c5d87c8428e193749bfd1beb4bc0852",
"logs": [
{
"transactionIndex": 7,
"blockNumber": 7149187,
"transactionHash": "0x2112d79fa8148143ec54b40cc0b776765c5d87c8428e193749bfd1beb4bc0852",
"address": "0x4a9679954EF1103aD367cF9F966b663246d69b14",
"topics": [
"0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"
],
"data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cff7a9856db3c60ab546b8f43dc5d1a4336786a0",
"logIndex": 31,
"blockHash": "0x881fe6c9afb41667c42cf7c2a25c322d9cadfbbab548ccd4ae61e2c288ac3864"
}
],
"blockNumber": 7149187,
"cumulativeGasUsed": "2108190",
"status": 1,
"byzantium": true
},
"args": [
"0xCFf7a9856DB3C60AB546b8F43dC5D1A4336786A0"
],
"numDeployments": 1,
"solcInputHash": "6658e3fd5601f689e56bcac3b135b23e",
"metadata": "\"{\\\"compiler\\\":{\\\"version\\\":\\\"0.8.10+commit.fc410830\\\"},\\\"language\\\":\\\"Solidity\\\",\\\"output\\\":{\\\"abi\\\":[{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"constructor\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"previousAdmin\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"newAdmin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"AdminChanged\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"Upgraded\\\",\\\"type\\\":\\\"event\\\"},{\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"fallback\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"admin\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"changeAdmin\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"implementation\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"upgradeTo\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"_data\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"name\\\":\\\"upgradeToAndCall\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"function\\\"}],\\\"devdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"params\\\":{\\\"newAdmin\\\":\\\"The new owner of the contract\\\",\\\"previousAdmin\\\":\\\"The previous owner of the contract\\\"}},\\\"Upgraded(address)\\\":{\\\"params\\\":{\\\"implementation\\\":\\\"The address of the implementation contract\\\"}}},\\\"kind\\\":\\\"dev\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Owner address.\\\"}},\\\"changeAdmin(address)\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"New owner of the proxy contract.\\\"}},\\\"constructor\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"Address of the initial contract owner. The owner has the ability to access the transparent proxy interface.\\\"}},\\\"implementation()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Implementation address.\\\"}},\\\"upgradeTo(address)\\\":{\\\"params\\\":{\\\"_implementation\\\":\\\"The address of the implementation contract\\\"}},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"params\\\":{\\\"_data\\\":\\\"The calldata to delegatecall the new implementation with\\\",\\\"_implementation\\\":\\\"The address of the implementation contract\\\"}}},\\\"title\\\":\\\"Proxy\\\",\\\"version\\\":1},\\\"userdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the owner is upgraded. This event is part of the EIP 1967 spec.\\\"},\\\"Upgraded(address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the implementation is changed. This event is part of the EIP 1967 spec.\\\"}},\\\"kind\\\":\\\"user\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"notice\\\":\\\"Gets the owner of the proxy contract.\\\"},\\\"changeAdmin(address)\\\":{\\\"notice\\\":\\\"Changes the owner of the proxy contract. Only callable by the owner.\\\"},\\\"constructor\\\":{\\\"notice\\\":\\\"set the initial owner during contract deployment. The owner is stored at the eip1967 owner storage slot so that storage collision with the implementation is not possible.\\\"},\\\"implementation()\\\":{\\\"notice\\\":\\\"Queries the implementation address.\\\"},\\\"upgradeTo(address)\\\":{\\\"notice\\\":\\\"Set the implementation contract address. The code at this address will execute when this contract is called.\\\"},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"notice\\\":\\\"Set the implementation and call a function in a single transaction. This is useful to ensure atomic `initialize()` based upgrades.\\\"}},\\\"notice\\\":\\\"Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is `address(0)`, meaning that the call originated from an offchain simulation.\\\",\\\"version\\\":1}},\\\"settings\\\":{\\\"compilationTarget\\\":{\\\"contracts/universal/Proxy.sol\\\":\\\"Proxy\\\"},\\\"evmVersion\\\":\\\"london\\\",\\\"libraries\\\":{},\\\"metadata\\\":{\\\"bytecodeHash\\\":\\\"none\\\"},\\\"optimizer\\\":{\\\"enabled\\\":true,\\\"runs\\\":999999},\\\"remappings\\\":[\\\":@openzeppelin/=node_modules/@openzeppelin/\\\",\\\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\\\",\\\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\\\",\\\":@rari-capital/=node_modules/@rari-capital/\\\",\\\":@rari-capital/solmate/=node_modules/@rari-capital/solmate/\\\",\\\":contracts/=contracts/\\\",\\\":ds-test/=node_modules/ds-test/src/\\\",\\\":excessively-safe-call/=node_modules/excessively-safe-call/\\\",\\\":forge-std/=node_modules/forge-std/src/\\\",\\\":test/=test/\\\"]},\\\"sources\\\":{\\\"contracts/universal/Proxy.sol\\\":{\\\"keccak256\\\":\\\"0x2a6719fd9a11adf0efba0243e5c68d56b255296b84cc82bd39326c902e055077\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://bb38ea7b5b0423b752c65450e24b925a638cf70982e6e161c7a07417c64f3720\\\",\\\"dweb:/ipfs/QmfT9ht3nDRNqYwB5gpQBnTZErTgrKFVkETmGeoc6hDDeQ\\\"]}},\\\"version\\\":1}\"",
"bytecode": "0x608060405234801561001057600080fd5b5060405161088338038061088383398101604081905261002f916100b2565b6100388161003e565b506100e2565b60006100566000805160206108638339815191525490565b600080516020610863833981519152839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b6000602082840312156100c457600080fd5b81516001600160a01b03811681146100db57600080fd5b9392505050565b610772806100f16000396000f3fe60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f366004610644565b610212565b61009761009236600461065f565b610284565b6040516100a491906106e2565b60405180910390f35b3480156100b957600080fd5b506100c2610384565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b50610062610102366004610644565b61041b565b34801561011357600080fd5b506100c2610482565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a6564000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b3660008037600080366000845af43d6000803e8061020c573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026b575033155b1561027c576102798161050e565b50565b61027961011c565b60606102ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e5575033155b15610375576102f38461050e565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031d929190610755565b600060405180830381855af49150503d8060008114610358576040519150601f19603f3d011682016040523d82523d6000602084013e61035d565b606091505b50915091508161036c57600080fd5b915061037d9050565b61037d61011c565b9392505050565b60006103ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103e5575033155b1561041057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61041861011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610474575033155b1561027c5761027981610576565b60006104ac7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104e3575033155b1561041057507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006105a07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461063f57600080fd5b919050565b60006020828403121561065657600080fd5b61037d8261061b565b60008060006040848603121561067457600080fd5b61067d8461061b565b9250602084013567ffffffffffffffff8082111561069a57600080fd5b818601915086601f8301126106ae57600080fd5b8135818111156106bd57600080fd5b8760208285010111156106cf57600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561070f578581018301518582016040015282016106f3565b81811115610721576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103",
"deployedBytecode": "0x60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f366004610644565b610212565b61009761009236600461065f565b610284565b6040516100a491906106e2565b60405180910390f35b3480156100b957600080fd5b506100c2610384565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b50610062610102366004610644565b61041b565b34801561011357600080fd5b506100c2610482565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a6564000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b3660008037600080366000845af43d6000803e8061020c573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026b575033155b1561027c576102798161050e565b50565b61027961011c565b60606102ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e5575033155b15610375576102f38461050e565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031d929190610755565b600060405180830381855af49150503d8060008114610358576040519150601f19603f3d011682016040523d82523d6000602084013e61035d565b606091505b50915091508161036c57600080fd5b915061037d9050565b61037d61011c565b9392505050565b60006103ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103e5575033155b1561041057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61041861011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610474575033155b1561027c5761027981610576565b60006104ac7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104e3575033155b1561041057507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006105a07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461063f57600080fd5b919050565b60006020828403121561065657600080fd5b61037d8261061b565b60008060006040848603121561067457600080fd5b61067d8461061b565b9250602084013567ffffffffffffffff8082111561069a57600080fd5b818601915086601f8301126106ae57600080fd5b8135818111156106bd57600080fd5b8760208285010111156106cf57600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561070f578581018301518582016040015282016106f3565b81811115610721576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000a",
"devdoc": {
"version": 1,
"kind": "dev",
"methods": {
"admin()": {
"returns": {
"_0": "Owner address."
}
},
"changeAdmin(address)": {
"params": {
"_admin": "New owner of the proxy contract."
}
},
"constructor": {
"params": {
"_admin": "Address of the initial contract owner. The owner has the ability to access the transparent proxy interface."
}
},
"implementation()": {
"returns": {
"_0": "Implementation address."
}
},
"upgradeTo(address)": {
"params": {
"_implementation": "The address of the implementation contract"
}
},
"upgradeToAndCall(address,bytes)": {
"params": {
"_data": "The calldata to delegatecall the new implementation with",
"_implementation": "The address of the implementation contract"
}
}
},
"events": {
"AdminChanged(address,address)": {
"params": {
"newAdmin": "The new owner of the contract",
"previousAdmin": "The previous owner of the contract"
}
},
"Upgraded(address)": {
"params": {
"implementation": "The address of the implementation contract"
}
}
},
"title": "Proxy"
},
"userdoc": {
"version": 1,
"kind": "user",
"methods": {
"admin()": {
"notice": "Gets the owner of the proxy contract."
},
"changeAdmin(address)": {
"notice": "Changes the owner of the proxy contract. Only callable by the owner."
},
"constructor": {
"notice": "set the initial owner during contract deployment. The owner is stored at the eip1967 owner storage slot so that storage collision with the implementation is not possible."
},
"implementation()": {
"notice": "Queries the implementation address."
},
"upgradeTo(address)": {
"notice": "Set the implementation contract address. The code at this address will execute when this contract is called."
},
"upgradeToAndCall(address,bytes)": {
"notice": "Set the implementation and call a function in a single transaction. This is useful to ensure atomic `initialize()` based upgrades."
}
},
"events": {
"AdminChanged(address,address)": {
"notice": "An event that is emitted each time the owner is upgraded. This event is part of the EIP 1967 spec."
},
"Upgraded(address)": {
"notice": "An event that is emitted each time the implementation is changed. This event is part of the EIP 1967 spec."
}
},
"notice": "Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is `address(0)`, meaning that the call originated from an offchain simulation."
}
}
\ No newline at end of file
{ {
"address": "0x3304c4e7aB3f4265aBA459F5511247198Fa089fB", "address": "0xC12B10618Cdf8195902E9f7DC8359a0Bc1ea2379",
"abi": [ "abi": [
{ {
"inputs": [ "inputs": [
...@@ -125,43 +125,43 @@ ...@@ -125,43 +125,43 @@
"type": "function" "type": "function"
} }
], ],
"transactionHash": "0xefabff0111ef1168065decd36aef2054a8da7189fafb6bb3f1bf26478dba8039", "transactionHash": "0xbb0aeb35deaff2f93a6ea462d514b4462534d6aee5bd356585ede8044ae098d1",
"receipt": { "receipt": {
"to": null, "to": null,
"from": "0xCFf7a9856DB3C60AB546b8F43dC5D1A4336786A0", "from": "0x3a605B442055DF2898E18cF518feb2e2A6BD0D31",
"contractAddress": "0x3304c4e7aB3f4265aBA459F5511247198Fa089fB", "contractAddress": "0xC12B10618Cdf8195902E9f7DC8359a0Bc1ea2379",
"transactionIndex": 0, "transactionIndex": 4,
"gasUsed": "492029", "gasUsed": "520158",
"logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000800000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000004000000000000000000000000000000000000000000000000000000000000000000000000", "logsBloom": "0x00000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
"blockHash": "0x601bcc580f1b78e8ed594e7aff6e9796481d0f6c61f95222061e18c91358a53c", "blockHash": "0x2ad0808029fd9b077185eb37f589afb547da2f86d3860441cf44b62be4c91765",
"transactionHash": "0xefabff0111ef1168065decd36aef2054a8da7189fafb6bb3f1bf26478dba8039", "transactionHash": "0xbb0aeb35deaff2f93a6ea462d514b4462534d6aee5bd356585ede8044ae098d1",
"logs": [ "logs": [
{ {
"transactionIndex": 0, "transactionIndex": 4,
"blockNumber": 7149176, "blockNumber": 7209631,
"transactionHash": "0xefabff0111ef1168065decd36aef2054a8da7189fafb6bb3f1bf26478dba8039", "transactionHash": "0xbb0aeb35deaff2f93a6ea462d514b4462534d6aee5bd356585ede8044ae098d1",
"address": "0x3304c4e7aB3f4265aBA459F5511247198Fa089fB", "address": "0xC12B10618Cdf8195902E9f7DC8359a0Bc1ea2379",
"topics": [ "topics": [
"0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f"
], ],
"data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000cff7a9856db3c60ab546b8f43dc5d1a4336786a0", "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000003a605b442055df2898e18cf518feb2e2a6bd0d31",
"logIndex": 0, "logIndex": 7,
"blockHash": "0x601bcc580f1b78e8ed594e7aff6e9796481d0f6c61f95222061e18c91358a53c" "blockHash": "0x2ad0808029fd9b077185eb37f589afb547da2f86d3860441cf44b62be4c91765"
} }
], ],
"blockNumber": 7149176, "blockNumber": 7209631,
"cumulativeGasUsed": "492029", "cumulativeGasUsed": "954151",
"status": 1, "status": 1,
"byzantium": true "byzantium": true
}, },
"args": [ "args": [
"0xCFf7a9856DB3C60AB546b8F43dC5D1A4336786A0" "0x3a605B442055DF2898E18cF518feb2e2A6BD0D31"
], ],
"numDeployments": 1, "numDeployments": 1,
"solcInputHash": "6658e3fd5601f689e56bcac3b135b23e", "solcInputHash": "599c82b18bfb932a0753a57de385b407",
"metadata": "\"{\\\"compiler\\\":{\\\"version\\\":\\\"0.8.10+commit.fc410830\\\"},\\\"language\\\":\\\"Solidity\\\",\\\"output\\\":{\\\"abi\\\":[{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"constructor\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"previousAdmin\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"newAdmin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"AdminChanged\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"Upgraded\\\",\\\"type\\\":\\\"event\\\"},{\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"fallback\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"admin\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"changeAdmin\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"implementation\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"upgradeTo\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"_data\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"name\\\":\\\"upgradeToAndCall\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"function\\\"}],\\\"devdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"params\\\":{\\\"newAdmin\\\":\\\"The new owner of the contract\\\",\\\"previousAdmin\\\":\\\"The previous owner of the contract\\\"}},\\\"Upgraded(address)\\\":{\\\"params\\\":{\\\"implementation\\\":\\\"The address of the implementation contract\\\"}}},\\\"kind\\\":\\\"dev\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Owner address.\\\"}},\\\"changeAdmin(address)\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"New owner of the proxy contract.\\\"}},\\\"constructor\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"Address of the initial contract owner. The owner has the ability to access the transparent proxy interface.\\\"}},\\\"implementation()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Implementation address.\\\"}},\\\"upgradeTo(address)\\\":{\\\"params\\\":{\\\"_implementation\\\":\\\"The address of the implementation contract\\\"}},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"params\\\":{\\\"_data\\\":\\\"The calldata to delegatecall the new implementation with\\\",\\\"_implementation\\\":\\\"The address of the implementation contract\\\"}}},\\\"title\\\":\\\"Proxy\\\",\\\"version\\\":1},\\\"userdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the owner is upgraded. This event is part of the EIP 1967 spec.\\\"},\\\"Upgraded(address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the implementation is changed. This event is part of the EIP 1967 spec.\\\"}},\\\"kind\\\":\\\"user\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"notice\\\":\\\"Gets the owner of the proxy contract.\\\"},\\\"changeAdmin(address)\\\":{\\\"notice\\\":\\\"Changes the owner of the proxy contract. Only callable by the owner.\\\"},\\\"constructor\\\":{\\\"notice\\\":\\\"set the initial owner during contract deployment. The owner is stored at the eip1967 owner storage slot so that storage collision with the implementation is not possible.\\\"},\\\"implementation()\\\":{\\\"notice\\\":\\\"Queries the implementation address.\\\"},\\\"upgradeTo(address)\\\":{\\\"notice\\\":\\\"Set the implementation contract address. The code at this address will execute when this contract is called.\\\"},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"notice\\\":\\\"Set the implementation and call a function in a single transaction. This is useful to ensure atomic `initialize()` based upgrades.\\\"}},\\\"notice\\\":\\\"Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is `address(0)`, meaning that the call originated from an offchain simulation.\\\",\\\"version\\\":1}},\\\"settings\\\":{\\\"compilationTarget\\\":{\\\"contracts/universal/Proxy.sol\\\":\\\"Proxy\\\"},\\\"evmVersion\\\":\\\"london\\\",\\\"libraries\\\":{},\\\"metadata\\\":{\\\"bytecodeHash\\\":\\\"none\\\"},\\\"optimizer\\\":{\\\"enabled\\\":true,\\\"runs\\\":999999},\\\"remappings\\\":[\\\":@openzeppelin/=node_modules/@openzeppelin/\\\",\\\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\\\",\\\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\\\",\\\":@rari-capital/=node_modules/@rari-capital/\\\",\\\":@rari-capital/solmate/=node_modules/@rari-capital/solmate/\\\",\\\":contracts/=contracts/\\\",\\\":ds-test/=node_modules/ds-test/src/\\\",\\\":excessively-safe-call/=node_modules/excessively-safe-call/\\\",\\\":forge-std/=node_modules/forge-std/src/\\\",\\\":test/=test/\\\"]},\\\"sources\\\":{\\\"contracts/universal/Proxy.sol\\\":{\\\"keccak256\\\":\\\"0x2a6719fd9a11adf0efba0243e5c68d56b255296b84cc82bd39326c902e055077\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://bb38ea7b5b0423b752c65450e24b925a638cf70982e6e161c7a07417c64f3720\\\",\\\"dweb:/ipfs/QmfT9ht3nDRNqYwB5gpQBnTZErTgrKFVkETmGeoc6hDDeQ\\\"]}},\\\"version\\\":1}\"", "metadata": "\"{\\\"compiler\\\":{\\\"version\\\":\\\"0.8.10+commit.fc410830\\\"},\\\"language\\\":\\\"Solidity\\\",\\\"output\\\":{\\\"abi\\\":[{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"constructor\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"previousAdmin\\\",\\\"type\\\":\\\"address\\\"},{\\\"indexed\\\":false,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"newAdmin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"AdminChanged\\\",\\\"type\\\":\\\"event\\\"},{\\\"anonymous\\\":false,\\\"inputs\\\":[{\\\"indexed\\\":true,\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"Upgraded\\\",\\\"type\\\":\\\"event\\\"},{\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"fallback\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"admin\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_admin\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"changeAdmin\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[],\\\"name\\\":\\\"implementation\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"address\\\"}],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"}],\\\"name\\\":\\\"upgradeTo\\\",\\\"outputs\\\":[],\\\"stateMutability\\\":\\\"nonpayable\\\",\\\"type\\\":\\\"function\\\"},{\\\"inputs\\\":[{\\\"internalType\\\":\\\"address\\\",\\\"name\\\":\\\"_implementation\\\",\\\"type\\\":\\\"address\\\"},{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"_data\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"name\\\":\\\"upgradeToAndCall\\\",\\\"outputs\\\":[{\\\"internalType\\\":\\\"bytes\\\",\\\"name\\\":\\\"\\\",\\\"type\\\":\\\"bytes\\\"}],\\\"stateMutability\\\":\\\"payable\\\",\\\"type\\\":\\\"function\\\"}],\\\"devdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"params\\\":{\\\"newAdmin\\\":\\\"The new owner of the contract\\\",\\\"previousAdmin\\\":\\\"The previous owner of the contract\\\"}},\\\"Upgraded(address)\\\":{\\\"params\\\":{\\\"implementation\\\":\\\"The address of the implementation contract\\\"}}},\\\"kind\\\":\\\"dev\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Owner address.\\\"}},\\\"changeAdmin(address)\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"New owner of the proxy contract.\\\"}},\\\"constructor\\\":{\\\"params\\\":{\\\"_admin\\\":\\\"Address of the initial contract admin. Admin as the ability to access the transparent proxy interface.\\\"}},\\\"implementation()\\\":{\\\"returns\\\":{\\\"_0\\\":\\\"Implementation address.\\\"}},\\\"upgradeTo(address)\\\":{\\\"params\\\":{\\\"_implementation\\\":\\\"Address of the implementation contract.\\\"}},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"params\\\":{\\\"_data\\\":\\\"Calldata to delegatecall the new implementation with.\\\",\\\"_implementation\\\":\\\"Address of the implementation contract.\\\"}}},\\\"title\\\":\\\"Proxy\\\",\\\"version\\\":1},\\\"userdoc\\\":{\\\"events\\\":{\\\"AdminChanged(address,address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the owner is upgraded. This event is part of the EIP-1967 specification.\\\"},\\\"Upgraded(address)\\\":{\\\"notice\\\":\\\"An event that is emitted each time the implementation is changed. This event is part of the EIP-1967 specification.\\\"}},\\\"kind\\\":\\\"user\\\",\\\"methods\\\":{\\\"admin()\\\":{\\\"notice\\\":\\\"Gets the owner of the proxy contract.\\\"},\\\"changeAdmin(address)\\\":{\\\"notice\\\":\\\"Changes the owner of the proxy contract. Only callable by the owner.\\\"},\\\"constructor\\\":{\\\"notice\\\":\\\"Sets the initial admin during contract deployment. Admin address is stored at the EIP-1967 admin storage slot so that accidental storage collision with the implementation is not possible.\\\"},\\\"implementation()\\\":{\\\"notice\\\":\\\"Queries the implementation address.\\\"},\\\"upgradeTo(address)\\\":{\\\"notice\\\":\\\"Set the implementation contract address. The code at the given address will execute when this contract is called.\\\"},\\\"upgradeToAndCall(address,bytes)\\\":{\\\"notice\\\":\\\"Set the implementation and call a function in a single transaction. Useful to ensure atomic execution of initialization-based upgrades.\\\"}},\\\"notice\\\":\\\"Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is address(0), meaning that the call originated from an off-chain simulation.\\\",\\\"version\\\":1}},\\\"settings\\\":{\\\"compilationTarget\\\":{\\\"contracts/universal/Proxy.sol\\\":\\\"Proxy\\\"},\\\"evmVersion\\\":\\\"london\\\",\\\"libraries\\\":{},\\\"metadata\\\":{\\\"bytecodeHash\\\":\\\"none\\\"},\\\"optimizer\\\":{\\\"enabled\\\":true,\\\"runs\\\":999999},\\\"remappings\\\":[\\\":@openzeppelin/=node_modules/@openzeppelin/\\\",\\\":@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/\\\",\\\":@openzeppelin/contracts/=node_modules/@openzeppelin/contracts/\\\",\\\":@rari-capital/=node_modules/@rari-capital/\\\",\\\":@rari-capital/solmate/=node_modules/@rari-capital/solmate/\\\",\\\":contracts/=contracts/\\\",\\\":ds-test/=node_modules/ds-test/src/\\\",\\\":excessively-safe-call/=node_modules/excessively-safe-call/\\\",\\\":forge-std/=node_modules/forge-std/src/\\\",\\\":test/=test/\\\"]},\\\"sources\\\":{\\\"contracts/universal/Proxy.sol\\\":{\\\"keccak256\\\":\\\"0xfbd3b9b280c82e08ed10690e0aa683cfa97417139f83349e89a38e01f9601422\\\",\\\"license\\\":\\\"MIT\\\",\\\"urls\\\":[\\\"bzz-raw://579a350f080617001c0f747414e5160f7b1c571c381137a759b54d8278450531\\\",\\\"dweb:/ipfs/QmP2wjj8pGwXx64oYCGftF1XbKceMge9ByqxdrX8UjEdR9\\\"]}},\\\"version\\\":1}\"",
"bytecode": "0x608060405234801561001057600080fd5b5060405161088338038061088383398101604081905261002f916100b2565b6100388161003e565b506100e2565b60006100566000805160206108638339815191525490565b600080516020610863833981519152839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b6000602082840312156100c457600080fd5b81516001600160a01b03811681146100db57600080fd5b9392505050565b610772806100f16000396000f3fe60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f366004610644565b610212565b61009761009236600461065f565b610284565b6040516100a491906106e2565b60405180910390f35b3480156100b957600080fd5b506100c2610384565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b50610062610102366004610644565b61041b565b34801561011357600080fd5b506100c2610482565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a6564000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b3660008037600080366000845af43d6000803e8061020c573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026b575033155b1561027c576102798161050e565b50565b61027961011c565b60606102ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e5575033155b15610375576102f38461050e565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031d929190610755565b600060405180830381855af49150503d8060008114610358576040519150601f19603f3d011682016040523d82523d6000602084013e61035d565b606091505b50915091508161036c57600080fd5b915061037d9050565b61037d61011c565b9392505050565b60006103ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103e5575033155b1561041057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61041861011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610474575033155b1561027c5761027981610576565b60006104ac7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104e3575033155b1561041057507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006105a07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461063f57600080fd5b919050565b60006020828403121561065657600080fd5b61037d8261061b565b60008060006040848603121561067457600080fd5b61067d8461061b565b9250602084013567ffffffffffffffff8082111561069a57600080fd5b818601915086601f8301126106ae57600080fd5b8135818111156106bd57600080fd5b8760208285010111156106cf57600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561070f578581018301518582016040015282016106f3565b81811115610721576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103", "bytecode": "0x608060405234801561001057600080fd5b5060405161090738038061090783398101604081905261002f916100b2565b6100388161003e565b506100e2565b60006100566000805160206108e78339815191525490565b6000805160206108e7833981519152839055604080516001600160a01b038084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b6000602082840312156100c457600080fd5b81516001600160a01b03811681146100db57600080fd5b9392505050565b6107f6806100f16000396000f3fe60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f3660046106c8565b610213565b6100976100923660046106e3565b610285565b6040516100a49190610766565b60405180910390f35b3480156100b957600080fd5b506100c2610408565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b506100626101023660046106c8565b61049f565b34801561011357600080fd5b506100c2610506565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8061020d573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026c575033155b1561027d5761027a81610592565b50565b61027a61011c565b60606102af7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e6575033155b156103f9576102f484610592565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031e9291906107d9565b600060405180830381855af49150503d8060008114610359576040519150601f19603f3d011682016040523d82523d6000602084013e61035e565b606091505b5091509150816103f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c65640000000000000060648201526084016101e7565b91506104019050565b61040161011c565b9392505050565b60006104327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610469575033155b1561049457507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61049c61011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104f8575033155b1561027d5761027a816105fa565b60006105307fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610567575033155b1561049457507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006106247fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106c357600080fd5b919050565b6000602082840312156106da57600080fd5b6104018261069f565b6000806000604084860312156106f857600080fd5b6107018461069f565b9250602084013567ffffffffffffffff8082111561071e57600080fd5b818601915086601f83011261073257600080fd5b81358181111561074157600080fd5b87602082850101111561075357600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561079357858101830151858201604001528201610777565b818111156107a5576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000ab53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103",
"deployedBytecode": "0x60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f366004610644565b610212565b61009761009236600461065f565b610284565b6040516100a491906106e2565b60405180910390f35b3480156100b957600080fd5b506100c2610384565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b50610062610102366004610644565b61041b565b34801561011357600080fd5b506100c2610482565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101ef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a6564000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b3660008037600080366000845af43d6000803e8061020c573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026b575033155b1561027c576102798161050e565b50565b61027961011c565b60606102ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e5575033155b15610375576102f38461050e565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031d929190610755565b600060405180830381855af49150503d8060008114610358576040519150601f19603f3d011682016040523d82523d6000602084013e61035d565b606091505b50915091508161036c57600080fd5b915061037d9050565b61037d61011c565b9392505050565b60006103ae7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806103e5575033155b1561041057507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61041861011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610474575033155b1561027c5761027981610576565b60006104ac7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104e3575033155b1561041057507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006105a07fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461063f57600080fd5b919050565b60006020828403121561065657600080fd5b61037d8261061b565b60008060006040848603121561067457600080fd5b61067d8461061b565b9250602084013567ffffffffffffffff8082111561069a57600080fd5b818601915086601f8301126106ae57600080fd5b8135818111156106bd57600080fd5b8760208285010111156106cf57600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561070f578581018301518582016040015282016106f3565b81811115610721576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000a", "deployedBytecode": "0x60806040526004361061005a5760003560e01c80635c60da1b116100435780635c60da1b146100ad5780638f283970146100e7578063f851a440146101075761005a565b80633659cfe6146100645780634f1ef28614610084575b61006261011c565b005b34801561007057600080fd5b5061006261007f3660046106c8565b610213565b6100976100923660046106e3565b610285565b6040516100a49190610766565b60405180910390f35b3480156100b957600080fd5b506100c2610408565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100a4565b3480156100f357600080fd5b506100626101023660046106c8565b61049f565b34801561011357600080fd5b506100c2610506565b60006101467f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b905073ffffffffffffffffffffffffffffffffffffffff81166101f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f50726f78793a20696d706c656d656e746174696f6e206e6f7420696e6974696160448201527f6c697a656400000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3660008037600080366000845af43d6000803e8061020d573d6000fd5b503d6000f35b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061026c575033155b1561027d5761027a81610592565b50565b61027a61011c565b60606102af7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806102e6575033155b156103f9576102f484610592565b6000808573ffffffffffffffffffffffffffffffffffffffff16858560405161031e9291906107d9565b600060405180830381855af49150503d8060008114610359576040519150601f19603f3d011682016040523d82523d6000602084013e61035e565b606091505b5091509150816103f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603960248201527f50726f78793a2064656c656761746563616c6c20746f206e657720696d706c6560448201527f6d656e746174696f6e20636f6e7472616374206661696c65640000000000000060648201526084016101e7565b91506104019050565b61040161011c565b9392505050565b60006104327fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610469575033155b1561049457507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b61049c61011c565b90565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614806104f8575033155b1561027d5761027a816105fa565b60006105307fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610567575033155b1561049457507fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81905560405173ffffffffffffffffffffffffffffffffffffffff8216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60006106247fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61035490565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d61038390556040805173ffffffffffffffffffffffffffffffffffffffff8084168252851660208201529192507f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f910160405180910390a15050565b803573ffffffffffffffffffffffffffffffffffffffff811681146106c357600080fd5b919050565b6000602082840312156106da57600080fd5b6104018261069f565b6000806000604084860312156106f857600080fd5b6107018461069f565b9250602084013567ffffffffffffffff8082111561071e57600080fd5b818601915086601f83011261073257600080fd5b81358181111561074157600080fd5b87602082850101111561075357600080fd5b6020830194508093505050509250925092565b600060208083528351808285015260005b8181101561079357858101830151858201604001528201610777565b818111156107a5576000604083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016929092016040019392505050565b818382376000910190815291905056fea164736f6c634300080a000a",
"devdoc": { "devdoc": {
"version": 1, "version": 1,
"kind": "dev", "kind": "dev",
...@@ -178,7 +178,7 @@ ...@@ -178,7 +178,7 @@
}, },
"constructor": { "constructor": {
"params": { "params": {
"_admin": "Address of the initial contract owner. The owner has the ability to access the transparent proxy interface." "_admin": "Address of the initial contract admin. Admin as the ability to access the transparent proxy interface."
} }
}, },
"implementation()": { "implementation()": {
...@@ -188,13 +188,13 @@ ...@@ -188,13 +188,13 @@
}, },
"upgradeTo(address)": { "upgradeTo(address)": {
"params": { "params": {
"_implementation": "The address of the implementation contract" "_implementation": "Address of the implementation contract."
} }
}, },
"upgradeToAndCall(address,bytes)": { "upgradeToAndCall(address,bytes)": {
"params": { "params": {
"_data": "The calldata to delegatecall the new implementation with", "_data": "Calldata to delegatecall the new implementation with.",
"_implementation": "The address of the implementation contract" "_implementation": "Address of the implementation contract."
} }
} }
}, },
...@@ -224,26 +224,26 @@ ...@@ -224,26 +224,26 @@
"notice": "Changes the owner of the proxy contract. Only callable by the owner." "notice": "Changes the owner of the proxy contract. Only callable by the owner."
}, },
"constructor": { "constructor": {
"notice": "set the initial owner during contract deployment. The owner is stored at the eip1967 owner storage slot so that storage collision with the implementation is not possible." "notice": "Sets the initial admin during contract deployment. Admin address is stored at the EIP-1967 admin storage slot so that accidental storage collision with the implementation is not possible."
}, },
"implementation()": { "implementation()": {
"notice": "Queries the implementation address." "notice": "Queries the implementation address."
}, },
"upgradeTo(address)": { "upgradeTo(address)": {
"notice": "Set the implementation contract address. The code at this address will execute when this contract is called." "notice": "Set the implementation contract address. The code at the given address will execute when this contract is called."
}, },
"upgradeToAndCall(address,bytes)": { "upgradeToAndCall(address,bytes)": {
"notice": "Set the implementation and call a function in a single transaction. This is useful to ensure atomic `initialize()` based upgrades." "notice": "Set the implementation and call a function in a single transaction. Useful to ensure atomic execution of initialization-based upgrades."
} }
}, },
"events": { "events": {
"AdminChanged(address,address)": { "AdminChanged(address,address)": {
"notice": "An event that is emitted each time the owner is upgraded. This event is part of the EIP 1967 spec." "notice": "An event that is emitted each time the owner is upgraded. This event is part of the EIP-1967 specification."
}, },
"Upgraded(address)": { "Upgraded(address)": {
"notice": "An event that is emitted each time the implementation is changed. This event is part of the EIP 1967 spec." "notice": "An event that is emitted each time the implementation is changed. This event is part of the EIP-1967 specification."
} }
}, },
"notice": "Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is `address(0)`, meaning that the call originated from an offchain simulation." "notice": "Proxy is a transparent proxy that passes through the call if the caller is the owner or if the caller is address(0), meaning that the call originated from an off-chain simulation."
} }
} }
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment