From 981136e8c29f87e110ce8fd4aea5349398a254ef Mon Sep 17 00:00:00 2001 From: Logan Nguyen Date: Mon, 22 Jan 2024 23:30:23 -0600 Subject: [PATCH] fix: replaced OZUUPSUpgradableV4 with OZ UUPSUpgradeable V5 (#643) (#645) fix: replaced OZUUPSUpgradableV4 with OZ UUPSUpgradeable V5 Signed-off-by: Logan Nguyen --- .../OZUUPSUpgradeableV4.json | 152 --------------- .../uups-upgradable/VaultV1.sol/VaultV1.json | 17 +- .../uups-upgradable/VaultV2.sol/VaultV2.json | 17 +- .../counter/Counter.sol/Counter.json | 17 +- .../counter/CounterV2.sol/CounterV2.json | 17 +- .../exchange/Exchange.sol/Exchange.json | 17 +- .../exchange/ExchangeV2.sol/ExchangeV2.json | 17 +- .../OZUUPSUpgradeableV4.json | 152 --------------- .../uups-upgradable/OZUUPSUpgradeableV4.sol | 175 ----------------- .../openzeppelin/uups-upgradable/VaultV1.sol | 4 +- contracts/proxy-upgrade/counter/Counter.sol | 4 +- contracts/proxy-upgrade/exchange/Exchange.sol | 4 +- .../exchange/OZUUPSUpgradeableV4.sol | 176 ------------------ 13 files changed, 18 insertions(+), 751 deletions(-) delete mode 100644 artifacts/contracts/openzeppelin/uups-upgradable/OZUUPSUpgradeableV4.sol/OZUUPSUpgradeableV4.json delete mode 100644 artifacts/contracts/proxy-upgrade/exchange/OZUUPSUpgradeableV4.sol/OZUUPSUpgradeableV4.json delete mode 100644 contracts/openzeppelin/uups-upgradable/OZUUPSUpgradeableV4.sol delete mode 100644 contracts/proxy-upgrade/exchange/OZUUPSUpgradeableV4.sol diff --git a/artifacts/contracts/openzeppelin/uups-upgradable/OZUUPSUpgradeableV4.sol/OZUUPSUpgradeableV4.json b/artifacts/contracts/openzeppelin/uups-upgradable/OZUUPSUpgradeableV4.sol/OZUUPSUpgradeableV4.json deleted file mode 100644 index 8b821ea82..000000000 --- a/artifacts/contracts/openzeppelin/uups-upgradable/OZUUPSUpgradeableV4.sol/OZUUPSUpgradeableV4.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "OZUUPSUpgradeableV4", - "sourceName": "contracts/openzeppelin/uups-upgradable/OZUUPSUpgradeableV4.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "ERC1967InvalidImplementation", - "type": "error" - }, - { - "inputs": [], - "name": "ERC1967NonPayable", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [], - "name": "UUPSUnauthorizedCallContext", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "slot", - "type": "bytes32" - } - ], - "name": "UUPSUnsupportedProxiableUUID", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "Upgraded", - "type": "event" - }, - { - "inputs": [], - "name": "UPGRADE_INTERFACE_VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "proxiableUUID", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "upgradeToAndCall", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/artifacts/contracts/openzeppelin/uups-upgradable/VaultV1.sol/VaultV1.json b/artifacts/contracts/openzeppelin/uups-upgradable/VaultV1.sol/VaultV1.json index bdf852ea9..b127d9225 100644 --- a/artifacts/contracts/openzeppelin/uups-upgradable/VaultV1.sol/VaultV1.json +++ b/artifacts/contracts/openzeppelin/uups-upgradable/VaultV1.sol/VaultV1.json @@ -257,19 +257,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -315,8 +302,8 @@ "type": "function" } ], - "bytecode": "0x60a06040523060805234801561001457600080fd5b50608051610c1f61003e60003960008181610588015281816105b1015261071b0152610c1f6000f3fe6080604052600436106100c75760003560e01c80638129fc1c11610074578063ad7a672f1161004e578063ad7a672f1461020d578063d0e30db014610222578063f2fde38b1461022a57600080fd5b80638129fc1c146101735780638da5cb5b14610188578063ad3cb1cc146101cf57600080fd5b806352d1902d116100a557806352d1902d1461012157806354fd4d5014610149578063715018a61461015e57600080fd5b80632e1a7d4d146100cc5780633659cfe6146100ee5780634f1ef2861461010e575b600080fd5b3480156100d857600080fd5b506100ec6100e7366004610a35565b61024a565b005b3480156100fa57600080fd5b506100ec610109366004610a6a565b6102d8565b6100ec61011c366004610a9b565b610306565b34801561012d57600080fd5b50610136610325565b6040519081526020015b60405180910390f35b34801561015557600080fd5b50600054610136565b34801561016a57600080fd5b506100ec610354565b34801561017f57600080fd5b506100ec610368565b34801561019457600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b039091168152602001610140565b3480156101db57600080fd5b50610200604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101409190610b81565b34801561021957600080fd5b50600154610136565b6100ec610490565b34801561023657600080fd5b506100ec610245366004610a6a565b6104e2565b610252610522565b60015481111561027557604051636a259e3160e11b815260040160405180910390fd5b806001540360015560008060008084335af18061029157600080fd5b507f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d533604080516001600160a01b039092168252602082018490520160405180910390a150565b6102e061057d565b6102e981610634565b60408051600081526020810190915261030390829061063c565b50565b61030e61057d565b61031782610634565b610321828261063c565b5050565b600061032f610710565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b61035c610522565b6103666000610759565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156103b35750825b905060008267ffffffffffffffff1660011480156103d05750303b155b9050811580156103de575080155b156103fc5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561043057845468ff00000000000000001916680100000000000000001785555b610439336107d7565b6001600055831561048957845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b34600154016001557f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c46104c03390565b604080516001600160a01b0390921682523460208301520160405180910390a1565b6104ea610522565b6001600160a01b03811661051957604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61030381610759565b336105547f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103665760405163118cdaa760e01b8152336004820152602401610510565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061061657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661060a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103665760405163703e46dd60e11b815260040160405180910390fd5b610303610522565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610696575060408051601f3d908101601f1916820190925261069391810190610bb4565b60015b6106be57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610510565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461070157604051632a87526960e21b815260048101829052602401610510565b61070b83836107e8565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103665760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6107df61083e565b6103038161088c565b6107f182610894565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108365761070b8282610918565b61032161098e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661036657604051631afcd79f60e31b815260040160405180910390fd5b6104ea61083e565b806001600160a01b03163b6000036108ca57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610510565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516109359190610bcd565b600060405180830381855af49150503d8060008114610970576040519150601f19603f3d011682016040523d82523d6000602084013e610975565b606091505b50915091506109858583836109ad565b95945050505050565b34156103665760405163b398979f60e01b815260040160405180910390fd5b6060826109c2576109bd82610a0c565b610a05565b81511580156109d957506001600160a01b0384163b155b15610a0257604051639996b31560e01b81526001600160a01b0385166004820152602401610510565b50805b9392505050565b805115610a1c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a4757600080fd5b5035919050565b80356001600160a01b0381168114610a6557600080fd5b919050565b600060208284031215610a7c57600080fd5b610a0582610a4e565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610aae57600080fd5b610ab783610a4e565b9150602083013567ffffffffffffffff80821115610ad457600080fd5b818501915085601f830112610ae857600080fd5b813581811115610afa57610afa610a85565b604051601f8201601f19908116603f01168101908382118183101715610b2257610b22610a85565b81604052828152886020848701011115610b3b57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b78578181015183820152602001610b60565b50506000910152565b6020815260008251806020840152610ba0816040850160208701610b5d565b601f01601f19169190910160400192915050565b600060208284031215610bc657600080fd5b5051919050565b60008251610bdf818460208701610b5d565b919091019291505056fea26469706673582212204646376324aa200e23c95e058ffd308e1e22b38c6adf94f98a99f84856bd1f1564736f6c63430008140033", - "deployedBytecode": "0x6080604052600436106100c75760003560e01c80638129fc1c11610074578063ad7a672f1161004e578063ad7a672f1461020d578063d0e30db014610222578063f2fde38b1461022a57600080fd5b80638129fc1c146101735780638da5cb5b14610188578063ad3cb1cc146101cf57600080fd5b806352d1902d116100a557806352d1902d1461012157806354fd4d5014610149578063715018a61461015e57600080fd5b80632e1a7d4d146100cc5780633659cfe6146100ee5780634f1ef2861461010e575b600080fd5b3480156100d857600080fd5b506100ec6100e7366004610a35565b61024a565b005b3480156100fa57600080fd5b506100ec610109366004610a6a565b6102d8565b6100ec61011c366004610a9b565b610306565b34801561012d57600080fd5b50610136610325565b6040519081526020015b60405180910390f35b34801561015557600080fd5b50600054610136565b34801561016a57600080fd5b506100ec610354565b34801561017f57600080fd5b506100ec610368565b34801561019457600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b039091168152602001610140565b3480156101db57600080fd5b50610200604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101409190610b81565b34801561021957600080fd5b50600154610136565b6100ec610490565b34801561023657600080fd5b506100ec610245366004610a6a565b6104e2565b610252610522565b60015481111561027557604051636a259e3160e11b815260040160405180910390fd5b806001540360015560008060008084335af18061029157600080fd5b507f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d533604080516001600160a01b039092168252602082018490520160405180910390a150565b6102e061057d565b6102e981610634565b60408051600081526020810190915261030390829061063c565b50565b61030e61057d565b61031782610634565b610321828261063c565b5050565b600061032f610710565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b61035c610522565b6103666000610759565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156103b35750825b905060008267ffffffffffffffff1660011480156103d05750303b155b9050811580156103de575080155b156103fc5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561043057845468ff00000000000000001916680100000000000000001785555b610439336107d7565b6001600055831561048957845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b34600154016001557f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c46104c03390565b604080516001600160a01b0390921682523460208301520160405180910390a1565b6104ea610522565b6001600160a01b03811661051957604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61030381610759565b336105547f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103665760405163118cdaa760e01b8152336004820152602401610510565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061061657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661060a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103665760405163703e46dd60e11b815260040160405180910390fd5b610303610522565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610696575060408051601f3d908101601f1916820190925261069391810190610bb4565b60015b6106be57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610510565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461070157604051632a87526960e21b815260048101829052602401610510565b61070b83836107e8565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103665760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6107df61083e565b6103038161088c565b6107f182610894565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156108365761070b8282610918565b61032161098e565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661036657604051631afcd79f60e31b815260040160405180910390fd5b6104ea61083e565b806001600160a01b03163b6000036108ca57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610510565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516109359190610bcd565b600060405180830381855af49150503d8060008114610970576040519150601f19603f3d011682016040523d82523d6000602084013e610975565b606091505b50915091506109858583836109ad565b95945050505050565b34156103665760405163b398979f60e01b815260040160405180910390fd5b6060826109c2576109bd82610a0c565b610a05565b81511580156109d957506001600160a01b0384163b155b15610a0257604051639996b31560e01b81526001600160a01b0385166004820152602401610510565b50805b9392505050565b805115610a1c5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b600060208284031215610a4757600080fd5b5035919050565b80356001600160a01b0381168114610a6557600080fd5b919050565b600060208284031215610a7c57600080fd5b610a0582610a4e565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610aae57600080fd5b610ab783610a4e565b9150602083013567ffffffffffffffff80821115610ad457600080fd5b818501915085601f830112610ae857600080fd5b813581811115610afa57610afa610a85565b604051601f8201601f19908116603f01168101908382118183101715610b2257610b22610a85565b81604052828152886020848701011115610b3b57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610b78578181015183820152602001610b60565b50506000910152565b6020815260008251806020840152610ba0816040850160208701610b5d565b601f01601f19169190910160400192915050565b600060208284031215610bc657600080fd5b5051919050565b60008251610bdf818460208701610b5d565b919091019291505056fea26469706673582212204646376324aa200e23c95e058ffd308e1e22b38c6adf94f98a99f84856bd1f1564736f6c63430008140033", + "bytecode": "0x60a06040523060805234801561001457600080fd5b50608051610bb961003e600039600081816105220152818161054b01526106b50152610bb96000f3fe6080604052600436106100ac5760003560e01c80638129fc1c11610074578063ad7a672f1161004e578063ad7a672f146101d2578063d0e30db0146101e7578063f2fde38b146101ef57600080fd5b80638129fc1c146101385780638da5cb5b1461014d578063ad3cb1cc1461019457600080fd5b80632e1a7d4d146100b15780634f1ef286146100d357806352d1902d146100e657806354fd4d501461010e578063715018a614610123575b600080fd5b3480156100bd57600080fd5b506100d16100cc3660046109cf565b61020f565b005b6100d16100e1366004610a1a565b61029d565b3480156100f257600080fd5b506100fb6102bc565b6040519081526020015b60405180910390f35b34801561011a57600080fd5b506000546100fb565b34801561012f57600080fd5b506100d16102eb565b34801561014457600080fd5b506100d16102ff565b34801561015957600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b039091168152602001610105565b3480156101a057600080fd5b506101c5604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101059190610b00565b3480156101de57600080fd5b506001546100fb565b6100d1610427565b3480156101fb57600080fd5b506100d161020a366004610b33565b610479565b6102176104bc565b60015481111561023a57604051636a259e3160e11b815260040160405180910390fd5b806001540360015560008060008084335af18061025657600080fd5b507f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d533604080516001600160a01b039092168252602082018490520160405180910390a150565b6102a5610517565b6102ae826105ce565b6102b882826105d6565b5050565b60006102c66106aa565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6102f36104bc565b6102fd60006106f3565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561034a5750825b905060008267ffffffffffffffff1660011480156103675750303b155b905081158015610375575080155b156103935760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156103c757845468ff00000000000000001916680100000000000000001785555b6103d033610771565b6001600055831561042057845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b34600154016001557f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c46104573390565b604080516001600160a01b0390921682523460208301520160405180910390a1565b6104816104bc565b6001600160a01b0381166104b057604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6104b9816106f3565b50565b336104ee7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146102fd5760405163118cdaa760e01b81523360048201526024016104a7565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806105b057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105a47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156102fd5760405163703e46dd60e11b815260040160405180910390fd5b6104b96104bc565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610630575060408051601f3d908101601f1916820190925261062d91810190610b4e565b60015b61065857604051634c9c8ce360e01b81526001600160a01b03831660048201526024016104a7565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461069b57604051632a87526960e21b8152600481018290526024016104a7565b6106a58383610782565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102fd5760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6107796107d8565b6104b981610826565b61078b8261082e565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156107d0576106a582826108b2565b6102b8610928565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166102fd57604051631afcd79f60e31b815260040160405180910390fd5b6104816107d8565b806001600160a01b03163b60000361086457604051634c9c8ce360e01b81526001600160a01b03821660048201526024016104a7565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516108cf9190610b67565b600060405180830381855af49150503d806000811461090a576040519150601f19603f3d011682016040523d82523d6000602084013e61090f565b606091505b509150915061091f858383610947565b95945050505050565b34156102fd5760405163b398979f60e01b815260040160405180910390fd5b60608261095c57610957826109a6565b61099f565b815115801561097357506001600160a01b0384163b155b1561099c57604051639996b31560e01b81526001600160a01b03851660048201526024016104a7565b50805b9392505050565b8051156109b65780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000602082840312156109e157600080fd5b5035919050565b80356001600160a01b03811681146109ff57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a2d57600080fd5b610a36836109e8565b9150602083013567ffffffffffffffff80821115610a5357600080fd5b818501915085601f830112610a6757600080fd5b813581811115610a7957610a79610a04565b604051601f8201601f19908116603f01168101908382118183101715610aa157610aa1610a04565b81604052828152886020848701011115610aba57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610af7578181015183820152602001610adf565b50506000910152565b6020815260008251806020840152610b1f816040850160208701610adc565b601f01601f19169190910160400192915050565b600060208284031215610b4557600080fd5b61099f826109e8565b600060208284031215610b6057600080fd5b5051919050565b60008251610b79818460208701610adc565b919091019291505056fea2646970667358221220c09483a51c02ceb7df58ad22d311048e28c773d6c5384c59a99d7251f15a097b64736f6c63430008140033", + "deployedBytecode": "0x6080604052600436106100ac5760003560e01c80638129fc1c11610074578063ad7a672f1161004e578063ad7a672f146101d2578063d0e30db0146101e7578063f2fde38b146101ef57600080fd5b80638129fc1c146101385780638da5cb5b1461014d578063ad3cb1cc1461019457600080fd5b80632e1a7d4d146100b15780634f1ef286146100d357806352d1902d146100e657806354fd4d501461010e578063715018a614610123575b600080fd5b3480156100bd57600080fd5b506100d16100cc3660046109cf565b61020f565b005b6100d16100e1366004610a1a565b61029d565b3480156100f257600080fd5b506100fb6102bc565b6040519081526020015b60405180910390f35b34801561011a57600080fd5b506000546100fb565b34801561012f57600080fd5b506100d16102eb565b34801561014457600080fd5b506100d16102ff565b34801561015957600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b039091168152602001610105565b3480156101a057600080fd5b506101c5604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101059190610b00565b3480156101de57600080fd5b506001546100fb565b6100d1610427565b3480156101fb57600080fd5b506100d161020a366004610b33565b610479565b6102176104bc565b60015481111561023a57604051636a259e3160e11b815260040160405180910390fd5b806001540360015560008060008084335af18061025657600080fd5b507f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d533604080516001600160a01b039092168252602082018490520160405180910390a150565b6102a5610517565b6102ae826105ce565b6102b882826105d6565b5050565b60006102c66106aa565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6102f36104bc565b6102fd60006106f3565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561034a5750825b905060008267ffffffffffffffff1660011480156103675750303b155b905081158015610375575080155b156103935760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156103c757845468ff00000000000000001916680100000000000000001785555b6103d033610771565b6001600055831561042057845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b34600154016001557f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c46104573390565b604080516001600160a01b0390921682523460208301520160405180910390a1565b6104816104bc565b6001600160a01b0381166104b057604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6104b9816106f3565b50565b336104ee7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146102fd5760405163118cdaa760e01b81523360048201526024016104a7565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806105b057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105a47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156102fd5760405163703e46dd60e11b815260040160405180910390fd5b6104b96104bc565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610630575060408051601f3d908101601f1916820190925261062d91810190610b4e565b60015b61065857604051634c9c8ce360e01b81526001600160a01b03831660048201526024016104a7565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461069b57604051632a87526960e21b8152600481018290526024016104a7565b6106a58383610782565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102fd5760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6107796107d8565b6104b981610826565b61078b8261082e565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156107d0576106a582826108b2565b6102b8610928565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166102fd57604051631afcd79f60e31b815260040160405180910390fd5b6104816107d8565b806001600160a01b03163b60000361086457604051634c9c8ce360e01b81526001600160a01b03821660048201526024016104a7565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516108cf9190610b67565b600060405180830381855af49150503d806000811461090a576040519150601f19603f3d011682016040523d82523d6000602084013e61090f565b606091505b509150915061091f858383610947565b95945050505050565b34156102fd5760405163b398979f60e01b815260040160405180910390fd5b60608261095c57610957826109a6565b61099f565b815115801561097357506001600160a01b0384163b155b1561099c57604051639996b31560e01b81526001600160a01b03851660048201526024016104a7565b50805b9392505050565b8051156109b65780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6000602082840312156109e157600080fd5b5035919050565b80356001600160a01b03811681146109ff57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610a2d57600080fd5b610a36836109e8565b9150602083013567ffffffffffffffff80821115610a5357600080fd5b818501915085601f830112610a6757600080fd5b813581811115610a7957610a79610a04565b604051601f8201601f19908116603f01168101908382118183101715610aa157610aa1610a04565b81604052828152886020848701011115610aba57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610af7578181015183820152602001610adf565b50506000910152565b6020815260008251806020840152610b1f816040850160208701610adc565b601f01601f19169190910160400192915050565b600060208284031215610b4557600080fd5b61099f826109e8565b600060208284031215610b6057600080fd5b5051919050565b60008251610b79818460208701610adc565b919091019291505056fea2646970667358221220c09483a51c02ceb7df58ad22d311048e28c773d6c5384c59a99d7251f15a097b64736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/contracts/openzeppelin/uups-upgradable/VaultV2.sol/VaultV2.json b/artifacts/contracts/openzeppelin/uups-upgradable/VaultV2.sol/VaultV2.json index fdcfcf630..8639b0a88 100644 --- a/artifacts/contracts/openzeppelin/uups-upgradable/VaultV2.sol/VaultV2.json +++ b/artifacts/contracts/openzeppelin/uups-upgradable/VaultV2.sol/VaultV2.json @@ -283,19 +283,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -341,8 +328,8 @@ "type": "function" } ], - "bytecode": "0x60a06040523060805234801561001457600080fd5b50608051610d6061003e60003960008181610684015281816106ad01526108170152610d606000f3fe6080604052600436106100dd5760003560e01c80638129fc1c1161007f578063ad7a672f11610059578063ad7a672f1461024d578063d0e30db014610262578063f12864f61461026a578063f2fde38b1461027f57600080fd5b80638129fc1c146101a95780638da5cb5b146101be578063ad3cb1cc1461020f57600080fd5b80634f1ef286116100bb5780634f1ef2861461014457806352d1902d1461015757806354fd4d501461017f578063715018a61461019457600080fd5b806329b6eca9146100e25780632e1a7d4d146101045780633659cfe614610124575b600080fd5b3480156100ee57600080fd5b506101026100fd366004610b92565b61029f565b005b34801561011057600080fd5b5061010261011f366004610bad565b610394565b34801561013057600080fd5b5061010261013f366004610b92565b610428565b610102610152366004610bdc565b610456565b34801561016357600080fd5b5061016c610475565b6040519081526020015b60405180910390f35b34801561018b57600080fd5b5060005461016c565b3480156101a057600080fd5b506101026104a4565b3480156101b557600080fd5b506101026104b8565b3480156101ca57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03165b6040516001600160a01b039091168152602001610176565b34801561021b57600080fd5b50610240604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101769190610cc2565b34801561025957600080fd5b5060015461016c565b6101026105d6565b34801561027657600080fd5b506002546101f7565b34801561028b57600080fd5b5061010261029a366004610b92565b610628565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff16806102e95750805467ffffffffffffffff808416911610155b156103075760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b1781556103386103333390565b610668565b60026000819055839055805468ff00000000000000001916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b60025433146103a257600080fd5b6001548111156103c557604051636a259e3160e11b815260040160405180910390fd5b806001540360015560008060008084335af1806103e157600080fd5b507f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d533604080516001600160a01b039092168252602082018490520160405180910390a150565b610430610679565b61043981610730565b604080516000815260208101909152610453908290610738565b50565b61045e610679565b61046782610730565b6104718282610738565b5050565b600061047f61080c565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6104ac610855565b6104b660006108b0565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156104fe5750825b905060008267ffffffffffffffff16600114801561051b5750303b155b905081158015610529575080155b156105475760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561057657845468ff00000000000000001916600160401b1785555b61057f33610668565b600160005583156105cf57845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b34600154016001557f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c46106063390565b604080516001600160a01b0390921682523460208301520160405180910390a1565b610630610855565b6001600160a01b03811661065f57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610453816108b0565b61067061092e565b61045381610977565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061071257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107067f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156104b65760405163703e46dd60e11b815260040160405180910390fd5b610453610855565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610792575060408051601f3d908101601f1916820190925261078f91810190610cf5565b60015b6107ba57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610656565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146107fd57604051632a87526960e21b815260048101829052602401610656565b610807838361097f565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104b65760405163703e46dd60e11b815260040160405180910390fd5b336108877f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146104b65760405163118cdaa760e01b8152336004820152602401610656565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166104b657604051631afcd79f60e31b815260040160405180910390fd5b61063061092e565b610988826109d5565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156109cd576108078282610a59565b610471610acf565b806001600160a01b03163b600003610a0b57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610656565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610a769190610d0e565b600060405180830381855af49150503d8060008114610ab1576040519150601f19603f3d011682016040523d82523d6000602084013e610ab6565b606091505b5091509150610ac6858383610aee565b95945050505050565b34156104b65760405163b398979f60e01b815260040160405180910390fd5b606082610b0357610afe82610b4d565b610b46565b8151158015610b1a57506001600160a01b0384163b155b15610b4357604051639996b31560e01b81526001600160a01b0385166004820152602401610656565b50805b9392505050565b805115610b5d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114610b8d57600080fd5b919050565b600060208284031215610ba457600080fd5b610b4682610b76565b600060208284031215610bbf57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610bef57600080fd5b610bf883610b76565b9150602083013567ffffffffffffffff80821115610c1557600080fd5b818501915085601f830112610c2957600080fd5b813581811115610c3b57610c3b610bc6565b604051601f8201601f19908116603f01168101908382118183101715610c6357610c63610bc6565b81604052828152886020848701011115610c7c57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610cb9578181015183820152602001610ca1565b50506000910152565b6020815260008251806020840152610ce1816040850160208701610c9e565b601f01601f19169190910160400192915050565b600060208284031215610d0757600080fd5b5051919050565b60008251610d20818460208701610c9e565b919091019291505056fea264697066735822122010b6f4d414111730e2cc7db7e98efb40d15d39a8b56f5aac786623d8a182926b64736f6c63430008140033", - "deployedBytecode": "0x6080604052600436106100dd5760003560e01c80638129fc1c1161007f578063ad7a672f11610059578063ad7a672f1461024d578063d0e30db014610262578063f12864f61461026a578063f2fde38b1461027f57600080fd5b80638129fc1c146101a95780638da5cb5b146101be578063ad3cb1cc1461020f57600080fd5b80634f1ef286116100bb5780634f1ef2861461014457806352d1902d1461015757806354fd4d501461017f578063715018a61461019457600080fd5b806329b6eca9146100e25780632e1a7d4d146101045780633659cfe614610124575b600080fd5b3480156100ee57600080fd5b506101026100fd366004610b92565b61029f565b005b34801561011057600080fd5b5061010261011f366004610bad565b610394565b34801561013057600080fd5b5061010261013f366004610b92565b610428565b610102610152366004610bdc565b610456565b34801561016357600080fd5b5061016c610475565b6040519081526020015b60405180910390f35b34801561018b57600080fd5b5060005461016c565b3480156101a057600080fd5b506101026104a4565b3480156101b557600080fd5b506101026104b8565b3480156101ca57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03165b6040516001600160a01b039091168152602001610176565b34801561021b57600080fd5b50610240604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101769190610cc2565b34801561025957600080fd5b5060015461016c565b6101026105d6565b34801561027657600080fd5b506002546101f7565b34801561028b57600080fd5b5061010261029a366004610b92565b610628565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff16806102e95750805467ffffffffffffffff808416911610155b156103075760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b1781556103386103333390565b610668565b60026000819055839055805468ff00000000000000001916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b60025433146103a257600080fd5b6001548111156103c557604051636a259e3160e11b815260040160405180910390fd5b806001540360015560008060008084335af1806103e157600080fd5b507f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d533604080516001600160a01b039092168252602082018490520160405180910390a150565b610430610679565b61043981610730565b604080516000815260208101909152610453908290610738565b50565b61045e610679565b61046782610730565b6104718282610738565b5050565b600061047f61080c565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6104ac610855565b6104b660006108b0565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156104fe5750825b905060008267ffffffffffffffff16600114801561051b5750303b155b905081158015610529575080155b156105475760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561057657845468ff00000000000000001916600160401b1785555b61057f33610668565b600160005583156105cf57845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b34600154016001557f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c46106063390565b604080516001600160a01b0390921682523460208301520160405180910390a1565b610630610855565b6001600160a01b03811661065f57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610453816108b0565b61067061092e565b61045381610977565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061071257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166107067f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156104b65760405163703e46dd60e11b815260040160405180910390fd5b610453610855565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610792575060408051601f3d908101601f1916820190925261078f91810190610cf5565b60015b6107ba57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610656565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146107fd57604051632a87526960e21b815260048101829052602401610656565b610807838361097f565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104b65760405163703e46dd60e11b815260040160405180910390fd5b336108877f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146104b65760405163118cdaa760e01b8152336004820152602401610656565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166104b657604051631afcd79f60e31b815260040160405180910390fd5b61063061092e565b610988826109d5565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156109cd576108078282610a59565b610471610acf565b806001600160a01b03163b600003610a0b57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610656565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610a769190610d0e565b600060405180830381855af49150503d8060008114610ab1576040519150601f19603f3d011682016040523d82523d6000602084013e610ab6565b606091505b5091509150610ac6858383610aee565b95945050505050565b34156104b65760405163b398979f60e01b815260040160405180910390fd5b606082610b0357610afe82610b4d565b610b46565b8151158015610b1a57506001600160a01b0384163b155b15610b4357604051639996b31560e01b81526001600160a01b0385166004820152602401610656565b50805b9392505050565b805115610b5d5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114610b8d57600080fd5b919050565b600060208284031215610ba457600080fd5b610b4682610b76565b600060208284031215610bbf57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610bef57600080fd5b610bf883610b76565b9150602083013567ffffffffffffffff80821115610c1557600080fd5b818501915085601f830112610c2957600080fd5b813581811115610c3b57610c3b610bc6565b604051601f8201601f19908116603f01168101908382118183101715610c6357610c63610bc6565b81604052828152886020848701011115610c7c57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610cb9578181015183820152602001610ca1565b50506000910152565b6020815260008251806020840152610ce1816040850160208701610c9e565b601f01601f19169190910160400192915050565b600060208284031215610d0757600080fd5b5051919050565b60008251610d20818460208701610c9e565b919091019291505056fea264697066735822122010b6f4d414111730e2cc7db7e98efb40d15d39a8b56f5aac786623d8a182926b64736f6c63430008140033", + "bytecode": "0x60a06040523060805234801561001457600080fd5b50608051610d0a61003e6000396000818161062e0152818161065701526107c10152610d0a6000f3fe6080604052600436106100d25760003560e01c80638129fc1c1161007f578063ad7a672f11610059578063ad7a672f14610222578063d0e30db014610237578063f12864f61461023f578063f2fde38b1461025457600080fd5b80638129fc1c1461017e5780638da5cb5b14610193578063ad3cb1cc146101e457600080fd5b806352d1902d116100b057806352d1902d1461012c57806354fd4d5014610154578063715018a61461016957600080fd5b806329b6eca9146100d75780632e1a7d4d146100f95780634f1ef28614610119575b600080fd5b3480156100e357600080fd5b506100f76100f2366004610b3c565b610274565b005b34801561010557600080fd5b506100f7610114366004610b57565b610369565b6100f7610127366004610b86565b6103fd565b34801561013857600080fd5b5061014161041c565b6040519081526020015b60405180910390f35b34801561016057600080fd5b50600054610141565b34801561017557600080fd5b506100f761044b565b34801561018a57600080fd5b506100f761045f565b34801561019f57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03165b6040516001600160a01b03909116815260200161014b565b3480156101f057600080fd5b50610215604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161014b9190610c6c565b34801561022e57600080fd5b50600154610141565b6100f761057d565b34801561024b57600080fd5b506002546101cc565b34801561026057600080fd5b506100f761026f366004610b3c565b6105cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff16806102be5750805467ffffffffffffffff808416911610155b156102dc5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b17815561030d6103083390565b610612565b60026000819055839055805468ff00000000000000001916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b600254331461037757600080fd5b60015481111561039a57604051636a259e3160e11b815260040160405180910390fd5b806001540360015560008060008084335af1806103b657600080fd5b507f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d533604080516001600160a01b039092168252602082018490520160405180910390a150565b610405610623565b61040e826106da565b61041882826106e2565b5050565b60006104266107b6565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6104536107ff565b61045d600061085a565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156104a55750825b905060008267ffffffffffffffff1660011480156104c25750303b155b9050811580156104d0575080155b156104ee5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561051d57845468ff00000000000000001916600160401b1785555b61052633610612565b6001600055831561057657845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b34600154016001557f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c46105ad3390565b604080516001600160a01b0390921682523460208301520160405180910390a1565b6105d76107ff565b6001600160a01b03811661060657604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61060f8161085a565b50565b61061a6108d8565b61060f81610921565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806106bc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106b07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b1561045d5760405163703e46dd60e11b815260040160405180910390fd5b61060f6107ff565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561073c575060408051601f3d908101601f1916820190925261073991810190610c9f565b60015b61076457604051634c9c8ce360e01b81526001600160a01b03831660048201526024016105fd565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146107a757604051632a87526960e21b8152600481018290526024016105fd565b6107b18383610929565b505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461045d5760405163703e46dd60e11b815260040160405180910390fd5b336108317f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461045d5760405163118cdaa760e01b81523360048201526024016105fd565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661045d57604051631afcd79f60e31b815260040160405180910390fd5b6105d76108d8565b6109328261097f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610977576107b18282610a03565b610418610a79565b806001600160a01b03163b6000036109b557604051634c9c8ce360e01b81526001600160a01b03821660048201526024016105fd565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610a209190610cb8565b600060405180830381855af49150503d8060008114610a5b576040519150601f19603f3d011682016040523d82523d6000602084013e610a60565b606091505b5091509150610a70858383610a98565b95945050505050565b341561045d5760405163b398979f60e01b815260040160405180910390fd5b606082610aad57610aa882610af7565b610af0565b8151158015610ac457506001600160a01b0384163b155b15610aed57604051639996b31560e01b81526001600160a01b03851660048201526024016105fd565b50805b9392505050565b805115610b075780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114610b3757600080fd5b919050565b600060208284031215610b4e57600080fd5b610af082610b20565b600060208284031215610b6957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610b9957600080fd5b610ba283610b20565b9150602083013567ffffffffffffffff80821115610bbf57600080fd5b818501915085601f830112610bd357600080fd5b813581811115610be557610be5610b70565b604051601f8201601f19908116603f01168101908382118183101715610c0d57610c0d610b70565b81604052828152886020848701011115610c2657600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610c63578181015183820152602001610c4b565b50506000910152565b6020815260008251806020840152610c8b816040850160208701610c48565b601f01601f19169190910160400192915050565b600060208284031215610cb157600080fd5b5051919050565b60008251610cca818460208701610c48565b919091019291505056fea264697066735822122089e09eaa468c65f2035cd6c4bdee71db43a7651d08f49340b7f356342553e26864736f6c63430008140033", + "deployedBytecode": "0x6080604052600436106100d25760003560e01c80638129fc1c1161007f578063ad7a672f11610059578063ad7a672f14610222578063d0e30db014610237578063f12864f61461023f578063f2fde38b1461025457600080fd5b80638129fc1c1461017e5780638da5cb5b14610193578063ad3cb1cc146101e457600080fd5b806352d1902d116100b057806352d1902d1461012c57806354fd4d5014610154578063715018a61461016957600080fd5b806329b6eca9146100d75780632e1a7d4d146100f95780634f1ef28614610119575b600080fd5b3480156100e357600080fd5b506100f76100f2366004610b3c565b610274565b005b34801561010557600080fd5b506100f7610114366004610b57565b610369565b6100f7610127366004610b86565b6103fd565b34801561013857600080fd5b5061014161041c565b6040519081526020015b60405180910390f35b34801561016057600080fd5b50600054610141565b34801561017557600080fd5b506100f761044b565b34801561018a57600080fd5b506100f761045f565b34801561019f57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b03165b6040516001600160a01b03909116815260200161014b565b3480156101f057600080fd5b50610215604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161014b9190610c6c565b34801561022e57600080fd5b50600154610141565b6100f761057d565b34801561024b57600080fd5b506002546101cc565b34801561026057600080fd5b506100f761026f366004610b3c565b6105cf565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805460029190600160401b900460ff16806102be5750805467ffffffffffffffff808416911610155b156102dc5760405163f92ee8a960e01b815260040160405180910390fd5b805468ffffffffffffffffff191667ffffffffffffffff831617600160401b17815561030d6103083390565b610612565b60026000819055839055805468ff00000000000000001916815560405167ffffffffffffffff831681527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a1505050565b600254331461037757600080fd5b60015481111561039a57604051636a259e3160e11b815260040160405180910390fd5b806001540360015560008060008084335af1806103b657600080fd5b507f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d533604080516001600160a01b039092168252602082018490520160405180910390a150565b610405610623565b61040e826106da565b61041882826106e2565b5050565b60006104266107b6565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6104536107ff565b61045d600061085a565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff166000811580156104a55750825b905060008267ffffffffffffffff1660011480156104c25750303b155b9050811580156104d0575080155b156104ee5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561051d57845468ff00000000000000001916600160401b1785555b61052633610612565b6001600055831561057657845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050565b34600154016001557f2da466a7b24304f47e87fa2e1e5a81b9831ce54fec19055ce277ca2f39ba42c46105ad3390565b604080516001600160a01b0390921682523460208301520160405180910390a1565b6105d76107ff565b6001600160a01b03811661060657604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61060f8161085a565b50565b61061a6108d8565b61060f81610921565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806106bc57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106b07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b1561045d5760405163703e46dd60e11b815260040160405180910390fd5b61060f6107ff565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561073c575060408051601f3d908101601f1916820190925261073991810190610c9f565b60015b61076457604051634c9c8ce360e01b81526001600160a01b03831660048201526024016105fd565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146107a757604051632a87526960e21b8152600481018290526024016105fd565b6107b18383610929565b505050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461045d5760405163703e46dd60e11b815260040160405180910390fd5b336108317f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b03161461045d5760405163118cdaa760e01b81523360048201526024016105fd565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff1661045d57604051631afcd79f60e31b815260040160405180910390fd5b6105d76108d8565b6109328261097f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610977576107b18282610a03565b610418610a79565b806001600160a01b03163b6000036109b557604051634c9c8ce360e01b81526001600160a01b03821660048201526024016105fd565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610a209190610cb8565b600060405180830381855af49150503d8060008114610a5b576040519150601f19603f3d011682016040523d82523d6000602084013e610a60565b606091505b5091509150610a70858383610a98565b95945050505050565b341561045d5760405163b398979f60e01b815260040160405180910390fd5b606082610aad57610aa882610af7565b610af0565b8151158015610ac457506001600160a01b0384163b155b15610aed57604051639996b31560e01b81526001600160a01b03851660048201526024016105fd565b50805b9392505050565b805115610b075780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b0381168114610b3757600080fd5b919050565b600060208284031215610b4e57600080fd5b610af082610b20565b600060208284031215610b6957600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215610b9957600080fd5b610ba283610b20565b9150602083013567ffffffffffffffff80821115610bbf57600080fd5b818501915085601f830112610bd357600080fd5b813581811115610be557610be5610b70565b604051601f8201601f19908116603f01168101908382118183101715610c0d57610c0d610b70565b81604052828152886020848701011115610c2657600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b83811015610c63578181015183820152602001610c4b565b50506000910152565b6020815260008251806020840152610c8b816040850160208701610c48565b601f01601f19169190910160400192915050565b600060208284031215610cb157600080fd5b5051919050565b60008251610cca818460208701610c48565b919091019291505056fea264697066735822122089e09eaa468c65f2035cd6c4bdee71db43a7651d08f49340b7f356342553e26864736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/contracts/proxy-upgrade/counter/Counter.sol/Counter.json b/artifacts/contracts/proxy-upgrade/counter/Counter.sol/Counter.json index 6da762b4e..7faf2787d 100644 --- a/artifacts/contracts/proxy-upgrade/counter/Counter.sol/Counter.json +++ b/artifacts/contracts/proxy-upgrade/counter/Counter.sol/Counter.json @@ -252,19 +252,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -284,8 +271,8 @@ "type": "function" } ], - "bytecode": "0x60a06040523060805234801561001457600080fd5b50608051610e0c61003e600039600081816105210152818161054a01526106b40152610e0c6000f3fe6080604052600436106100c75760003560e01c8063715018a611610074578063d09de08a1161004e578063d09de08a14610203578063f2fde38b14610218578063f62d18881461023857600080fd5b8063715018a6146101765780638da5cb5b1461018b578063ad3cb1cc146101d257600080fd5b80633659cfe6116100a55780633659cfe61461012c5780634f1ef2861461014e57806352d1902d1461016157600080fd5b806306661abd146100cc57806306fdde03146100f55780632baeceb714610117575b600080fd5b3480156100d857600080fd5b506100e260015481565b6040519081526020015b60405180910390f35b34801561010157600080fd5b5061010a610258565b6040516100ec9190610a4d565b34801561012357600080fd5b506100e26102e6565b34801561013857600080fd5b5061014c610147366004610a9c565b610304565b005b61014c61015c366004610b43565b610332565b34801561016d57600080fd5b506100e2610351565b34801561018257600080fd5b5061014c610380565b34801561019757600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020016100ec565b3480156101de57600080fd5b5061010a604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561020f57600080fd5b506100e2610394565b34801561022457600080fd5b5061014c610233366004610a9c565b6103a5565b34801561024457600080fd5b5061014c610253366004610ba5565b6103e5565b6000805461026590610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461029190610bf6565b80156102de5780601f106102b3576101008083540402835291602001916102de565b820191906000526020600020905b8154815290600101906020018083116102c157829003601f168201915b505050505081565b60018054600091826102f783610c46565b9190505550600154905090565b61030c610516565b610315816105cd565b60408051600081526020810190915261032f9082906105d5565b50565b61033a610516565b610343826105cd565b61034d82826105d5565b5050565b600061035b6106a9565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6103886106f2565b610392600061074d565b565b60018054600091826102f783610c63565b6103ad6106f2565b6001600160a01b0381166103dc57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61032f8161074d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156104305750825b905060008267ffffffffffffffff16600114801561044d5750303b155b90508115801561045b575080155b156104795760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156104ad57845468ff00000000000000001916680100000000000000001785555b60006104b98782610ce1565b506104c3336107cb565b831561050e57845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806105af57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103925760405163703e46dd60e11b815260040160405180910390fd5b61032f6106f2565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561062f575060408051601f3d908101601f1916820190925261062c91810190610da1565b60015b61065757604051634c9c8ce360e01b81526001600160a01b03831660048201526024016103d3565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461069a57604051632a87526960e21b8152600481018290526024016103d3565b6106a483836107dc565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103925760405163703e46dd60e11b815260040160405180910390fd5b336107247f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103925760405163118cdaa760e01b81523360048201526024016103d3565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6107d3610832565b61032f81610880565b6107e582610888565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561082a576106a4828261090c565b61034d610982565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661039257604051631afcd79f60e31b815260040160405180910390fd5b6103ad610832565b806001600160a01b03163b6000036108be57604051634c9c8ce360e01b81526001600160a01b03821660048201526024016103d3565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516109299190610dba565b600060405180830381855af49150503d8060008114610964576040519150601f19603f3d011682016040523d82523d6000602084013e610969565b606091505b50915091506109798583836109a1565b95945050505050565b34156103925760405163b398979f60e01b815260040160405180910390fd5b6060826109b6576109b182610a00565b6109f9565b81511580156109cd57506001600160a01b0384163b155b156109f657604051639996b31560e01b81526001600160a01b03851660048201526024016103d3565b50805b9392505050565b805115610a105780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60005b83811015610a44578181015183820152602001610a2c565b50506000910152565b6020815260008251806020840152610a6c816040850160208701610a29565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610a9757600080fd5b919050565b600060208284031215610aae57600080fd5b6109f982610a80565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610ae857610ae8610ab7565b604051601f8501601f19908116603f01168101908282118183101715610b1057610b10610ab7565b81604052809350858152868686011115610b2957600080fd5b858560208301376000602087830101525050509392505050565b60008060408385031215610b5657600080fd5b610b5f83610a80565b9150602083013567ffffffffffffffff811115610b7b57600080fd5b8301601f81018513610b8c57600080fd5b610b9b85823560208401610acd565b9150509250929050565b600060208284031215610bb757600080fd5b813567ffffffffffffffff811115610bce57600080fd5b8201601f81018413610bdf57600080fd5b610bee84823560208401610acd565b949350505050565b600181811c90821680610c0a57607f821691505b602082108103610c2a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201610c5b57610c5b610c30565b506000190190565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610c9457610c94610c30565b5060010190565b601f8211156106a457600081815260208120601f850160051c81016020861015610cc25750805b601f850160051c820191505b8181101561050e57828155600101610cce565b815167ffffffffffffffff811115610cfb57610cfb610ab7565b610d0f81610d098454610bf6565b84610c9b565b602080601f831160018114610d445760008415610d2c5750858301515b600019600386901b1c1916600185901b17855561050e565b600085815260208120601f198616915b82811015610d7357888601518255948401946001909101908401610d54565b5085821015610d915787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215610db357600080fd5b5051919050565b60008251610dcc818460208701610a29565b919091019291505056fea26469706673582212207db4aaab8012fcec8f96a490a558080e7d934251153afb6425d203eccddd19c064736f6c63430008140033", - "deployedBytecode": "0x6080604052600436106100c75760003560e01c8063715018a611610074578063d09de08a1161004e578063d09de08a14610203578063f2fde38b14610218578063f62d18881461023857600080fd5b8063715018a6146101765780638da5cb5b1461018b578063ad3cb1cc146101d257600080fd5b80633659cfe6116100a55780633659cfe61461012c5780634f1ef2861461014e57806352d1902d1461016157600080fd5b806306661abd146100cc57806306fdde03146100f55780632baeceb714610117575b600080fd5b3480156100d857600080fd5b506100e260015481565b6040519081526020015b60405180910390f35b34801561010157600080fd5b5061010a610258565b6040516100ec9190610a4d565b34801561012357600080fd5b506100e26102e6565b34801561013857600080fd5b5061014c610147366004610a9c565b610304565b005b61014c61015c366004610b43565b610332565b34801561016d57600080fd5b506100e2610351565b34801561018257600080fd5b5061014c610380565b34801561019757600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020016100ec565b3480156101de57600080fd5b5061010a604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561020f57600080fd5b506100e2610394565b34801561022457600080fd5b5061014c610233366004610a9c565b6103a5565b34801561024457600080fd5b5061014c610253366004610ba5565b6103e5565b6000805461026590610bf6565b80601f016020809104026020016040519081016040528092919081815260200182805461029190610bf6565b80156102de5780601f106102b3576101008083540402835291602001916102de565b820191906000526020600020905b8154815290600101906020018083116102c157829003601f168201915b505050505081565b60018054600091826102f783610c46565b9190505550600154905090565b61030c610516565b610315816105cd565b60408051600081526020810190915261032f9082906105d5565b50565b61033a610516565b610343826105cd565b61034d82826105d5565b5050565b600061035b6106a9565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6103886106f2565b610392600061074d565b565b60018054600091826102f783610c63565b6103ad6106f2565b6001600160a01b0381166103dc57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61032f8161074d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156104305750825b905060008267ffffffffffffffff16600114801561044d5750303b155b90508115801561045b575080155b156104795760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156104ad57845468ff00000000000000001916680100000000000000001785555b60006104b98782610ce1565b506104c3336107cb565b831561050e57845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806105af57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105a37f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103925760405163703e46dd60e11b815260040160405180910390fd5b61032f6106f2565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561062f575060408051601f3d908101601f1916820190925261062c91810190610da1565b60015b61065757604051634c9c8ce360e01b81526001600160a01b03831660048201526024016103d3565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461069a57604051632a87526960e21b8152600481018290526024016103d3565b6106a483836107dc565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103925760405163703e46dd60e11b815260040160405180910390fd5b336107247f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103925760405163118cdaa760e01b81523360048201526024016103d3565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6107d3610832565b61032f81610880565b6107e582610888565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561082a576106a4828261090c565b61034d610982565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661039257604051631afcd79f60e31b815260040160405180910390fd5b6103ad610832565b806001600160a01b03163b6000036108be57604051634c9c8ce360e01b81526001600160a01b03821660048201526024016103d3565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516109299190610dba565b600060405180830381855af49150503d8060008114610964576040519150601f19603f3d011682016040523d82523d6000602084013e610969565b606091505b50915091506109798583836109a1565b95945050505050565b34156103925760405163b398979f60e01b815260040160405180910390fd5b6060826109b6576109b182610a00565b6109f9565b81511580156109cd57506001600160a01b0384163b155b156109f657604051639996b31560e01b81526001600160a01b03851660048201526024016103d3565b50805b9392505050565b805115610a105780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60005b83811015610a44578181015183820152602001610a2c565b50506000910152565b6020815260008251806020840152610a6c816040850160208701610a29565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610a9757600080fd5b919050565b600060208284031215610aae57600080fd5b6109f982610a80565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610ae857610ae8610ab7565b604051601f8501601f19908116603f01168101908282118183101715610b1057610b10610ab7565b81604052809350858152868686011115610b2957600080fd5b858560208301376000602087830101525050509392505050565b60008060408385031215610b5657600080fd5b610b5f83610a80565b9150602083013567ffffffffffffffff811115610b7b57600080fd5b8301601f81018513610b8c57600080fd5b610b9b85823560208401610acd565b9150509250929050565b600060208284031215610bb757600080fd5b813567ffffffffffffffff811115610bce57600080fd5b8201601f81018413610bdf57600080fd5b610bee84823560208401610acd565b949350505050565b600181811c90821680610c0a57607f821691505b602082108103610c2a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201610c5b57610c5b610c30565b506000190190565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610c9457610c94610c30565b5060010190565b601f8211156106a457600081815260208120601f850160051c81016020861015610cc25750805b601f850160051c820191505b8181101561050e57828155600101610cce565b815167ffffffffffffffff811115610cfb57610cfb610ab7565b610d0f81610d098454610bf6565b84610c9b565b602080601f831160018114610d445760008415610d2c5750858301515b600019600386901b1c1916600185901b17855561050e565b600085815260208120601f198616915b82811015610d7357888601518255948401946001909101908401610d54565b5085821015610d915787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215610db357600080fd5b5051919050565b60008251610dcc818460208701610a29565b919091019291505056fea26469706673582212207db4aaab8012fcec8f96a490a558080e7d934251153afb6425d203eccddd19c064736f6c63430008140033", + "bytecode": "0x60a06040523060805234801561001457600080fd5b50608051610da661003e600039600081816104bb015281816104e4015261064e0152610da66000f3fe6080604052600436106100ac5760003560e01c8063715018a611610074578063d09de08a1161004e578063d09de08a146101c8578063f2fde38b146101dd578063f62d1888146101fd57600080fd5b8063715018a61461013b5780638da5cb5b14610150578063ad3cb1cc1461019757600080fd5b806306661abd146100b157806306fdde03146100da5780632baeceb7146100fc5780634f1ef2861461011157806352d1902d14610126575b600080fd5b3480156100bd57600080fd5b506100c760015481565b6040519081526020015b60405180910390f35b3480156100e657600080fd5b506100ef61021d565b6040516100d191906109e7565b34801561010857600080fd5b506100c76102ab565b61012461011f366004610ac2565b6102c9565b005b34801561013257600080fd5b506100c76102e8565b34801561014757600080fd5b50610124610317565b34801561015c57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020016100d1565b3480156101a357600080fd5b506100ef604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156101d457600080fd5b506100c761032b565b3480156101e957600080fd5b506101246101f8366004610b24565b61033c565b34801561020957600080fd5b50610124610218366004610b3f565b61037f565b6000805461022a90610b90565b80601f016020809104026020016040519081016040528092919081815260200182805461025690610b90565b80156102a35780601f10610278576101008083540402835291602001916102a3565b820191906000526020600020905b81548152906001019060200180831161028657829003601f168201915b505050505081565b60018054600091826102bc83610be0565b9190505550600154905090565b6102d16104b0565b6102da82610567565b6102e4828261056f565b5050565b60006102f2610643565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b61031f61068c565b61032960006106e7565b565b60018054600091826102bc83610bfd565b61034461068c565b6001600160a01b03811661037357604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61037c816106e7565b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156103ca5750825b905060008267ffffffffffffffff1660011480156103e75750303b155b9050811580156103f5575080155b156104135760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561044757845468ff00000000000000001916680100000000000000001785555b60006104538782610c7b565b5061045d33610765565b83156104a857845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061054957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661053d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103295760405163703e46dd60e11b815260040160405180910390fd5b61037c61068c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156105c9575060408051601f3d908101601f191682019092526105c691810190610d3b565b60015b6105f157604051634c9c8ce360e01b81526001600160a01b038316600482015260240161036a565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461063457604051632a87526960e21b81526004810182905260240161036a565b61063e8383610776565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103295760405163703e46dd60e11b815260040160405180910390fd5b336106be7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103295760405163118cdaa760e01b815233600482015260240161036a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61076d6107cc565b61037c8161081a565b61077f82610822565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156107c45761063e82826108a6565b6102e461091c565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661032957604051631afcd79f60e31b815260040160405180910390fd5b6103446107cc565b806001600160a01b03163b60000361085857604051634c9c8ce360e01b81526001600160a01b038216600482015260240161036a565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516108c39190610d54565b600060405180830381855af49150503d80600081146108fe576040519150601f19603f3d011682016040523d82523d6000602084013e610903565b606091505b509150915061091385838361093b565b95945050505050565b34156103295760405163b398979f60e01b815260040160405180910390fd5b6060826109505761094b8261099a565b610993565b815115801561096757506001600160a01b0384163b155b1561099057604051639996b31560e01b81526001600160a01b038516600482015260240161036a565b50805b9392505050565b8051156109aa5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60005b838110156109de5781810151838201526020016109c6565b50506000910152565b6020815260008251806020840152610a068160408501602087016109c3565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610a3157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610a6757610a67610a36565b604051601f8501601f19908116603f01168101908282118183101715610a8f57610a8f610a36565b81604052809350858152868686011115610aa857600080fd5b858560208301376000602087830101525050509392505050565b60008060408385031215610ad557600080fd5b610ade83610a1a565b9150602083013567ffffffffffffffff811115610afa57600080fd5b8301601f81018513610b0b57600080fd5b610b1a85823560208401610a4c565b9150509250929050565b600060208284031215610b3657600080fd5b61099382610a1a565b600060208284031215610b5157600080fd5b813567ffffffffffffffff811115610b6857600080fd5b8201601f81018413610b7957600080fd5b610b8884823560208401610a4c565b949350505050565b600181811c90821680610ba457607f821691505b602082108103610bc457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201610bf557610bf5610bca565b506000190190565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610c2e57610c2e610bca565b5060010190565b601f82111561063e57600081815260208120601f850160051c81016020861015610c5c5750805b601f850160051c820191505b818110156104a857828155600101610c68565b815167ffffffffffffffff811115610c9557610c95610a36565b610ca981610ca38454610b90565b84610c35565b602080601f831160018114610cde5760008415610cc65750858301515b600019600386901b1c1916600185901b1785556104a8565b600085815260208120601f198616915b82811015610d0d57888601518255948401946001909101908401610cee565b5085821015610d2b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215610d4d57600080fd5b5051919050565b60008251610d668184602087016109c3565b919091019291505056fea2646970667358221220c313d38dfeb5a81c01d4e1c6c347961950ee030ba30c276279b4d80a4dd216de64736f6c63430008140033", + "deployedBytecode": "0x6080604052600436106100ac5760003560e01c8063715018a611610074578063d09de08a1161004e578063d09de08a146101c8578063f2fde38b146101dd578063f62d1888146101fd57600080fd5b8063715018a61461013b5780638da5cb5b14610150578063ad3cb1cc1461019757600080fd5b806306661abd146100b157806306fdde03146100da5780632baeceb7146100fc5780634f1ef2861461011157806352d1902d14610126575b600080fd5b3480156100bd57600080fd5b506100c760015481565b6040519081526020015b60405180910390f35b3480156100e657600080fd5b506100ef61021d565b6040516100d191906109e7565b34801561010857600080fd5b506100c76102ab565b61012461011f366004610ac2565b6102c9565b005b34801561013257600080fd5b506100c76102e8565b34801561014757600080fd5b50610124610317565b34801561015c57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020016100d1565b3480156101a357600080fd5b506100ef604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156101d457600080fd5b506100c761032b565b3480156101e957600080fd5b506101246101f8366004610b24565b61033c565b34801561020957600080fd5b50610124610218366004610b3f565b61037f565b6000805461022a90610b90565b80601f016020809104026020016040519081016040528092919081815260200182805461025690610b90565b80156102a35780601f10610278576101008083540402835291602001916102a3565b820191906000526020600020905b81548152906001019060200180831161028657829003601f168201915b505050505081565b60018054600091826102bc83610be0565b9190505550600154905090565b6102d16104b0565b6102da82610567565b6102e4828261056f565b5050565b60006102f2610643565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b61031f61068c565b61032960006106e7565b565b60018054600091826102bc83610bfd565b61034461068c565b6001600160a01b03811661037357604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61037c816106e7565b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156103ca5750825b905060008267ffffffffffffffff1660011480156103e75750303b155b9050811580156103f5575080155b156104135760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561044757845468ff00000000000000001916680100000000000000001785555b60006104538782610c7b565b5061045d33610765565b83156104a857845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061054957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661053d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103295760405163703e46dd60e11b815260040160405180910390fd5b61037c61068c565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156105c9575060408051601f3d908101601f191682019092526105c691810190610d3b565b60015b6105f157604051634c9c8ce360e01b81526001600160a01b038316600482015260240161036a565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461063457604051632a87526960e21b81526004810182905260240161036a565b61063e8383610776565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103295760405163703e46dd60e11b815260040160405180910390fd5b336106be7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103295760405163118cdaa760e01b815233600482015260240161036a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61076d6107cc565b61037c8161081a565b61077f82610822565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a28051156107c45761063e82826108a6565b6102e461091c565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661032957604051631afcd79f60e31b815260040160405180910390fd5b6103446107cc565b806001600160a01b03163b60000361085857604051634c9c8ce360e01b81526001600160a01b038216600482015260240161036a565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516108c39190610d54565b600060405180830381855af49150503d80600081146108fe576040519150601f19603f3d011682016040523d82523d6000602084013e610903565b606091505b509150915061091385838361093b565b95945050505050565b34156103295760405163b398979f60e01b815260040160405180910390fd5b6060826109505761094b8261099a565b610993565b815115801561096757506001600160a01b0384163b155b1561099057604051639996b31560e01b81526001600160a01b038516600482015260240161036a565b50805b9392505050565b8051156109aa5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60005b838110156109de5781810151838201526020016109c6565b50506000910152565b6020815260008251806020840152610a068160408501602087016109c3565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610a3157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610a6757610a67610a36565b604051601f8501601f19908116603f01168101908282118183101715610a8f57610a8f610a36565b81604052809350858152868686011115610aa857600080fd5b858560208301376000602087830101525050509392505050565b60008060408385031215610ad557600080fd5b610ade83610a1a565b9150602083013567ffffffffffffffff811115610afa57600080fd5b8301601f81018513610b0b57600080fd5b610b1a85823560208401610a4c565b9150509250929050565b600060208284031215610b3657600080fd5b61099382610a1a565b600060208284031215610b5157600080fd5b813567ffffffffffffffff811115610b6857600080fd5b8201601f81018413610b7957600080fd5b610b8884823560208401610a4c565b949350505050565b600181811c90821680610ba457607f821691505b602082108103610bc457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201610bf557610bf5610bca565b506000190190565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610c2e57610c2e610bca565b5060010190565b601f82111561063e57600081815260208120601f850160051c81016020861015610c5c5750805b601f850160051c820191505b818110156104a857828155600101610c68565b815167ffffffffffffffff811115610c9557610c95610a36565b610ca981610ca38454610b90565b84610c35565b602080601f831160018114610cde5760008415610cc65750858301515b600019600386901b1c1916600185901b1785556104a8565b600085815260208120601f198616915b82811015610d0d57888601518255948401946001909101908401610cee565b5085821015610d2b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215610d4d57600080fd5b5051919050565b60008251610d668184602087016109c3565b919091019291505056fea2646970667358221220c313d38dfeb5a81c01d4e1c6c347961950ee030ba30c276279b4d80a4dd216de64736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/contracts/proxy-upgrade/counter/CounterV2.sol/CounterV2.json b/artifacts/contracts/proxy-upgrade/counter/CounterV2.sol/CounterV2.json index b1890250d..b870c0ab9 100644 --- a/artifacts/contracts/proxy-upgrade/counter/CounterV2.sol/CounterV2.json +++ b/artifacts/contracts/proxy-upgrade/counter/CounterV2.sol/CounterV2.json @@ -265,19 +265,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -297,8 +284,8 @@ "type": "function" } ], - "bytecode": "0x60a06040523060805234801561001457600080fd5b50608051610e4361003e600039600081816105580152818161058101526106eb0152610e436000f3fe6080604052600436106100d25760003560e01c80635353a2d81161007f578063ad3cb1cc11610059578063ad3cb1cc146101fd578063d09de08a1461022e578063f2fde38b14610243578063f62d18881461026357600080fd5b80635353a2d814610181578063715018a6146101a15780638da5cb5b146101b657600080fd5b80633659cfe6116100b05780633659cfe6146101375780634f1ef2861461015957806352d1902d1461016c57600080fd5b806306661abd146100d757806306fdde03146101005780632baeceb714610122575b600080fd5b3480156100e357600080fd5b506100ed60015481565b6040519081526020015b60405180910390f35b34801561010c57600080fd5b50610115610283565b6040516100f79190610a84565b34801561012e57600080fd5b506100ed610311565b34801561014357600080fd5b50610157610152366004610ad3565b61032f565b005b610157610167366004610b7a565b61035d565b34801561017857600080fd5b506100ed61037c565b34801561018d57600080fd5b5061015761019c366004610bdc565b6103ab565b3480156101ad57600080fd5b506101576103b7565b3480156101c257600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020016100f7565b34801561020957600080fd5b50610115604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561023a57600080fd5b506100ed6103cb565b34801561024f57600080fd5b5061015761025e366004610ad3565b6103dc565b34801561026f57600080fd5b5061015761027e366004610bdc565b61041c565b6000805461029090610c2d565b80601f01602080910402602001604051908101604052809291908181526020018280546102bc90610c2d565b80156103095780601f106102de57610100808354040283529160200191610309565b820191906000526020600020905b8154815290600101906020018083116102ec57829003601f168201915b505050505081565b600180546000918261032283610c7d565b9190505550600154905090565b61033761054d565b61034081610604565b60408051600081526020810190915261035a90829061060c565b50565b61036561054d565b61036e82610604565b610378828261060c565b5050565b60006103866106e0565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b60006103788282610ce0565b6103bf610729565b6103c96000610784565b565b600180546000918261032283610da0565b6103e4610729565b6001600160a01b03811661041357604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61035a81610784565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156104675750825b905060008267ffffffffffffffff1660011480156104845750303b155b905081158015610492575080155b156104b05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156104e457845468ff00000000000000001916680100000000000000001785555b60006104f08782610ce0565b506104fa33610802565b831561054557845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806105e657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105da7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103c95760405163703e46dd60e11b815260040160405180910390fd5b61035a610729565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610666575060408051601f3d908101601f1916820190925261066391810190610dd8565b60015b61068e57604051634c9c8ce360e01b81526001600160a01b038316600482015260240161040a565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146106d157604051632a87526960e21b81526004810182905260240161040a565b6106db8383610813565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103c95760405163703e46dd60e11b815260040160405180910390fd5b3361075b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103c95760405163118cdaa760e01b815233600482015260240161040a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61080a610869565b61035a816108b7565b61081c826108bf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610861576106db8282610943565b6103786109b9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166103c957604051631afcd79f60e31b815260040160405180910390fd5b6103e4610869565b806001600160a01b03163b6000036108f557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161040a565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516109609190610df1565b600060405180830381855af49150503d806000811461099b576040519150601f19603f3d011682016040523d82523d6000602084013e6109a0565b606091505b50915091506109b08583836109d8565b95945050505050565b34156103c95760405163b398979f60e01b815260040160405180910390fd5b6060826109ed576109e882610a37565b610a30565b8151158015610a0457506001600160a01b0384163b155b15610a2d57604051639996b31560e01b81526001600160a01b038516600482015260240161040a565b50805b9392505050565b805115610a475780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60005b83811015610a7b578181015183820152602001610a63565b50506000910152565b6020815260008251806020840152610aa3816040850160208701610a60565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610ace57600080fd5b919050565b600060208284031215610ae557600080fd5b610a3082610ab7565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610b1f57610b1f610aee565b604051601f8501601f19908116603f01168101908282118183101715610b4757610b47610aee565b81604052809350858152868686011115610b6057600080fd5b858560208301376000602087830101525050509392505050565b60008060408385031215610b8d57600080fd5b610b9683610ab7565b9150602083013567ffffffffffffffff811115610bb257600080fd5b8301601f81018513610bc357600080fd5b610bd285823560208401610b04565b9150509250929050565b600060208284031215610bee57600080fd5b813567ffffffffffffffff811115610c0557600080fd5b8201601f81018413610c1657600080fd5b610c2584823560208401610b04565b949350505050565b600181811c90821680610c4157607f821691505b602082108103610c6157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201610c9257610c92610c67565b506000190190565b601f8211156106db57600081815260208120601f850160051c81016020861015610cc15750805b601f850160051c820191505b8181101561054557828155600101610ccd565b815167ffffffffffffffff811115610cfa57610cfa610aee565b610d0e81610d088454610c2d565b84610c9a565b602080601f831160018114610d435760008415610d2b5750858301515b600019600386901b1c1916600185901b178555610545565b600085815260208120601f198616915b82811015610d7257888601518255948401946001909101908401610d53565b5085821015610d905787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610dd157610dd1610c67565b5060010190565b600060208284031215610dea57600080fd5b5051919050565b60008251610e03818460208701610a60565b919091019291505056fea264697066735822122020ea770c7bd974f8a80b4e412051423b3547f1e3a7dd37cca6e69a9c000c373f64736f6c63430008140033", - "deployedBytecode": "0x6080604052600436106100d25760003560e01c80635353a2d81161007f578063ad3cb1cc11610059578063ad3cb1cc146101fd578063d09de08a1461022e578063f2fde38b14610243578063f62d18881461026357600080fd5b80635353a2d814610181578063715018a6146101a15780638da5cb5b146101b657600080fd5b80633659cfe6116100b05780633659cfe6146101375780634f1ef2861461015957806352d1902d1461016c57600080fd5b806306661abd146100d757806306fdde03146101005780632baeceb714610122575b600080fd5b3480156100e357600080fd5b506100ed60015481565b6040519081526020015b60405180910390f35b34801561010c57600080fd5b50610115610283565b6040516100f79190610a84565b34801561012e57600080fd5b506100ed610311565b34801561014357600080fd5b50610157610152366004610ad3565b61032f565b005b610157610167366004610b7a565b61035d565b34801561017857600080fd5b506100ed61037c565b34801561018d57600080fd5b5061015761019c366004610bdc565b6103ab565b3480156101ad57600080fd5b506101576103b7565b3480156101c257600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020016100f7565b34801561020957600080fd5b50610115604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561023a57600080fd5b506100ed6103cb565b34801561024f57600080fd5b5061015761025e366004610ad3565b6103dc565b34801561026f57600080fd5b5061015761027e366004610bdc565b61041c565b6000805461029090610c2d565b80601f01602080910402602001604051908101604052809291908181526020018280546102bc90610c2d565b80156103095780601f106102de57610100808354040283529160200191610309565b820191906000526020600020905b8154815290600101906020018083116102ec57829003601f168201915b505050505081565b600180546000918261032283610c7d565b9190505550600154905090565b61033761054d565b61034081610604565b60408051600081526020810190915261035a90829061060c565b50565b61036561054d565b61036e82610604565b610378828261060c565b5050565b60006103866106e0565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b60006103788282610ce0565b6103bf610729565b6103c96000610784565b565b600180546000918261032283610da0565b6103e4610729565b6001600160a01b03811661041357604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b61035a81610784565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156104675750825b905060008267ffffffffffffffff1660011480156104845750303b155b905081158015610492575080155b156104b05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156104e457845468ff00000000000000001916680100000000000000001785555b60006104f08782610ce0565b506104fa33610802565b831561054557845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806105e657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105da7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103c95760405163703e46dd60e11b815260040160405180910390fd5b61035a610729565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610666575060408051601f3d908101601f1916820190925261066391810190610dd8565b60015b61068e57604051634c9c8ce360e01b81526001600160a01b038316600482015260240161040a565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146106d157604051632a87526960e21b81526004810182905260240161040a565b6106db8383610813565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103c95760405163703e46dd60e11b815260040160405180910390fd5b3361075b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103c95760405163118cdaa760e01b815233600482015260240161040a565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b61080a610869565b61035a816108b7565b61081c826108bf565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610861576106db8282610943565b6103786109b9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166103c957604051631afcd79f60e31b815260040160405180910390fd5b6103e4610869565b806001600160a01b03163b6000036108f557604051634c9c8ce360e01b81526001600160a01b038216600482015260240161040a565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b0316846040516109609190610df1565b600060405180830381855af49150503d806000811461099b576040519150601f19603f3d011682016040523d82523d6000602084013e6109a0565b606091505b50915091506109b08583836109d8565b95945050505050565b34156103c95760405163b398979f60e01b815260040160405180910390fd5b6060826109ed576109e882610a37565b610a30565b8151158015610a0457506001600160a01b0384163b155b15610a2d57604051639996b31560e01b81526001600160a01b038516600482015260240161040a565b50805b9392505050565b805115610a475780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60005b83811015610a7b578181015183820152602001610a63565b50506000910152565b6020815260008251806020840152610aa3816040850160208701610a60565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610ace57600080fd5b919050565b600060208284031215610ae557600080fd5b610a3082610ab7565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610b1f57610b1f610aee565b604051601f8501601f19908116603f01168101908282118183101715610b4757610b47610aee565b81604052809350858152868686011115610b6057600080fd5b858560208301376000602087830101525050509392505050565b60008060408385031215610b8d57600080fd5b610b9683610ab7565b9150602083013567ffffffffffffffff811115610bb257600080fd5b8301601f81018513610bc357600080fd5b610bd285823560208401610b04565b9150509250929050565b600060208284031215610bee57600080fd5b813567ffffffffffffffff811115610c0557600080fd5b8201601f81018413610c1657600080fd5b610c2584823560208401610b04565b949350505050565b600181811c90821680610c4157607f821691505b602082108103610c6157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201610c9257610c92610c67565b506000190190565b601f8211156106db57600081815260208120601f850160051c81016020861015610cc15750805b601f850160051c820191505b8181101561054557828155600101610ccd565b815167ffffffffffffffff811115610cfa57610cfa610aee565b610d0e81610d088454610c2d565b84610c9a565b602080601f831160018114610d435760008415610d2b5750858301515b600019600386901b1c1916600185901b178555610545565b600085815260208120601f198616915b82811015610d7257888601518255948401946001909101908401610d53565b5085821015610d905787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610dd157610dd1610c67565b5060010190565b600060208284031215610dea57600080fd5b5051919050565b60008251610e03818460208701610a60565b919091019291505056fea264697066735822122020ea770c7bd974f8a80b4e412051423b3547f1e3a7dd37cca6e69a9c000c373f64736f6c63430008140033", + "bytecode": "0x60a06040523060805234801561001457600080fd5b50608051610ded61003e600039600081816105020152818161052b01526106950152610ded6000f3fe6080604052600436106100c75760003560e01c8063715018a611610074578063d09de08a1161004e578063d09de08a14610203578063f2fde38b14610218578063f62d18881461023857600080fd5b8063715018a6146101765780638da5cb5b1461018b578063ad3cb1cc146101d257600080fd5b80634f1ef286116100a55780634f1ef2861461012c57806352d1902d146101415780635353a2d81461015657600080fd5b806306661abd146100cc57806306fdde03146100f55780632baeceb714610117575b600080fd5b3480156100d857600080fd5b506100e260015481565b6040519081526020015b60405180910390f35b34801561010157600080fd5b5061010a610258565b6040516100ec9190610a2e565b34801561012357600080fd5b506100e26102e6565b61013f61013a366004610b09565b610304565b005b34801561014d57600080fd5b506100e2610323565b34801561016257600080fd5b5061013f610171366004610b6b565b610352565b34801561018257600080fd5b5061013f61035e565b34801561019757600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020016100ec565b3480156101de57600080fd5b5061010a604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561020f57600080fd5b506100e2610372565b34801561022457600080fd5b5061013f610233366004610bbc565b610383565b34801561024457600080fd5b5061013f610253366004610b6b565b6103c6565b6000805461026590610bd7565b80601f016020809104026020016040519081016040528092919081815260200182805461029190610bd7565b80156102de5780601f106102b3576101008083540402835291602001916102de565b820191906000526020600020905b8154815290600101906020018083116102c157829003601f168201915b505050505081565b60018054600091826102f783610c27565b9190505550600154905090565b61030c6104f7565b610315826105ae565b61031f82826105b6565b5050565b600061032d61068a565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b600061031f8282610c8a565b6103666106d3565b610370600061072e565b565b60018054600091826102f783610d4a565b61038b6106d3565b6001600160a01b0381166103ba57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6103c38161072e565b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156104115750825b905060008267ffffffffffffffff16600114801561042e5750303b155b90508115801561043c575080155b1561045a5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561048e57845468ff00000000000000001916680100000000000000001785555b600061049a8782610c8a565b506104a4336107ac565b83156104ef57845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061059057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105847f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103705760405163703e46dd60e11b815260040160405180910390fd5b6103c36106d3565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610610575060408051601f3d908101601f1916820190925261060d91810190610d82565b60015b61063857604051634c9c8ce360e01b81526001600160a01b03831660048201526024016103b1565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461067b57604051632a87526960e21b8152600481018290526024016103b1565b61068583836107bd565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103705760405163703e46dd60e11b815260040160405180910390fd5b336107057f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103705760405163118cdaa760e01b81523360048201526024016103b1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6107b4610813565b6103c381610861565b6107c682610869565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561080b5761068582826108ed565b61031f610963565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661037057604051631afcd79f60e31b815260040160405180910390fd5b61038b610813565b806001600160a01b03163b60000361089f57604051634c9c8ce360e01b81526001600160a01b03821660048201526024016103b1565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090a9190610d9b565b600060405180830381855af49150503d8060008114610945576040519150601f19603f3d011682016040523d82523d6000602084013e61094a565b606091505b509150915061095a858383610982565b95945050505050565b34156103705760405163b398979f60e01b815260040160405180910390fd5b60608261099757610992826109e1565b6109da565b81511580156109ae57506001600160a01b0384163b155b156109d757604051639996b31560e01b81526001600160a01b03851660048201526024016103b1565b50805b9392505050565b8051156109f15780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60005b83811015610a25578181015183820152602001610a0d565b50506000910152565b6020815260008251806020840152610a4d816040850160208701610a0a565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610a7857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610aae57610aae610a7d565b604051601f8501601f19908116603f01168101908282118183101715610ad657610ad6610a7d565b81604052809350858152868686011115610aef57600080fd5b858560208301376000602087830101525050509392505050565b60008060408385031215610b1c57600080fd5b610b2583610a61565b9150602083013567ffffffffffffffff811115610b4157600080fd5b8301601f81018513610b5257600080fd5b610b6185823560208401610a93565b9150509250929050565b600060208284031215610b7d57600080fd5b813567ffffffffffffffff811115610b9457600080fd5b8201601f81018413610ba557600080fd5b610bb484823560208401610a93565b949350505050565b600060208284031215610bce57600080fd5b6109da82610a61565b600181811c90821680610beb57607f821691505b602082108103610c0b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201610c3c57610c3c610c11565b506000190190565b601f82111561068557600081815260208120601f850160051c81016020861015610c6b5750805b601f850160051c820191505b818110156104ef57828155600101610c77565b815167ffffffffffffffff811115610ca457610ca4610a7d565b610cb881610cb28454610bd7565b84610c44565b602080601f831160018114610ced5760008415610cd55750858301515b600019600386901b1c1916600185901b1785556104ef565b600085815260208120601f198616915b82811015610d1c57888601518255948401946001909101908401610cfd565b5085821015610d3a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610d7b57610d7b610c11565b5060010190565b600060208284031215610d9457600080fd5b5051919050565b60008251610dad818460208701610a0a565b919091019291505056fea2646970667358221220a0f20fb6750c7e23cb976578fae7ea19bef435b3aae4fe082234d57457a861ad64736f6c63430008140033", + "deployedBytecode": "0x6080604052600436106100c75760003560e01c8063715018a611610074578063d09de08a1161004e578063d09de08a14610203578063f2fde38b14610218578063f62d18881461023857600080fd5b8063715018a6146101765780638da5cb5b1461018b578063ad3cb1cc146101d257600080fd5b80634f1ef286116100a55780634f1ef2861461012c57806352d1902d146101415780635353a2d81461015657600080fd5b806306661abd146100cc57806306fdde03146100f55780632baeceb714610117575b600080fd5b3480156100d857600080fd5b506100e260015481565b6040519081526020015b60405180910390f35b34801561010157600080fd5b5061010a610258565b6040516100ec9190610a2e565b34801561012357600080fd5b506100e26102e6565b61013f61013a366004610b09565b610304565b005b34801561014d57600080fd5b506100e2610323565b34801561016257600080fd5b5061013f610171366004610b6b565b610352565b34801561018257600080fd5b5061013f61035e565b34801561019757600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546040516001600160a01b0390911681526020016100ec565b3480156101de57600080fd5b5061010a604051806040016040528060058152602001640352e302e360dc1b81525081565b34801561020f57600080fd5b506100e2610372565b34801561022457600080fd5b5061013f610233366004610bbc565b610383565b34801561024457600080fd5b5061013f610253366004610b6b565b6103c6565b6000805461026590610bd7565b80601f016020809104026020016040519081016040528092919081815260200182805461029190610bd7565b80156102de5780601f106102b3576101008083540402835291602001916102de565b820191906000526020600020905b8154815290600101906020018083116102c157829003601f168201915b505050505081565b60018054600091826102f783610c27565b9190505550600154905090565b61030c6104f7565b610315826105ae565b61031f82826105b6565b5050565b600061032d61068a565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b600061031f8282610c8a565b6103666106d3565b610370600061072e565b565b60018054600091826102f783610d4a565b61038b6106d3565b6001600160a01b0381166103ba57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b6103c38161072e565b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156104115750825b905060008267ffffffffffffffff16600114801561042e5750303b155b90508115801561043c575080155b1561045a5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561048e57845468ff00000000000000001916680100000000000000001785555b600061049a8782610c8a565b506104a4336107ac565b83156104ef57845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061059057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166105847f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103705760405163703e46dd60e11b815260040160405180910390fd5b6103c36106d3565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610610575060408051601f3d908101601f1916820190925261060d91810190610d82565b60015b61063857604051634c9c8ce360e01b81526001600160a01b03831660048201526024016103b1565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811461067b57604051632a87526960e21b8152600481018290526024016103b1565b61068583836107bd565b505050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103705760405163703e46dd60e11b815260040160405180910390fd5b336107057f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103705760405163118cdaa760e01b81523360048201526024016103b1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300805473ffffffffffffffffffffffffffffffffffffffff1981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6107b4610813565b6103c381610861565b6107c682610869565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511561080b5761068582826108ed565b61031f610963565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661037057604051631afcd79f60e31b815260040160405180910390fd5b61038b610813565b806001600160a01b03163b60000361089f57604051634c9c8ce360e01b81526001600160a01b03821660048201526024016103b1565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405161090a9190610d9b565b600060405180830381855af49150503d8060008114610945576040519150601f19603f3d011682016040523d82523d6000602084013e61094a565b606091505b509150915061095a858383610982565b95945050505050565b34156103705760405163b398979f60e01b815260040160405180910390fd5b60608261099757610992826109e1565b6109da565b81511580156109ae57506001600160a01b0384163b155b156109d757604051639996b31560e01b81526001600160a01b03851660048201526024016103b1565b50805b9392505050565b8051156109f15780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b60005b83811015610a25578181015183820152602001610a0d565b50506000910152565b6020815260008251806020840152610a4d816040850160208701610a0a565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114610a7857600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115610aae57610aae610a7d565b604051601f8501601f19908116603f01168101908282118183101715610ad657610ad6610a7d565b81604052809350858152868686011115610aef57600080fd5b858560208301376000602087830101525050509392505050565b60008060408385031215610b1c57600080fd5b610b2583610a61565b9150602083013567ffffffffffffffff811115610b4157600080fd5b8301601f81018513610b5257600080fd5b610b6185823560208401610a93565b9150509250929050565b600060208284031215610b7d57600080fd5b813567ffffffffffffffff811115610b9457600080fd5b8201601f81018413610ba557600080fd5b610bb484823560208401610a93565b949350505050565b600060208284031215610bce57600080fd5b6109da82610a61565b600181811c90821680610beb57607f821691505b602082108103610c0b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6000600160ff1b8201610c3c57610c3c610c11565b506000190190565b601f82111561068557600081815260208120601f850160051c81016020861015610c6b5750805b601f850160051c820191505b818110156104ef57828155600101610c77565b815167ffffffffffffffff811115610ca457610ca4610a7d565b610cb881610cb28454610bd7565b84610c44565b602080601f831160018114610ced5760008415610cd55750858301515b600019600386901b1c1916600185901b1785556104ef565b600085815260208120601f198616915b82811015610d1c57888601518255948401946001909101908401610cfd565b5085821015610d3a5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203610d7b57610d7b610c11565b5060010190565b600060208284031215610d9457600080fd5b5051919050565b60008251610dad818460208701610a0a565b919091019291505056fea2646970667358221220a0f20fb6750c7e23cb976578fae7ea19bef435b3aae4fe082234d57457a861ad64736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/contracts/proxy-upgrade/exchange/Exchange.sol/Exchange.json b/artifacts/contracts/proxy-upgrade/exchange/Exchange.sol/Exchange.json index 93c2ab30f..2e74121e7 100644 --- a/artifacts/contracts/proxy-upgrade/exchange/Exchange.sol/Exchange.json +++ b/artifacts/contracts/proxy-upgrade/exchange/Exchange.sol/Exchange.json @@ -311,19 +311,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -343,8 +330,8 @@ "type": "function" } ], - "bytecode": "0x60a06040523060805234801561001457600080fd5b506080516112d361003e60003960008181610b9801528181610bc10152610d2601526112d36000f3fe6080604052600436106100fe5760003560e01c80638f3ea01711610095578063c4d66de811610064578063c4d66de81461028d578063d0e30db0146102ad578063e4849b32146102b5578063ec904f19146102d5578063f2fde38b146102ea57600080fd5b80638f3ea017146102075780639d76ea5814610227578063a6f2ae3a14610247578063ad3cb1cc1461024f57600080fd5b8063715018a6116100d1578063715018a61461018d57806382b2e257146101a257806388a9d554146101b75780638da5cb5b146101ca57600080fd5b80630cbcae70146101035780633659cfe6146101355780634f1ef2861461015757806352d1902d1461016a575b600080fd5b34801561010f57600080fd5b5061011861030a565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b5061015561015036600461109d565b610342565b005b6101556101653660046110ce565b610370565b34801561017657600080fd5b5061017f61038f565b60405190815260200161012c565b34801561019957600080fd5b506101556103be565b3480156101ae57600080fd5b5061017f6103d2565b3480156101c357600080fd5b504761017f565b3480156101d657600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610118565b34801561021357600080fd5b5061017f610222366004611190565b61043f565b34801561023357600080fd5b50600054610118906001600160a01b031681565b610155610586565b34801561025b57600080fd5b50610280604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161012c91906111d7565b34801561029957600080fd5b506101556102a836600461109d565b61071a565b610155610859565b3480156102c157600080fd5b506101556102d036600461120a565b6108a9565b3480156102e157600080fd5b5061017f610a75565b3480156102f657600080fd5b5061015561030536600461109d565b610b52565b600061033d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b61034a610b8d565b61035381610c44565b60408051600081526020810190915261036d908290610c4c565b50565b610378610b8d565b61038182610c44565b61038b8282610c4c565b5050565b6000610399610d1b565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6103c6610d64565b6103d06000610dbf565b565b600080546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561041b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033d9190611223565b6000808260070b136104985760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e60448201526064015b60405180910390fd5b60008054604080516001600160a01b039092166024830152336044830152306064830152600785900b6084808401919091528151808403909101815260a490920181526020820180516001600160e01b031663eca3691760e01b17905251829161016791610506919061123c565b6000604051808303816000865af19150503d8060008114610543576040519150601f19603f3d011682016040523d82523d6000602084013e610548565b606091505b50915091508161055957601561056d565b8080602001905181019061056d9190611258565b60030b92506016831461057f57600080fd5b5050919050565b600080546040516370a0823160e01b81523060048201523492916001600160a01b0316906370a0823190602401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190611223565b9050600082116106465760405162461bcd60e51b815260206004820152601b60248201527f596f75206e65656420746f2073656e6420736f6d6520484241522e0000000000604482015260640161048f565b808211156106a05760405162461bcd60e51b815260206004820152602160248201527f4e6f7420656e6f75676820746f6b656e7320696e2074686520726573657276656044820152601760f91b606482015260840161048f565b60005460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303816000875af11580156106f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610715919061127b565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156107655750825b905060008267ffffffffffffffff1660011480156107825750303b155b905081158015610790575080155b156107ae5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156107e257845468ff00000000000000001916680100000000000000001785555b600080546001600160a01b0319166001600160a01b03881617905561080633610e30565b831561085157845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600034116103d05760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e604482015260640161048f565b600081116109075760405162461bcd60e51b815260206004820152602560248201527f596f75206e65656420746f2073656c6c206174206c6561737420736f6d6520746044820152646f6b656e7360d81b606482015260840161048f565b60008054604051636eb1769f60e11b81523360048201523060248201526001600160a01b039091169063dd62ed3e90604401602060405180830381865afa158015610956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097a9190611223565b9050818110156109cc5760405162461bcd60e51b815260206004820152601960248201527f436865636b2074686520746f6b656e20616c6c6f77616e636500000000000000604482015260640161048f565b6000546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610a23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a47919061127b565b50604051339083156108fc029084906000818181858888f19350505050158015610715573d6000803e3d6000fd5b60008054604080513060248201526001600160a01b0390921660448084019190915281518084039091018152606490920181526020820180516001600160e01b031663248a35ef60e11b179052518291829161016791610ad49161123c565b6000604051808303816000865af19150503d8060008114610b11576040519150601f19603f3d011682016040523d82523d6000602084013e610b16565b606091505b509150915081610b27576015610b3b565b80806020019051810190610b3b9190611258565b60030b925060168314610b4d57600080fd5b505090565b610b5a610d64565b6001600160a01b038116610b8457604051631e4fbdf760e01b81526000600482015260240161048f565b61036d81610dbf565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610c2657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c1a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103d05760405163703e46dd60e11b815260040160405180910390fd5b61036d610d64565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610ca6575060408051601f3d908101601f19168201909252610ca391810190611223565b60015b610cce57604051634c9c8ce360e01b81526001600160a01b038316600482015260240161048f565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610d1157604051632a87526960e21b81526004810182905260240161048f565b6107158383610e41565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103d05760405163703e46dd60e11b815260040160405180910390fd5b33610d967f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103d05760405163118cdaa760e01b815233600482015260240161048f565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610e38610e97565b61036d81610ee5565b610e4a82610eed565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610e8f576107158282610f64565b61038b610fda565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166103d057604051631afcd79f60e31b815260040160405180910390fd5b610b5a610e97565b806001600160a01b03163b600003610f2357604051634c9c8ce360e01b81526001600160a01b038216600482015260240161048f565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610f81919061123c565b600060405180830381855af49150503d8060008114610fbc576040519150601f19603f3d011682016040523d82523d6000602084013e610fc1565b606091505b5091509150610fd1858383610ff9565b95945050505050565b34156103d05760405163b398979f60e01b815260040160405180910390fd5b60608261100e5761100982611058565b611051565b815115801561102557506001600160a01b0384163b155b1561104e57604051639996b31560e01b81526001600160a01b038516600482015260240161048f565b50805b9392505050565b8051156110685780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461109857600080fd5b919050565b6000602082840312156110af57600080fd5b61105182611081565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156110e157600080fd5b6110ea83611081565b9150602083013567ffffffffffffffff8082111561110757600080fd5b818501915085601f83011261111b57600080fd5b81358181111561112d5761112d6110b8565b604051601f8201601f19908116603f01168101908382118183101715611155576111556110b8565b8160405282815288602084870101111561116e57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000602082840312156111a257600080fd5b81358060070b811461105157600080fd5b60005b838110156111ce5781810151838201526020016111b6565b50506000910152565b60208152600082518060208401526111f68160408501602087016111b3565b601f01601f19169190910160400192915050565b60006020828403121561121c57600080fd5b5035919050565b60006020828403121561123557600080fd5b5051919050565b6000825161124e8184602087016111b3565b9190910192915050565b60006020828403121561126a57600080fd5b81518060030b811461105157600080fd5b60006020828403121561128d57600080fd5b8151801515811461105157600080fdfea2646970667358221220f518e090bdc1c1639302fcf8d65b74871e7279d2913c56c67b83760c575b211564736f6c63430008140033", - "deployedBytecode": "0x6080604052600436106100fe5760003560e01c80638f3ea01711610095578063c4d66de811610064578063c4d66de81461028d578063d0e30db0146102ad578063e4849b32146102b5578063ec904f19146102d5578063f2fde38b146102ea57600080fd5b80638f3ea017146102075780639d76ea5814610227578063a6f2ae3a14610247578063ad3cb1cc1461024f57600080fd5b8063715018a6116100d1578063715018a61461018d57806382b2e257146101a257806388a9d554146101b75780638da5cb5b146101ca57600080fd5b80630cbcae70146101035780633659cfe6146101355780634f1ef2861461015757806352d1902d1461016a575b600080fd5b34801561010f57600080fd5b5061011861030a565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014157600080fd5b5061015561015036600461109d565b610342565b005b6101556101653660046110ce565b610370565b34801561017657600080fd5b5061017f61038f565b60405190815260200161012c565b34801561019957600080fd5b506101556103be565b3480156101ae57600080fd5b5061017f6103d2565b3480156101c357600080fd5b504761017f565b3480156101d657600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610118565b34801561021357600080fd5b5061017f610222366004611190565b61043f565b34801561023357600080fd5b50600054610118906001600160a01b031681565b610155610586565b34801561025b57600080fd5b50610280604051806040016040528060058152602001640352e302e360dc1b81525081565b60405161012c91906111d7565b34801561029957600080fd5b506101556102a836600461109d565b61071a565b610155610859565b3480156102c157600080fd5b506101556102d036600461120a565b6108a9565b3480156102e157600080fd5b5061017f610a75565b3480156102f657600080fd5b5061015561030536600461109d565b610b52565b600061033d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b61034a610b8d565b61035381610c44565b60408051600081526020810190915261036d908290610c4c565b50565b610378610b8d565b61038182610c44565b61038b8282610c4c565b5050565b6000610399610d1b565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6103c6610d64565b6103d06000610dbf565b565b600080546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561041b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061033d9190611223565b6000808260070b136104985760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e60448201526064015b60405180910390fd5b60008054604080516001600160a01b039092166024830152336044830152306064830152600785900b6084808401919091528151808403909101815260a490920181526020820180516001600160e01b031663eca3691760e01b17905251829161016791610506919061123c565b6000604051808303816000865af19150503d8060008114610543576040519150601f19603f3d011682016040523d82523d6000602084013e610548565b606091505b50915091508161055957601561056d565b8080602001905181019061056d9190611258565b60030b92506016831461057f57600080fd5b5050919050565b600080546040516370a0823160e01b81523060048201523492916001600160a01b0316906370a0823190602401602060405180830381865afa1580156105d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f49190611223565b9050600082116106465760405162461bcd60e51b815260206004820152601b60248201527f596f75206e65656420746f2073656e6420736f6d6520484241522e0000000000604482015260640161048f565b808211156106a05760405162461bcd60e51b815260206004820152602160248201527f4e6f7420656e6f75676820746f6b656e7320696e2074686520726573657276656044820152601760f91b606482015260840161048f565b60005460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303816000875af11580156106f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610715919061127b565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156107655750825b905060008267ffffffffffffffff1660011480156107825750303b155b905081158015610790575080155b156107ae5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156107e257845468ff00000000000000001916680100000000000000001785555b600080546001600160a01b0319166001600160a01b03881617905561080633610e30565b831561085157845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600034116103d05760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e604482015260640161048f565b600081116109075760405162461bcd60e51b815260206004820152602560248201527f596f75206e65656420746f2073656c6c206174206c6561737420736f6d6520746044820152646f6b656e7360d81b606482015260840161048f565b60008054604051636eb1769f60e11b81523360048201523060248201526001600160a01b039091169063dd62ed3e90604401602060405180830381865afa158015610956573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061097a9190611223565b9050818110156109cc5760405162461bcd60e51b815260206004820152601960248201527f436865636b2074686520746f6b656e20616c6c6f77616e636500000000000000604482015260640161048f565b6000546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610a23573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a47919061127b565b50604051339083156108fc029084906000818181858888f19350505050158015610715573d6000803e3d6000fd5b60008054604080513060248201526001600160a01b0390921660448084019190915281518084039091018152606490920181526020820180516001600160e01b031663248a35ef60e11b179052518291829161016791610ad49161123c565b6000604051808303816000865af19150503d8060008114610b11576040519150601f19603f3d011682016040523d82523d6000602084013e610b16565b606091505b509150915081610b27576015610b3b565b80806020019051810190610b3b9190611258565b60030b925060168314610b4d57600080fd5b505090565b610b5a610d64565b6001600160a01b038116610b8457604051631e4fbdf760e01b81526000600482015260240161048f565b61036d81610dbf565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610c2657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c1a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103d05760405163703e46dd60e11b815260040160405180910390fd5b61036d610d64565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610ca6575060408051601f3d908101601f19168201909252610ca391810190611223565b60015b610cce57604051634c9c8ce360e01b81526001600160a01b038316600482015260240161048f565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610d1157604051632a87526960e21b81526004810182905260240161048f565b6107158383610e41565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103d05760405163703e46dd60e11b815260040160405180910390fd5b33610d967f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103d05760405163118cdaa760e01b815233600482015260240161048f565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610e38610e97565b61036d81610ee5565b610e4a82610eed565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610e8f576107158282610f64565b61038b610fda565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166103d057604051631afcd79f60e31b815260040160405180910390fd5b610b5a610e97565b806001600160a01b03163b600003610f2357604051634c9c8ce360e01b81526001600160a01b038216600482015260240161048f565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610f81919061123c565b600060405180830381855af49150503d8060008114610fbc576040519150601f19603f3d011682016040523d82523d6000602084013e610fc1565b606091505b5091509150610fd1858383610ff9565b95945050505050565b34156103d05760405163b398979f60e01b815260040160405180910390fd5b60608261100e5761100982611058565b611051565b815115801561102557506001600160a01b0384163b155b1561104e57604051639996b31560e01b81526001600160a01b038516600482015260240161048f565b50805b9392505050565b8051156110685780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461109857600080fd5b919050565b6000602082840312156110af57600080fd5b61105182611081565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156110e157600080fd5b6110ea83611081565b9150602083013567ffffffffffffffff8082111561110757600080fd5b818501915085601f83011261111b57600080fd5b81358181111561112d5761112d6110b8565b604051601f8201601f19908116603f01168101908382118183101715611155576111556110b8565b8160405282815288602084870101111561116e57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b6000602082840312156111a257600080fd5b81358060070b811461105157600080fd5b60005b838110156111ce5781810151838201526020016111b6565b50506000910152565b60208152600082518060208401526111f68160408501602087016111b3565b601f01601f19169190910160400192915050565b60006020828403121561121c57600080fd5b5035919050565b60006020828403121561123557600080fd5b5051919050565b6000825161124e8184602087016111b3565b9190910192915050565b60006020828403121561126a57600080fd5b81518060030b811461105157600080fd5b60006020828403121561128d57600080fd5b8151801515811461105157600080fdfea2646970667358221220f518e090bdc1c1639302fcf8d65b74871e7279d2913c56c67b83760c575b211564736f6c63430008140033", + "bytecode": "0x60a06040523060805234801561001457600080fd5b5060805161127d61003e60003960008181610b4201528181610b6b0152610cd0015261127d6000f3fe6080604052600436106100f35760003560e01c80639d76ea581161008a578063d0e30db011610059578063d0e30db014610282578063e4849b321461028a578063ec904f19146102aa578063f2fde38b146102bf57600080fd5b80639d76ea58146101fc578063a6f2ae3a1461021c578063ad3cb1cc14610224578063c4d66de81461026257600080fd5b806382b2e257116100c657806382b2e2571461017757806388a9d5541461018c5780638da5cb5b1461019f5780638f3ea017146101dc57600080fd5b80630cbcae70146100f85780634f1ef2861461012a57806352d1902d1461013f578063715018a614610162575b600080fd5b34801561010457600080fd5b5061010d6102df565b6040516001600160a01b0390911681526020015b60405180910390f35b61013d61013836600461105d565b610317565b005b34801561014b57600080fd5b50610154610336565b604051908152602001610121565b34801561016e57600080fd5b5061013d610365565b34801561018357600080fd5b50610154610379565b34801561019857600080fd5b5047610154565b3480156101ab57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661010d565b3480156101e857600080fd5b506101546101f736600461111f565b6103e6565b34801561020857600080fd5b5060005461010d906001600160a01b031681565b61013d61052d565b34801561023057600080fd5b50610255604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101219190611166565b34801561026e57600080fd5b5061013d61027d366004611199565b6106c1565b61013d610800565b34801561029657600080fd5b5061013d6102a53660046111b4565b610850565b3480156102b657600080fd5b50610154610a1c565b3480156102cb57600080fd5b5061013d6102da366004611199565b610af9565b60006103127f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b61031f610b37565b61032882610bee565b6103328282610bf6565b5050565b6000610340610cc5565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b61036d610d0e565b6103776000610d69565b565b600080546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156103c2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031291906111cd565b6000808260070b1361043f5760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e60448201526064015b60405180910390fd5b60008054604080516001600160a01b039092166024830152336044830152306064830152600785900b6084808401919091528151808403909101815260a490920181526020820180516001600160e01b031663eca3691760e01b179052518291610167916104ad91906111e6565b6000604051808303816000865af19150503d80600081146104ea576040519150601f19603f3d011682016040523d82523d6000602084013e6104ef565b606091505b509150915081610500576015610514565b808060200190518101906105149190611202565b60030b92506016831461052657600080fd5b5050919050565b600080546040516370a0823160e01b81523060048201523492916001600160a01b0316906370a0823190602401602060405180830381865afa158015610577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059b91906111cd565b9050600082116105ed5760405162461bcd60e51b815260206004820152601b60248201527f596f75206e65656420746f2073656e6420736f6d6520484241522e00000000006044820152606401610436565b808211156106475760405162461bcd60e51b815260206004820152602160248201527f4e6f7420656e6f75676820746f6b656e7320696e2074686520726573657276656044820152601760f91b6064820152608401610436565b60005460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610698573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bc9190611225565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561070c5750825b905060008267ffffffffffffffff1660011480156107295750303b155b905081158015610737575080155b156107555760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561078957845468ff00000000000000001916680100000000000000001785555b600080546001600160a01b0319166001600160a01b0388161790556107ad33610dda565b83156107f857845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600034116103775760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e6044820152606401610436565b600081116108ae5760405162461bcd60e51b815260206004820152602560248201527f596f75206e65656420746f2073656c6c206174206c6561737420736f6d6520746044820152646f6b656e7360d81b6064820152608401610436565b60008054604051636eb1769f60e11b81523360048201523060248201526001600160a01b039091169063dd62ed3e90604401602060405180830381865afa1580156108fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092191906111cd565b9050818110156109735760405162461bcd60e51b815260206004820152601960248201527f436865636b2074686520746f6b656e20616c6c6f77616e6365000000000000006044820152606401610436565b6000546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af11580156109ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ee9190611225565b50604051339083156108fc029084906000818181858888f193505050501580156106bc573d6000803e3d6000fd5b60008054604080513060248201526001600160a01b0390921660448084019190915281518084039091018152606490920181526020820180516001600160e01b031663248a35ef60e11b179052518291829161016791610a7b916111e6565b6000604051808303816000865af19150503d8060008114610ab8576040519150601f19603f3d011682016040523d82523d6000602084013e610abd565b606091505b509150915081610ace576015610ae2565b80806020019051810190610ae29190611202565b60030b925060168314610af457600080fd5b505090565b610b01610d0e565b6001600160a01b038116610b2b57604051631e4fbdf760e01b815260006004820152602401610436565b610b3481610d69565b50565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610bd057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bc47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103775760405163703e46dd60e11b815260040160405180910390fd5b610b34610d0e565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610c50575060408051601f3d908101601f19168201909252610c4d918101906111cd565b60015b610c7857604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610436565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610cbb57604051632a87526960e21b815260048101829052602401610436565b6106bc8383610deb565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103775760405163703e46dd60e11b815260040160405180910390fd5b33610d407f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103775760405163118cdaa760e01b8152336004820152602401610436565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610de2610e41565b610b3481610e8f565b610df482610e97565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610e39576106bc8282610f0e565b610332610f84565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661037757604051631afcd79f60e31b815260040160405180910390fd5b610b01610e41565b806001600160a01b03163b600003610ecd57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610436565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610f2b91906111e6565b600060405180830381855af49150503d8060008114610f66576040519150601f19603f3d011682016040523d82523d6000602084013e610f6b565b606091505b5091509150610f7b858383610fa3565b95945050505050565b34156103775760405163b398979f60e01b815260040160405180910390fd5b606082610fb857610fb382611002565b610ffb565b8151158015610fcf57506001600160a01b0384163b155b15610ff857604051639996b31560e01b81526001600160a01b0385166004820152602401610436565b50805b9392505050565b8051156110125780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461104257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561107057600080fd5b6110798361102b565b9150602083013567ffffffffffffffff8082111561109657600080fd5b818501915085601f8301126110aa57600080fd5b8135818111156110bc576110bc611047565b604051601f8201601f19908116603f011681019083821181831017156110e4576110e4611047565b816040528281528860208487010111156110fd57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561113157600080fd5b81358060070b8114610ffb57600080fd5b60005b8381101561115d578181015183820152602001611145565b50506000910152565b6020815260008251806020840152611185816040850160208701611142565b601f01601f19169190910160400192915050565b6000602082840312156111ab57600080fd5b610ffb8261102b565b6000602082840312156111c657600080fd5b5035919050565b6000602082840312156111df57600080fd5b5051919050565b600082516111f8818460208701611142565b9190910192915050565b60006020828403121561121457600080fd5b81518060030b8114610ffb57600080fd5b60006020828403121561123757600080fd5b81518015158114610ffb57600080fdfea2646970667358221220c5fd17dfbf8e9cdcee2f8e96aedc53795460dc210da46d39f53d0b56892d772a64736f6c63430008140033", + "deployedBytecode": "0x6080604052600436106100f35760003560e01c80639d76ea581161008a578063d0e30db011610059578063d0e30db014610282578063e4849b321461028a578063ec904f19146102aa578063f2fde38b146102bf57600080fd5b80639d76ea58146101fc578063a6f2ae3a1461021c578063ad3cb1cc14610224578063c4d66de81461026257600080fd5b806382b2e257116100c657806382b2e2571461017757806388a9d5541461018c5780638da5cb5b1461019f5780638f3ea017146101dc57600080fd5b80630cbcae70146100f85780634f1ef2861461012a57806352d1902d1461013f578063715018a614610162575b600080fd5b34801561010457600080fd5b5061010d6102df565b6040516001600160a01b0390911681526020015b60405180910390f35b61013d61013836600461105d565b610317565b005b34801561014b57600080fd5b50610154610336565b604051908152602001610121565b34801561016e57600080fd5b5061013d610365565b34801561018357600080fd5b50610154610379565b34801561019857600080fd5b5047610154565b3480156101ab57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031661010d565b3480156101e857600080fd5b506101546101f736600461111f565b6103e6565b34801561020857600080fd5b5060005461010d906001600160a01b031681565b61013d61052d565b34801561023057600080fd5b50610255604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516101219190611166565b34801561026e57600080fd5b5061013d61027d366004611199565b6106c1565b61013d610800565b34801561029657600080fd5b5061013d6102a53660046111b4565b610850565b3480156102b657600080fd5b50610154610a1c565b3480156102cb57600080fd5b5061013d6102da366004611199565b610af9565b60006103127f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b61031f610b37565b61032882610bee565b6103328282610bf6565b5050565b6000610340610cc5565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b61036d610d0e565b6103776000610d69565b565b600080546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156103c2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061031291906111cd565b6000808260070b1361043f5760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e60448201526064015b60405180910390fd5b60008054604080516001600160a01b039092166024830152336044830152306064830152600785900b6084808401919091528151808403909101815260a490920181526020820180516001600160e01b031663eca3691760e01b179052518291610167916104ad91906111e6565b6000604051808303816000865af19150503d80600081146104ea576040519150601f19603f3d011682016040523d82523d6000602084013e6104ef565b606091505b509150915081610500576015610514565b808060200190518101906105149190611202565b60030b92506016831461052657600080fd5b5050919050565b600080546040516370a0823160e01b81523060048201523492916001600160a01b0316906370a0823190602401602060405180830381865afa158015610577573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059b91906111cd565b9050600082116105ed5760405162461bcd60e51b815260206004820152601b60248201527f596f75206e65656420746f2073656e6420736f6d6520484241522e00000000006044820152606401610436565b808211156106475760405162461bcd60e51b815260206004820152602160248201527f4e6f7420656e6f75676820746f6b656e7320696e2074686520726573657276656044820152601760f91b6064820152608401610436565b60005460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610698573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bc9190611225565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561070c5750825b905060008267ffffffffffffffff1660011480156107295750303b155b905081158015610737575080155b156107555760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561078957845468ff00000000000000001916680100000000000000001785555b600080546001600160a01b0319166001600160a01b0388161790556107ad33610dda565b83156107f857845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600034116103775760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e6044820152606401610436565b600081116108ae5760405162461bcd60e51b815260206004820152602560248201527f596f75206e65656420746f2073656c6c206174206c6561737420736f6d6520746044820152646f6b656e7360d81b6064820152608401610436565b60008054604051636eb1769f60e11b81523360048201523060248201526001600160a01b039091169063dd62ed3e90604401602060405180830381865afa1580156108fd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061092191906111cd565b9050818110156109735760405162461bcd60e51b815260206004820152601960248201527f436865636b2074686520746f6b656e20616c6c6f77616e6365000000000000006044820152606401610436565b6000546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af11580156109ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ee9190611225565b50604051339083156108fc029084906000818181858888f193505050501580156106bc573d6000803e3d6000fd5b60008054604080513060248201526001600160a01b0390921660448084019190915281518084039091018152606490920181526020820180516001600160e01b031663248a35ef60e11b179052518291829161016791610a7b916111e6565b6000604051808303816000865af19150503d8060008114610ab8576040519150601f19603f3d011682016040523d82523d6000602084013e610abd565b606091505b509150915081610ace576015610ae2565b80806020019051810190610ae29190611202565b60030b925060168314610af457600080fd5b505090565b610b01610d0e565b6001600160a01b038116610b2b57604051631e4fbdf760e01b815260006004820152602401610436565b610b3481610d69565b50565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610bd057507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bc47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103775760405163703e46dd60e11b815260040160405180910390fd5b610b34610d0e565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610c50575060408051601f3d908101601f19168201909252610c4d918101906111cd565b60015b610c7857604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610436565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610cbb57604051632a87526960e21b815260048101829052602401610436565b6106bc8383610deb565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103775760405163703e46dd60e11b815260040160405180910390fd5b33610d407f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103775760405163118cdaa760e01b8152336004820152602401610436565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610de2610e41565b610b3481610e8f565b610df482610e97565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610e39576106bc8282610f0e565b610332610f84565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661037757604051631afcd79f60e31b815260040160405180910390fd5b610b01610e41565b806001600160a01b03163b600003610ecd57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610436565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610f2b91906111e6565b600060405180830381855af49150503d8060008114610f66576040519150601f19603f3d011682016040523d82523d6000602084013e610f6b565b606091505b5091509150610f7b858383610fa3565b95945050505050565b34156103775760405163b398979f60e01b815260040160405180910390fd5b606082610fb857610fb382611002565b610ffb565b8151158015610fcf57506001600160a01b0384163b155b15610ff857604051639996b31560e01b81526001600160a01b0385166004820152602401610436565b50805b9392505050565b8051156110125780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461104257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561107057600080fd5b6110798361102b565b9150602083013567ffffffffffffffff8082111561109657600080fd5b818501915085601f8301126110aa57600080fd5b8135818111156110bc576110bc611047565b604051601f8201601f19908116603f011681019083821181831017156110e4576110e4611047565b816040528281528860208487010111156110fd57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60006020828403121561113157600080fd5b81358060070b8114610ffb57600080fd5b60005b8381101561115d578181015183820152602001611145565b50506000910152565b6020815260008251806020840152611185816040850160208701611142565b601f01601f19169190910160400192915050565b6000602082840312156111ab57600080fd5b610ffb8261102b565b6000602082840312156111c657600080fd5b5035919050565b6000602082840312156111df57600080fd5b5051919050565b600082516111f8818460208701611142565b9190910192915050565b60006020828403121561121457600080fd5b81518060030b8114610ffb57600080fd5b60006020828403121561123757600080fd5b81518015158114610ffb57600080fdfea2646970667358221220c5fd17dfbf8e9cdcee2f8e96aedc53795460dc210da46d39f53d0b56892d772a64736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/contracts/proxy-upgrade/exchange/ExchangeV2.sol/ExchangeV2.json b/artifacts/contracts/proxy-upgrade/exchange/ExchangeV2.sol/ExchangeV2.json index d3d6a8318..94352089e 100644 --- a/artifacts/contracts/proxy-upgrade/exchange/ExchangeV2.sol/ExchangeV2.json +++ b/artifacts/contracts/proxy-upgrade/exchange/ExchangeV2.sol/ExchangeV2.json @@ -311,19 +311,6 @@ "stateMutability": "nonpayable", "type": "function" }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, { "inputs": [ { @@ -356,8 +343,8 @@ "type": "function" } ], - "bytecode": "0x60a06040523060805234801561001457600080fd5b5060805161130561003e60003960008181610bca01528181610bf30152610d5801526113056000f3fe6080604052600436106101095760003560e01c80638f3ea01711610095578063c4d66de811610064578063c4d66de8146102bf578063d0e30db0146102df578063e4849b32146102e7578063ec904f1914610307578063f2fde38b1461031c57600080fd5b80638f3ea017146102465780639d76ea5814610266578063a6f2ae3a14610286578063ad3cb1cc1461028e57600080fd5b806354fd4d50116100dc57806354fd4d5014610198578063715018a6146101cc57806382b2e257146101e157806388a9d554146101f65780638da5cb5b1461020957600080fd5b80630cbcae701461010e5780633659cfe6146101405780634f1ef2861461016257806352d1902d14610175575b600080fd5b34801561011a57600080fd5b5061012361033c565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014c57600080fd5b5061016061015b3660046110cf565b610374565b005b610160610170366004611100565b6103a2565b34801561018157600080fd5b5061018a6103c1565b604051908152602001610137565b3480156101a457600080fd5b506040805180820190915260028152612b1960f11b60208201525b60405161013791906111e6565b3480156101d857600080fd5b506101606103f0565b3480156101ed57600080fd5b5061018a610404565b34801561020257600080fd5b504761018a565b34801561021557600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610123565b34801561025257600080fd5b5061018a610261366004611219565b610471565b34801561027257600080fd5b50600054610123906001600160a01b031681565b6101606105b8565b34801561029a57600080fd5b506101bf604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156102cb57600080fd5b506101606102da3660046110cf565b61074c565b61016061088b565b3480156102f357600080fd5b5061016061030236600461123c565b6108db565b34801561031357600080fd5b5061018a610aa7565b34801561032857600080fd5b506101606103373660046110cf565b610b84565b600061036f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b61037c610bbf565b61038581610c76565b60408051600081526020810190915261039f908290610c7e565b50565b6103aa610bbf565b6103b382610c76565b6103bd8282610c7e565b5050565b60006103cb610d4d565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6103f8610d96565b6104026000610df1565b565b600080546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561044d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036f9190611255565b6000808260070b136104ca5760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e60448201526064015b60405180910390fd5b60008054604080516001600160a01b039092166024830152336044830152306064830152600785900b6084808401919091528151808403909101815260a490920181526020820180516001600160e01b031663eca3691760e01b17905251829161016791610538919061126e565b6000604051808303816000865af19150503d8060008114610575576040519150601f19603f3d011682016040523d82523d6000602084013e61057a565b606091505b50915091508161058b57601561059f565b8080602001905181019061059f919061128a565b60030b9250601683146105b157600080fd5b5050919050565b600080546040516370a0823160e01b81523060048201523492916001600160a01b0316906370a0823190602401602060405180830381865afa158015610602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106269190611255565b9050600082116106785760405162461bcd60e51b815260206004820152601b60248201527f596f75206e65656420746f2073656e6420736f6d6520484241522e000000000060448201526064016104c1565b808211156106d25760405162461bcd60e51b815260206004820152602160248201527f4e6f7420656e6f75676820746f6b656e7320696e2074686520726573657276656044820152601760f91b60648201526084016104c1565b60005460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610723573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074791906112ad565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156107975750825b905060008267ffffffffffffffff1660011480156107b45750303b155b9050811580156107c2575080155b156107e05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561081457845468ff00000000000000001916680100000000000000001785555b600080546001600160a01b0319166001600160a01b03881617905561083833610e62565b831561088357845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600034116104025760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e60448201526064016104c1565b600081116109395760405162461bcd60e51b815260206004820152602560248201527f596f75206e65656420746f2073656c6c206174206c6561737420736f6d6520746044820152646f6b656e7360d81b60648201526084016104c1565b60008054604051636eb1769f60e11b81523360048201523060248201526001600160a01b039091169063dd62ed3e90604401602060405180830381865afa158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190611255565b9050818110156109fe5760405162461bcd60e51b815260206004820152601960248201527f436865636b2074686520746f6b656e20616c6c6f77616e63650000000000000060448201526064016104c1565b6000546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610a55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7991906112ad565b50604051339083156108fc029084906000818181858888f19350505050158015610747573d6000803e3d6000fd5b60008054604080513060248201526001600160a01b0390921660448084019190915281518084039091018152606490920181526020820180516001600160e01b031663248a35ef60e11b179052518291829161016791610b069161126e565b6000604051808303816000865af19150503d8060008114610b43576040519150601f19603f3d011682016040523d82523d6000602084013e610b48565b606091505b509150915081610b59576015610b6d565b80806020019051810190610b6d919061128a565b60030b925060168314610b7f57600080fd5b505090565b610b8c610d96565b6001600160a01b038116610bb657604051631e4fbdf760e01b8152600060048201526024016104c1565b61039f81610df1565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610c5857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c4c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156104025760405163703e46dd60e11b815260040160405180910390fd5b61039f610d96565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610cd8575060408051601f3d908101601f19168201909252610cd591810190611255565b60015b610d0057604051634c9c8ce360e01b81526001600160a01b03831660048201526024016104c1565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610d4357604051632a87526960e21b8152600481018290526024016104c1565b6107478383610e73565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104025760405163703e46dd60e11b815260040160405180910390fd5b33610dc87f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146104025760405163118cdaa760e01b81523360048201526024016104c1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610e6a610ec9565b61039f81610f17565b610e7c82610f1f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610ec1576107478282610f96565b6103bd61100c565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661040257604051631afcd79f60e31b815260040160405180910390fd5b610b8c610ec9565b806001600160a01b03163b600003610f5557604051634c9c8ce360e01b81526001600160a01b03821660048201526024016104c1565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610fb3919061126e565b600060405180830381855af49150503d8060008114610fee576040519150601f19603f3d011682016040523d82523d6000602084013e610ff3565b606091505b509150915061100385838361102b565b95945050505050565b34156104025760405163b398979f60e01b815260040160405180910390fd5b6060826110405761103b8261108a565b611083565b815115801561105757506001600160a01b0384163b155b1561108057604051639996b31560e01b81526001600160a01b03851660048201526024016104c1565b50805b9392505050565b80511561109a5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146110ca57600080fd5b919050565b6000602082840312156110e157600080fd5b611083826110b3565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561111357600080fd5b61111c836110b3565b9150602083013567ffffffffffffffff8082111561113957600080fd5b818501915085601f83011261114d57600080fd5b81358181111561115f5761115f6110ea565b604051601f8201601f19908116603f01168101908382118183101715611187576111876110ea565b816040528281528860208487010111156111a057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156111dd5781810151838201526020016111c5565b50506000910152565b60208152600082518060208401526112058160408501602087016111c2565b601f01601f19169190910160400192915050565b60006020828403121561122b57600080fd5b81358060070b811461108357600080fd5b60006020828403121561124e57600080fd5b5035919050565b60006020828403121561126757600080fd5b5051919050565b600082516112808184602087016111c2565b9190910192915050565b60006020828403121561129c57600080fd5b81518060030b811461108357600080fd5b6000602082840312156112bf57600080fd5b8151801515811461108357600080fdfea2646970667358221220383e7d7a2deb71bb11c38215f45de8dafa1300f1ecd4980232f154d48112ad4564736f6c63430008140033", - "deployedBytecode": "0x6080604052600436106101095760003560e01c80638f3ea01711610095578063c4d66de811610064578063c4d66de8146102bf578063d0e30db0146102df578063e4849b32146102e7578063ec904f1914610307578063f2fde38b1461031c57600080fd5b80638f3ea017146102465780639d76ea5814610266578063a6f2ae3a14610286578063ad3cb1cc1461028e57600080fd5b806354fd4d50116100dc57806354fd4d5014610198578063715018a6146101cc57806382b2e257146101e157806388a9d554146101f65780638da5cb5b1461020957600080fd5b80630cbcae701461010e5780633659cfe6146101405780634f1ef2861461016257806352d1902d14610175575b600080fd5b34801561011a57600080fd5b5061012361033c565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561014c57600080fd5b5061016061015b3660046110cf565b610374565b005b610160610170366004611100565b6103a2565b34801561018157600080fd5b5061018a6103c1565b604051908152602001610137565b3480156101a457600080fd5b506040805180820190915260028152612b1960f11b60208201525b60405161013791906111e6565b3480156101d857600080fd5b506101606103f0565b3480156101ed57600080fd5b5061018a610404565b34801561020257600080fd5b504761018a565b34801561021557600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610123565b34801561025257600080fd5b5061018a610261366004611219565b610471565b34801561027257600080fd5b50600054610123906001600160a01b031681565b6101606105b8565b34801561029a57600080fd5b506101bf604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156102cb57600080fd5b506101606102da3660046110cf565b61074c565b61016061088b565b3480156102f357600080fd5b5061016061030236600461123c565b6108db565b34801561031357600080fd5b5061018a610aa7565b34801561032857600080fd5b506101606103373660046110cf565b610b84565b600061036f7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b61037c610bbf565b61038581610c76565b60408051600081526020810190915261039f908290610c7e565b50565b6103aa610bbf565b6103b382610c76565b6103bd8282610c7e565b5050565b60006103cb610d4d565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b6103f8610d96565b6104026000610df1565b565b600080546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561044d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061036f9190611255565b6000808260070b136104ca5760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e60448201526064015b60405180910390fd5b60008054604080516001600160a01b039092166024830152336044830152306064830152600785900b6084808401919091528151808403909101815260a490920181526020820180516001600160e01b031663eca3691760e01b17905251829161016791610538919061126e565b6000604051808303816000865af19150503d8060008114610575576040519150601f19603f3d011682016040523d82523d6000602084013e61057a565b606091505b50915091508161058b57601561059f565b8080602001905181019061059f919061128a565b60030b9250601683146105b157600080fd5b5050919050565b600080546040516370a0823160e01b81523060048201523492916001600160a01b0316906370a0823190602401602060405180830381865afa158015610602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106269190611255565b9050600082116106785760405162461bcd60e51b815260206004820152601b60248201527f596f75206e65656420746f2073656e6420736f6d6520484241522e000000000060448201526064016104c1565b808211156106d25760405162461bcd60e51b815260206004820152602160248201527f4e6f7420656e6f75676820746f6b656e7320696e2074686520726573657276656044820152601760f91b60648201526084016104c1565b60005460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303816000875af1158015610723573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061074791906112ad565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156107975750825b905060008267ffffffffffffffff1660011480156107b45750303b155b9050811580156107c2575080155b156107e05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561081457845468ff00000000000000001916680100000000000000001785555b600080546001600160a01b0319166001600160a01b03881617905561083833610e62565b831561088357845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600034116104025760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e60448201526064016104c1565b600081116109395760405162461bcd60e51b815260206004820152602560248201527f596f75206e65656420746f2073656c6c206174206c6561737420736f6d6520746044820152646f6b656e7360d81b60648201526084016104c1565b60008054604051636eb1769f60e11b81523360048201523060248201526001600160a01b039091169063dd62ed3e90604401602060405180830381865afa158015610988573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ac9190611255565b9050818110156109fe5760405162461bcd60e51b815260206004820152601960248201527f436865636b2074686520746f6b656e20616c6c6f77616e63650000000000000060448201526064016104c1565b6000546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af1158015610a55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7991906112ad565b50604051339083156108fc029084906000818181858888f19350505050158015610747573d6000803e3d6000fd5b60008054604080513060248201526001600160a01b0390921660448084019190915281518084039091018152606490920181526020820180516001600160e01b031663248a35ef60e11b179052518291829161016791610b069161126e565b6000604051808303816000865af19150503d8060008114610b43576040519150601f19603f3d011682016040523d82523d6000602084013e610b48565b606091505b509150915081610b59576015610b6d565b80806020019051810190610b6d919061128a565b60030b925060168314610b7f57600080fd5b505090565b610b8c610d96565b6001600160a01b038116610bb657604051631e4fbdf760e01b8152600060048201526024016104c1565b61039f81610df1565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610c5857507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c4c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156104025760405163703e46dd60e11b815260040160405180910390fd5b61039f610d96565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610cd8575060408051601f3d908101601f19168201909252610cd591810190611255565b60015b610d0057604051634c9c8ce360e01b81526001600160a01b03831660048201526024016104c1565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610d4357604051632a87526960e21b8152600481018290526024016104c1565b6107478383610e73565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146104025760405163703e46dd60e11b815260040160405180910390fd5b33610dc87f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146104025760405163118cdaa760e01b81523360048201526024016104c1565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610e6a610ec9565b61039f81610f17565b610e7c82610f1f565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610ec1576107478282610f96565b6103bd61100c565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff1661040257604051631afcd79f60e31b815260040160405180910390fd5b610b8c610ec9565b806001600160a01b03163b600003610f5557604051634c9c8ce360e01b81526001600160a01b03821660048201526024016104c1565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610fb3919061126e565b600060405180830381855af49150503d8060008114610fee576040519150601f19603f3d011682016040523d82523d6000602084013e610ff3565b606091505b509150915061100385838361102b565b95945050505050565b34156104025760405163b398979f60e01b815260040160405180910390fd5b6060826110405761103b8261108a565b611083565b815115801561105757506001600160a01b0384163b155b1561108057604051639996b31560e01b81526001600160a01b03851660048201526024016104c1565b50805b9392505050565b80511561109a5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146110ca57600080fd5b919050565b6000602082840312156110e157600080fd5b611083826110b3565b634e487b7160e01b600052604160045260246000fd5b6000806040838503121561111357600080fd5b61111c836110b3565b9150602083013567ffffffffffffffff8082111561113957600080fd5b818501915085601f83011261114d57600080fd5b81358181111561115f5761115f6110ea565b604051601f8201601f19908116603f01168101908382118183101715611187576111876110ea565b816040528281528860208487010111156111a057600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b838110156111dd5781810151838201526020016111c5565b50506000910152565b60208152600082518060208401526112058160408501602087016111c2565b601f01601f19169190910160400192915050565b60006020828403121561122b57600080fd5b81358060070b811461108357600080fd5b60006020828403121561124e57600080fd5b5035919050565b60006020828403121561126757600080fd5b5051919050565b600082516112808184602087016111c2565b9190910192915050565b60006020828403121561129c57600080fd5b81518060030b811461108357600080fd5b6000602082840312156112bf57600080fd5b8151801515811461108357600080fdfea2646970667358221220383e7d7a2deb71bb11c38215f45de8dafa1300f1ecd4980232f154d48112ad4564736f6c63430008140033", + "bytecode": "0x60a06040523060805234801561001457600080fd5b506080516112af61003e60003960008181610b7401528181610b9d0152610d0201526112af6000f3fe6080604052600436106100fe5760003560e01c80638f3ea01711610095578063c4d66de811610064578063c4d66de814610294578063d0e30db0146102b4578063e4849b32146102bc578063ec904f19146102dc578063f2fde38b146102f157600080fd5b80638f3ea0171461021b5780639d76ea581461023b578063a6f2ae3a1461025b578063ad3cb1cc1461026357600080fd5b8063715018a6116100d1578063715018a6146101a157806382b2e257146101b657806388a9d554146101cb5780638da5cb5b146101de57600080fd5b80630cbcae70146101035780634f1ef2861461013557806352d1902d1461014a57806354fd4d501461016d575b600080fd5b34801561010f57600080fd5b50610118610311565b6040516001600160a01b0390911681526020015b60405180910390f35b61014861014336600461108f565b610349565b005b34801561015657600080fd5b5061015f610368565b60405190815260200161012c565b34801561017957600080fd5b506040805180820190915260028152612b1960f11b60208201525b60405161012c9190611175565b3480156101ad57600080fd5b50610148610397565b3480156101c257600080fd5b5061015f6103ab565b3480156101d757600080fd5b504761015f565b3480156101ea57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610118565b34801561022757600080fd5b5061015f6102363660046111a8565b610418565b34801561024757600080fd5b50600054610118906001600160a01b031681565b61014861055f565b34801561026f57600080fd5b50610194604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156102a057600080fd5b506101486102af3660046111cb565b6106f3565b610148610832565b3480156102c857600080fd5b506101486102d73660046111e6565b610882565b3480156102e857600080fd5b5061015f610a4e565b3480156102fd57600080fd5b5061014861030c3660046111cb565b610b2b565b60006103447f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b610351610b69565b61035a82610c20565b6103648282610c28565b5050565b6000610372610cf7565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b61039f610d40565b6103a96000610d9b565b565b600080546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156103f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034491906111ff565b6000808260070b136104715760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e60448201526064015b60405180910390fd5b60008054604080516001600160a01b039092166024830152336044830152306064830152600785900b6084808401919091528151808403909101815260a490920181526020820180516001600160e01b031663eca3691760e01b179052518291610167916104df9190611218565b6000604051808303816000865af19150503d806000811461051c576040519150601f19603f3d011682016040523d82523d6000602084013e610521565b606091505b509150915081610532576015610546565b808060200190518101906105469190611234565b60030b92506016831461055857600080fd5b5050919050565b600080546040516370a0823160e01b81523060048201523492916001600160a01b0316906370a0823190602401602060405180830381865afa1580156105a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cd91906111ff565b90506000821161061f5760405162461bcd60e51b815260206004820152601b60248201527f596f75206e65656420746f2073656e6420736f6d6520484241522e00000000006044820152606401610468565b808211156106795760405162461bcd60e51b815260206004820152602160248201527f4e6f7420656e6f75676820746f6b656e7320696e2074686520726573657276656044820152601760f91b6064820152608401610468565b60005460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303816000875af11580156106ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ee9190611257565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561073e5750825b905060008267ffffffffffffffff16600114801561075b5750303b155b905081158015610769575080155b156107875760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156107bb57845468ff00000000000000001916680100000000000000001785555b600080546001600160a01b0319166001600160a01b0388161790556107df33610e0c565b831561082a57845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600034116103a95760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e6044820152606401610468565b600081116108e05760405162461bcd60e51b815260206004820152602560248201527f596f75206e65656420746f2073656c6c206174206c6561737420736f6d6520746044820152646f6b656e7360d81b6064820152608401610468565b60008054604051636eb1769f60e11b81523360048201523060248201526001600160a01b039091169063dd62ed3e90604401602060405180830381865afa15801561092f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095391906111ff565b9050818110156109a55760405162461bcd60e51b815260206004820152601960248201527f436865636b2074686520746f6b656e20616c6c6f77616e6365000000000000006044820152606401610468565b6000546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af11580156109fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a209190611257565b50604051339083156108fc029084906000818181858888f193505050501580156106ee573d6000803e3d6000fd5b60008054604080513060248201526001600160a01b0390921660448084019190915281518084039091018152606490920181526020820180516001600160e01b031663248a35ef60e11b179052518291829161016791610aad91611218565b6000604051808303816000865af19150503d8060008114610aea576040519150601f19603f3d011682016040523d82523d6000602084013e610aef565b606091505b509150915081610b00576015610b14565b80806020019051810190610b149190611234565b60030b925060168314610b2657600080fd5b505090565b610b33610d40565b6001600160a01b038116610b5d57604051631e4fbdf760e01b815260006004820152602401610468565b610b6681610d9b565b50565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610c0257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bf67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103a95760405163703e46dd60e11b815260040160405180910390fd5b610b66610d40565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610c82575060408051601f3d908101601f19168201909252610c7f918101906111ff565b60015b610caa57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610468565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610ced57604051632a87526960e21b815260048101829052602401610468565b6106ee8383610e1d565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103a95760405163703e46dd60e11b815260040160405180910390fd5b33610d727f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103a95760405163118cdaa760e01b8152336004820152602401610468565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610e14610e73565b610b6681610ec1565b610e2682610ec9565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610e6b576106ee8282610f40565b610364610fb6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166103a957604051631afcd79f60e31b815260040160405180910390fd5b610b33610e73565b806001600160a01b03163b600003610eff57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610468565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610f5d9190611218565b600060405180830381855af49150503d8060008114610f98576040519150601f19603f3d011682016040523d82523d6000602084013e610f9d565b606091505b5091509150610fad858383610fd5565b95945050505050565b34156103a95760405163b398979f60e01b815260040160405180910390fd5b606082610fea57610fe582611034565b61102d565b815115801561100157506001600160a01b0384163b155b1561102a57604051639996b31560e01b81526001600160a01b0385166004820152602401610468565b50805b9392505050565b8051156110445780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461107457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156110a257600080fd5b6110ab8361105d565b9150602083013567ffffffffffffffff808211156110c857600080fd5b818501915085601f8301126110dc57600080fd5b8135818111156110ee576110ee611079565b604051601f8201601f19908116603f0116810190838211818310171561111657611116611079565b8160405282815288602084870101111561112f57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b8381101561116c578181015183820152602001611154565b50506000910152565b6020815260008251806020840152611194816040850160208701611151565b601f01601f19169190910160400192915050565b6000602082840312156111ba57600080fd5b81358060070b811461102d57600080fd5b6000602082840312156111dd57600080fd5b61102d8261105d565b6000602082840312156111f857600080fd5b5035919050565b60006020828403121561121157600080fd5b5051919050565b6000825161122a818460208701611151565b9190910192915050565b60006020828403121561124657600080fd5b81518060030b811461102d57600080fd5b60006020828403121561126957600080fd5b8151801515811461102d57600080fdfea26469706673582212202bfc0d77b9363870a5dfb7e1f02d8f84268d2c9bc57f410b5d96e7dc34ec7bdc64736f6c63430008140033", + "deployedBytecode": "0x6080604052600436106100fe5760003560e01c80638f3ea01711610095578063c4d66de811610064578063c4d66de814610294578063d0e30db0146102b4578063e4849b32146102bc578063ec904f19146102dc578063f2fde38b146102f157600080fd5b80638f3ea0171461021b5780639d76ea581461023b578063a6f2ae3a1461025b578063ad3cb1cc1461026357600080fd5b8063715018a6116100d1578063715018a6146101a157806382b2e257146101b657806388a9d554146101cb5780638da5cb5b146101de57600080fd5b80630cbcae70146101035780634f1ef2861461013557806352d1902d1461014a57806354fd4d501461016d575b600080fd5b34801561010f57600080fd5b50610118610311565b6040516001600160a01b0390911681526020015b60405180910390f35b61014861014336600461108f565b610349565b005b34801561015657600080fd5b5061015f610368565b60405190815260200161012c565b34801561017957600080fd5b506040805180820190915260028152612b1960f11b60208201525b60405161012c9190611175565b3480156101ad57600080fd5b50610148610397565b3480156101c257600080fd5b5061015f6103ab565b3480156101d757600080fd5b504761015f565b3480156101ea57600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610118565b34801561022757600080fd5b5061015f6102363660046111a8565b610418565b34801561024757600080fd5b50600054610118906001600160a01b031681565b61014861055f565b34801561026f57600080fd5b50610194604051806040016040528060058152602001640352e302e360dc1b81525081565b3480156102a057600080fd5b506101486102af3660046111cb565b6106f3565b610148610832565b3480156102c857600080fd5b506101486102d73660046111e6565b610882565b3480156102e857600080fd5b5061015f610a4e565b3480156102fd57600080fd5b5061014861030c3660046111cb565b610b2b565b60006103447f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b610351610b69565b61035a82610c20565b6103648282610c28565b5050565b6000610372610cf7565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b61039f610d40565b6103a96000610d9b565b565b600080546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156103f4573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061034491906111ff565b6000808260070b136104715760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e60448201526064015b60405180910390fd5b60008054604080516001600160a01b039092166024830152336044830152306064830152600785900b6084808401919091528151808403909101815260a490920181526020820180516001600160e01b031663eca3691760e01b179052518291610167916104df9190611218565b6000604051808303816000865af19150503d806000811461051c576040519150601f19603f3d011682016040523d82523d6000602084013e610521565b606091505b509150915081610532576015610546565b808060200190518101906105469190611234565b60030b92506016831461055857600080fd5b5050919050565b600080546040516370a0823160e01b81523060048201523492916001600160a01b0316906370a0823190602401602060405180830381865afa1580156105a9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cd91906111ff565b90506000821161061f5760405162461bcd60e51b815260206004820152601b60248201527f596f75206e65656420746f2073656e6420736f6d6520484241522e00000000006044820152606401610468565b808211156106795760405162461bcd60e51b815260206004820152602160248201527f4e6f7420656e6f75676820746f6b656e7320696e2074686520726573657276656044820152601760f91b6064820152608401610468565b60005460405163a9059cbb60e01b8152336004820152602481018490526001600160a01b039091169063a9059cbb906044016020604051808303816000875af11580156106ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106ee9190611257565b505050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff1660008115801561073e5750825b905060008267ffffffffffffffff16600114801561075b5750303b155b905081158015610769575080155b156107875760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff1916600117855583156107bb57845468ff00000000000000001916680100000000000000001785555b600080546001600160a01b0319166001600160a01b0388161790556107df33610e0c565b831561082a57845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050565b600034116103a95760405162461bcd60e51b815260206004820181905260248201527f596f75206861766520746f206465706f736974206d6f7265207468616e20302e6044820152606401610468565b600081116108e05760405162461bcd60e51b815260206004820152602560248201527f596f75206e65656420746f2073656c6c206174206c6561737420736f6d6520746044820152646f6b656e7360d81b6064820152608401610468565b60008054604051636eb1769f60e11b81523360048201523060248201526001600160a01b039091169063dd62ed3e90604401602060405180830381865afa15801561092f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095391906111ff565b9050818110156109a55760405162461bcd60e51b815260206004820152601960248201527f436865636b2074686520746f6b656e20616c6c6f77616e6365000000000000006044820152606401610468565b6000546040516323b872dd60e01b8152336004820152306024820152604481018490526001600160a01b03909116906323b872dd906064016020604051808303816000875af11580156109fc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a209190611257565b50604051339083156108fc029084906000818181858888f193505050501580156106ee573d6000803e3d6000fd5b60008054604080513060248201526001600160a01b0390921660448084019190915281518084039091018152606490920181526020820180516001600160e01b031663248a35ef60e11b179052518291829161016791610aad91611218565b6000604051808303816000865af19150503d8060008114610aea576040519150601f19603f3d011682016040523d82523d6000602084013e610aef565b606091505b509150915081610b00576015610b14565b80806020019051810190610b149190611234565b60030b925060168314610b2657600080fd5b505090565b610b33610d40565b6001600160a01b038116610b5d57604051631e4fbdf760e01b815260006004820152602401610468565b610b6681610d9b565b50565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610c0257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610bf67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b156103a95760405163703e46dd60e11b815260040160405180910390fd5b610b66610d40565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610c82575060408051601f3d908101601f19168201909252610c7f918101906111ff565b60015b610caa57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610468565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610ced57604051632a87526960e21b815260048101829052602401610468565b6106ee8383610e1d565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146103a95760405163703e46dd60e11b815260040160405180910390fd5b33610d727f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146103a95760405163118cdaa760e01b8152336004820152602401610468565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b610e14610e73565b610b6681610ec1565b610e2682610ec9565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115610e6b576106ee8282610f40565b610364610fb6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff166103a957604051631afcd79f60e31b815260040160405180910390fd5b610b33610e73565b806001600160a01b03163b600003610eff57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610468565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051610f5d9190611218565b600060405180830381855af49150503d8060008114610f98576040519150601f19603f3d011682016040523d82523d6000602084013e610f9d565b606091505b5091509150610fad858383610fd5565b95945050505050565b34156103a95760405163b398979f60e01b815260040160405180910390fd5b606082610fea57610fe582611034565b61102d565b815115801561100157506001600160a01b0384163b155b1561102a57604051639996b31560e01b81526001600160a01b0385166004820152602401610468565b50805b9392505050565b8051156110445780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b038116811461107457600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156110a257600080fd5b6110ab8361105d565b9150602083013567ffffffffffffffff808211156110c857600080fd5b818501915085601f8301126110dc57600080fd5b8135818111156110ee576110ee611079565b604051601f8201601f19908116603f0116810190838211818310171561111657611116611079565b8160405282815288602084870101111561112f57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60005b8381101561116c578181015183820152602001611154565b50506000910152565b6020815260008251806020840152611194816040850160208701611151565b601f01601f19169190910160400192915050565b6000602082840312156111ba57600080fd5b81358060070b811461102d57600080fd5b6000602082840312156111dd57600080fd5b61102d8261105d565b6000602082840312156111f857600080fd5b5035919050565b60006020828403121561121157600080fd5b5051919050565b6000825161122a818460208701611151565b9190910192915050565b60006020828403121561124657600080fd5b81518060030b811461102d57600080fd5b60006020828403121561126957600080fd5b8151801515811461102d57600080fdfea26469706673582212202bfc0d77b9363870a5dfb7e1f02d8f84268d2c9bc57f410b5d96e7dc34ec7bdc64736f6c63430008140033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/artifacts/contracts/proxy-upgrade/exchange/OZUUPSUpgradeableV4.sol/OZUUPSUpgradeableV4.json b/artifacts/contracts/proxy-upgrade/exchange/OZUUPSUpgradeableV4.sol/OZUUPSUpgradeableV4.json deleted file mode 100644 index 53c3fb703..000000000 --- a/artifacts/contracts/proxy-upgrade/exchange/OZUUPSUpgradeableV4.sol/OZUUPSUpgradeableV4.json +++ /dev/null @@ -1,152 +0,0 @@ -{ - "_format": "hh-sol-artifact-1", - "contractName": "OZUUPSUpgradeableV4", - "sourceName": "contracts/proxy-upgrade/exchange/OZUUPSUpgradeableV4.sol", - "abi": [ - { - "inputs": [ - { - "internalType": "address", - "name": "target", - "type": "address" - } - ], - "name": "AddressEmptyCode", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "ERC1967InvalidImplementation", - "type": "error" - }, - { - "inputs": [], - "name": "ERC1967NonPayable", - "type": "error" - }, - { - "inputs": [], - "name": "FailedInnerCall", - "type": "error" - }, - { - "inputs": [], - "name": "InvalidInitialization", - "type": "error" - }, - { - "inputs": [], - "name": "NotInitializing", - "type": "error" - }, - { - "inputs": [], - "name": "UUPSUnauthorizedCallContext", - "type": "error" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "slot", - "type": "bytes32" - } - ], - "name": "UUPSUnsupportedProxiableUUID", - "type": "error" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint64", - "name": "version", - "type": "uint64" - } - ], - "name": "Initialized", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "implementation", - "type": "address" - } - ], - "name": "Upgraded", - "type": "event" - }, - { - "inputs": [], - "name": "UPGRADE_INTERFACE_VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "proxiableUUID", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - } - ], - "name": "upgradeTo", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "newImplementation", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "upgradeToAndCall", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ], - "bytecode": "0x", - "deployedBytecode": "0x", - "linkReferences": {}, - "deployedLinkReferences": {} -} diff --git a/contracts/openzeppelin/uups-upgradable/OZUUPSUpgradeableV4.sol b/contracts/openzeppelin/uups-upgradable/OZUUPSUpgradeableV4.sol deleted file mode 100644 index 4a4f8fc50..000000000 --- a/contracts/openzeppelin/uups-upgradable/OZUUPSUpgradeableV4.sol +++ /dev/null @@ -1,175 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// OpenZeppelin Contracts (last updated v5.0.0) (proxy/utils/UUPSUpgradeable.sol) -pragma solidity ^0.8.20; - -import {ERC1967Utils} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol"; -import {IERC1822Proxiable} from "@openzeppelin/contracts/interfaces/draft-IERC1822.sol"; -import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; - - -/** - * @notice: This contract is only for unblocking purpose and to bypass the `unsafe upgrade` checks. - * @notice: This is a copy of the latest @openzeppelin/UUPSUpgradeable.sol@v.5.0.0 but with an addition of `upgradeTo(address)` method - * @notice: This particular contract should be deprecated and removed in the future release when the project is upgraded to use ethers@v6.x - * and compatible with @openzeppeling/hardhat-upgrades@v2.3.0. - */ - - -/** - * @dev An upgradeability mechanism designed for UUPS proxies. The functions included here can perform an upgrade of an - * {ERC1967Proxy}, when this contract is set as the implementation behind such a proxy. - * - * A security mechanism ensures that an upgrade does not turn off upgradeability accidentally, although this risk is - * reinstated if the upgrade retains upgradeability but removes the security mechanism, e.g. by replacing - * `UUPSUpgradeable` with a custom implementation of upgrades. - * - * The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism. - */ -abstract contract OZUUPSUpgradeableV4 is Initializable, IERC1822Proxiable { - /// @custom:oz-upgrades-unsafe-allow state-variable-immutable - address private immutable __self = address(this); - - /** - * @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgradeTo(address)` - * and `upgradeToAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called, - * while `upgradeToAndCall` will invoke the `receive` function if the second argument is the empty byte string. - * If the getter returns `"5.0.0"`, only `upgradeToAndCall(address,bytes)` is present, and the second argument must - * be the empty byte string if no function should be called, making it impossible to invoke the `receive` function - * during an upgrade. - */ - string public constant UPGRADE_INTERFACE_VERSION = "5.0.0"; - - /** - * @dev The call is from an unauthorized context. - */ - error UUPSUnauthorizedCallContext(); - - /** - * @dev The storage `slot` is unsupported as a UUID. - */ - error UUPSUnsupportedProxiableUUID(bytes32 slot); - - /** - * @dev Check that the execution is being performed through a delegatecall call and that the execution context is - * a proxy contract with an implementation (as defined in ERC1967) pointing to self. This should only be the case - * for UUPS and transparent proxies that are using the current contract as their implementation. Execution of a - * function through ERC1167 minimal proxies (clones) would not normally pass this test, but is not guaranteed to - * fail. - */ - modifier onlyProxy() { - _checkProxy(); - _; - } - - /** - * @dev Check that the execution is not being performed through a delegate call. This allows a function to be - * callable on the implementing contract but not through proxies. - */ - modifier notDelegated() { - _checkNotDelegated(); - _; - } - - function __UUPSUpgradeable_init() internal onlyInitializing { - } - - function __UUPSUpgradeable_init_unchained() internal onlyInitializing { - } - /** - * @dev Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the - * implementation. It is used to validate the implementation's compatibility when performing an upgrade. - * - * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks - * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this - * function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier. - */ - function proxiableUUID() external view virtual notDelegated returns (bytes32) { - return ERC1967Utils.IMPLEMENTATION_SLOT; - } - - /** - * @dev Upgrade the implementation of the proxy to `newImplementation`. - * - * Calls {_authorizeUpgrade}. - * - * Emits an {Upgraded} event. - * - * @custom:oz-upgrades-unsafe-allow-reachable delegatecall - */ - function upgradeTo(address newImplementation) public virtual onlyProxy { - _authorizeUpgrade(newImplementation); - _upgradeToAndCallUUPS(newImplementation, new bytes(0)); - } - - /** - * @dev Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call - * encoded in `data`. - * - * Calls {_authorizeUpgrade}. - * - * Emits an {Upgraded} event. - * - * @custom:oz-upgrades-unsafe-allow-reachable delegatecall - */ - function upgradeToAndCall(address newImplementation, bytes memory data) public payable virtual onlyProxy { - _authorizeUpgrade(newImplementation); - _upgradeToAndCallUUPS(newImplementation, data); - } - - /** - * @dev Reverts if the execution is not performed via delegatecall or the execution - * context is not of a proxy with an ERC1967-compliant implementation pointing to self. - * See {_onlyProxy}. - */ - function _checkProxy() internal view virtual { - if ( - address(this) == __self || // Must be called through delegatecall - ERC1967Utils.getImplementation() != __self // Must be called through an active proxy - ) { - revert UUPSUnauthorizedCallContext(); - } - } - - /** - * @dev Reverts if the execution is performed via delegatecall. - * See {notDelegated}. - */ - function _checkNotDelegated() internal view virtual { - if (address(this) != __self) { - // Must not be called through delegatecall - revert UUPSUnauthorizedCallContext(); - } - } - - /** - * @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract. Called by - * {upgradeToAndCall}. - * - * Normally, this function will use an xref:access.adoc[access control] modifier such as {Ownable-onlyOwner}. - * - * ```solidity - * function _authorizeUpgrade(address) internal onlyOwner {} - * ``` - */ - function _authorizeUpgrade(address newImplementation) internal virtual; - - /** - * @dev Performs an implementation upgrade with a security check for UUPS proxies, and additional setup call. - * - * As a security check, {proxiableUUID} is invoked in the new implementation, and the return value - * is expected to be the implementation slot in ERC1967. - * - * Emits an {IERC1967-Upgraded} event. - */ - function _upgradeToAndCallUUPS(address newImplementation, bytes memory data) private { - try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) { - if (slot != ERC1967Utils.IMPLEMENTATION_SLOT) { - revert UUPSUnsupportedProxiableUUID(slot); - } - ERC1967Utils.upgradeToAndCall(newImplementation, data); - } catch { - // The implementation is not UUPS - revert ERC1967Utils.ERC1967InvalidImplementation(newImplementation); - } - } -} diff --git a/contracts/openzeppelin/uups-upgradable/VaultV1.sol b/contracts/openzeppelin/uups-upgradable/VaultV1.sol index 9847e8fc1..f35426ffb 100644 --- a/contracts/openzeppelin/uups-upgradable/VaultV1.sol +++ b/contracts/openzeppelin/uups-upgradable/VaultV1.sol @@ -1,8 +1,8 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity ^0.8.20; -import "./OZUUPSUpgradeableV4.sol"; import "@openzeppelin/contracts/utils/Context.sol"; +import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; @@ -10,7 +10,7 @@ import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; // to access directly to the storage is recommended. // @notice: Avoid working with state variables among implementation contracts -contract VaultV1 is OwnableUpgradeable, OZUUPSUpgradeableV4{ +contract VaultV1 is OwnableUpgradeable, UUPSUpgradeable{ uint256 private _version; // slot 0 uint256 private _totalBalance; // slot 1 diff --git a/contracts/proxy-upgrade/counter/Counter.sol b/contracts/proxy-upgrade/counter/Counter.sol index 59c75cadf..90a93e635 100644 --- a/contracts/proxy-upgrade/counter/Counter.sol +++ b/contracts/proxy-upgrade/counter/Counter.sol @@ -1,11 +1,11 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity >=0.5.0 <0.9.0; -import "../exchange/OZUUPSUpgradeableV4.sol"; import "@openzeppelin/contracts/utils/math/Math.sol"; +import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; -contract Counter is OwnableUpgradeable, OZUUPSUpgradeableV4 { +contract Counter is OwnableUpgradeable, UUPSUpgradeable { string public name; int256 public count; diff --git a/contracts/proxy-upgrade/exchange/Exchange.sol b/contracts/proxy-upgrade/exchange/Exchange.sol index 81f7a2a41..01bec6437 100644 --- a/contracts/proxy-upgrade/exchange/Exchange.sol +++ b/contracts/proxy-upgrade/exchange/Exchange.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: Apache-2.0 pragma solidity >=0.5.0 <0.9.0; -import "./OZUUPSUpgradeableV4.sol"; +import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol"; import "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol"; import "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol"; import "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol"; @@ -9,7 +9,7 @@ import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import "../../hts-precompile/IHederaTokenService.sol"; import "../../hts-precompile/HederaResponseCodes.sol"; -contract Exchange is OwnableUpgradeable, OZUUPSUpgradeableV4 { +contract Exchange is OwnableUpgradeable, UUPSUpgradeable { address public tokenAddress; address constant private precompile = address(0x167); diff --git a/contracts/proxy-upgrade/exchange/OZUUPSUpgradeableV4.sol b/contracts/proxy-upgrade/exchange/OZUUPSUpgradeableV4.sol deleted file mode 100644 index 8abf2986a..000000000 --- a/contracts/proxy-upgrade/exchange/OZUUPSUpgradeableV4.sol +++ /dev/null @@ -1,176 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// OpenZeppelin Contracts (last updated v5.0.0) (proxy/utils/UUPSUpgradeable.sol) - -pragma solidity ^0.8.20; - -import {ERC1967Utils} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol"; -import {IERC1822Proxiable} from "@openzeppelin/contracts/interfaces/draft-IERC1822.sol"; -import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; - - -/** - * @notice: This contract is only for unblocking purpose and to bypass the `unsafe upgrade` checks. - * @notice: This is a copy of the latest @openzeppelin/UUPSUpgradeable.sol@v.5.0.0 but with an addition of `upgradeTo(address)` method - * @notice: This particular contract should be deprecated and removed in the future release when the project is upgraded to use ethers@v6.x - * and compatible with @openzeppeling/hardhat-upgrades@v2.3.0. - */ - - -/** - * @dev An upgradeability mechanism designed for UUPS proxies. The functions included here can perform an upgrade of an - * {ERC1967Proxy}, when this contract is set as the implementation behind such a proxy. - * - * A security mechanism ensures that an upgrade does not turn off upgradeability accidentally, although this risk is - * reinstated if the upgrade retains upgradeability but removes the security mechanism, e.g. by replacing - * `UUPSUpgradeable` with a custom implementation of upgrades. - * - * The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism. - */ -abstract contract OZUUPSUpgradeableV4 is Initializable, IERC1822Proxiable { - /// @custom:oz-upgrades-unsafe-allow state-variable-immutable - address private immutable __self = address(this); - - /** - * @dev The version of the upgrade interface of the contract. If this getter is missing, both `upgradeTo(address)` - * and `upgradeToAndCall(address,bytes)` are present, and `upgradeTo` must be used if no function should be called, - * while `upgradeToAndCall` will invoke the `receive` function if the second argument is the empty byte string. - * If the getter returns `"5.0.0"`, only `upgradeToAndCall(address,bytes)` is present, and the second argument must - * be the empty byte string if no function should be called, making it impossible to invoke the `receive` function - * during an upgrade. - */ - string public constant UPGRADE_INTERFACE_VERSION = "5.0.0"; - - /** - * @dev The call is from an unauthorized context. - */ - error UUPSUnauthorizedCallContext(); - - /** - * @dev The storage `slot` is unsupported as a UUID. - */ - error UUPSUnsupportedProxiableUUID(bytes32 slot); - - /** - * @dev Check that the execution is being performed through a delegatecall call and that the execution context is - * a proxy contract with an implementation (as defined in ERC1967) pointing to self. This should only be the case - * for UUPS and transparent proxies that are using the current contract as their implementation. Execution of a - * function through ERC1167 minimal proxies (clones) would not normally pass this test, but is not guaranteed to - * fail. - */ - modifier onlyProxy() { - _checkProxy(); - _; - } - - /** - * @dev Check that the execution is not being performed through a delegate call. This allows a function to be - * callable on the implementing contract but not through proxies. - */ - modifier notDelegated() { - _checkNotDelegated(); - _; - } - - function __UUPSUpgradeable_init() internal onlyInitializing { - } - - function __UUPSUpgradeable_init_unchained() internal onlyInitializing { - } - /** - * @dev Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the - * implementation. It is used to validate the implementation's compatibility when performing an upgrade. - * - * IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks - * bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this - * function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier. - */ - function proxiableUUID() external view virtual notDelegated returns (bytes32) { - return ERC1967Utils.IMPLEMENTATION_SLOT; - } - - /** - * @dev Upgrade the implementation of the proxy to `newImplementation`. - * - * Calls {_authorizeUpgrade}. - * - * Emits an {Upgraded} event. - * - * @custom:oz-upgrades-unsafe-allow-reachable delegatecall - */ - function upgradeTo(address newImplementation) public virtual onlyProxy { - _authorizeUpgrade(newImplementation); - _upgradeToAndCallUUPS(newImplementation, new bytes(0)); - } - - /** - * @dev Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call - * encoded in `data`. - * - * Calls {_authorizeUpgrade}. - * - * Emits an {Upgraded} event. - * - * @custom:oz-upgrades-unsafe-allow-reachable delegatecall - */ - function upgradeToAndCall(address newImplementation, bytes memory data) public payable virtual onlyProxy { - _authorizeUpgrade(newImplementation); - _upgradeToAndCallUUPS(newImplementation, data); - } - - /** - * @dev Reverts if the execution is not performed via delegatecall or the execution - * context is not of a proxy with an ERC1967-compliant implementation pointing to self. - * See {_onlyProxy}. - */ - function _checkProxy() internal view virtual { - if ( - address(this) == __self || // Must be called through delegatecall - ERC1967Utils.getImplementation() != __self // Must be called through an active proxy - ) { - revert UUPSUnauthorizedCallContext(); - } - } - - /** - * @dev Reverts if the execution is performed via delegatecall. - * See {notDelegated}. - */ - function _checkNotDelegated() internal view virtual { - if (address(this) != __self) { - // Must not be called through delegatecall - revert UUPSUnauthorizedCallContext(); - } - } - - /** - * @dev Function that should revert when `msg.sender` is not authorized to upgrade the contract. Called by - * {upgradeToAndCall}. - * - * Normally, this function will use an xref:access.adoc[access control] modifier such as {Ownable-onlyOwner}. - * - * ```solidity - * function _authorizeUpgrade(address) internal onlyOwner {} - * ``` - */ - function _authorizeUpgrade(address newImplementation) internal virtual; - - /** - * @dev Performs an implementation upgrade with a security check for UUPS proxies, and additional setup call. - * - * As a security check, {proxiableUUID} is invoked in the new implementation, and the return value - * is expected to be the implementation slot in ERC1967. - * - * Emits an {IERC1967-Upgraded} event. - */ - function _upgradeToAndCallUUPS(address newImplementation, bytes memory data) private { - try IERC1822Proxiable(newImplementation).proxiableUUID() returns (bytes32 slot) { - if (slot != ERC1967Utils.IMPLEMENTATION_SLOT) { - revert UUPSUnsupportedProxiableUUID(slot); - } - ERC1967Utils.upgradeToAndCall(newImplementation, data); - } catch { - // The implementation is not UUPS - revert ERC1967Utils.ERC1967InvalidImplementation(newImplementation); - } - } -}