@enclave-e3/contracts 0.1.11 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/ProxyAdmin.json +3 -3
- package/artifacts/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.sol/artifacts.d.ts +3 -3
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.json +1 -1
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.json +3 -3
- package/artifacts/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/artifacts.d.ts +4 -4
- package/artifacts/build-info/{solc-0_8_28-c77ac33099bb85c15f46d194dd2b735e036cb799.json → solc-0_8_28-e60a5d7c133605edcf61acdd5ba43ab44ee0928e.json} +27 -12
- package/artifacts/build-info/solc-0_8_28-e60a5d7c133605edcf61acdd5ba43ab44ee0928e.output.json +1 -0
- package/artifacts/contracts/E3RefundManager.sol/E3RefundManager.json +684 -0
- package/artifacts/contracts/E3RefundManager.sol/artifacts.d.ts +27 -0
- package/artifacts/contracts/Enclave.sol/Enclave.json +530 -182
- package/artifacts/contracts/Enclave.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/interfaces/IBondingRegistry.sol/IBondingRegistry.json +14 -1
- package/artifacts/contracts/interfaces/IBondingRegistry.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/ICiphernodeRegistry.json +55 -5
- package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/interfaces/IComputeProvider.sol/IComputeProvider.json +1 -1
- package/artifacts/contracts/interfaces/IComputeProvider.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/IDecryptionVerifier.json +1 -1
- package/artifacts/contracts/interfaces/IDecryptionVerifier.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/interfaces/IE3Program.sol/IE3Program.json +19 -24
- package/artifacts/contracts/interfaces/IE3Program.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/interfaces/IE3RefundManager.sol/IE3RefundManager.json +470 -0
- package/artifacts/contracts/interfaces/IE3RefundManager.sol/artifacts.d.ts +27 -0
- package/artifacts/contracts/interfaces/IEnclave.sol/IEnclave.json +383 -128
- package/artifacts/contracts/interfaces/IEnclave.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/interfaces/ISlashVerifier.sol/ISlashVerifier.json +1 -1
- package/artifacts/contracts/interfaces/ISlashVerifier.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/interfaces/ISlashingManager.sol/ISlashingManager.json +1 -1
- package/artifacts/contracts/interfaces/ISlashingManager.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/lib/ExitQueueLib.sol/ExitQueueLib.json +1 -1
- package/artifacts/contracts/lib/ExitQueueLib.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/registry/BondingRegistry.sol/BondingRegistry.json +16 -3
- package/artifacts/contracts/registry/BondingRegistry.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/CiphernodeRegistryOwnable.json +91 -25
- package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/artifacts.d.ts +6 -6
- package/artifacts/contracts/slashing/SlashingManager.sol/SlashingManager.json +3 -3
- package/artifacts/contracts/slashing/SlashingManager.sol/artifacts.d.ts +3 -3
- package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.json +57 -7
- package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.json +57 -7
- package/artifacts/contracts/test/MockCiphernodeRegistry.sol/artifacts.d.ts +8 -8
- package/artifacts/contracts/test/MockComputeProvider.sol/MockComputeProvider.json +3 -3
- package/artifacts/contracts/test/MockComputeProvider.sol/artifacts.d.ts +3 -3
- package/artifacts/contracts/test/MockDecryptionVerifier.sol/MockDecryptionVerifier.json +1 -1
- package/artifacts/contracts/test/MockDecryptionVerifier.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/test/MockE3Program.sol/MockE3Program.json +21 -26
- package/artifacts/contracts/test/MockE3Program.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/test/MockSlashingVerifier.sol/MockSlashingVerifier.json +1 -1
- package/artifacts/contracts/test/MockSlashingVerifier.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/test/MockStableToken.sol/MockUSDC.json +3 -3
- package/artifacts/contracts/test/MockStableToken.sol/artifacts.d.ts +3 -3
- package/artifacts/contracts/token/EnclaveTicketToken.sol/EnclaveTicketToken.json +14 -22
- package/artifacts/contracts/token/EnclaveTicketToken.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/token/EnclaveToken.sol/EnclaveToken.json +10 -10
- package/artifacts/contracts/token/EnclaveToken.sol/artifacts.d.ts +4 -4
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.json +89 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/CommitmentSchemeLib.json +13 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.json +186 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/FrLib.json +13 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/Honk.json +13 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/HonkVerificationKey.json +13 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/IVerifier.json +38 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/RelationsLib.json +13 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.json +400 -0
- package/artifacts/contracts/verifier/DkgPkVerifier.sol/artifacts.d.ts +155 -0
- package/artifacts/poseidon-solidity/PoseidonT3.sol/PoseidonT3.json +1 -1
- package/artifacts/poseidon-solidity/PoseidonT3.sol/artifacts.d.ts +1 -1
- package/contracts/E3RefundManager.sol +365 -0
- package/contracts/Enclave.sol +426 -119
- package/contracts/interfaces/IBondingRegistry.sol +6 -0
- package/contracts/interfaces/ICiphernodeRegistry.sol +29 -7
- package/contracts/interfaces/IE3.sol +2 -6
- package/contracts/interfaces/IE3Program.sol +3 -7
- package/contracts/interfaces/IE3RefundManager.sol +150 -0
- package/contracts/interfaces/IEnclave.sol +186 -64
- package/contracts/registry/BondingRegistry.sol +9 -0
- package/contracts/registry/CiphernodeRegistryOwnable.sol +89 -42
- package/contracts/test/MockCiphernodeRegistry.sol +20 -6
- package/contracts/test/MockE3Program.sol +3 -8
- package/contracts/verifier/DkgPkVerifier.sol +3140 -0
- package/dist/hardhat.config.d.ts.map +1 -1
- package/dist/hardhat.config.js +4 -4
- package/dist/ignition/modules/dkgPkVerifier.d.ts +3 -0
- package/dist/ignition/modules/dkgPkVerifier.d.ts.map +1 -0
- package/dist/ignition/modules/dkgPkVerifier.js +10 -0
- package/dist/ignition/modules/e3RefundManager.d.ts +3 -0
- package/dist/ignition/modules/e3RefundManager.d.ts.map +1 -0
- package/dist/ignition/modules/e3RefundManager.js +23 -0
- package/dist/ignition/modules/enclave.d.ts.map +1 -1
- package/dist/ignition/modules/enclave.js +10 -0
- package/dist/scripts/deployAndSave/e3RefundManager.d.ts +20 -0
- package/dist/scripts/deployAndSave/e3RefundManager.d.ts.map +1 -0
- package/dist/scripts/deployAndSave/e3RefundManager.js +55 -0
- package/dist/scripts/deployAndSave/enclave.d.ts +13 -1
- package/dist/scripts/deployAndSave/enclave.d.ts.map +1 -1
- package/dist/scripts/deployAndSave/enclave.js +8 -1
- package/dist/scripts/deployAndSave/verifiers.d.ts +29 -0
- package/dist/scripts/deployAndSave/verifiers.d.ts.map +1 -0
- package/dist/scripts/deployAndSave/verifiers.js +109 -0
- package/dist/scripts/deployEnclave.d.ts.map +1 -1
- package/dist/scripts/deployEnclave.js +36 -0
- package/dist/scripts/deployVerifiers.d.ts +2 -0
- package/dist/scripts/deployVerifiers.d.ts.map +1 -0
- package/dist/scripts/deployVerifiers.js +33 -0
- package/dist/scripts/index.d.ts +1 -0
- package/dist/scripts/index.d.ts.map +1 -1
- package/dist/scripts/index.js +1 -0
- package/dist/tasks/enclave.d.ts +0 -2
- package/dist/tasks/enclave.d.ts.map +1 -1
- package/dist/tasks/enclave.js +8 -72
- package/dist/tasks/program.d.ts +2 -0
- package/dist/tasks/program.d.ts.map +1 -0
- package/dist/tasks/program.js +55 -0
- package/dist/test/E3Lifecycle/E3Integration.spec.d.ts +2 -0
- package/dist/test/E3Lifecycle/E3Integration.spec.d.ts.map +1 -0
- package/dist/test/E3Lifecycle/E3Integration.spec.js +757 -0
- package/dist/test/Enclave.spec.js +83 -406
- package/dist/test/Registry/CiphernodeRegistryOwnable.spec.js +133 -59
- package/dist/types/contracts/E3RefundManager.d.ts +379 -0
- package/dist/types/contracts/E3RefundManager.d.ts.map +1 -0
- package/dist/types/contracts/E3RefundManager.js +24 -0
- package/dist/types/contracts/Enclave.d.ts +325 -73
- package/dist/types/contracts/Enclave.d.ts.map +1 -1
- package/dist/types/contracts/Enclave.js +27 -3
- package/dist/types/contracts/index.d.ts +3 -0
- package/dist/types/contracts/index.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/IBondingRegistry.d.ts +11 -1
- package/dist/types/contracts/interfaces/IBondingRegistry.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts +35 -7
- package/dist/types/contracts/interfaces/ICiphernodeRegistry.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/ICiphernodeRegistry.js +4 -0
- package/dist/types/contracts/interfaces/IE3Program.d.ts +16 -18
- package/dist/types/contracts/interfaces/IE3Program.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/IE3RefundManager.d.ts +238 -0
- package/dist/types/contracts/interfaces/IE3RefundManager.d.ts.map +1 -0
- package/dist/types/contracts/interfaces/IE3RefundManager.js +16 -0
- package/dist/types/contracts/interfaces/IEnclave.d.ts +290 -62
- package/dist/types/contracts/interfaces/IEnclave.d.ts.map +1 -1
- package/dist/types/contracts/interfaces/IEnclave.js +27 -3
- package/dist/types/contracts/interfaces/index.d.ts +1 -0
- package/dist/types/contracts/interfaces/index.d.ts.map +1 -1
- package/dist/types/contracts/registry/BondingRegistry.d.ts +11 -1
- package/dist/types/contracts/registry/BondingRegistry.d.ts.map +1 -1
- package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts +35 -7
- package/dist/types/contracts/registry/CiphernodeRegistryOwnable.d.ts.map +1 -1
- package/dist/types/contracts/registry/CiphernodeRegistryOwnable.js +4 -0
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts +35 -7
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.d.ts.map +1 -1
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.js +4 -0
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts +35 -7
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.d.ts.map +1 -1
- package/dist/types/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.js +4 -0
- package/dist/types/contracts/test/MockE3Program.d.ts +16 -18
- package/dist/types/contracts/test/MockE3Program.d.ts.map +1 -1
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.d.ts +36 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.d.ts.map +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier.js +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.d.ts +36 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.d.ts.map +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier.js +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/IVerifier.d.ts +36 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/IVerifier.d.ts.map +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/IVerifier.js +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.d.ts +138 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.d.ts.map +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib.js +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/index.d.ts +5 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/index.d.ts.map +1 -0
- package/dist/types/contracts/verifier/DkgPkVerifier.sol/index.js +1 -0
- package/dist/types/contracts/verifier/index.d.ts +3 -0
- package/dist/types/contracts/verifier/index.d.ts.map +1 -0
- package/dist/types/contracts/verifier/index.js +1 -0
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +1 -1
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts.map +1 -1
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.js +1 -1
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts +1 -1
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts.map +1 -1
- package/dist/types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.js +1 -1
- package/dist/types/factories/contracts/E3RefundManager__factory.d.ts +540 -0
- package/dist/types/factories/contracts/E3RefundManager__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/E3RefundManager__factory.js +706 -0
- package/dist/types/factories/contracts/Enclave__factory.d.ts +412 -143
- package/dist/types/factories/contracts/Enclave__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/Enclave__factory.js +528 -180
- package/dist/types/factories/contracts/index.d.ts +2 -0
- package/dist/types/factories/contracts/index.d.ts.map +1 -1
- package/dist/types/factories/contracts/index.js +2 -0
- package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts +10 -0
- package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/IBondingRegistry__factory.js +13 -0
- package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts +42 -4
- package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/ICiphernodeRegistry__factory.js +54 -4
- package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts +14 -18
- package/dist/types/factories/contracts/interfaces/IE3Program__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/IE3Program__factory.js +18 -23
- package/dist/types/factories/contracts/interfaces/IE3RefundManager__factory.d.ts +358 -0
- package/dist/types/factories/contracts/interfaces/IE3RefundManager__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/interfaces/IE3RefundManager__factory.js +471 -0
- package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts +303 -103
- package/dist/types/factories/contracts/interfaces/IEnclave__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/IEnclave__factory.js +382 -127
- package/dist/types/factories/contracts/interfaces/index.d.ts +1 -0
- package/dist/types/factories/contracts/interfaces/index.d.ts.map +1 -1
- package/dist/types/factories/contracts/interfaces/index.js +1 -0
- package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts +11 -1
- package/dist/types/factories/contracts/registry/BondingRegistry__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/registry/BondingRegistry__factory.js +14 -1
- package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts +62 -12
- package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/registry/CiphernodeRegistryOwnable__factory.js +79 -13
- package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts +1 -1
- package/dist/types/factories/contracts/slashing/SlashingManager__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/slashing/SlashingManager__factory.js +1 -1
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts +43 -5
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey__factory.js +55 -5
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts +43 -5
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry__factory.js +55 -5
- package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts +1 -1
- package/dist/types/factories/contracts/test/MockComputeProvider__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockComputeProvider__factory.js +1 -1
- package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts +15 -19
- package/dist/types/factories/contracts/test/MockE3Program__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockE3Program__factory.js +19 -24
- package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts +1 -1
- package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/test/MockStableToken.sol/MockUSDC__factory.js +1 -1
- package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts +1 -1
- package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/token/EnclaveTicketToken__factory.js +1 -1
- package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts +1 -1
- package/dist/types/factories/contracts/token/EnclaveToken__factory.d.ts.map +1 -1
- package/dist/types/factories/contracts/token/EnclaveToken__factory.js +1 -1
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier__factory.d.ts +66 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/BaseZKHonkVerifier__factory.js +90 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier__factory.d.ts +87 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/DkgPkVerifier__factory.js +122 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/IVerifier__factory.d.ts +26 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/IVerifier__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/IVerifier__factory.js +39 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib__factory.d.ts +323 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib__factory.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/ZKTranscriptLib__factory.js +422 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/index.d.ts +5 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/index.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/DkgPkVerifier.sol/index.js +7 -0
- package/dist/types/factories/contracts/verifier/index.d.ts +2 -0
- package/dist/types/factories/contracts/verifier/index.d.ts.map +1 -0
- package/dist/types/factories/contracts/verifier/index.js +4 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +6 -0
- package/package.json +17 -3
- package/artifacts/build-info/solc-0_8_28-c77ac33099bb85c15f46d194dd2b735e036cb799.output.json +0 -1
|
@@ -30,6 +30,22 @@
|
|
|
30
30
|
"name": "CiphertextOutputNotPublished",
|
|
31
31
|
"type": "error"
|
|
32
32
|
},
|
|
33
|
+
{
|
|
34
|
+
"inputs": [
|
|
35
|
+
{
|
|
36
|
+
"internalType": "uint256",
|
|
37
|
+
"name": "e3Id",
|
|
38
|
+
"type": "uint256"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"internalType": "uint256",
|
|
42
|
+
"name": "expiration",
|
|
43
|
+
"type": "uint256"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"name": "CommitteeDutiesCompleted",
|
|
47
|
+
"type": "error"
|
|
48
|
+
},
|
|
33
49
|
{
|
|
34
50
|
"inputs": [],
|
|
35
51
|
"name": "CommitteeSelectionFailed",
|
|
@@ -43,7 +59,7 @@
|
|
|
43
59
|
"type": "uint256"
|
|
44
60
|
}
|
|
45
61
|
],
|
|
46
|
-
"name": "
|
|
62
|
+
"name": "E3AlreadyComplete",
|
|
47
63
|
"type": "error"
|
|
48
64
|
},
|
|
49
65
|
{
|
|
@@ -54,12 +70,7 @@
|
|
|
54
70
|
"type": "uint256"
|
|
55
71
|
}
|
|
56
72
|
],
|
|
57
|
-
"name": "
|
|
58
|
-
"type": "error"
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
"inputs": [],
|
|
62
|
-
"name": "E3Expired",
|
|
73
|
+
"name": "E3AlreadyFailed",
|
|
63
74
|
"type": "error"
|
|
64
75
|
},
|
|
65
76
|
{
|
|
@@ -70,12 +81,7 @@
|
|
|
70
81
|
"type": "uint256"
|
|
71
82
|
}
|
|
72
83
|
],
|
|
73
|
-
"name": "
|
|
74
|
-
"type": "error"
|
|
75
|
-
},
|
|
76
|
-
{
|
|
77
|
-
"inputs": [],
|
|
78
|
-
"name": "E3NotReady",
|
|
84
|
+
"name": "E3DoesNotExist",
|
|
79
85
|
"type": "error"
|
|
80
86
|
},
|
|
81
87
|
{
|
|
@@ -95,14 +101,9 @@
|
|
|
95
101
|
"internalType": "uint256",
|
|
96
102
|
"name": "e3Id",
|
|
97
103
|
"type": "uint256"
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
"internalType": "uint256",
|
|
101
|
-
"name": "expiration",
|
|
102
|
-
"type": "uint256"
|
|
103
104
|
}
|
|
104
105
|
],
|
|
105
|
-
"name": "
|
|
106
|
+
"name": "FailureConditionNotMet",
|
|
106
107
|
"type": "error"
|
|
107
108
|
},
|
|
108
109
|
{
|
|
@@ -114,11 +115,11 @@
|
|
|
114
115
|
},
|
|
115
116
|
{
|
|
116
117
|
"internalType": "uint256",
|
|
117
|
-
"name": "
|
|
118
|
+
"name": "inputDeadline",
|
|
118
119
|
"type": "uint256"
|
|
119
120
|
}
|
|
120
121
|
],
|
|
121
|
-
"name": "
|
|
122
|
+
"name": "InputDeadlineNotReached",
|
|
122
123
|
"type": "error"
|
|
123
124
|
},
|
|
124
125
|
{
|
|
@@ -182,8 +183,36 @@
|
|
|
182
183
|
"type": "error"
|
|
183
184
|
},
|
|
184
185
|
{
|
|
185
|
-
"inputs": [
|
|
186
|
-
|
|
186
|
+
"inputs": [
|
|
187
|
+
{
|
|
188
|
+
"internalType": "uint256",
|
|
189
|
+
"name": "deadline",
|
|
190
|
+
"type": "uint256"
|
|
191
|
+
}
|
|
192
|
+
],
|
|
193
|
+
"name": "InvalidInputDeadline",
|
|
194
|
+
"type": "error"
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
"inputs": [
|
|
198
|
+
{
|
|
199
|
+
"internalType": "uint256",
|
|
200
|
+
"name": "end",
|
|
201
|
+
"type": "uint256"
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
"name": "InvalidInputDeadlineEnd",
|
|
205
|
+
"type": "error"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"inputs": [
|
|
209
|
+
{
|
|
210
|
+
"internalType": "uint256",
|
|
211
|
+
"name": "start",
|
|
212
|
+
"type": "uint256"
|
|
213
|
+
}
|
|
214
|
+
],
|
|
215
|
+
"name": "InvalidInputDeadlineStart",
|
|
187
216
|
"type": "error"
|
|
188
217
|
},
|
|
189
218
|
{
|
|
@@ -198,8 +227,24 @@
|
|
|
198
227
|
"type": "error"
|
|
199
228
|
},
|
|
200
229
|
{
|
|
201
|
-
"inputs": [
|
|
202
|
-
|
|
230
|
+
"inputs": [
|
|
231
|
+
{
|
|
232
|
+
"internalType": "uint256",
|
|
233
|
+
"name": "e3Id",
|
|
234
|
+
"type": "uint256"
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"internalType": "enum IEnclave.E3Stage",
|
|
238
|
+
"name": "expected",
|
|
239
|
+
"type": "uint8"
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
"internalType": "enum IEnclave.E3Stage",
|
|
243
|
+
"name": "actual",
|
|
244
|
+
"type": "uint8"
|
|
245
|
+
}
|
|
246
|
+
],
|
|
247
|
+
"name": "InvalidStage",
|
|
203
248
|
"type": "error"
|
|
204
249
|
},
|
|
205
250
|
{
|
|
@@ -356,8 +401,59 @@
|
|
|
356
401
|
{
|
|
357
402
|
"anonymous": false,
|
|
358
403
|
"inputs": [
|
|
404
|
+
{
|
|
405
|
+
"indexed": true,
|
|
406
|
+
"internalType": "uint256",
|
|
407
|
+
"name": "e3Id",
|
|
408
|
+
"type": "uint256"
|
|
409
|
+
}
|
|
410
|
+
],
|
|
411
|
+
"name": "CommitteeFinalized",
|
|
412
|
+
"type": "event"
|
|
413
|
+
},
|
|
414
|
+
{
|
|
415
|
+
"anonymous": false,
|
|
416
|
+
"inputs": [
|
|
417
|
+
{
|
|
418
|
+
"indexed": true,
|
|
419
|
+
"internalType": "uint256",
|
|
420
|
+
"name": "e3Id",
|
|
421
|
+
"type": "uint256"
|
|
422
|
+
}
|
|
423
|
+
],
|
|
424
|
+
"name": "CommitteeFormed",
|
|
425
|
+
"type": "event"
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
"anonymous": false,
|
|
429
|
+
"inputs": [
|
|
430
|
+
{
|
|
431
|
+
"indexed": true,
|
|
432
|
+
"internalType": "uint256",
|
|
433
|
+
"name": "e3Id",
|
|
434
|
+
"type": "uint256"
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
"indexed": false,
|
|
438
|
+
"internalType": "enum IEnclave.E3Stage",
|
|
439
|
+
"name": "failedAtStage",
|
|
440
|
+
"type": "uint8"
|
|
441
|
+
},
|
|
359
442
|
{
|
|
360
443
|
"indexed": false,
|
|
444
|
+
"internalType": "enum IEnclave.FailureReason",
|
|
445
|
+
"name": "reason",
|
|
446
|
+
"type": "uint8"
|
|
447
|
+
}
|
|
448
|
+
],
|
|
449
|
+
"name": "E3Failed",
|
|
450
|
+
"type": "event"
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"anonymous": false,
|
|
454
|
+
"inputs": [
|
|
455
|
+
{
|
|
456
|
+
"indexed": true,
|
|
361
457
|
"internalType": "uint256",
|
|
362
458
|
"name": "e3Id",
|
|
363
459
|
"type": "uint256"
|
|
@@ -365,17 +461,17 @@
|
|
|
365
461
|
{
|
|
366
462
|
"indexed": false,
|
|
367
463
|
"internalType": "uint256",
|
|
368
|
-
"name": "
|
|
464
|
+
"name": "paymentAmount",
|
|
369
465
|
"type": "uint256"
|
|
370
466
|
},
|
|
371
467
|
{
|
|
372
468
|
"indexed": false,
|
|
373
|
-
"internalType": "
|
|
374
|
-
"name": "
|
|
375
|
-
"type": "
|
|
469
|
+
"internalType": "uint256",
|
|
470
|
+
"name": "honestNodeCount",
|
|
471
|
+
"type": "uint256"
|
|
376
472
|
}
|
|
377
473
|
],
|
|
378
|
-
"name": "
|
|
474
|
+
"name": "E3FailureProcessed",
|
|
379
475
|
"type": "event"
|
|
380
476
|
},
|
|
381
477
|
{
|
|
@@ -404,6 +500,19 @@
|
|
|
404
500
|
"name": "E3ProgramEnabled",
|
|
405
501
|
"type": "event"
|
|
406
502
|
},
|
|
503
|
+
{
|
|
504
|
+
"anonymous": false,
|
|
505
|
+
"inputs": [
|
|
506
|
+
{
|
|
507
|
+
"indexed": true,
|
|
508
|
+
"internalType": "address",
|
|
509
|
+
"name": "e3RefundManager",
|
|
510
|
+
"type": "address"
|
|
511
|
+
}
|
|
512
|
+
],
|
|
513
|
+
"name": "E3RefundManagerSet",
|
|
514
|
+
"type": "event"
|
|
515
|
+
},
|
|
407
516
|
{
|
|
408
517
|
"anonymous": false,
|
|
409
518
|
"inputs": [
|
|
@@ -432,19 +541,9 @@
|
|
|
432
541
|
},
|
|
433
542
|
{
|
|
434
543
|
"internalType": "uint256[2]",
|
|
435
|
-
"name": "
|
|
544
|
+
"name": "inputWindow",
|
|
436
545
|
"type": "uint256[2]"
|
|
437
546
|
},
|
|
438
|
-
{
|
|
439
|
-
"internalType": "uint256",
|
|
440
|
-
"name": "duration",
|
|
441
|
-
"type": "uint256"
|
|
442
|
-
},
|
|
443
|
-
{
|
|
444
|
-
"internalType": "uint256",
|
|
445
|
-
"name": "expiration",
|
|
446
|
-
"type": "uint256"
|
|
447
|
-
},
|
|
448
547
|
{
|
|
449
548
|
"internalType": "bytes32",
|
|
450
549
|
"name": "encryptionSchemeId",
|
|
@@ -506,6 +605,31 @@
|
|
|
506
605
|
"name": "E3Requested",
|
|
507
606
|
"type": "event"
|
|
508
607
|
},
|
|
608
|
+
{
|
|
609
|
+
"anonymous": false,
|
|
610
|
+
"inputs": [
|
|
611
|
+
{
|
|
612
|
+
"indexed": true,
|
|
613
|
+
"internalType": "uint256",
|
|
614
|
+
"name": "e3Id",
|
|
615
|
+
"type": "uint256"
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"indexed": false,
|
|
619
|
+
"internalType": "enum IEnclave.E3Stage",
|
|
620
|
+
"name": "previousStage",
|
|
621
|
+
"type": "uint8"
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
"indexed": false,
|
|
625
|
+
"internalType": "enum IEnclave.E3Stage",
|
|
626
|
+
"name": "newStage",
|
|
627
|
+
"type": "uint8"
|
|
628
|
+
}
|
|
629
|
+
],
|
|
630
|
+
"name": "E3StageChanged",
|
|
631
|
+
"type": "event"
|
|
632
|
+
},
|
|
509
633
|
{
|
|
510
634
|
"anonymous": false,
|
|
511
635
|
"inputs": [
|
|
@@ -666,23 +790,39 @@
|
|
|
666
790
|
"type": "event"
|
|
667
791
|
},
|
|
668
792
|
{
|
|
793
|
+
"anonymous": false,
|
|
669
794
|
"inputs": [
|
|
670
795
|
{
|
|
671
|
-
"
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
796
|
+
"components": [
|
|
797
|
+
{
|
|
798
|
+
"internalType": "uint256",
|
|
799
|
+
"name": "dkgWindow",
|
|
800
|
+
"type": "uint256"
|
|
801
|
+
},
|
|
802
|
+
{
|
|
803
|
+
"internalType": "uint256",
|
|
804
|
+
"name": "computeWindow",
|
|
805
|
+
"type": "uint256"
|
|
806
|
+
},
|
|
807
|
+
{
|
|
808
|
+
"internalType": "uint256",
|
|
809
|
+
"name": "decryptionWindow",
|
|
810
|
+
"type": "uint256"
|
|
811
|
+
},
|
|
812
|
+
{
|
|
813
|
+
"internalType": "uint256",
|
|
814
|
+
"name": "gracePeriod",
|
|
815
|
+
"type": "uint256"
|
|
816
|
+
}
|
|
817
|
+
],
|
|
818
|
+
"indexed": false,
|
|
819
|
+
"internalType": "struct IEnclave.E3TimeoutConfig",
|
|
820
|
+
"name": "config",
|
|
821
|
+
"type": "tuple"
|
|
682
822
|
}
|
|
683
823
|
],
|
|
684
|
-
"
|
|
685
|
-
"type": "
|
|
824
|
+
"name": "TimeoutConfigUpdated",
|
|
825
|
+
"type": "event"
|
|
686
826
|
},
|
|
687
827
|
{
|
|
688
828
|
"inputs": [],
|
|
@@ -697,6 +837,30 @@
|
|
|
697
837
|
"stateMutability": "view",
|
|
698
838
|
"type": "function"
|
|
699
839
|
},
|
|
840
|
+
{
|
|
841
|
+
"inputs": [
|
|
842
|
+
{
|
|
843
|
+
"internalType": "uint256",
|
|
844
|
+
"name": "e3Id",
|
|
845
|
+
"type": "uint256"
|
|
846
|
+
}
|
|
847
|
+
],
|
|
848
|
+
"name": "checkFailureCondition",
|
|
849
|
+
"outputs": [
|
|
850
|
+
{
|
|
851
|
+
"internalType": "bool",
|
|
852
|
+
"name": "canFail",
|
|
853
|
+
"type": "bool"
|
|
854
|
+
},
|
|
855
|
+
{
|
|
856
|
+
"internalType": "enum IEnclave.FailureReason",
|
|
857
|
+
"name": "reason",
|
|
858
|
+
"type": "uint8"
|
|
859
|
+
}
|
|
860
|
+
],
|
|
861
|
+
"stateMutability": "view",
|
|
862
|
+
"type": "function"
|
|
863
|
+
},
|
|
700
864
|
{
|
|
701
865
|
"inputs": [],
|
|
702
866
|
"name": "ciphernodeRegistry",
|
|
@@ -738,13 +902,7 @@
|
|
|
738
902
|
}
|
|
739
903
|
],
|
|
740
904
|
"name": "disableE3Program",
|
|
741
|
-
"outputs": [
|
|
742
|
-
{
|
|
743
|
-
"internalType": "bool",
|
|
744
|
-
"name": "success",
|
|
745
|
-
"type": "bool"
|
|
746
|
-
}
|
|
747
|
-
],
|
|
905
|
+
"outputs": [],
|
|
748
906
|
"stateMutability": "nonpayable",
|
|
749
907
|
"type": "function"
|
|
750
908
|
},
|
|
@@ -757,13 +915,7 @@
|
|
|
757
915
|
}
|
|
758
916
|
],
|
|
759
917
|
"name": "disableEncryptionScheme",
|
|
760
|
-
"outputs": [
|
|
761
|
-
{
|
|
762
|
-
"internalType": "bool",
|
|
763
|
-
"name": "success",
|
|
764
|
-
"type": "bool"
|
|
765
|
-
}
|
|
766
|
-
],
|
|
918
|
+
"outputs": [],
|
|
767
919
|
"stateMutability": "nonpayable",
|
|
768
920
|
"type": "function"
|
|
769
921
|
},
|
|
@@ -824,6 +976,19 @@
|
|
|
824
976
|
"stateMutability": "view",
|
|
825
977
|
"type": "function"
|
|
826
978
|
},
|
|
979
|
+
{
|
|
980
|
+
"inputs": [],
|
|
981
|
+
"name": "e3RefundManager",
|
|
982
|
+
"outputs": [
|
|
983
|
+
{
|
|
984
|
+
"internalType": "contract IE3RefundManager",
|
|
985
|
+
"name": "",
|
|
986
|
+
"type": "address"
|
|
987
|
+
}
|
|
988
|
+
],
|
|
989
|
+
"stateMutability": "view",
|
|
990
|
+
"type": "function"
|
|
991
|
+
},
|
|
827
992
|
{
|
|
828
993
|
"inputs": [
|
|
829
994
|
{
|
|
@@ -844,16 +1009,6 @@
|
|
|
844
1009
|
"name": "requestBlock",
|
|
845
1010
|
"type": "uint256"
|
|
846
1011
|
},
|
|
847
|
-
{
|
|
848
|
-
"internalType": "uint256",
|
|
849
|
-
"name": "duration",
|
|
850
|
-
"type": "uint256"
|
|
851
|
-
},
|
|
852
|
-
{
|
|
853
|
-
"internalType": "uint256",
|
|
854
|
-
"name": "expiration",
|
|
855
|
-
"type": "uint256"
|
|
856
|
-
},
|
|
857
1012
|
{
|
|
858
1013
|
"internalType": "bytes32",
|
|
859
1014
|
"name": "encryptionSchemeId",
|
|
@@ -912,13 +1067,7 @@
|
|
|
912
1067
|
}
|
|
913
1068
|
],
|
|
914
1069
|
"name": "enableE3Program",
|
|
915
|
-
"outputs": [
|
|
916
|
-
{
|
|
917
|
-
"internalType": "bool",
|
|
918
|
-
"name": "success",
|
|
919
|
-
"type": "bool"
|
|
920
|
-
}
|
|
921
|
-
],
|
|
1070
|
+
"outputs": [],
|
|
922
1071
|
"stateMutability": "nonpayable",
|
|
923
1072
|
"type": "function"
|
|
924
1073
|
},
|
|
@@ -938,11 +1087,47 @@
|
|
|
938
1087
|
{
|
|
939
1088
|
"inputs": [
|
|
940
1089
|
{
|
|
941
|
-
"internalType": "
|
|
942
|
-
"name": "
|
|
943
|
-
"type": "
|
|
944
|
-
}
|
|
945
|
-
],
|
|
1090
|
+
"internalType": "uint256",
|
|
1091
|
+
"name": "e3Id",
|
|
1092
|
+
"type": "uint256"
|
|
1093
|
+
}
|
|
1094
|
+
],
|
|
1095
|
+
"name": "getDeadlines",
|
|
1096
|
+
"outputs": [
|
|
1097
|
+
{
|
|
1098
|
+
"components": [
|
|
1099
|
+
{
|
|
1100
|
+
"internalType": "uint256",
|
|
1101
|
+
"name": "dkgDeadline",
|
|
1102
|
+
"type": "uint256"
|
|
1103
|
+
},
|
|
1104
|
+
{
|
|
1105
|
+
"internalType": "uint256",
|
|
1106
|
+
"name": "computeDeadline",
|
|
1107
|
+
"type": "uint256"
|
|
1108
|
+
},
|
|
1109
|
+
{
|
|
1110
|
+
"internalType": "uint256",
|
|
1111
|
+
"name": "decryptionDeadline",
|
|
1112
|
+
"type": "uint256"
|
|
1113
|
+
}
|
|
1114
|
+
],
|
|
1115
|
+
"internalType": "struct IEnclave.E3Deadlines",
|
|
1116
|
+
"name": "deadlines",
|
|
1117
|
+
"type": "tuple"
|
|
1118
|
+
}
|
|
1119
|
+
],
|
|
1120
|
+
"stateMutability": "view",
|
|
1121
|
+
"type": "function"
|
|
1122
|
+
},
|
|
1123
|
+
{
|
|
1124
|
+
"inputs": [
|
|
1125
|
+
{
|
|
1126
|
+
"internalType": "bytes32",
|
|
1127
|
+
"name": "encryptionSchemeId",
|
|
1128
|
+
"type": "bytes32"
|
|
1129
|
+
}
|
|
1130
|
+
],
|
|
946
1131
|
"name": "getDecryptionVerifier",
|
|
947
1132
|
"outputs": [
|
|
948
1133
|
{
|
|
@@ -983,19 +1168,9 @@
|
|
|
983
1168
|
},
|
|
984
1169
|
{
|
|
985
1170
|
"internalType": "uint256[2]",
|
|
986
|
-
"name": "
|
|
1171
|
+
"name": "inputWindow",
|
|
987
1172
|
"type": "uint256[2]"
|
|
988
1173
|
},
|
|
989
|
-
{
|
|
990
|
-
"internalType": "uint256",
|
|
991
|
-
"name": "duration",
|
|
992
|
-
"type": "uint256"
|
|
993
|
-
},
|
|
994
|
-
{
|
|
995
|
-
"internalType": "uint256",
|
|
996
|
-
"name": "expiration",
|
|
997
|
-
"type": "uint256"
|
|
998
|
-
},
|
|
999
1174
|
{
|
|
1000
1175
|
"internalType": "bytes32",
|
|
1001
1176
|
"name": "encryptionSchemeId",
|
|
@@ -1061,14 +1236,9 @@
|
|
|
1061
1236
|
},
|
|
1062
1237
|
{
|
|
1063
1238
|
"internalType": "uint256[2]",
|
|
1064
|
-
"name": "
|
|
1239
|
+
"name": "inputWindow",
|
|
1065
1240
|
"type": "uint256[2]"
|
|
1066
1241
|
},
|
|
1067
|
-
{
|
|
1068
|
-
"internalType": "uint256",
|
|
1069
|
-
"name": "duration",
|
|
1070
|
-
"type": "uint256"
|
|
1071
|
-
},
|
|
1072
1242
|
{
|
|
1073
1243
|
"internalType": "contract IE3Program",
|
|
1074
1244
|
"name": "e3Program",
|
|
@@ -1106,6 +1276,98 @@
|
|
|
1106
1276
|
"stateMutability": "pure",
|
|
1107
1277
|
"type": "function"
|
|
1108
1278
|
},
|
|
1279
|
+
{
|
|
1280
|
+
"inputs": [
|
|
1281
|
+
{
|
|
1282
|
+
"internalType": "uint256",
|
|
1283
|
+
"name": "e3Id",
|
|
1284
|
+
"type": "uint256"
|
|
1285
|
+
}
|
|
1286
|
+
],
|
|
1287
|
+
"name": "getE3Stage",
|
|
1288
|
+
"outputs": [
|
|
1289
|
+
{
|
|
1290
|
+
"internalType": "enum IEnclave.E3Stage",
|
|
1291
|
+
"name": "stage",
|
|
1292
|
+
"type": "uint8"
|
|
1293
|
+
}
|
|
1294
|
+
],
|
|
1295
|
+
"stateMutability": "view",
|
|
1296
|
+
"type": "function"
|
|
1297
|
+
},
|
|
1298
|
+
{
|
|
1299
|
+
"inputs": [
|
|
1300
|
+
{
|
|
1301
|
+
"internalType": "uint256",
|
|
1302
|
+
"name": "e3Id",
|
|
1303
|
+
"type": "uint256"
|
|
1304
|
+
}
|
|
1305
|
+
],
|
|
1306
|
+
"name": "getFailureReason",
|
|
1307
|
+
"outputs": [
|
|
1308
|
+
{
|
|
1309
|
+
"internalType": "enum IEnclave.FailureReason",
|
|
1310
|
+
"name": "reason",
|
|
1311
|
+
"type": "uint8"
|
|
1312
|
+
}
|
|
1313
|
+
],
|
|
1314
|
+
"stateMutability": "view",
|
|
1315
|
+
"type": "function"
|
|
1316
|
+
},
|
|
1317
|
+
{
|
|
1318
|
+
"inputs": [
|
|
1319
|
+
{
|
|
1320
|
+
"internalType": "uint256",
|
|
1321
|
+
"name": "e3Id",
|
|
1322
|
+
"type": "uint256"
|
|
1323
|
+
}
|
|
1324
|
+
],
|
|
1325
|
+
"name": "getRequester",
|
|
1326
|
+
"outputs": [
|
|
1327
|
+
{
|
|
1328
|
+
"internalType": "address",
|
|
1329
|
+
"name": "requester",
|
|
1330
|
+
"type": "address"
|
|
1331
|
+
}
|
|
1332
|
+
],
|
|
1333
|
+
"stateMutability": "view",
|
|
1334
|
+
"type": "function"
|
|
1335
|
+
},
|
|
1336
|
+
{
|
|
1337
|
+
"inputs": [],
|
|
1338
|
+
"name": "getTimeoutConfig",
|
|
1339
|
+
"outputs": [
|
|
1340
|
+
{
|
|
1341
|
+
"components": [
|
|
1342
|
+
{
|
|
1343
|
+
"internalType": "uint256",
|
|
1344
|
+
"name": "dkgWindow",
|
|
1345
|
+
"type": "uint256"
|
|
1346
|
+
},
|
|
1347
|
+
{
|
|
1348
|
+
"internalType": "uint256",
|
|
1349
|
+
"name": "computeWindow",
|
|
1350
|
+
"type": "uint256"
|
|
1351
|
+
},
|
|
1352
|
+
{
|
|
1353
|
+
"internalType": "uint256",
|
|
1354
|
+
"name": "decryptionWindow",
|
|
1355
|
+
"type": "uint256"
|
|
1356
|
+
},
|
|
1357
|
+
{
|
|
1358
|
+
"internalType": "uint256",
|
|
1359
|
+
"name": "gracePeriod",
|
|
1360
|
+
"type": "uint256"
|
|
1361
|
+
}
|
|
1362
|
+
],
|
|
1363
|
+
"internalType": "struct IEnclave.E3TimeoutConfig",
|
|
1364
|
+
"name": "config",
|
|
1365
|
+
"type": "tuple"
|
|
1366
|
+
}
|
|
1367
|
+
],
|
|
1368
|
+
"stateMutability": "view",
|
|
1369
|
+
"type": "function"
|
|
1370
|
+
},
|
|
1109
1371
|
{
|
|
1110
1372
|
"inputs": [
|
|
1111
1373
|
{
|
|
@@ -1123,6 +1385,11 @@
|
|
|
1123
1385
|
"name": "_bondingRegistry",
|
|
1124
1386
|
"type": "address"
|
|
1125
1387
|
},
|
|
1388
|
+
{
|
|
1389
|
+
"internalType": "contract IE3RefundManager",
|
|
1390
|
+
"name": "_e3RefundManager",
|
|
1391
|
+
"type": "address"
|
|
1392
|
+
},
|
|
1126
1393
|
{
|
|
1127
1394
|
"internalType": "contract IERC20",
|
|
1128
1395
|
"name": "_feeToken",
|
|
@@ -1133,6 +1400,33 @@
|
|
|
1133
1400
|
"name": "_maxDuration",
|
|
1134
1401
|
"type": "uint256"
|
|
1135
1402
|
},
|
|
1403
|
+
{
|
|
1404
|
+
"components": [
|
|
1405
|
+
{
|
|
1406
|
+
"internalType": "uint256",
|
|
1407
|
+
"name": "dkgWindow",
|
|
1408
|
+
"type": "uint256"
|
|
1409
|
+
},
|
|
1410
|
+
{
|
|
1411
|
+
"internalType": "uint256",
|
|
1412
|
+
"name": "computeWindow",
|
|
1413
|
+
"type": "uint256"
|
|
1414
|
+
},
|
|
1415
|
+
{
|
|
1416
|
+
"internalType": "uint256",
|
|
1417
|
+
"name": "decryptionWindow",
|
|
1418
|
+
"type": "uint256"
|
|
1419
|
+
},
|
|
1420
|
+
{
|
|
1421
|
+
"internalType": "uint256",
|
|
1422
|
+
"name": "gracePeriod",
|
|
1423
|
+
"type": "uint256"
|
|
1424
|
+
}
|
|
1425
|
+
],
|
|
1426
|
+
"internalType": "struct IEnclave.E3TimeoutConfig",
|
|
1427
|
+
"name": "config",
|
|
1428
|
+
"type": "tuple"
|
|
1429
|
+
},
|
|
1136
1430
|
{
|
|
1137
1431
|
"internalType": "bytes[]",
|
|
1138
1432
|
"name": "_e3ProgramsParams",
|
|
@@ -1144,6 +1438,25 @@
|
|
|
1144
1438
|
"stateMutability": "nonpayable",
|
|
1145
1439
|
"type": "function"
|
|
1146
1440
|
},
|
|
1441
|
+
{
|
|
1442
|
+
"inputs": [
|
|
1443
|
+
{
|
|
1444
|
+
"internalType": "uint256",
|
|
1445
|
+
"name": "e3Id",
|
|
1446
|
+
"type": "uint256"
|
|
1447
|
+
}
|
|
1448
|
+
],
|
|
1449
|
+
"name": "markE3Failed",
|
|
1450
|
+
"outputs": [
|
|
1451
|
+
{
|
|
1452
|
+
"internalType": "enum IEnclave.FailureReason",
|
|
1453
|
+
"name": "reason",
|
|
1454
|
+
"type": "uint8"
|
|
1455
|
+
}
|
|
1456
|
+
],
|
|
1457
|
+
"stateMutability": "nonpayable",
|
|
1458
|
+
"type": "function"
|
|
1459
|
+
},
|
|
1147
1460
|
{
|
|
1148
1461
|
"inputs": [],
|
|
1149
1462
|
"name": "maxDuration",
|
|
@@ -1171,16 +1484,16 @@
|
|
|
1171
1484
|
"type": "function"
|
|
1172
1485
|
},
|
|
1173
1486
|
{
|
|
1174
|
-
"inputs": [
|
|
1175
|
-
"name": "owner",
|
|
1176
|
-
"outputs": [
|
|
1487
|
+
"inputs": [
|
|
1177
1488
|
{
|
|
1178
|
-
"internalType": "
|
|
1179
|
-
"name": "",
|
|
1180
|
-
"type": "
|
|
1489
|
+
"internalType": "uint256",
|
|
1490
|
+
"name": "e3Id",
|
|
1491
|
+
"type": "uint256"
|
|
1181
1492
|
}
|
|
1182
1493
|
],
|
|
1183
|
-
"
|
|
1494
|
+
"name": "onCommitteeFinalized",
|
|
1495
|
+
"outputs": [],
|
|
1496
|
+
"stateMutability": "nonpayable",
|
|
1184
1497
|
"type": "function"
|
|
1185
1498
|
},
|
|
1186
1499
|
{
|
|
@@ -1191,24 +1504,57 @@
|
|
|
1191
1504
|
"type": "uint256"
|
|
1192
1505
|
},
|
|
1193
1506
|
{
|
|
1194
|
-
"internalType": "
|
|
1195
|
-
"name": "
|
|
1196
|
-
"type": "
|
|
1507
|
+
"internalType": "bytes32",
|
|
1508
|
+
"name": "committeePublicKeyHash",
|
|
1509
|
+
"type": "bytes32"
|
|
1510
|
+
}
|
|
1511
|
+
],
|
|
1512
|
+
"name": "onCommitteePublished",
|
|
1513
|
+
"outputs": [],
|
|
1514
|
+
"stateMutability": "nonpayable",
|
|
1515
|
+
"type": "function"
|
|
1516
|
+
},
|
|
1517
|
+
{
|
|
1518
|
+
"inputs": [
|
|
1519
|
+
{
|
|
1520
|
+
"internalType": "uint256",
|
|
1521
|
+
"name": "e3Id",
|
|
1522
|
+
"type": "uint256"
|
|
1197
1523
|
},
|
|
1198
1524
|
{
|
|
1199
|
-
"internalType": "
|
|
1200
|
-
"name": "
|
|
1201
|
-
"type": "
|
|
1525
|
+
"internalType": "uint8",
|
|
1526
|
+
"name": "reason",
|
|
1527
|
+
"type": "uint8"
|
|
1202
1528
|
}
|
|
1203
1529
|
],
|
|
1204
|
-
"name": "
|
|
1530
|
+
"name": "onE3Failed",
|
|
1531
|
+
"outputs": [],
|
|
1532
|
+
"stateMutability": "nonpayable",
|
|
1533
|
+
"type": "function"
|
|
1534
|
+
},
|
|
1535
|
+
{
|
|
1536
|
+
"inputs": [],
|
|
1537
|
+
"name": "owner",
|
|
1205
1538
|
"outputs": [
|
|
1206
1539
|
{
|
|
1207
|
-
"internalType": "
|
|
1208
|
-
"name": "
|
|
1209
|
-
"type": "
|
|
1540
|
+
"internalType": "address",
|
|
1541
|
+
"name": "",
|
|
1542
|
+
"type": "address"
|
|
1210
1543
|
}
|
|
1211
1544
|
],
|
|
1545
|
+
"stateMutability": "view",
|
|
1546
|
+
"type": "function"
|
|
1547
|
+
},
|
|
1548
|
+
{
|
|
1549
|
+
"inputs": [
|
|
1550
|
+
{
|
|
1551
|
+
"internalType": "uint256",
|
|
1552
|
+
"name": "e3Id",
|
|
1553
|
+
"type": "uint256"
|
|
1554
|
+
}
|
|
1555
|
+
],
|
|
1556
|
+
"name": "processE3Failure",
|
|
1557
|
+
"outputs": [],
|
|
1212
1558
|
"stateMutability": "nonpayable",
|
|
1213
1559
|
"type": "function"
|
|
1214
1560
|
},
|
|
@@ -1221,11 +1567,16 @@
|
|
|
1221
1567
|
},
|
|
1222
1568
|
{
|
|
1223
1569
|
"internalType": "bytes",
|
|
1224
|
-
"name": "
|
|
1570
|
+
"name": "ciphertextOutput",
|
|
1571
|
+
"type": "bytes"
|
|
1572
|
+
},
|
|
1573
|
+
{
|
|
1574
|
+
"internalType": "bytes",
|
|
1575
|
+
"name": "proof",
|
|
1225
1576
|
"type": "bytes"
|
|
1226
1577
|
}
|
|
1227
1578
|
],
|
|
1228
|
-
"name": "
|
|
1579
|
+
"name": "publishCiphertextOutput",
|
|
1229
1580
|
"outputs": [
|
|
1230
1581
|
{
|
|
1231
1582
|
"internalType": "bool",
|
|
@@ -1283,14 +1634,9 @@
|
|
|
1283
1634
|
},
|
|
1284
1635
|
{
|
|
1285
1636
|
"internalType": "uint256[2]",
|
|
1286
|
-
"name": "
|
|
1637
|
+
"name": "inputWindow",
|
|
1287
1638
|
"type": "uint256[2]"
|
|
1288
1639
|
},
|
|
1289
|
-
{
|
|
1290
|
-
"internalType": "uint256",
|
|
1291
|
-
"name": "duration",
|
|
1292
|
-
"type": "uint256"
|
|
1293
|
-
},
|
|
1294
1640
|
{
|
|
1295
1641
|
"internalType": "contract IE3Program",
|
|
1296
1642
|
"name": "e3Program",
|
|
@@ -1343,19 +1689,9 @@
|
|
|
1343
1689
|
},
|
|
1344
1690
|
{
|
|
1345
1691
|
"internalType": "uint256[2]",
|
|
1346
|
-
"name": "
|
|
1692
|
+
"name": "inputWindow",
|
|
1347
1693
|
"type": "uint256[2]"
|
|
1348
1694
|
},
|
|
1349
|
-
{
|
|
1350
|
-
"internalType": "uint256",
|
|
1351
|
-
"name": "duration",
|
|
1352
|
-
"type": "uint256"
|
|
1353
|
-
},
|
|
1354
|
-
{
|
|
1355
|
-
"internalType": "uint256",
|
|
1356
|
-
"name": "expiration",
|
|
1357
|
-
"type": "uint256"
|
|
1358
|
-
},
|
|
1359
1695
|
{
|
|
1360
1696
|
"internalType": "bytes32",
|
|
1361
1697
|
"name": "encryptionSchemeId",
|
|
@@ -1419,13 +1755,7 @@
|
|
|
1419
1755
|
}
|
|
1420
1756
|
],
|
|
1421
1757
|
"name": "setBondingRegistry",
|
|
1422
|
-
"outputs": [
|
|
1423
|
-
{
|
|
1424
|
-
"internalType": "bool",
|
|
1425
|
-
"name": "success",
|
|
1426
|
-
"type": "bool"
|
|
1427
|
-
}
|
|
1428
|
-
],
|
|
1758
|
+
"outputs": [],
|
|
1429
1759
|
"stateMutability": "nonpayable",
|
|
1430
1760
|
"type": "function"
|
|
1431
1761
|
},
|
|
@@ -1438,13 +1768,7 @@
|
|
|
1438
1768
|
}
|
|
1439
1769
|
],
|
|
1440
1770
|
"name": "setCiphernodeRegistry",
|
|
1441
|
-
"outputs": [
|
|
1442
|
-
{
|
|
1443
|
-
"internalType": "bool",
|
|
1444
|
-
"name": "success",
|
|
1445
|
-
"type": "bool"
|
|
1446
|
-
}
|
|
1447
|
-
],
|
|
1771
|
+
"outputs": [],
|
|
1448
1772
|
"stateMutability": "nonpayable",
|
|
1449
1773
|
"type": "function"
|
|
1450
1774
|
},
|
|
@@ -1462,13 +1786,7 @@
|
|
|
1462
1786
|
}
|
|
1463
1787
|
],
|
|
1464
1788
|
"name": "setDecryptionVerifier",
|
|
1465
|
-
"outputs": [
|
|
1466
|
-
{
|
|
1467
|
-
"internalType": "bool",
|
|
1468
|
-
"name": "success",
|
|
1469
|
-
"type": "bool"
|
|
1470
|
-
}
|
|
1471
|
-
],
|
|
1789
|
+
"outputs": [],
|
|
1472
1790
|
"stateMutability": "nonpayable",
|
|
1473
1791
|
"type": "function"
|
|
1474
1792
|
},
|
|
@@ -1481,13 +1799,20 @@
|
|
|
1481
1799
|
}
|
|
1482
1800
|
],
|
|
1483
1801
|
"name": "setE3ProgramsParams",
|
|
1484
|
-
"outputs": [
|
|
1802
|
+
"outputs": [],
|
|
1803
|
+
"stateMutability": "nonpayable",
|
|
1804
|
+
"type": "function"
|
|
1805
|
+
},
|
|
1806
|
+
{
|
|
1807
|
+
"inputs": [
|
|
1485
1808
|
{
|
|
1486
|
-
"internalType": "
|
|
1487
|
-
"name": "
|
|
1488
|
-
"type": "
|
|
1809
|
+
"internalType": "contract IE3RefundManager",
|
|
1810
|
+
"name": "_e3RefundManager",
|
|
1811
|
+
"type": "address"
|
|
1489
1812
|
}
|
|
1490
1813
|
],
|
|
1814
|
+
"name": "setE3RefundManager",
|
|
1815
|
+
"outputs": [],
|
|
1491
1816
|
"stateMutability": "nonpayable",
|
|
1492
1817
|
"type": "function"
|
|
1493
1818
|
},
|
|
@@ -1500,13 +1825,7 @@
|
|
|
1500
1825
|
}
|
|
1501
1826
|
],
|
|
1502
1827
|
"name": "setFeeToken",
|
|
1503
|
-
"outputs": [
|
|
1504
|
-
{
|
|
1505
|
-
"internalType": "bool",
|
|
1506
|
-
"name": "success",
|
|
1507
|
-
"type": "bool"
|
|
1508
|
-
}
|
|
1509
|
-
],
|
|
1828
|
+
"outputs": [],
|
|
1510
1829
|
"stateMutability": "nonpayable",
|
|
1511
1830
|
"type": "function"
|
|
1512
1831
|
},
|
|
@@ -1519,13 +1838,42 @@
|
|
|
1519
1838
|
}
|
|
1520
1839
|
],
|
|
1521
1840
|
"name": "setMaxDuration",
|
|
1522
|
-
"outputs": [
|
|
1841
|
+
"outputs": [],
|
|
1842
|
+
"stateMutability": "nonpayable",
|
|
1843
|
+
"type": "function"
|
|
1844
|
+
},
|
|
1845
|
+
{
|
|
1846
|
+
"inputs": [
|
|
1523
1847
|
{
|
|
1524
|
-
"
|
|
1525
|
-
|
|
1526
|
-
|
|
1848
|
+
"components": [
|
|
1849
|
+
{
|
|
1850
|
+
"internalType": "uint256",
|
|
1851
|
+
"name": "dkgWindow",
|
|
1852
|
+
"type": "uint256"
|
|
1853
|
+
},
|
|
1854
|
+
{
|
|
1855
|
+
"internalType": "uint256",
|
|
1856
|
+
"name": "computeWindow",
|
|
1857
|
+
"type": "uint256"
|
|
1858
|
+
},
|
|
1859
|
+
{
|
|
1860
|
+
"internalType": "uint256",
|
|
1861
|
+
"name": "decryptionWindow",
|
|
1862
|
+
"type": "uint256"
|
|
1863
|
+
},
|
|
1864
|
+
{
|
|
1865
|
+
"internalType": "uint256",
|
|
1866
|
+
"name": "gracePeriod",
|
|
1867
|
+
"type": "uint256"
|
|
1868
|
+
}
|
|
1869
|
+
],
|
|
1870
|
+
"internalType": "struct IEnclave.E3TimeoutConfig",
|
|
1871
|
+
"name": "config",
|
|
1872
|
+
"type": "tuple"
|
|
1527
1873
|
}
|
|
1528
1874
|
],
|
|
1875
|
+
"name": "setTimeoutConfig",
|
|
1876
|
+
"outputs": [],
|
|
1529
1877
|
"stateMutability": "nonpayable",
|
|
1530
1878
|
"type": "function"
|
|
1531
1879
|
},
|
|
@@ -1543,11 +1891,11 @@
|
|
|
1543
1891
|
"type": "function"
|
|
1544
1892
|
}
|
|
1545
1893
|
],
|
|
1546
|
-
"bytecode": "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b6130b8806100d65f395ff3fe608060405234801561000f575f5ffd5b50600436106101dc575f3560e01c80638da5cb5b11610109578063cbd168721161009e578063efe0308b1161006e578063efe0308b146104af578063f2fde38b146104c2578063fad8e111146104d5578063fd2f3d01146104e8575f5ffd5b8063cbd1687214610463578063cf0f34c414610476578063d016b08d14610489578063e59e46951461049c575f5ffd5b8063b260c42a116100d9578063b260c42a14610412578063b68fd1be14610425578063c4ccafa214610438578063cb6496171461045a575f5ffd5b80638da5cb5b146103aa5780638dcdd86b146103da5780639c8570c8146103ec578063ac4e410c146103ff575f5ffd5b8063459d92941161017f5780636db5c8fd1161014f5780636db5c8fd14610371578063715018a61461037a5780637edcd7ab146103845780638581424314610397575f5ffd5b8063459d92941461030a5780634e92ec63146103385780634fc772641461034b578063647846a51461035e575f5ffd5b806315cce224116101ba57806315cce2241461026e5780634017daf014610291578063406ed35c146102bd5780634147a360146102dd575f5ffd5b80630ef81b2f146101e057806310bc6281146102255780631408d1221461024d575b5f5ffd5b6102086101ee3660046123f1565b5f908152600760205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b6102086102333660046123f1565b60076020525f90815260409020546001600160a01b031681565b61026061025b366004612408565b6104fb565b60405161021c9291906125df565b61028161027c366004612613565b610b2e565b604051901515815260200161021c565b6102a461029f3660046123f1565b610be4565b60405161021c9d9c9b9a9998979695949392919061262e565b6102d06102cb3660046123f1565b610dfd565b60405161021c91906126df565b6102fc6102eb3660046123f1565b60096020525f908152604090205481565b60405190815260200161021c565b6102816103183660046127a2565b805160208183018101805160088252928201919093012091525460ff1681565b6102816103463660046123f1565b61111d565b610281610359366004612613565b6111b1565b600254610208906001600160a01b031681565b6102fc60035481565b610382611255565b005b610281610392366004612819565b611268565b600154610208906001600160a01b031681565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610208565b5f54610208906001600160a01b031681565b6102816103fa366004612819565b611429565b6102fc61040d366004612408565b6115cc565b6102816104203660046123f1565b6115d6565b610281610433366004612943565b611745565b610281610446366004612613565b60056020525f908152604090205460ff1681565b6102fc60045481565b610281610471366004612975565b6117ef565b6102816104843660046123f1565b6118b0565b6102816104973660046129a3565b6118f2565b6102816104aa366004612613565b6119c9565b6103826104bd3660046129eb565b611a72565b6103826104d0366004612613565b611bf3565b6102816104e3366004612613565b611c30565b6102816104f6366004612613565b611cdb565b5f610504612263565b5f61050e846115cc565b905061051d6020850185612aa2565b63ffffffff166105336040860160208701612aa2565b63ffffffff161015801561055857505f6105506020860186612aa2565b63ffffffff16115b849061058157604051633744092160e21b81526004016105789190612aeb565b60405180910390fd5b50604084013560608501351080159061059e575042606085013510155b6105bb576040516308594fb760e01b815260040160405180910390fd5b5f84608001351180156105d45750600354846080013511155b8460800135906105fa576040516313b783af60e21b815260040161057891815260200190565b5060055f61060e60c0870160a08801612613565b6001600160a01b0316815260208101919091526040015f205460ff1661063a60c0860160a08701612613565b906106645760405163295a6a6f60e11b81526001600160a01b039091166004820152602401610578565b5060048054935083905f61067783612b0d565b90915550506040805144602080830191909152818301869052825180830384018152606090920183528151910120808452815180830183529091869060029083908390808284375f92019190915250505060208401524360408085019190915280518082018252908681019060029083908390808284375f920182905250606087019390935250506080808701359085015260a0808501919091526107229060c08701908701612613565b6001600160a01b031660e084015261073d60c0860186612b25565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050506101008085019190915261078690860186612b25565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506101208801949094525050506101608401819052610180840181905260408051602081019091528181526101a0850152336101c08501526107fc60c0870160a08801612613565b6001600160a01b031663fefd9a8b868461081960c08b018b612b25565b61082660e08d018d612b25565b6108346101008f018f612b25565b6040518963ffffffff1660e01b8152600401610857989796959493929190612b90565b6020604051808303815f875af1158015610873573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108979190612be6565b5f818152600760205260409020549091506001600160a01b031681816108d3576040516381c4951960e01b815260040161057891815260200190565b5060c085018290526001600160a01b0381166101408601525f868152600660209081526040909120865181559086015186919061091690600183019060026122f6565b5060408201518160020155606082015181600301906002610938929190612391565b506080820151600582015560a0820151600682015560c0820151600782015560e08201516008820180546001600160a01b0319166001600160a01b0390921691909117905561010082015160098201906109929082612c7b565b50610120820151600a8201906109a89082612c7b565b50610140820151600b820180546001600160a01b0319166001600160a01b03909216919091179055610160820151600c820155610180820151600d8201556101a0820151600e8201906109fb9082612c7b565b506101c09190910151600f90910180546001600160a01b0319166001600160a01b039283161790555f878152600960205260409020859055600254610a439116333087611d85565b5f5460405163291a691b60e01b81526001600160a01b039091169063291a691b90610a7690899087908c90600401612d36565b6020604051808303815f875af1158015610a92573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab69190612d51565b610ad357604051630d8dbe2560e01b815260040160405180910390fd5b610ae360c0880160a08901612613565b6001600160a01b03167f4ecb0221c454f0d5b8f84e30e1140e22464fe24db107d56ce81dadfaa1549a838787604051610b1d9291906125df565b60405180910390a250505050915091565b5f610b37611dfa565b6001600160a01b03821615801590610b5d57506002546001600160a01b03838116911614155b8290610b885760405163eddf07f560e01b81526001600160a01b039091166004820152602401610578565b5050600280546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f722ff84c1234b2482061def5c82c6b5080c117b3cbb69d686844a051e4b8e7f3906020015b60405180910390a1919050565b600660208190525f91825260409091208054600282015460058301549383015460078401546008850154600986018054959794969495939492936001600160a01b039092169291610c3490612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6090612bfd565b8015610cab5780601f10610c8257610100808354040283529160200191610cab565b820191905f5260205f20905b815481529060010190602001808311610c8e57829003601f168201915b50505050509080600a018054610cc090612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610cec90612bfd565b8015610d375780601f10610d0e57610100808354040283529160200191610d37565b820191905f5260205f20905b815481529060010190602001808311610d1a57829003601f168201915b505050600b840154600c850154600d860154600e8701805496976001600160a01b039094169692955090935090610d6d90612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9990612bfd565b8015610de45780601f10610dbb57610100808354040283529160200191610de4565b820191905f5260205f20905b815481529060010190602001808311610dc757829003601f168201915b505050600f90930154919250506001600160a01b03168d565b610e05612263565b5f82815260066020908152604080832081516101e0810183528154815282518084019384905290949193850192909160018501916002918390855b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610e4057505050928452505050600282810154602083015260408051808201808352919093019291600385019182845b815481526020019060010190808311610ea657505050918352505060058201546020820152600682015460408201526007820154606082015260088201546001600160a01b0316608082015260098201805460a090920191610f0790612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610f3390612bfd565b8015610f7e5780601f10610f5557610100808354040283529160200191610f7e565b820191905f5260205f20905b815481529060010190602001808311610f6157829003601f168201915b50505050508152602001600a82018054610f9790612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610fc390612bfd565b801561100e5780601f10610fe55761010080835404028352916020019161100e565b820191905f5260205f20905b815481529060010190602001808311610ff157829003601f168201915b5050509183525050600b8201546001600160a01b03166020820152600c8201546040820152600d8201546060820152600e8201805460809092019161105290612bfd565b80601f016020809104026020016040519081016040528092919081815260200182805461107e90612bfd565b80156110c95780601f106110a0576101008083540402835291602001916110c9565b820191905f5260205f20905b8154815290600101906020018083116110ac57829003601f168201915b5050509183525050600f91909101546001600160a01b0390811660209092019190915260e08201519192508391166111175760405163cd6f4a4f60e01b815260040161057891815260200190565b50919050565b5f611126611dfa565b5f8281526007602052604090205482906001600160a01b031661115f576040516381c4951960e01b815260040161057891815260200190565b50505f818152600760205260409081902080546001600160a01b0319169055516001907f104eb329a192aef26eddea07c2af5ad2587792e62b37ed4045b6ba59bc5540fc90610bd79084815260200190565b5f6111ba611dfa565b6001600160a01b0382165f90815260056020526040902054829060ff16611200576040516321ac7c5f60e01b81526001600160a01b039091166004820152602401610578565b50506001600160a01b0381165f81815260056020908152604091829020805460ff1916905590519182526001917f56070b80bd617fcd2f7a284861edb488830a38f9dedcd77b2cb2f4eac17743e79101610bd7565b61125d611dfa565b6112665f611e55565b565b5f5f61127387610dfd565b90505f8160a0015111879061129e5760405163166b4d0360e01b815260040161057891815260200190565b5061018081015187906112c75760405163032c20ef60e21b815260040161057891815260200190565b506101a0810151518790156112f2576040516360ec327960e01b815260040161057891815260200190565b505f878152600660205260409020600e0161130e868883612d70565b508061014001516001600160a01b0316632f0e1bbf888888604051611334929190612e2a565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168252611377929189908990600401612e39565b602060405180830381865afa158015611392573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113b69190612d51565b91508585836113da57604051632f9f8ab960e01b8152600401610578929190612e62565b50506113e587611ec5565b867f02a24c3402076671e129905ba4579d884b1f94ded1c07fc03d26d11b60bca1698787604051611417929190612e62565b60405180910390a25095945050505050565b5f5f61143487610dfd565b90505f8160a0015111879061145f5760405163166b4d0360e01b815260040161057891815260200190565b5060a0810151879042811115611491576040516370c05fb960e11b815260048101929092526024820152604401610578565b50506101808101518790156114bc57604051637eb9cea960e11b815260040161057891815260200190565b505f86866040516114ce929190612e2a565b604080519182900382205f8b8152600660205291909120600d0181905560e0840151632f0e1bbf60e01b83529092506001600160a01b031690632f0e1bbf90611521908b9085908a908a90600401612e39565b6020604051808303815f875af115801561153d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115619190612d51565b925086868461158557604051632f9f8ab960e01b8152600401610578929190612e62565b5050877f7cc27e4a5626cbc4f8ba1a927b0448de55e6a114bc87660331270c5109ade07188886040516115b9929190612e62565b60405180910390a2505095945050505050565b620f424080611117565b5f5f6115e183610dfd565b90508060a001515f14839061160c57604051633e26347b60e21b815260040161057891815260200190565b506060810151514210156116335760405163a0750b5160e01b815260040160405180910390fd5b60608101516020015142111561165c57604051633d82a7cd60e11b815260040160405180910390fd5b5f8054604051630e82f3b760e41b8152600481018690526001600160a01b039091169063e82f3b7090602401602060405180830381865afa1580156116a3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116c79190612be6565b90505f8260800151426116da9190612e75565b5f86815260066020818152604092839020918201849055600c90910185905581518881529081018390529081018490529091507f38d3b0e32ac79e8b5ba6e95ad66f2ff3ef525893ba853ac583cd0a7c14d09e8c9060600160405180910390a1506001949350505050565b5f61174e611dfa565b81515f5b818110156117ad576001600885838151811061177057611770612a76565b60200260200101516040516117859190612e88565b908152604051908190036020019020805491151560ff19909216919091179055600101611752565b50600191507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81836040516117e19190612e9e565b60405180910390a150919050565b5f6117f8611dfa565b6001600160a01b0382161580159061182957505f838152600760205260409020546001600160a01b03838116911614155b839061184b576040516381c4951960e01b815260040161057891815260200190565b50505f8281526007602090815260409182902080546001600160a01b0319166001600160a01b03851617905590518381526001917ff4041a3f914dac3bc9bf5f003ba41f28dbb84abe42f4e07c76266f5c8ceecb69910160405180910390a192915050565b5f6118b9611dfa565b5060038190556040518181526001907fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b52355290602001610bd7565b5f5f6118fd85610dfd565b90505f8160a001511185906119285760405163166b4d0360e01b815260040161057891815260200190565b5060a081015185904281116119595760405163142c294360e31b815260048101929092526024820152604401610578565b50508060e001516001600160a01b031663d927910e863387876040518563ffffffff1660e01b81526004016119919493929190612f01565b5f604051808303815f87803b1580156119a8575f5ffd5b505af11580156119ba573d5f5f3e3d5ffd5b50600198975050505050505050565b5f6119d2611dfa565b6001600160a01b038216158015906119f857506001546001600160a01b03838116911614155b8290611a23576040516320252f0b60e01b81526001600160a01b039091166004820152602401610578565b5050600180546001600160a01b0319166001600160a01b03831690811782556040519081527fad4055f18cdad6f4bdd71afe3a72cbeee964217943e1bde38f138289e981a9a790602001610bd7565b5f611a7b612171565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f81158015611aa75750825b90505f8267ffffffffffffffff166001148015611ac35750303b155b905081158015611ad1575080155b15611aef5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611b2357845468ff00000000000000001916680100000000000000001785555b611b2c3361219b565b611b35876118b0565b50611b3f8a611c30565b50611b49896119c9565b50611b5388610b2e565b50611b5d86611745565b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b038c8116911614611b9b57611b9b8b611bf3565b8315611be657845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b611bfb611dfa565b6001600160a01b038116611c2457604051631e4fbdf760e01b81525f6004820152602401610578565b611c2d81611e55565b50565b5f611c39611dfa565b6001600160a01b03821615801590611c5e57505f546001600160a01b03838116911614155b8290611c89576040516375ac4eb760e11b81526001600160a01b039091166004820152602401610578565b50505f80546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b690602001610bd7565b5f611ce4611dfa565b6001600160a01b0382165f90815260056020526040902054829060ff1615611d2b5760405163b29d459560e01b81526001600160a01b039091166004820152602401610578565b50506001600160a01b0381165f81815260056020908152604091829020805460ff19166001908117909155915192835290917fb8d368517268f297fff00825d67d098763117d061360d31027be5b2e1a59d4679101610bd7565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b179052611df49085906121ac565b50505050565b33611e2c7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146112665760405163118cdaa760e01b8152336004820152602401610578565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f8054604051630a01649360e41b8152600481018490526001600160a01b039091169063a0164930906024015f60405180830381865afa158015611f0b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611f329190810190612f29565b80519091505f8167ffffffffffffffff811115611f5157611f516126f1565b604051908082528060200260200182016040528015611f7a578160200160208202803683370190505b505f8581526009602052604081205491925090611f98908490612fb9565b90505f5b83811015611fca5781838281518110611fb757611fb7612a76565b6020908102919091010152600101611f9c565b505f858152600960205260408082208054929055600254600154915163095ea7b360e01b81526001600160a01b0392831660048201526024810184905291169063095ea7b3906044016020604051808303815f875af115801561202f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120539190612d51565b50600154600254604051636ec640c760e11b81526001600160a01b039283169263dd8c818e9261208c929116908990889060040161304b565b5f604051808303815f87803b1580156120a3575f5ffd5b505af11580156120b5573d5f5f3e3d5ffd5b505060025460015460405163095ea7b360e01b81526001600160a01b0391821660048201525f60248201529116925063095ea7b391506044016020604051808303815f875af115801561210a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061212e9190612d51565b50857fac9fe8ad7f55eac03284399116ecafc104f10459773f4cdf47063c46e5be335a868560405161216192919061307e565b60405180910390a2505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b6121a3612218565b611c2d8161223d565b5f5f60205f8451602086015f885af1806121cb576040513d5f823e3d81fd5b50505f513d915081156121e25780600114156121ef565b6001600160a01b0384163b155b15611df457604051635274afe760e01b81526001600160a01b0385166004820152602401610578565b612220612245565b61126657604051631afcd79f60e31b815260040160405180910390fd5b611bfb612218565b5f61224e612171565b5468010000000000000000900460ff16919050565b604051806101e001604052805f815260200161227d6123bf565b81526020015f81526020016122906123bf565b81526020015f81526020015f81526020015f81526020015f6001600160a01b0316815260200160608152602001606081526020015f6001600160a01b031681526020015f81526020015f8152602001606081526020015f6001600160a01b031681525090565b600183019183908215612381579160200282015f5b8382111561234f57835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261230b565b801561237f5782816101000a81549063ffffffff021916905560040160208160030104928301926001030261234f565b505b5061238d9291506123dd565b5090565b8260028101928215612381579160200282015b828111156123815782518255916020019190600101906123a4565b60405180604001604052806002906020820280368337509192915050565b5b8082111561238d575f81556001016123de565b5f60208284031215612401575f5ffd5b5035919050565b5f60208284031215612418575f5ffd5b813567ffffffffffffffff81111561242e575f5ffd5b82016101208185031215612440575f5ffd5b9392505050565b805f5b6002811015611df457815163ffffffff1684526020938401939091019060010161244a565b805f5b6002811015611df4578151845260209384019390910190600101612472565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b805182525f60208201516124d66020850182612447565b506040820151606084015260608201516124f3608085018261246f565b50608082015160c084015260a082015160e084015260c082015161010084015260e082015161252e6101208501826001600160a01b03169052565b5061010082015161022061014085015261254c610220850182612491565b90506101208301518482036101608601526125678282612491565b9150506101408301516125866101808601826001600160a01b03169052565b506101608301516101a08501526101808301516101c08501526101a08301518482036101e08601526125b88282612491565b9150506101c08301516125d76102008601826001600160a01b03169052565b509392505050565b828152604060208201525f6125f760408301846124bf565b949350505050565b6001600160a01b0381168114611c2d575f5ffd5b5f60208284031215612623575f5ffd5b8135612440816125ff565b8d81528c60208201528b60408201528a60608201528960808201526001600160a01b03891660a08201526101a060c08201525f61266f6101a083018a612491565b82810360e0840152612681818a612491565b6001600160a01b038916610100850152905086610120840152856101408401528281036101608401526126b48186612491565b9150506126cd6101808301846001600160a01b03169052565b9e9d5050505050505050505050505050565b602081525f61244060208301846124bf565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561272e5761272e6126f1565b604052919050565b5f82601f830112612745575f5ffd5b813567ffffffffffffffff81111561275f5761275f6126f1565b612772601f8201601f1916602001612705565b818152846020838601011115612786575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156127b2575f5ffd5b813567ffffffffffffffff8111156127c8575f5ffd5b6125f784828501612736565b5f5f83601f8401126127e4575f5ffd5b50813567ffffffffffffffff8111156127fb575f5ffd5b602083019150836020828501011115612812575f5ffd5b9250929050565b5f5f5f5f5f6060868803121561282d575f5ffd5b85359450602086013567ffffffffffffffff81111561284a575f5ffd5b612856888289016127d4565b909550935050604086013567ffffffffffffffff811115612875575f5ffd5b612881888289016127d4565b969995985093965092949392505050565b5f67ffffffffffffffff8211156128ab576128ab6126f1565b5060051b60200190565b5f82601f8301126128c4575f5ffd5b81356128d76128d282612892565b612705565b8082825260208201915060208360051b8601019250858311156128f8575f5ffd5b602085015b8381101561293957803567ffffffffffffffff81111561291b575f5ffd5b61292a886020838a0101612736565b845250602092830192016128fd565b5095945050505050565b5f60208284031215612953575f5ffd5b813567ffffffffffffffff811115612969575f5ffd5b6125f7848285016128b5565b5f5f60408385031215612986575f5ffd5b823591506020830135612998816125ff565b809150509250929050565b5f5f5f604084860312156129b5575f5ffd5b83359250602084013567ffffffffffffffff8111156129d2575f5ffd5b6129de868287016127d4565b9497909650939450505050565b5f5f5f5f5f5f60c08789031215612a00575f5ffd5b8635612a0b816125ff565b95506020870135612a1b816125ff565b94506040870135612a2b816125ff565b93506060870135612a3b816125ff565b92506080870135915060a087013567ffffffffffffffff811115612a5d575f5ffd5b612a6989828a016128b5565b9150509295509295509295565b634e487b7160e01b5f52603260045260245ffd5b803563ffffffff81168114612a9d575f5ffd5b919050565b5f60208284031215612ab2575f5ffd5b61244082612a8a565b805f5b6002811015611df45763ffffffff612ad583612a8a565b1684526020938401939190910190600101612abe565b604081016121958284612abb565b634e487b7160e01b5f52601160045260245ffd5b5f60018201612b1e57612b1e612af9565b5060010190565b5f5f8335601e19843603018112612b3a575f5ffd5b83018035915067ffffffffffffffff821115612b54575f5ffd5b602001915036819003821315612812575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b88815287602082015260a060408201525f612baf60a08301888a612b68565b8281036060840152612bc2818789612b68565b90508281036080840152612bd7818587612b68565b9b9a5050505050505050505050565b5f60208284031215612bf6575f5ffd5b5051919050565b600181811c90821680612c1157607f821691505b60208210810361111757634e487b7160e01b5f52602260045260245ffd5b601f821115612c7657805f5260205f20601f840160051c81016020851015612c545750805b601f840160051c820191505b81811015612c73575f8155600101612c60565b50505b505050565b815167ffffffffffffffff811115612c9557612c956126f1565b612ca981612ca38454612bfd565b84612c2f565b6020601f821160018114612cdb575f8315612cc45750848201515b5f19600385901b1c1916600184901b178455612c73565b5f84815260208120601f198516915b82811015612d0a5787850151825560209485019460019092019101612cea565b5084821015612d2757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b83815260208101839052608081016125f76040830184612abb565b5f60208284031215612d61575f5ffd5b81518015158114612440575f5ffd5b67ffffffffffffffff831115612d8857612d886126f1565b612d9c83612d968354612bfd565b83612c2f565b5f601f841160018114612dcd575f8515612db65750838201355b5f19600387901b1c1916600186901b178355612c73565b5f83815260208120601f198716915b82811015612dfc5786850135825560209485019460019092019101612ddc565b5086821015612e18575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b818382375f9101908152919050565b848152836020820152606060408201525f612e58606083018486612b68565b9695505050505050565b602081525f6125f7602083018486612b68565b8082018082111561219557612195612af9565b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612ef557603f19878603018452612ee0858351612491565b94506020938401939190910190600101612ec4565b50929695505050505050565b8481526001600160a01b0384166020820152606060408201525f612e58606083018486612b68565b5f60208284031215612f39575f5ffd5b815167ffffffffffffffff811115612f4f575f5ffd5b8201601f81018413612f5f575f5ffd5b8051612f6d6128d282612892565b8082825260208201915060208360051b850101925086831115612f8e575f5ffd5b6020840193505b82841015612e58578351612fa8816125ff565b825260209384019390910190612f95565b5f82612fd357634e487b7160e01b5f52601260045260245ffd5b500490565b5f8151808452602084019350602083015f5b828110156130115781516001600160a01b0316865260209586019590910190600101612fea565b5093949350505050565b5f8151808452602084019350602083015f5b8281101561301157815186526020958601959091019060010161302d565b6001600160a01b0384168152606060208201525f61306c6060830185612fd8565b8281036040840152612e58818561301b565b604081525f6130906040830185612fd8565b82810360208401526130a2818561301b565b9594505050505056fea164736f6c634300081c000a",
|
|
1547
|
-
"deployedBytecode": "0x608060405234801561000f575f5ffd5b50600436106101dc575f3560e01c80638da5cb5b11610109578063cbd168721161009e578063efe0308b1161006e578063efe0308b146104af578063f2fde38b146104c2578063fad8e111146104d5578063fd2f3d01146104e8575f5ffd5b8063cbd1687214610463578063cf0f34c414610476578063d016b08d14610489578063e59e46951461049c575f5ffd5b8063b260c42a116100d9578063b260c42a14610412578063b68fd1be14610425578063c4ccafa214610438578063cb6496171461045a575f5ffd5b80638da5cb5b146103aa5780638dcdd86b146103da5780639c8570c8146103ec578063ac4e410c146103ff575f5ffd5b8063459d92941161017f5780636db5c8fd1161014f5780636db5c8fd14610371578063715018a61461037a5780637edcd7ab146103845780638581424314610397575f5ffd5b8063459d92941461030a5780634e92ec63146103385780634fc772641461034b578063647846a51461035e575f5ffd5b806315cce224116101ba57806315cce2241461026e5780634017daf014610291578063406ed35c146102bd5780634147a360146102dd575f5ffd5b80630ef81b2f146101e057806310bc6281146102255780631408d1221461024d575b5f5ffd5b6102086101ee3660046123f1565b5f908152600760205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020015b60405180910390f35b6102086102333660046123f1565b60076020525f90815260409020546001600160a01b031681565b61026061025b366004612408565b6104fb565b60405161021c9291906125df565b61028161027c366004612613565b610b2e565b604051901515815260200161021c565b6102a461029f3660046123f1565b610be4565b60405161021c9d9c9b9a9998979695949392919061262e565b6102d06102cb3660046123f1565b610dfd565b60405161021c91906126df565b6102fc6102eb3660046123f1565b60096020525f908152604090205481565b60405190815260200161021c565b6102816103183660046127a2565b805160208183018101805160088252928201919093012091525460ff1681565b6102816103463660046123f1565b61111d565b610281610359366004612613565b6111b1565b600254610208906001600160a01b031681565b6102fc60035481565b610382611255565b005b610281610392366004612819565b611268565b600154610208906001600160a01b031681565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610208565b5f54610208906001600160a01b031681565b6102816103fa366004612819565b611429565b6102fc61040d366004612408565b6115cc565b6102816104203660046123f1565b6115d6565b610281610433366004612943565b611745565b610281610446366004612613565b60056020525f908152604090205460ff1681565b6102fc60045481565b610281610471366004612975565b6117ef565b6102816104843660046123f1565b6118b0565b6102816104973660046129a3565b6118f2565b6102816104aa366004612613565b6119c9565b6103826104bd3660046129eb565b611a72565b6103826104d0366004612613565b611bf3565b6102816104e3366004612613565b611c30565b6102816104f6366004612613565b611cdb565b5f610504612263565b5f61050e846115cc565b905061051d6020850185612aa2565b63ffffffff166105336040860160208701612aa2565b63ffffffff161015801561055857505f6105506020860186612aa2565b63ffffffff16115b849061058157604051633744092160e21b81526004016105789190612aeb565b60405180910390fd5b50604084013560608501351080159061059e575042606085013510155b6105bb576040516308594fb760e01b815260040160405180910390fd5b5f84608001351180156105d45750600354846080013511155b8460800135906105fa576040516313b783af60e21b815260040161057891815260200190565b5060055f61060e60c0870160a08801612613565b6001600160a01b0316815260208101919091526040015f205460ff1661063a60c0860160a08701612613565b906106645760405163295a6a6f60e11b81526001600160a01b039091166004820152602401610578565b5060048054935083905f61067783612b0d565b90915550506040805144602080830191909152818301869052825180830384018152606090920183528151910120808452815180830183529091869060029083908390808284375f92019190915250505060208401524360408085019190915280518082018252908681019060029083908390808284375f920182905250606087019390935250506080808701359085015260a0808501919091526107229060c08701908701612613565b6001600160a01b031660e084015261073d60c0860186612b25565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505050506101008085019190915261078690860186612b25565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506101208801949094525050506101608401819052610180840181905260408051602081019091528181526101a0850152336101c08501526107fc60c0870160a08801612613565b6001600160a01b031663fefd9a8b868461081960c08b018b612b25565b61082660e08d018d612b25565b6108346101008f018f612b25565b6040518963ffffffff1660e01b8152600401610857989796959493929190612b90565b6020604051808303815f875af1158015610873573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108979190612be6565b5f818152600760205260409020549091506001600160a01b031681816108d3576040516381c4951960e01b815260040161057891815260200190565b5060c085018290526001600160a01b0381166101408601525f868152600660209081526040909120865181559086015186919061091690600183019060026122f6565b5060408201518160020155606082015181600301906002610938929190612391565b506080820151600582015560a0820151600682015560c0820151600782015560e08201516008820180546001600160a01b0319166001600160a01b0390921691909117905561010082015160098201906109929082612c7b565b50610120820151600a8201906109a89082612c7b565b50610140820151600b820180546001600160a01b0319166001600160a01b03909216919091179055610160820151600c820155610180820151600d8201556101a0820151600e8201906109fb9082612c7b565b506101c09190910151600f90910180546001600160a01b0319166001600160a01b039283161790555f878152600960205260409020859055600254610a439116333087611d85565b5f5460405163291a691b60e01b81526001600160a01b039091169063291a691b90610a7690899087908c90600401612d36565b6020604051808303815f875af1158015610a92573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab69190612d51565b610ad357604051630d8dbe2560e01b815260040160405180910390fd5b610ae360c0880160a08901612613565b6001600160a01b03167f4ecb0221c454f0d5b8f84e30e1140e22464fe24db107d56ce81dadfaa1549a838787604051610b1d9291906125df565b60405180910390a250505050915091565b5f610b37611dfa565b6001600160a01b03821615801590610b5d57506002546001600160a01b03838116911614155b8290610b885760405163eddf07f560e01b81526001600160a01b039091166004820152602401610578565b5050600280546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f722ff84c1234b2482061def5c82c6b5080c117b3cbb69d686844a051e4b8e7f3906020015b60405180910390a1919050565b600660208190525f91825260409091208054600282015460058301549383015460078401546008850154600986018054959794969495939492936001600160a01b039092169291610c3490612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6090612bfd565b8015610cab5780601f10610c8257610100808354040283529160200191610cab565b820191905f5260205f20905b815481529060010190602001808311610c8e57829003601f168201915b50505050509080600a018054610cc090612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610cec90612bfd565b8015610d375780601f10610d0e57610100808354040283529160200191610d37565b820191905f5260205f20905b815481529060010190602001808311610d1a57829003601f168201915b505050600b840154600c850154600d860154600e8701805496976001600160a01b039094169692955090935090610d6d90612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610d9990612bfd565b8015610de45780601f10610dbb57610100808354040283529160200191610de4565b820191905f5260205f20905b815481529060010190602001808311610dc757829003601f168201915b505050600f90930154919250506001600160a01b03168d565b610e05612263565b5f82815260066020908152604080832081516101e0810183528154815282518084019384905290949193850192909160018501916002918390855b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610e4057505050928452505050600282810154602083015260408051808201808352919093019291600385019182845b815481526020019060010190808311610ea657505050918352505060058201546020820152600682015460408201526007820154606082015260088201546001600160a01b0316608082015260098201805460a090920191610f0790612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610f3390612bfd565b8015610f7e5780601f10610f5557610100808354040283529160200191610f7e565b820191905f5260205f20905b815481529060010190602001808311610f6157829003601f168201915b50505050508152602001600a82018054610f9790612bfd565b80601f0160208091040260200160405190810160405280929190818152602001828054610fc390612bfd565b801561100e5780601f10610fe55761010080835404028352916020019161100e565b820191905f5260205f20905b815481529060010190602001808311610ff157829003601f168201915b5050509183525050600b8201546001600160a01b03166020820152600c8201546040820152600d8201546060820152600e8201805460809092019161105290612bfd565b80601f016020809104026020016040519081016040528092919081815260200182805461107e90612bfd565b80156110c95780601f106110a0576101008083540402835291602001916110c9565b820191905f5260205f20905b8154815290600101906020018083116110ac57829003601f168201915b5050509183525050600f91909101546001600160a01b0390811660209092019190915260e08201519192508391166111175760405163cd6f4a4f60e01b815260040161057891815260200190565b50919050565b5f611126611dfa565b5f8281526007602052604090205482906001600160a01b031661115f576040516381c4951960e01b815260040161057891815260200190565b50505f818152600760205260409081902080546001600160a01b0319169055516001907f104eb329a192aef26eddea07c2af5ad2587792e62b37ed4045b6ba59bc5540fc90610bd79084815260200190565b5f6111ba611dfa565b6001600160a01b0382165f90815260056020526040902054829060ff16611200576040516321ac7c5f60e01b81526001600160a01b039091166004820152602401610578565b50506001600160a01b0381165f81815260056020908152604091829020805460ff1916905590519182526001917f56070b80bd617fcd2f7a284861edb488830a38f9dedcd77b2cb2f4eac17743e79101610bd7565b61125d611dfa565b6112665f611e55565b565b5f5f61127387610dfd565b90505f8160a0015111879061129e5760405163166b4d0360e01b815260040161057891815260200190565b5061018081015187906112c75760405163032c20ef60e21b815260040161057891815260200190565b506101a0810151518790156112f2576040516360ec327960e01b815260040161057891815260200190565b505f878152600660205260409020600e0161130e868883612d70565b508061014001516001600160a01b0316632f0e1bbf888888604051611334929190612e2a565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168252611377929189908990600401612e39565b602060405180830381865afa158015611392573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113b69190612d51565b91508585836113da57604051632f9f8ab960e01b8152600401610578929190612e62565b50506113e587611ec5565b867f02a24c3402076671e129905ba4579d884b1f94ded1c07fc03d26d11b60bca1698787604051611417929190612e62565b60405180910390a25095945050505050565b5f5f61143487610dfd565b90505f8160a0015111879061145f5760405163166b4d0360e01b815260040161057891815260200190565b5060a0810151879042811115611491576040516370c05fb960e11b815260048101929092526024820152604401610578565b50506101808101518790156114bc57604051637eb9cea960e11b815260040161057891815260200190565b505f86866040516114ce929190612e2a565b604080519182900382205f8b8152600660205291909120600d0181905560e0840151632f0e1bbf60e01b83529092506001600160a01b031690632f0e1bbf90611521908b9085908a908a90600401612e39565b6020604051808303815f875af115801561153d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115619190612d51565b925086868461158557604051632f9f8ab960e01b8152600401610578929190612e62565b5050877f7cc27e4a5626cbc4f8ba1a927b0448de55e6a114bc87660331270c5109ade07188886040516115b9929190612e62565b60405180910390a2505095945050505050565b620f424080611117565b5f5f6115e183610dfd565b90508060a001515f14839061160c57604051633e26347b60e21b815260040161057891815260200190565b506060810151514210156116335760405163a0750b5160e01b815260040160405180910390fd5b60608101516020015142111561165c57604051633d82a7cd60e11b815260040160405180910390fd5b5f8054604051630e82f3b760e41b8152600481018690526001600160a01b039091169063e82f3b7090602401602060405180830381865afa1580156116a3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116c79190612be6565b90505f8260800151426116da9190612e75565b5f86815260066020818152604092839020918201849055600c90910185905581518881529081018390529081018490529091507f38d3b0e32ac79e8b5ba6e95ad66f2ff3ef525893ba853ac583cd0a7c14d09e8c9060600160405180910390a1506001949350505050565b5f61174e611dfa565b81515f5b818110156117ad576001600885838151811061177057611770612a76565b60200260200101516040516117859190612e88565b908152604051908190036020019020805491151560ff19909216919091179055600101611752565b50600191507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81836040516117e19190612e9e565b60405180910390a150919050565b5f6117f8611dfa565b6001600160a01b0382161580159061182957505f838152600760205260409020546001600160a01b03838116911614155b839061184b576040516381c4951960e01b815260040161057891815260200190565b50505f8281526007602090815260409182902080546001600160a01b0319166001600160a01b03851617905590518381526001917ff4041a3f914dac3bc9bf5f003ba41f28dbb84abe42f4e07c76266f5c8ceecb69910160405180910390a192915050565b5f6118b9611dfa565b5060038190556040518181526001907fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b52355290602001610bd7565b5f5f6118fd85610dfd565b90505f8160a001511185906119285760405163166b4d0360e01b815260040161057891815260200190565b5060a081015185904281116119595760405163142c294360e31b815260048101929092526024820152604401610578565b50508060e001516001600160a01b031663d927910e863387876040518563ffffffff1660e01b81526004016119919493929190612f01565b5f604051808303815f87803b1580156119a8575f5ffd5b505af11580156119ba573d5f5f3e3d5ffd5b50600198975050505050505050565b5f6119d2611dfa565b6001600160a01b038216158015906119f857506001546001600160a01b03838116911614155b8290611a23576040516320252f0b60e01b81526001600160a01b039091166004820152602401610578565b5050600180546001600160a01b0319166001600160a01b03831690811782556040519081527fad4055f18cdad6f4bdd71afe3a72cbeee964217943e1bde38f138289e981a9a790602001610bd7565b5f611a7b612171565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f81158015611aa75750825b90505f8267ffffffffffffffff166001148015611ac35750303b155b905081158015611ad1575080155b15611aef5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315611b2357845468ff00000000000000001916680100000000000000001785555b611b2c3361219b565b611b35876118b0565b50611b3f8a611c30565b50611b49896119c9565b50611b5388610b2e565b50611b5d86611745565b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b038c8116911614611b9b57611b9b8b611bf3565b8315611be657845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050565b611bfb611dfa565b6001600160a01b038116611c2457604051631e4fbdf760e01b81525f6004820152602401610578565b611c2d81611e55565b50565b5f611c39611dfa565b6001600160a01b03821615801590611c5e57505f546001600160a01b03838116911614155b8290611c89576040516375ac4eb760e11b81526001600160a01b039091166004820152602401610578565b50505f80546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b690602001610bd7565b5f611ce4611dfa565b6001600160a01b0382165f90815260056020526040902054829060ff1615611d2b5760405163b29d459560e01b81526001600160a01b039091166004820152602401610578565b50506001600160a01b0381165f81815260056020908152604091829020805460ff19166001908117909155915192835290917fb8d368517268f297fff00825d67d098763117d061360d31027be5b2e1a59d4679101610bd7565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff166323b872dd60e01b179052611df49085906121ac565b50505050565b33611e2c7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b0316146112665760405163118cdaa760e01b8152336004820152602401610578565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f8054604051630a01649360e41b8152600481018490526001600160a01b039091169063a0164930906024015f60405180830381865afa158015611f0b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611f329190810190612f29565b80519091505f8167ffffffffffffffff811115611f5157611f516126f1565b604051908082528060200260200182016040528015611f7a578160200160208202803683370190505b505f8581526009602052604081205491925090611f98908490612fb9565b90505f5b83811015611fca5781838281518110611fb757611fb7612a76565b6020908102919091010152600101611f9c565b505f858152600960205260408082208054929055600254600154915163095ea7b360e01b81526001600160a01b0392831660048201526024810184905291169063095ea7b3906044016020604051808303815f875af115801561202f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120539190612d51565b50600154600254604051636ec640c760e11b81526001600160a01b039283169263dd8c818e9261208c929116908990889060040161304b565b5f604051808303815f87803b1580156120a3575f5ffd5b505af11580156120b5573d5f5f3e3d5ffd5b505060025460015460405163095ea7b360e01b81526001600160a01b0391821660048201525f60248201529116925063095ea7b391506044016020604051808303815f875af115801561210a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061212e9190612d51565b50857fac9fe8ad7f55eac03284399116ecafc104f10459773f4cdf47063c46e5be335a868560405161216192919061307e565b60405180910390a2505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b6121a3612218565b611c2d8161223d565b5f5f60205f8451602086015f885af1806121cb576040513d5f823e3d81fd5b50505f513d915081156121e25780600114156121ef565b6001600160a01b0384163b155b15611df457604051635274afe760e01b81526001600160a01b0385166004820152602401610578565b612220612245565b61126657604051631afcd79f60e31b815260040160405180910390fd5b611bfb612218565b5f61224e612171565b5468010000000000000000900460ff16919050565b604051806101e001604052805f815260200161227d6123bf565b81526020015f81526020016122906123bf565b81526020015f81526020015f81526020015f81526020015f6001600160a01b0316815260200160608152602001606081526020015f6001600160a01b031681526020015f81526020015f8152602001606081526020015f6001600160a01b031681525090565b600183019183908215612381579160200282015f5b8382111561234f57835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261230b565b801561237f5782816101000a81549063ffffffff021916905560040160208160030104928301926001030261234f565b505b5061238d9291506123dd565b5090565b8260028101928215612381579160200282015b828111156123815782518255916020019190600101906123a4565b60405180604001604052806002906020820280368337509192915050565b5b8082111561238d575f81556001016123de565b5f60208284031215612401575f5ffd5b5035919050565b5f60208284031215612418575f5ffd5b813567ffffffffffffffff81111561242e575f5ffd5b82016101208185031215612440575f5ffd5b9392505050565b805f5b6002811015611df457815163ffffffff1684526020938401939091019060010161244a565b805f5b6002811015611df4578151845260209384019390910190600101612472565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b805182525f60208201516124d66020850182612447565b506040820151606084015260608201516124f3608085018261246f565b50608082015160c084015260a082015160e084015260c082015161010084015260e082015161252e6101208501826001600160a01b03169052565b5061010082015161022061014085015261254c610220850182612491565b90506101208301518482036101608601526125678282612491565b9150506101408301516125866101808601826001600160a01b03169052565b506101608301516101a08501526101808301516101c08501526101a08301518482036101e08601526125b88282612491565b9150506101c08301516125d76102008601826001600160a01b03169052565b509392505050565b828152604060208201525f6125f760408301846124bf565b949350505050565b6001600160a01b0381168114611c2d575f5ffd5b5f60208284031215612623575f5ffd5b8135612440816125ff565b8d81528c60208201528b60408201528a60608201528960808201526001600160a01b03891660a08201526101a060c08201525f61266f6101a083018a612491565b82810360e0840152612681818a612491565b6001600160a01b038916610100850152905086610120840152856101408401528281036101608401526126b48186612491565b9150506126cd6101808301846001600160a01b03169052565b9e9d5050505050505050505050505050565b602081525f61244060208301846124bf565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561272e5761272e6126f1565b604052919050565b5f82601f830112612745575f5ffd5b813567ffffffffffffffff81111561275f5761275f6126f1565b612772601f8201601f1916602001612705565b818152846020838601011115612786575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156127b2575f5ffd5b813567ffffffffffffffff8111156127c8575f5ffd5b6125f784828501612736565b5f5f83601f8401126127e4575f5ffd5b50813567ffffffffffffffff8111156127fb575f5ffd5b602083019150836020828501011115612812575f5ffd5b9250929050565b5f5f5f5f5f6060868803121561282d575f5ffd5b85359450602086013567ffffffffffffffff81111561284a575f5ffd5b612856888289016127d4565b909550935050604086013567ffffffffffffffff811115612875575f5ffd5b612881888289016127d4565b969995985093965092949392505050565b5f67ffffffffffffffff8211156128ab576128ab6126f1565b5060051b60200190565b5f82601f8301126128c4575f5ffd5b81356128d76128d282612892565b612705565b8082825260208201915060208360051b8601019250858311156128f8575f5ffd5b602085015b8381101561293957803567ffffffffffffffff81111561291b575f5ffd5b61292a886020838a0101612736565b845250602092830192016128fd565b5095945050505050565b5f60208284031215612953575f5ffd5b813567ffffffffffffffff811115612969575f5ffd5b6125f7848285016128b5565b5f5f60408385031215612986575f5ffd5b823591506020830135612998816125ff565b809150509250929050565b5f5f5f604084860312156129b5575f5ffd5b83359250602084013567ffffffffffffffff8111156129d2575f5ffd5b6129de868287016127d4565b9497909650939450505050565b5f5f5f5f5f5f60c08789031215612a00575f5ffd5b8635612a0b816125ff565b95506020870135612a1b816125ff565b94506040870135612a2b816125ff565b93506060870135612a3b816125ff565b92506080870135915060a087013567ffffffffffffffff811115612a5d575f5ffd5b612a6989828a016128b5565b9150509295509295509295565b634e487b7160e01b5f52603260045260245ffd5b803563ffffffff81168114612a9d575f5ffd5b919050565b5f60208284031215612ab2575f5ffd5b61244082612a8a565b805f5b6002811015611df45763ffffffff612ad583612a8a565b1684526020938401939190910190600101612abe565b604081016121958284612abb565b634e487b7160e01b5f52601160045260245ffd5b5f60018201612b1e57612b1e612af9565b5060010190565b5f5f8335601e19843603018112612b3a575f5ffd5b83018035915067ffffffffffffffff821115612b54575f5ffd5b602001915036819003821315612812575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b88815287602082015260a060408201525f612baf60a08301888a612b68565b8281036060840152612bc2818789612b68565b90508281036080840152612bd7818587612b68565b9b9a5050505050505050505050565b5f60208284031215612bf6575f5ffd5b5051919050565b600181811c90821680612c1157607f821691505b60208210810361111757634e487b7160e01b5f52602260045260245ffd5b601f821115612c7657805f5260205f20601f840160051c81016020851015612c545750805b601f840160051c820191505b81811015612c73575f8155600101612c60565b50505b505050565b815167ffffffffffffffff811115612c9557612c956126f1565b612ca981612ca38454612bfd565b84612c2f565b6020601f821160018114612cdb575f8315612cc45750848201515b5f19600385901b1c1916600184901b178455612c73565b5f84815260208120601f198516915b82811015612d0a5787850151825560209485019460019092019101612cea565b5084821015612d2757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b83815260208101839052608081016125f76040830184612abb565b5f60208284031215612d61575f5ffd5b81518015158114612440575f5ffd5b67ffffffffffffffff831115612d8857612d886126f1565b612d9c83612d968354612bfd565b83612c2f565b5f601f841160018114612dcd575f8515612db65750838201355b5f19600387901b1c1916600186901b178355612c73565b5f83815260208120601f198716915b82811015612dfc5786850135825560209485019460019092019101612ddc565b5086821015612e18575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b818382375f9101908152919050565b848152836020820152606060408201525f612e58606083018486612b68565b9695505050505050565b602081525f6125f7602083018486612b68565b8082018082111561219557612195612af9565b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612ef557603f19878603018452612ee0858351612491565b94506020938401939190910190600101612ec4565b50929695505050505050565b8481526001600160a01b0384166020820152606060408201525f612e58606083018486612b68565b5f60208284031215612f39575f5ffd5b815167ffffffffffffffff811115612f4f575f5ffd5b8201601f81018413612f5f575f5ffd5b8051612f6d6128d282612892565b8082825260208201915060208360051b850101925086831115612f8e575f5ffd5b6020840193505b82841015612e58578351612fa8816125ff565b825260209384019390910190612f95565b5f82612fd357634e487b7160e01b5f52601260045260245ffd5b500490565b5f8151808452602084019350602083015f5b828110156130115781516001600160a01b0316865260209586019590910190600101612fea565b5093949350505050565b5f8151808452602084019350602083015f5b8281101561301157815186526020958601959091019060010161302d565b6001600160a01b0384168152606060208201525f61306c6060830185612fd8565b8281036040840152612e58818561301b565b604081525f6130906040830185612fd8565b82810360208401526130a2818561301b565b9594505050505056fea164736f6c634300081c000a",
|
|
1894
|
+
"bytecode": "0x6080604052348015600e575f5ffd5b5060156019565b60c9565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff161560685760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b039081161460c65780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b613f05806100d65f395ff3fe608060405234801561000f575f5ffd5b5060043610610260575f3560e01c80638da5cb5b1161014b578063cb649617116100bf578063f0691cba11610084578063f0691cba14610657578063f2fde38b1461066a578063f81b8ef61461067d578063fad8e11114610690578063fd2f3d01146106a3578063ff72aa51146106b6575f5ffd5b8063cb649617146105e6578063cbd16872146105ef578063cf0f34c414610602578063cfbdc98d14610615578063e59e469514610644575f5ffd5b8063929a8faf11610110578063929a8faf1461054257806399c6679d146105635780639c8570c81461058b578063b68fd1be1461059e578063bb2d1b82146105b1578063c4ccafa2146105c4575f5ffd5b80638da5cb5b146104a55780638dcdd86b146104ad57806390173a41146104bf5780639117173c146104fa578063923123861461050d575f5ffd5b8063459d9294116101e25780636db5c8fd116101a75780636db5c8fd14610448578063715018a6146104515780637cfa9d74146104595780637edcd7ab1461046c57806381476ec21461047f5780638581424314610492575f5ffd5b8063459d9294146103be5780634e92ec63146103fc5780634fc772641461040f578063647846a51461042257806369c5b34714610435575f5ffd5b806336c5d38a1161022857806336c5d38a146103135780634017daf014610342578063406ed35c1461036c5780634147a3601461038c57806341739f12146103ab575f5ffd5b806302a3a9c9146102645780630ef81b2f1461027957806310bc6281146102b757806315cce224146102df578063205cd34c146102f2575b5f5ffd5b610277610272366004613108565b6106d7565b005b6102a1610287366004613123565b5f908152600860205260409020546001600160a01b031690565b6040516102ae919061313a565b60405180910390f35b6102a16102c5366004613123565b60086020525f90815260409020546001600160a01b031681565b6102776102ed366004613108565b610783565b61030561030036600461314e565b610828565b6040519081526020016102ae565b610335610321366004613123565b5f908152600d602052604090205460ff1690565b6040516102ae91906131ad565b610355610350366004613123565b610834565b6040516102ae9b9a999897969594939291906131e9565b61037f61037a366004613123565b610a3e565b6040516102ae91906133c8565b61030561039a366004613123565b600a6020525f908152604090205481565b6102776103b93660046133ea565b610d44565b6103ec6103cc3660046134b3565b805160208183018101805160098252928201919093012091525460ff1681565b60405190151581526020016102ae565b61027761040a366004613123565b610d58565b61027761041d366004613108565b610de7565b6003546102a1906001600160a01b031681565b61027761044336600461359b565b610e7a565b61030560045481565b610277610fe0565b610277610467366004613123565b610ff3565b6103ec61047a366004613688565b6110f1565b61027761048d3660046136ff565b611312565b6001546102a1906001600160a01b031681565b6102a1611402565b5f546102a1906001600160a01b031681565b6104c7611430565b6040516102ae91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b610277610508366004613123565b611484565b61052061051b366004613123565b61161c565b60408051825181526020808401519082015291810151908201526060016102ae565b610555610550366004613123565b611675565b6040516102ae92919061371f565b6102a1610571366004613123565b5f908152600e60205260409020546001600160a01b031690565b6103ec610599366004613688565b61169c565b6102776105ac366004613735565b6118cf565b6102776105bf366004613766565b611972565b6103ec6105d2366004613108565b60066020525f908152604090205460ff1681565b61030560055481565b6102776105fd366004613799565b611a18565b610277610610366004613123565b611acb565b610637610623366004613123565b5f908152600b602052604090205460ff1690565b6040516102ae91906137cc565b610277610652366004613108565b611b08565b6002546102a1906001600160a01b031681565b610277610678366004613108565b611ba2565b61033561068b366004613123565b611bdc565b61027761069e366004613108565b611d6c565b6102776106b1366004613108565b611e04565b6106c96106c436600461314e565b611e9b565b6040516102ae9291906137da565b6106df612548565b6001600160a01b03811661073a5760405162461bcd60e51b815260206004820152601f60248201527f496e76616c6964204533526566756e644d616e6167657220616464726573730060448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f9557d04c1c0b16f93f13b69aed23b3b6ab935bff3c53ac81d17896d3583542ed905f90a250565b61078b612548565b6001600160a01b038116158015906107b157506003546001600160a01b03828116911614155b81906107d15760405163eddf07f560e01b8152600401610731919061313a565b50600380546001600160a01b0319166001600160a01b0383161790556040517f722ff84c1234b2482061def5c82c6b5080c117b3cbb69d686844a051e4b8e7f39061081d90839061313a565b60405180910390a150565b620f4240805b50919050565b600760208190525f9182526040909120805460028201546005830154600684015494840180549395929491936001600160a01b0390931692610875906137f2565b80601f01602080910402602001604051908101604052809291908181526020018280546108a1906137f2565b80156108ec5780601f106108c3576101008083540402835291602001916108ec565b820191905f5260205f20905b8154815290600101906020018083116108cf57829003601f168201915b505050505090806008018054610901906137f2565b80601f016020809104026020016040519081016040528092919081815260200182805461092d906137f2565b80156109785780601f1061094f57610100808354040283529160200191610978565b820191905f5260205f20905b81548152906001019060200180831161095b57829003601f168201915b5050506009840154600a850154600b860154600c8701805496976001600160a01b0390941696929550909350906109ae906137f2565b80601f01602080910402602001604051908101604052809291908181526020018280546109da906137f2565b8015610a255780601f106109fc57610100808354040283529160200191610a25565b820191905f5260205f20905b815481529060010190602001808311610a0857829003601f168201915b505050600d90930154919250506001600160a01b03168b565b610a46612f72565b5f82815260076020908152604080832081516101a0810183528154815282518084019384905290949193850192909160018501916002918390855b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610a8157505050928452505050600282810154602083015260408051808201808352919093019291600385019182845b815481526020019060010190808311610ae75750505091835250506005820154602082015260068201546001600160a01b03166040820152600782018054606090920191610b34906137f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610b60906137f2565b8015610bab5780601f10610b8257610100808354040283529160200191610bab565b820191905f5260205f20905b815481529060010190602001808311610b8e57829003601f168201915b50505050508152602001600882018054610bc4906137f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf0906137f2565b8015610c3b5780601f10610c1257610100808354040283529160200191610c3b565b820191905f5260205f20905b815481529060010190602001808311610c1e57829003601f168201915b505050918352505060098201546001600160a01b03166020820152600a8201546040820152600b8201546060820152600c82018054608090920191610c7f906137f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610cab906137f2565b8015610cf65780601f10610ccd57610100808354040283529160200191610cf6565b820191905f5260205f20905b815481529060010190602001808311610cd957829003601f168201915b5050509183525050600d91909101546001600160a01b0390811660209092019190915260a082015191925083911661082e5760405163cd6f4a4f60e01b815260040161073191815260200190565b610d4c612548565b610d558161257a565b50565b610d60612548565b5f8181526008602052604090205481906001600160a01b0316610d99576040516381c4951960e01b815260040161073191815260200190565b505f818152600860205260409081902080546001600160a01b0319169055517f104eb329a192aef26eddea07c2af5ad2587792e62b37ed4045b6ba59bc5540fc9061081d9083815260200190565b610def612548565b6001600160a01b0381165f90815260066020526040902054819060ff16610e2a576040516321ac7c5f60e01b8152600401610731919061313a565b506001600160a01b0381165f9081526006602052604090819020805460ff19169055517f56070b80bd617fcd2f7a284861edb488830a38f9dedcd77b2cb2f4eac17743e79061081d90839061313a565b5f610e83612707565b805490915060ff600160401b82041615906001600160401b03165f81158015610ea95750825b90505f826001600160401b03166001148015610ec45750303b155b905081158015610ed2575080155b15610ef05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f1a57845460ff60401b1916600160401b1785555b610f2333612731565b610f2c88611acb565b610f358c611d6c565b610f3e8b611b08565b610f478a6106d7565b610f5089610783565b610f598761257a565b610f62866118cf565b610f6a611402565b6001600160a01b03168d6001600160a01b031614610f8b57610f8b8d611ba2565b8315610fd157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050505050565b610fe8612548565b610ff15f612742565b565b5f546001600160a01b0316331461101c5760405162461bcd60e51b815260040161073190613824565b5f818152600b602052604090205460ff16600181600681111561104157611041613185565b1461106657816001826040516337e1404160e01b815260040161073193929190613855565b5f828152600b60205260409020805460ff19166002179055600f5461108b904261388a565b5f838152600c602052604080822092909255905183917fc44405af9078047712501f519e1fb900c2896c62b488336f84529c72ae16e6f191a2815f516020613ed95f395f51905f52600160026040516110e592919061389d565b60405180910390a25050565b5f5f6110fc87610a3e565b5f888152600b602052604090205490915060ff16600481600681111561112457611124613185565b148860048390919261114c576040516337e1404160e01b815260040161073193929190613855565b5050505f888152600c602090815260409182902082516060810184528154815260018201549281019290925260020154918101829052908990428110156111af576040516308f3034360e31b815260048101929092526024820152604401610731565b50505f898152600760205260409020600c016111cc888a83613917565b508261010001516001600160a01b0316632f0e1bbf8a8a8a6040516111f29291906139cb565b6040519081900381206001600160e01b031960e085901b16825261121d92918b908b90600401613a02565b602060405180830381865afa158015611238573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125c9190613a2b565b935087878561128057604051632f9f8ab960e01b8152600401610731929190613a4a565b50505f898152600b60205260409020805460ff191660051790556112a3896127b2565b887f02a24c3402076671e129905ba4579d884b1f94ded1c07fc03d26d11b60bca16989896040516112d5929190613a4a565b60405180910390a2885f516020613ed95f395f51905f52600460056040516112fe92919061389d565b60405180910390a250505095945050505050565b5f546001600160a01b0316331461133b5760405162461bcd60e51b815260040161073190613824565b5f828152600b602052604090205460ff16600281600681111561136057611360613185565b1461138557826002826040516337e1404160e01b815260040161073193929190613855565b5f838152600b60209081526040808320805460ff191660031790556007909152808220600a018490555184917f11df18edb9bc9cd90a79068e0e208b630202148643d797d6150e7bacb733e63c91a2825f516020613ed95f395f51905f52600260036040516113f592919061389d565b60405180910390a2505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b61145760405180608001604052805f81526020015f81526020015f81526020015f81525090565b5060408051608081018252600f548152601054602082015260115491810191909152601254606082015290565b5f818152600b602052604090205460ff1660068160068111156114a9576114a9613185565b146114e65760405162461bcd60e51b815260206004820152600d60248201526c114cc81b9bdd0819985a5b1959609a1b6044820152606401610731565b5f828152600a6020526040902054806115385760405162461bcd60e51b8152602060048201526014602482015273139bc81c185e5b595b9d081d1bc81c99599d5b9960621b6044820152606401610731565b5f838152600a6020526040812081905561155184612a5f565b600254600354919250611571916001600160a01b03908116911684612b54565b6002546040516345ac612360e11b81526001600160a01b0390911690638b58c246906115a590879086908690600401613aa0565b5f604051808303815f87803b1580156115bc575f5ffd5b505af11580156115ce573d5f5f3e3d5ffd5b50505050837f5297818f48a66292b8b3e2caab83eec531b669bb20807fd38cf006adb2a0731783835160405161160e929190918252602082015260400190565b60405180910390a250505050565b61163d60405180606001604052805f81526020015f81526020015f81525090565b505f908152600c6020908152604091829020825160608101845281548152600182015492810192909252600201549181019190915290565b5f818152600b6020526040812054819060ff166116928482612bb1565b9250925050915091565b5f5f6116a787610a3e565b5f888152600c60209081526040918290208251606081018452815481526001820154928101839052600290910154928101929092529192509088904281101561170c576040516308f3034360e31b815260048101929092526024820152604401610731565b50506060820151602001518890428111156117435760405163017e35e560e71b815260048101929092526024820152604401610731565b505061014082015188901561176e57604051637eb9cea960e11b815260040161073191815260200190565b505f87876040516117809291906139cb565b604080519182900382205f8c8152600760205291909120600b0181905560a0850151632f0e1bbf60e01b83529092506001600160a01b031690632f0e1bbf906117d3908c9085908b908b90600401613a02565b6020604051808303815f875af11580156117ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118139190613a2b565b935087878561183757604051632f9f8ab960e01b8152600401610731929190613a4a565b50505f898152600b60205260409020805460ff1916600417905560115461185e904261388a565b5f8a8152600c602052604090819020600201919091555189907f7cc27e4a5626cbc4f8ba1a927b0448de55e6a114bc87660331270c5109ade071906118a6908b908b90613a4a565b60405180910390a2885f516020613ed95f395f51905f52600360046040516112fe92919061389d565b6118d7612548565b80515f5b8181101561193657600160098483815181106118f9576118f9613ac7565b602002602001015160405161190e9190613adb565b908152604051908190036020019020805491151560ff199092169190911790556001016118db565b507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81826040516119669190613af1565b60405180910390a15050565b5f546001600160a01b0316331461199b5760405162461bcd60e51b815260040161073190613824565b5f8160ff161180156119b15750600c8160ff1611155b6119f65760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103330b4b63ab932903932b0b9b7b760511b6044820152606401610731565b611a14828260ff16600c811115611a0f57611a0f613185565b612d39565b5050565b611a20612548565b6001600160a01b03811615801590611a5157505f828152600860205260409020546001600160a01b03828116911614155b8290611a73576040516381c4951960e01b815260040161073191815260200190565b505f8281526008602090815260409182902080546001600160a01b0319166001600160a01b03851617905590518381527ff4041a3f914dac3bc9bf5f003ba41f28dbb84abe42f4e07c76266f5c8ceecb699101611966565b611ad3612548565b60048190556040518181527fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b5235529060200161081d565b611b10612548565b6001600160a01b03811615801590611b3657506001546001600160a01b03828116911614155b8190611b56576040516320252f0b60e01b8152600401610731919061313a565b50600180546001600160a01b0319166001600160a01b0383161790556040517fad4055f18cdad6f4bdd71afe3a72cbeee964217943e1bde38f138289e981a9a79061081d90839061313a565b611baa612548565b6001600160a01b038116611bd3575f604051631e4fbdf760e01b8152600401610731919061313a565b610d5581612742565b5f818152600b602052604081205460ff1681816006811115611c0057611c00613185565b03611c2557826001826040516337e1404160e01b815260040161073193929190613855565b6005816006811115611c3957611c39613185565b03611c5a5760405163462c7bed60e01b815260048101849052602401610731565b6006816006811115611c6e57611c6e613185565b03611c8f57604051633de16e3560e11b815260048101849052602401610731565b5f611c9a8483612bb1565b9350905080611cbf57604051639f65d93560e01b815260048101859052602401610731565b5f848152600b60209081526040808320805460ff19908116600617909155600d9092529091208054859216600183600c811115611cfe57611cfe613185565b0217905550835f516020613ed95f395f51905f52836006604051611d2392919061389d565b60405180910390a2837fe20209be7caae6e76291267cfa711353981274bf127e94f16eb9ec44b68582bb8385604051611d5d929190613b54565b60405180910390a25050919050565b611d74612548565b6001600160a01b03811615801590611d9957505f546001600160a01b03828116911614155b8190611db9576040516375ac4eb760e11b8152600401610731919061313a565b505f80546001600160a01b0319166001600160a01b0383161790556040517f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b69061081d90839061313a565b611e0c612548565b6001600160a01b0381165f90815260066020526040902054819060ff1615611e485760405163b29d459560e01b8152600401610731919061313a565b506001600160a01b0381165f9081526006602052604090819020805460ff19166001179055517fb8d368517268f297fff00825d67d098763117d061360d31027be5b2e1a59d4679061081d90839061313a565b5f611ea4612f72565b611eb16020840184613b87565b63ffffffff16611ec76040850160208601613b87565b63ffffffff1610158015611eec57505f611ee46020850185613b87565b63ffffffff16115b8390611f0c57604051633744092160e21b81526004016107319190613bd0565b50604083013542811015611f3657604051630b99e87960e01b815260040161073191815260200190565b5060608301356040840135811015611f645760405163174b5a0760e21b815260040161073191815260200190565b506011546010545f9190611f7c426060880135613bde565b611f86919061388a565b611f90919061388a565b905060045481108190611fb9576040516313b783af60e21b815260040161073191815260200190565b5060065f611fcd60a0870160808801613108565b6001600160a01b0316815260208101919091526040015f205460ff16611ff960a0860160808701613108565b906120185760405163295a6a6f60e11b8152600401610731919061313a565b505f61202385610828565b60058054955090915084905f61203883613bf1565b90915550506040805144602080830191909152818301879052825180830384018152606090920183528151910120808552815180830183529091879060029083908390808284375f92019190915250505060208501524360408086019190915280518082018252908781019060029083908390808284375f92019190915250505060608501526120ce60a0870160808801613108565b6001600160a01b031660a0808601919091526120ec90870187613c09565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050505060c085015261213160e0870187613c09565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060e0890194909452505050610120850181905261014085018190526040805160208101909152818152610160860152336101808601526121a660a0880160808901613108565b6001600160a01b031663fefd9a8b87846121c360a08c018c613c09565b6121d060c08e018e613c09565b8e8060e001906121e09190613c09565b6040518963ffffffff1660e01b8152600401612203989796959493929190613c4b565b6020604051808303815f875af115801561221f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122439190613ca1565b5f818152600860205260409020549091506001600160a01b0316818161227f576040516381c4951960e01b815260040161073191815260200190565b50608086018290526001600160a01b0381166101008701525f87815260076020908152604090912087518155908701518791906122c29060018301906002612ff9565b50604082015181600201556060820151816003019060026122e4929190613094565b506080820151600582015560a08201516006820180546001600160a01b0319166001600160a01b0390921691909117905560c082015160078201906123299082613cb8565b5060e0820151600882019061233e9082613cb8565b506101008201516009820180546001600160a01b0319166001600160a01b03909216919091179055610120820151600a820155610140820151600b820155610160820151600c8201906123919082613cb8565b506101809190910151600d90910180546001600160a01b0319166001600160a01b039283161790555f888152600a602052604090208590556003546123d99116333087612e8a565b5f5460405163291a691b60e01b81526001600160a01b039091169063291a691b9061240c908a9087908d90600401613d6d565b6020604051808303815f875af1158015612428573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061244c9190613a2b565b61246957604051630d8dbe2560e01b815260040160405180910390fd5b5f878152600b60209081526040808320805460ff19166001179055600e82529091208054336001600160a01b03199091161790556010546060880151909101516124b3919061388a565b5f888152600c60205260409020600101556124d460a0890160808a01613108565b6001600160a01b03167fe009e1827a616eb52d6aa3823303e01f235985c9da7b43cbcc95f54b0338785d888860405161250e9291906137da565b60405180910390a2865f516020613ed95f395f51905f525f600160405161253692919061389d565b60405180910390a25050505050915091565b33612551611402565b6001600160a01b031614610ff1573360405163118cdaa760e01b8152600401610731919061313a565b80356125bd5760405162461bcd60e51b8152602060048201526012602482015271496e76616c696420444b472077696e646f7760701b6044820152606401610731565b5f8160200135116126095760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420636f6d707574652077696e646f7760501b6044820152606401610731565b5f8160400135116126585760405162461bcd60e51b8152602060048201526019602482015278496e76616c69642064656372797074696f6e2077696e646f7760381b6044820152606401610731565b5f8160600135116126a25760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a590819dc9858d9481c195c9a5bd960621b6044820152606401610731565b8035600f819055602080830135601081905560408085013560118190556060808701356012819055835196875294860193909352908401528201527f78e25a99f479f23adb3b0ac527204b39c8f57afa01a2595ad3b9b605bf0be22e9060800161081d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b612739612ec9565b610d5581612eee565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f8054604051630a01649360e41b8152600481018490526001600160a01b039091169063a0164930906024015f60405180830381865afa1580156127f8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261281f9190810190613d88565b80519091505f816001600160401b0381111561283d5761283d613404565b604051908082528060200260200182016040528015612866578160200160208202803683370190505b505f858152600a602052604081205491925090612884908490613e17565b90505f5b838110156128b657818382815181106128a3576128a3613ac7565b6020908102919091010152600101612888565b505f858152600a60205260408082208054929055600354600154915163095ea7b360e01b81526001600160a01b039182169263095ea7b3926128ff929116908590600401613e36565b6020604051808303815f875af115801561291b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061293f9190613a2b565b50600154600354604051636ec640c760e11b81526001600160a01b039283169263dd8c818e926129789291169089908890600401613e7f565b5f604051808303815f87803b15801561298f575f5ffd5b505af11580156129a1573d5f5f3e3d5ffd5b505060035460015460405163095ea7b360e01b81526001600160a01b03928316945063095ea7b393506129dc92909116905f90600401613e36565b6020604051808303815f875af11580156129f8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a1c9190613a2b565b50857fac9fe8ad7f55eac03284399116ecafc104f10459773f4cdf47063c46e5be335a8685604051612a4f929190613eb4565b60405180910390a2505050505050565b5f818152600d602052604090205460609060ff16600181600c811115612a8757612a87613185565b1480612aa45750600281600c811115612aa257612aa2613185565b145b15612adc575f5b604051908082528060200260200182016040528015612ad4578160200160208202803683370190505b509392505050565b5f54604051630a01649360e41b8152600481018590526001600160a01b039091169063a0164930906024015f60405180830381865afa925050508015612b4357506040513d5f823e601f3d908101601f19168201604052612b409190810190613d88565b60015b612b4d575f612aab565b9392505050565b612bac83846001600160a01b031663a9059cbb8585604051602401612b7a929190613e36565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612ef6565b505050565b5f828152600c60209081526040808320815160608101835281548152600182015493810193909352600201548282015282549051632800d82960e01b81526004810186905283929183916001600160a01b0390911690632800d82990602401602060405180830381865afa158015612c2b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c4f9190613ca1565b90506001856006811115612c6557612c65613185565b148015612c7157508042115b15612c8457600180935093505050612d32565b6002856006811115612c9857612c98613185565b148015612ca55750815142115b15612cb95760016003935093505050612d32565b6003856006811115612ccd57612ccd613185565b148015612cdd5750816020015142115b15612cf15760016006935093505050612d32565b6004856006811115612d0557612d05613185565b148015612d155750816040015142115b15612d29576001600a935093505050612d32565b5f5f9350935050505b9250929050565b5f828152600b602052604081205460ff1690816006811115612d5d57612d5d613185565b03612d8257826001826040516337e1404160e01b815260040161073193929190613855565b6005816006811115612d9657612d96613185565b03612db75760405163462c7bed60e01b815260048101849052602401610731565b6006816006811115612dcb57612dcb613185565b03612dec57604051633de16e3560e11b815260048101849052602401610731565b5f838152600b60209081526040808320805460ff19908116600617909155600d9092529091208054849216600183600c811115612e2b57612e2b613185565b0217905550825f516020613ed95f395f51905f52826006604051612e5092919061389d565b60405180910390a2827fe20209be7caae6e76291267cfa711353981274bf127e94f16eb9ec44b68582bb82846040516113f5929190613b54565b6040516001600160a01b038481166024830152838116604483015260648201839052612ec39186918216906323b872dd90608401612b7a565b50505050565b612ed1612f59565b610ff157604051631afcd79f60e31b815260040160405180910390fd5b611baa612ec9565b5f5f60205f8451602086015f885af180612f15576040513d5f823e3d81fd5b50505f513d91508115612f2c578060011415612f39565b6001600160a01b0384163b155b15612ec35783604051635274afe760e01b8152600401610731919061313a565b5f612f62612707565b54600160401b900460ff16919050565b604051806101a001604052805f8152602001612f8c6130c2565b81526020015f8152602001612f9f6130c2565b81526020015f81526020015f6001600160a01b0316815260200160608152602001606081526020015f6001600160a01b031681526020015f81526020015f8152602001606081526020015f6001600160a01b031681525090565b600183019183908215613084579160200282015f5b8382111561305257835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261300e565b80156130825782816101000a81549063ffffffff0219169055600401602081600301049283019260010302613052565b505b506130909291506130e0565b5090565b8260028101928215613084579160200282015b828111156130845782518255916020019190600101906130a7565b60405180604001604052806002906020820280368337509192915050565b5b80821115613090575f81556001016130e1565b6001600160a01b0381168114610d55575f5ffd5b5f60208284031215613118575f5ffd5b8135612b4d816130f4565b5f60208284031215613133575f5ffd5b5035919050565b6001600160a01b0391909116815260200190565b5f6020828403121561315e575f5ffd5b81356001600160401b03811115613173575f5ffd5b82016101008185031215612b4d575f5ffd5b634e487b7160e01b5f52602160045260245ffd5b600d81106131a9576131a9613185565b9052565b6020810161272b8284613199565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b8b81528a602082015289604082015260018060a01b038916606082015261016060808201525f61321d61016083018a6131bb565b82810360a084015261322f818a6131bb565b6001600160a01b03891660c085015260e084018890526101008401879052838103610120850152905061326281866131bb565b91505060018060a01b0383166101408301529c9b505050505050505050505050565b805f5b6002811015612ec357815163ffffffff16845260209384019390910190600101613287565b805f5b6002811015612ec35781518452602093840193909101906001016132af565b805182525f60208201516132e56020850182613284565b5060408201516060840152606082015161330260808501826132ac565b50608082015160c084015260a08201516001600160a01b03811660e08501525060c08201516101e061010085015261333e6101e08501826131bb565b905060e083015184820361012086015261335882826131bb565b9150506101008301516133776101408601826001600160a01b03169052565b506101208301516101608501526101408301516101808501526101608301518482036101a08601526133a982826131bb565b915050610180830151612ad46101c08601826001600160a01b03169052565b602081525f612b4d60208301846132ce565b5f6080828403121561082e575f5ffd5b5f608082840312156133fa575f5ffd5b612b4d83836133da565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561344057613440613404565b604052919050565b5f82601f830112613457575f5ffd5b81356001600160401b0381111561347057613470613404565b613483601f8201601f1916602001613418565b818152846020838601011115613497575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156134c3575f5ffd5b81356001600160401b038111156134d8575f5ffd5b6134e484828501613448565b949350505050565b5f6001600160401b0382111561350457613504613404565b5060051b60200190565b5f82601f83011261351d575f5ffd5b813561353061352b826134ec565b613418565b8082825260208201915060208360051b860101925085831115613551575f5ffd5b602085015b838110156135915780356001600160401b03811115613573575f5ffd5b613582886020838a0101613448565b84525060209283019201613556565b5095945050505050565b5f5f5f5f5f5f5f5f610160898b0312156135b3575f5ffd5b88356135be816130f4565b975060208901356135ce816130f4565b965060408901356135de816130f4565b955060608901356135ee816130f4565b945060808901356135fe816130f4565b935060a089013592506136148a60c08b016133da565b91506101408901356001600160401b0381111561362f575f5ffd5b61363b8b828c0161350e565b9150509295985092959890939650565b5f5f83601f84011261365b575f5ffd5b5081356001600160401b03811115613671575f5ffd5b602083019150836020828501011115612d32575f5ffd5b5f5f5f5f5f6060868803121561369c575f5ffd5b8535945060208601356001600160401b038111156136b8575f5ffd5b6136c48882890161364b565b90955093505060408601356001600160401b038111156136e2575f5ffd5b6136ee8882890161364b565b969995985093965092949392505050565b5f5f60408385031215613710575f5ffd5b50508035926020909101359150565b821515815260408101612b4d6020830184613199565b5f60208284031215613745575f5ffd5b81356001600160401b0381111561375a575f5ffd5b6134e48482850161350e565b5f5f60408385031215613777575f5ffd5b82359150602083013560ff8116811461378e575f5ffd5b809150509250929050565b5f5f604083850312156137aa575f5ffd5b82359150602083013561378e816130f4565b600781106131a9576131a9613185565b6020810161272b82846137bc565b828152604060208201525f6134e460408301846132ce565b600181811c9082168061380657607f821691505b60208210810361082e57634e487b7160e01b5f52602260045260245ffd5b6020808252601790820152764f6e6c79204369706865726e6f6465526567697374727960481b604082015260600190565b8381526060810161386960208301856137bc565b6134e460408301846137bc565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561272b5761272b613876565b604081016138ab82856137bc565b612b4d60208301846137bc565b601f821115612bac57805f5260205f20601f840160051c810160208510156138dd5750805b601f840160051c820191505b818110156138fc575f81556001016138e9565b5050505050565b5f19600383901b1c191660019190911b1790565b6001600160401b0383111561392e5761392e613404565b6139428361393c83546137f2565b836138b8565b5f601f84116001811461396e575f851561395c5750838201355b6139668682613903565b8455506138fc565b5f83815260208120601f198716915b8281101561399d578685013582556020948501946001909201910161397d565b50868210156139b9575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b818382375f9101908152919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b848152836020820152606060408201525f613a216060830184866139da565b9695505050505050565b5f60208284031215613a3b575f5ffd5b81518015158114612b4d575f5ffd5b602081525f6134e46020830184866139da565b5f8151808452602084019350602083015f5b82811015613a965781516001600160a01b0316865260209586019590910190600101613a6f565b5093949350505050565b838152826020820152606060408201525f613abe6060830184613a5d565b95945050505050565b634e487b7160e01b5f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015613b4857603f19878603018452613b338583516131bb565b94506020938401939190910190600101613b17565b50929695505050505050565b60408101613b6282856137bc565b612b4d6020830184613199565b803563ffffffff81168114613b82575f5ffd5b919050565b5f60208284031215613b97575f5ffd5b612b4d82613b6f565b805f5b6002811015612ec35763ffffffff613bba83613b6f565b1684526020938401939190910190600101613ba3565b6040810161272b8284613ba0565b8181038181111561272b5761272b613876565b5f60018201613c0257613c02613876565b5060010190565b5f5f8335601e19843603018112613c1e575f5ffd5b8301803591506001600160401b03821115613c37575f5ffd5b602001915036819003821315612d32575f5ffd5b88815287602082015260a060408201525f613c6a60a08301888a6139da565b8281036060840152613c7d8187896139da565b90508281036080840152613c928185876139da565b9b9a5050505050505050505050565b5f60208284031215613cb1575f5ffd5b5051919050565b81516001600160401b03811115613cd157613cd1613404565b613ce581613cdf84546137f2565b846138b8565b6020601f821160018114613d12575f8315613d005750848201515b613d0a8482613903565b8555506138fc565b5f84815260208120601f198516915b82811015613d415787850151825560209485019460019092019101613d21565b5084821015613d5e57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b83815260208101839052608081016134e46040830184613ba0565b5f60208284031215613d98575f5ffd5b81516001600160401b03811115613dad575f5ffd5b8201601f81018413613dbd575f5ffd5b8051613dcb61352b826134ec565b8082825260208201915060208360051b850101925086831115613dec575f5ffd5b6020840193505b82841015613a21578351613e06816130f4565b825260209384019390910190613df3565b5f82613e3157634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160a01b03929092168252602082015260400190565b5f8151808452602084019350602083015f5b82811015613a96578151865260209586019590910190600101613e61565b6001600160a01b03841681526060602082018190525f90613ea290830185613a5d565b8281036040840152613a218185613e4f565b604081525f613ec66040830185613a5d565b8281036020840152613abe8185613e4f56fe1b418a230a21d37a078bf8f16decbde8ccceacd77159371f62f0d4ea00d19967a164736f6c634300081c000a",
|
|
1895
|
+
"deployedBytecode": "0x608060405234801561000f575f5ffd5b5060043610610260575f3560e01c80638da5cb5b1161014b578063cb649617116100bf578063f0691cba11610084578063f0691cba14610657578063f2fde38b1461066a578063f81b8ef61461067d578063fad8e11114610690578063fd2f3d01146106a3578063ff72aa51146106b6575f5ffd5b8063cb649617146105e6578063cbd16872146105ef578063cf0f34c414610602578063cfbdc98d14610615578063e59e469514610644575f5ffd5b8063929a8faf11610110578063929a8faf1461054257806399c6679d146105635780639c8570c81461058b578063b68fd1be1461059e578063bb2d1b82146105b1578063c4ccafa2146105c4575f5ffd5b80638da5cb5b146104a55780638dcdd86b146104ad57806390173a41146104bf5780639117173c146104fa578063923123861461050d575f5ffd5b8063459d9294116101e25780636db5c8fd116101a75780636db5c8fd14610448578063715018a6146104515780637cfa9d74146104595780637edcd7ab1461046c57806381476ec21461047f5780638581424314610492575f5ffd5b8063459d9294146103be5780634e92ec63146103fc5780634fc772641461040f578063647846a51461042257806369c5b34714610435575f5ffd5b806336c5d38a1161022857806336c5d38a146103135780634017daf014610342578063406ed35c1461036c5780634147a3601461038c57806341739f12146103ab575f5ffd5b806302a3a9c9146102645780630ef81b2f1461027957806310bc6281146102b757806315cce224146102df578063205cd34c146102f2575b5f5ffd5b610277610272366004613108565b6106d7565b005b6102a1610287366004613123565b5f908152600860205260409020546001600160a01b031690565b6040516102ae919061313a565b60405180910390f35b6102a16102c5366004613123565b60086020525f90815260409020546001600160a01b031681565b6102776102ed366004613108565b610783565b61030561030036600461314e565b610828565b6040519081526020016102ae565b610335610321366004613123565b5f908152600d602052604090205460ff1690565b6040516102ae91906131ad565b610355610350366004613123565b610834565b6040516102ae9b9a999897969594939291906131e9565b61037f61037a366004613123565b610a3e565b6040516102ae91906133c8565b61030561039a366004613123565b600a6020525f908152604090205481565b6102776103b93660046133ea565b610d44565b6103ec6103cc3660046134b3565b805160208183018101805160098252928201919093012091525460ff1681565b60405190151581526020016102ae565b61027761040a366004613123565b610d58565b61027761041d366004613108565b610de7565b6003546102a1906001600160a01b031681565b61027761044336600461359b565b610e7a565b61030560045481565b610277610fe0565b610277610467366004613123565b610ff3565b6103ec61047a366004613688565b6110f1565b61027761048d3660046136ff565b611312565b6001546102a1906001600160a01b031681565b6102a1611402565b5f546102a1906001600160a01b031681565b6104c7611430565b6040516102ae91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b610277610508366004613123565b611484565b61052061051b366004613123565b61161c565b60408051825181526020808401519082015291810151908201526060016102ae565b610555610550366004613123565b611675565b6040516102ae92919061371f565b6102a1610571366004613123565b5f908152600e60205260409020546001600160a01b031690565b6103ec610599366004613688565b61169c565b6102776105ac366004613735565b6118cf565b6102776105bf366004613766565b611972565b6103ec6105d2366004613108565b60066020525f908152604090205460ff1681565b61030560055481565b6102776105fd366004613799565b611a18565b610277610610366004613123565b611acb565b610637610623366004613123565b5f908152600b602052604090205460ff1690565b6040516102ae91906137cc565b610277610652366004613108565b611b08565b6002546102a1906001600160a01b031681565b610277610678366004613108565b611ba2565b61033561068b366004613123565b611bdc565b61027761069e366004613108565b611d6c565b6102776106b1366004613108565b611e04565b6106c96106c436600461314e565b611e9b565b6040516102ae9291906137da565b6106df612548565b6001600160a01b03811661073a5760405162461bcd60e51b815260206004820152601f60248201527f496e76616c6964204533526566756e644d616e6167657220616464726573730060448201526064015b60405180910390fd5b600280546001600160a01b0319166001600160a01b0383169081179091556040517f9557d04c1c0b16f93f13b69aed23b3b6ab935bff3c53ac81d17896d3583542ed905f90a250565b61078b612548565b6001600160a01b038116158015906107b157506003546001600160a01b03828116911614155b81906107d15760405163eddf07f560e01b8152600401610731919061313a565b50600380546001600160a01b0319166001600160a01b0383161790556040517f722ff84c1234b2482061def5c82c6b5080c117b3cbb69d686844a051e4b8e7f39061081d90839061313a565b60405180910390a150565b620f4240805b50919050565b600760208190525f9182526040909120805460028201546005830154600684015494840180549395929491936001600160a01b0390931692610875906137f2565b80601f01602080910402602001604051908101604052809291908181526020018280546108a1906137f2565b80156108ec5780601f106108c3576101008083540402835291602001916108ec565b820191905f5260205f20905b8154815290600101906020018083116108cf57829003601f168201915b505050505090806008018054610901906137f2565b80601f016020809104026020016040519081016040528092919081815260200182805461092d906137f2565b80156109785780601f1061094f57610100808354040283529160200191610978565b820191905f5260205f20905b81548152906001019060200180831161095b57829003601f168201915b5050506009840154600a850154600b860154600c8701805496976001600160a01b0390941696929550909350906109ae906137f2565b80601f01602080910402602001604051908101604052809291908181526020018280546109da906137f2565b8015610a255780601f106109fc57610100808354040283529160200191610a25565b820191905f5260205f20905b815481529060010190602001808311610a0857829003601f168201915b505050600d90930154919250506001600160a01b03168b565b610a46612f72565b5f82815260076020908152604080832081516101a0810183528154815282518084019384905290949193850192909160018501916002918390855b82829054906101000a900463ffffffff1663ffffffff1681526020019060040190602082600301049283019260010382029150808411610a8157505050928452505050600282810154602083015260408051808201808352919093019291600385019182845b815481526020019060010190808311610ae75750505091835250506005820154602082015260068201546001600160a01b03166040820152600782018054606090920191610b34906137f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610b60906137f2565b8015610bab5780601f10610b8257610100808354040283529160200191610bab565b820191905f5260205f20905b815481529060010190602001808311610b8e57829003601f168201915b50505050508152602001600882018054610bc4906137f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf0906137f2565b8015610c3b5780601f10610c1257610100808354040283529160200191610c3b565b820191905f5260205f20905b815481529060010190602001808311610c1e57829003601f168201915b505050918352505060098201546001600160a01b03166020820152600a8201546040820152600b8201546060820152600c82018054608090920191610c7f906137f2565b80601f0160208091040260200160405190810160405280929190818152602001828054610cab906137f2565b8015610cf65780601f10610ccd57610100808354040283529160200191610cf6565b820191905f5260205f20905b815481529060010190602001808311610cd957829003601f168201915b5050509183525050600d91909101546001600160a01b0390811660209092019190915260a082015191925083911661082e5760405163cd6f4a4f60e01b815260040161073191815260200190565b610d4c612548565b610d558161257a565b50565b610d60612548565b5f8181526008602052604090205481906001600160a01b0316610d99576040516381c4951960e01b815260040161073191815260200190565b505f818152600860205260409081902080546001600160a01b0319169055517f104eb329a192aef26eddea07c2af5ad2587792e62b37ed4045b6ba59bc5540fc9061081d9083815260200190565b610def612548565b6001600160a01b0381165f90815260066020526040902054819060ff16610e2a576040516321ac7c5f60e01b8152600401610731919061313a565b506001600160a01b0381165f9081526006602052604090819020805460ff19169055517f56070b80bd617fcd2f7a284861edb488830a38f9dedcd77b2cb2f4eac17743e79061081d90839061313a565b5f610e83612707565b805490915060ff600160401b82041615906001600160401b03165f81158015610ea95750825b90505f826001600160401b03166001148015610ec45750303b155b905081158015610ed2575080155b15610ef05760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610f1a57845460ff60401b1916600160401b1785555b610f2333612731565b610f2c88611acb565b610f358c611d6c565b610f3e8b611b08565b610f478a6106d7565b610f5089610783565b610f598761257a565b610f62866118cf565b610f6a611402565b6001600160a01b03168d6001600160a01b031614610f8b57610f8b8d611ba2565b8315610fd157845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50505050505050505050505050565b610fe8612548565b610ff15f612742565b565b5f546001600160a01b0316331461101c5760405162461bcd60e51b815260040161073190613824565b5f818152600b602052604090205460ff16600181600681111561104157611041613185565b1461106657816001826040516337e1404160e01b815260040161073193929190613855565b5f828152600b60205260409020805460ff19166002179055600f5461108b904261388a565b5f838152600c602052604080822092909255905183917fc44405af9078047712501f519e1fb900c2896c62b488336f84529c72ae16e6f191a2815f516020613ed95f395f51905f52600160026040516110e592919061389d565b60405180910390a25050565b5f5f6110fc87610a3e565b5f888152600b602052604090205490915060ff16600481600681111561112457611124613185565b148860048390919261114c576040516337e1404160e01b815260040161073193929190613855565b5050505f888152600c602090815260409182902082516060810184528154815260018201549281019290925260020154918101829052908990428110156111af576040516308f3034360e31b815260048101929092526024820152604401610731565b50505f898152600760205260409020600c016111cc888a83613917565b508261010001516001600160a01b0316632f0e1bbf8a8a8a6040516111f29291906139cb565b6040519081900381206001600160e01b031960e085901b16825261121d92918b908b90600401613a02565b602060405180830381865afa158015611238573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061125c9190613a2b565b935087878561128057604051632f9f8ab960e01b8152600401610731929190613a4a565b50505f898152600b60205260409020805460ff191660051790556112a3896127b2565b887f02a24c3402076671e129905ba4579d884b1f94ded1c07fc03d26d11b60bca16989896040516112d5929190613a4a565b60405180910390a2885f516020613ed95f395f51905f52600460056040516112fe92919061389d565b60405180910390a250505095945050505050565b5f546001600160a01b0316331461133b5760405162461bcd60e51b815260040161073190613824565b5f828152600b602052604090205460ff16600281600681111561136057611360613185565b1461138557826002826040516337e1404160e01b815260040161073193929190613855565b5f838152600b60209081526040808320805460ff191660031790556007909152808220600a018490555184917f11df18edb9bc9cd90a79068e0e208b630202148643d797d6150e7bacb733e63c91a2825f516020613ed95f395f51905f52600260036040516113f592919061389d565b60405180910390a2505050565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b61145760405180608001604052805f81526020015f81526020015f81526020015f81525090565b5060408051608081018252600f548152601054602082015260115491810191909152601254606082015290565b5f818152600b602052604090205460ff1660068160068111156114a9576114a9613185565b146114e65760405162461bcd60e51b815260206004820152600d60248201526c114cc81b9bdd0819985a5b1959609a1b6044820152606401610731565b5f828152600a6020526040902054806115385760405162461bcd60e51b8152602060048201526014602482015273139bc81c185e5b595b9d081d1bc81c99599d5b9960621b6044820152606401610731565b5f838152600a6020526040812081905561155184612a5f565b600254600354919250611571916001600160a01b03908116911684612b54565b6002546040516345ac612360e11b81526001600160a01b0390911690638b58c246906115a590879086908690600401613aa0565b5f604051808303815f87803b1580156115bc575f5ffd5b505af11580156115ce573d5f5f3e3d5ffd5b50505050837f5297818f48a66292b8b3e2caab83eec531b669bb20807fd38cf006adb2a0731783835160405161160e929190918252602082015260400190565b60405180910390a250505050565b61163d60405180606001604052805f81526020015f81526020015f81525090565b505f908152600c6020908152604091829020825160608101845281548152600182015492810192909252600201549181019190915290565b5f818152600b6020526040812054819060ff166116928482612bb1565b9250925050915091565b5f5f6116a787610a3e565b5f888152600c60209081526040918290208251606081018452815481526001820154928101839052600290910154928101929092529192509088904281101561170c576040516308f3034360e31b815260048101929092526024820152604401610731565b50506060820151602001518890428111156117435760405163017e35e560e71b815260048101929092526024820152604401610731565b505061014082015188901561176e57604051637eb9cea960e11b815260040161073191815260200190565b505f87876040516117809291906139cb565b604080519182900382205f8c8152600760205291909120600b0181905560a0850151632f0e1bbf60e01b83529092506001600160a01b031690632f0e1bbf906117d3908c9085908b908b90600401613a02565b6020604051808303815f875af11580156117ef573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118139190613a2b565b935087878561183757604051632f9f8ab960e01b8152600401610731929190613a4a565b50505f898152600b60205260409020805460ff1916600417905560115461185e904261388a565b5f8a8152600c602052604090819020600201919091555189907f7cc27e4a5626cbc4f8ba1a927b0448de55e6a114bc87660331270c5109ade071906118a6908b908b90613a4a565b60405180910390a2885f516020613ed95f395f51905f52600360046040516112fe92919061389d565b6118d7612548565b80515f5b8181101561193657600160098483815181106118f9576118f9613ac7565b602002602001015160405161190e9190613adb565b908152604051908190036020019020805491151560ff199092169190911790556001016118db565b507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81826040516119669190613af1565b60405180910390a15050565b5f546001600160a01b0316331461199b5760405162461bcd60e51b815260040161073190613824565b5f8160ff161180156119b15750600c8160ff1611155b6119f65760405162461bcd60e51b815260206004820152601660248201527524b73b30b634b2103330b4b63ab932903932b0b9b7b760511b6044820152606401610731565b611a14828260ff16600c811115611a0f57611a0f613185565b612d39565b5050565b611a20612548565b6001600160a01b03811615801590611a5157505f828152600860205260409020546001600160a01b03828116911614155b8290611a73576040516381c4951960e01b815260040161073191815260200190565b505f8281526008602090815260409182902080546001600160a01b0319166001600160a01b03851617905590518381527ff4041a3f914dac3bc9bf5f003ba41f28dbb84abe42f4e07c76266f5c8ceecb699101611966565b611ad3612548565b60048190556040518181527fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b5235529060200161081d565b611b10612548565b6001600160a01b03811615801590611b3657506001546001600160a01b03828116911614155b8190611b56576040516320252f0b60e01b8152600401610731919061313a565b50600180546001600160a01b0319166001600160a01b0383161790556040517fad4055f18cdad6f4bdd71afe3a72cbeee964217943e1bde38f138289e981a9a79061081d90839061313a565b611baa612548565b6001600160a01b038116611bd3575f604051631e4fbdf760e01b8152600401610731919061313a565b610d5581612742565b5f818152600b602052604081205460ff1681816006811115611c0057611c00613185565b03611c2557826001826040516337e1404160e01b815260040161073193929190613855565b6005816006811115611c3957611c39613185565b03611c5a5760405163462c7bed60e01b815260048101849052602401610731565b6006816006811115611c6e57611c6e613185565b03611c8f57604051633de16e3560e11b815260048101849052602401610731565b5f611c9a8483612bb1565b9350905080611cbf57604051639f65d93560e01b815260048101859052602401610731565b5f848152600b60209081526040808320805460ff19908116600617909155600d9092529091208054859216600183600c811115611cfe57611cfe613185565b0217905550835f516020613ed95f395f51905f52836006604051611d2392919061389d565b60405180910390a2837fe20209be7caae6e76291267cfa711353981274bf127e94f16eb9ec44b68582bb8385604051611d5d929190613b54565b60405180910390a25050919050565b611d74612548565b6001600160a01b03811615801590611d9957505f546001600160a01b03828116911614155b8190611db9576040516375ac4eb760e11b8152600401610731919061313a565b505f80546001600160a01b0319166001600160a01b0383161790556040517f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b69061081d90839061313a565b611e0c612548565b6001600160a01b0381165f90815260066020526040902054819060ff1615611e485760405163b29d459560e01b8152600401610731919061313a565b506001600160a01b0381165f9081526006602052604090819020805460ff19166001179055517fb8d368517268f297fff00825d67d098763117d061360d31027be5b2e1a59d4679061081d90839061313a565b5f611ea4612f72565b611eb16020840184613b87565b63ffffffff16611ec76040850160208601613b87565b63ffffffff1610158015611eec57505f611ee46020850185613b87565b63ffffffff16115b8390611f0c57604051633744092160e21b81526004016107319190613bd0565b50604083013542811015611f3657604051630b99e87960e01b815260040161073191815260200190565b5060608301356040840135811015611f645760405163174b5a0760e21b815260040161073191815260200190565b506011546010545f9190611f7c426060880135613bde565b611f86919061388a565b611f90919061388a565b905060045481108190611fb9576040516313b783af60e21b815260040161073191815260200190565b5060065f611fcd60a0870160808801613108565b6001600160a01b0316815260208101919091526040015f205460ff16611ff960a0860160808701613108565b906120185760405163295a6a6f60e11b8152600401610731919061313a565b505f61202385610828565b60058054955090915084905f61203883613bf1565b90915550506040805144602080830191909152818301879052825180830384018152606090920183528151910120808552815180830183529091879060029083908390808284375f92019190915250505060208501524360408086019190915280518082018252908781019060029083908390808284375f92019190915250505060608501526120ce60a0870160808801613108565b6001600160a01b031660a0808601919091526120ec90870187613c09565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050505060c085015261213160e0870187613c09565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525060e0890194909452505050610120850181905261014085018190526040805160208101909152818152610160860152336101808601526121a660a0880160808901613108565b6001600160a01b031663fefd9a8b87846121c360a08c018c613c09565b6121d060c08e018e613c09565b8e8060e001906121e09190613c09565b6040518963ffffffff1660e01b8152600401612203989796959493929190613c4b565b6020604051808303815f875af115801561221f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122439190613ca1565b5f818152600860205260409020549091506001600160a01b0316818161227f576040516381c4951960e01b815260040161073191815260200190565b50608086018290526001600160a01b0381166101008701525f87815260076020908152604090912087518155908701518791906122c29060018301906002612ff9565b50604082015181600201556060820151816003019060026122e4929190613094565b506080820151600582015560a08201516006820180546001600160a01b0319166001600160a01b0390921691909117905560c082015160078201906123299082613cb8565b5060e0820151600882019061233e9082613cb8565b506101008201516009820180546001600160a01b0319166001600160a01b03909216919091179055610120820151600a820155610140820151600b820155610160820151600c8201906123919082613cb8565b506101809190910151600d90910180546001600160a01b0319166001600160a01b039283161790555f888152600a602052604090208590556003546123d99116333087612e8a565b5f5460405163291a691b60e01b81526001600160a01b039091169063291a691b9061240c908a9087908d90600401613d6d565b6020604051808303815f875af1158015612428573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061244c9190613a2b565b61246957604051630d8dbe2560e01b815260040160405180910390fd5b5f878152600b60209081526040808320805460ff19166001179055600e82529091208054336001600160a01b03199091161790556010546060880151909101516124b3919061388a565b5f888152600c60205260409020600101556124d460a0890160808a01613108565b6001600160a01b03167fe009e1827a616eb52d6aa3823303e01f235985c9da7b43cbcc95f54b0338785d888860405161250e9291906137da565b60405180910390a2865f516020613ed95f395f51905f525f600160405161253692919061389d565b60405180910390a25050505050915091565b33612551611402565b6001600160a01b031614610ff1573360405163118cdaa760e01b8152600401610731919061313a565b80356125bd5760405162461bcd60e51b8152602060048201526012602482015271496e76616c696420444b472077696e646f7760701b6044820152606401610731565b5f8160200135116126095760405162461bcd60e51b8152602060048201526016602482015275496e76616c696420636f6d707574652077696e646f7760501b6044820152606401610731565b5f8160400135116126585760405162461bcd60e51b8152602060048201526019602482015278496e76616c69642064656372797074696f6e2077696e646f7760381b6044820152606401610731565b5f8160600135116126a25760405162461bcd60e51b8152602060048201526014602482015273125b9d985b1a590819dc9858d9481c195c9a5bd960621b6044820152606401610731565b8035600f819055602080830135601081905560408085013560118190556060808701356012819055835196875294860193909352908401528201527f78e25a99f479f23adb3b0ac527204b39c8f57afa01a2595ad3b9b605bf0be22e9060800161081d565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005b92915050565b612739612ec9565b610d5581612eee565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f8054604051630a01649360e41b8152600481018490526001600160a01b039091169063a0164930906024015f60405180830381865afa1580156127f8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261281f9190810190613d88565b80519091505f816001600160401b0381111561283d5761283d613404565b604051908082528060200260200182016040528015612866578160200160208202803683370190505b505f858152600a602052604081205491925090612884908490613e17565b90505f5b838110156128b657818382815181106128a3576128a3613ac7565b6020908102919091010152600101612888565b505f858152600a60205260408082208054929055600354600154915163095ea7b360e01b81526001600160a01b039182169263095ea7b3926128ff929116908590600401613e36565b6020604051808303815f875af115801561291b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061293f9190613a2b565b50600154600354604051636ec640c760e11b81526001600160a01b039283169263dd8c818e926129789291169089908890600401613e7f565b5f604051808303815f87803b15801561298f575f5ffd5b505af11580156129a1573d5f5f3e3d5ffd5b505060035460015460405163095ea7b360e01b81526001600160a01b03928316945063095ea7b393506129dc92909116905f90600401613e36565b6020604051808303815f875af11580156129f8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a1c9190613a2b565b50857fac9fe8ad7f55eac03284399116ecafc104f10459773f4cdf47063c46e5be335a8685604051612a4f929190613eb4565b60405180910390a2505050505050565b5f818152600d602052604090205460609060ff16600181600c811115612a8757612a87613185565b1480612aa45750600281600c811115612aa257612aa2613185565b145b15612adc575f5b604051908082528060200260200182016040528015612ad4578160200160208202803683370190505b509392505050565b5f54604051630a01649360e41b8152600481018590526001600160a01b039091169063a0164930906024015f60405180830381865afa925050508015612b4357506040513d5f823e601f3d908101601f19168201604052612b409190810190613d88565b60015b612b4d575f612aab565b9392505050565b612bac83846001600160a01b031663a9059cbb8585604051602401612b7a929190613e36565b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612ef6565b505050565b5f828152600c60209081526040808320815160608101835281548152600182015493810193909352600201548282015282549051632800d82960e01b81526004810186905283929183916001600160a01b0390911690632800d82990602401602060405180830381865afa158015612c2b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c4f9190613ca1565b90506001856006811115612c6557612c65613185565b148015612c7157508042115b15612c8457600180935093505050612d32565b6002856006811115612c9857612c98613185565b148015612ca55750815142115b15612cb95760016003935093505050612d32565b6003856006811115612ccd57612ccd613185565b148015612cdd5750816020015142115b15612cf15760016006935093505050612d32565b6004856006811115612d0557612d05613185565b148015612d155750816040015142115b15612d29576001600a935093505050612d32565b5f5f9350935050505b9250929050565b5f828152600b602052604081205460ff1690816006811115612d5d57612d5d613185565b03612d8257826001826040516337e1404160e01b815260040161073193929190613855565b6005816006811115612d9657612d96613185565b03612db75760405163462c7bed60e01b815260048101849052602401610731565b6006816006811115612dcb57612dcb613185565b03612dec57604051633de16e3560e11b815260048101849052602401610731565b5f838152600b60209081526040808320805460ff19908116600617909155600d9092529091208054849216600183600c811115612e2b57612e2b613185565b0217905550825f516020613ed95f395f51905f52826006604051612e5092919061389d565b60405180910390a2827fe20209be7caae6e76291267cfa711353981274bf127e94f16eb9ec44b68582bb82846040516113f5929190613b54565b6040516001600160a01b038481166024830152838116604483015260648201839052612ec39186918216906323b872dd90608401612b7a565b50505050565b612ed1612f59565b610ff157604051631afcd79f60e31b815260040160405180910390fd5b611baa612ec9565b5f5f60205f8451602086015f885af180612f15576040513d5f823e3d81fd5b50505f513d91508115612f2c578060011415612f39565b6001600160a01b0384163b155b15612ec35783604051635274afe760e01b8152600401610731919061313a565b5f612f62612707565b54600160401b900460ff16919050565b604051806101a001604052805f8152602001612f8c6130c2565b81526020015f8152602001612f9f6130c2565b81526020015f81526020015f6001600160a01b0316815260200160608152602001606081526020015f6001600160a01b031681526020015f81526020015f8152602001606081526020015f6001600160a01b031681525090565b600183019183908215613084579160200282015f5b8382111561305257835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261300e565b80156130825782816101000a81549063ffffffff0219169055600401602081600301049283019260010302613052565b505b506130909291506130e0565b5090565b8260028101928215613084579160200282015b828111156130845782518255916020019190600101906130a7565b60405180604001604052806002906020820280368337509192915050565b5b80821115613090575f81556001016130e1565b6001600160a01b0381168114610d55575f5ffd5b5f60208284031215613118575f5ffd5b8135612b4d816130f4565b5f60208284031215613133575f5ffd5b5035919050565b6001600160a01b0391909116815260200190565b5f6020828403121561315e575f5ffd5b81356001600160401b03811115613173575f5ffd5b82016101008185031215612b4d575f5ffd5b634e487b7160e01b5f52602160045260245ffd5b600d81106131a9576131a9613185565b9052565b6020810161272b8284613199565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b8b81528a602082015289604082015260018060a01b038916606082015261016060808201525f61321d61016083018a6131bb565b82810360a084015261322f818a6131bb565b6001600160a01b03891660c085015260e084018890526101008401879052838103610120850152905061326281866131bb565b91505060018060a01b0383166101408301529c9b505050505050505050505050565b805f5b6002811015612ec357815163ffffffff16845260209384019390910190600101613287565b805f5b6002811015612ec35781518452602093840193909101906001016132af565b805182525f60208201516132e56020850182613284565b5060408201516060840152606082015161330260808501826132ac565b50608082015160c084015260a08201516001600160a01b03811660e08501525060c08201516101e061010085015261333e6101e08501826131bb565b905060e083015184820361012086015261335882826131bb565b9150506101008301516133776101408601826001600160a01b03169052565b506101208301516101608501526101408301516101808501526101608301518482036101a08601526133a982826131bb565b915050610180830151612ad46101c08601826001600160a01b03169052565b602081525f612b4d60208301846132ce565b5f6080828403121561082e575f5ffd5b5f608082840312156133fa575f5ffd5b612b4d83836133da565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561344057613440613404565b604052919050565b5f82601f830112613457575f5ffd5b81356001600160401b0381111561347057613470613404565b613483601f8201601f1916602001613418565b818152846020838601011115613497575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f602082840312156134c3575f5ffd5b81356001600160401b038111156134d8575f5ffd5b6134e484828501613448565b949350505050565b5f6001600160401b0382111561350457613504613404565b5060051b60200190565b5f82601f83011261351d575f5ffd5b813561353061352b826134ec565b613418565b8082825260208201915060208360051b860101925085831115613551575f5ffd5b602085015b838110156135915780356001600160401b03811115613573575f5ffd5b613582886020838a0101613448565b84525060209283019201613556565b5095945050505050565b5f5f5f5f5f5f5f5f610160898b0312156135b3575f5ffd5b88356135be816130f4565b975060208901356135ce816130f4565b965060408901356135de816130f4565b955060608901356135ee816130f4565b945060808901356135fe816130f4565b935060a089013592506136148a60c08b016133da565b91506101408901356001600160401b0381111561362f575f5ffd5b61363b8b828c0161350e565b9150509295985092959890939650565b5f5f83601f84011261365b575f5ffd5b5081356001600160401b03811115613671575f5ffd5b602083019150836020828501011115612d32575f5ffd5b5f5f5f5f5f6060868803121561369c575f5ffd5b8535945060208601356001600160401b038111156136b8575f5ffd5b6136c48882890161364b565b90955093505060408601356001600160401b038111156136e2575f5ffd5b6136ee8882890161364b565b969995985093965092949392505050565b5f5f60408385031215613710575f5ffd5b50508035926020909101359150565b821515815260408101612b4d6020830184613199565b5f60208284031215613745575f5ffd5b81356001600160401b0381111561375a575f5ffd5b6134e48482850161350e565b5f5f60408385031215613777575f5ffd5b82359150602083013560ff8116811461378e575f5ffd5b809150509250929050565b5f5f604083850312156137aa575f5ffd5b82359150602083013561378e816130f4565b600781106131a9576131a9613185565b6020810161272b82846137bc565b828152604060208201525f6134e460408301846132ce565b600181811c9082168061380657607f821691505b60208210810361082e57634e487b7160e01b5f52602260045260245ffd5b6020808252601790820152764f6e6c79204369706865726e6f6465526567697374727960481b604082015260600190565b8381526060810161386960208301856137bc565b6134e460408301846137bc565b634e487b7160e01b5f52601160045260245ffd5b8082018082111561272b5761272b613876565b604081016138ab82856137bc565b612b4d60208301846137bc565b601f821115612bac57805f5260205f20601f840160051c810160208510156138dd5750805b601f840160051c820191505b818110156138fc575f81556001016138e9565b5050505050565b5f19600383901b1c191660019190911b1790565b6001600160401b0383111561392e5761392e613404565b6139428361393c83546137f2565b836138b8565b5f601f84116001811461396e575f851561395c5750838201355b6139668682613903565b8455506138fc565b5f83815260208120601f198716915b8281101561399d578685013582556020948501946001909201910161397d565b50868210156139b9575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b818382375f9101908152919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b848152836020820152606060408201525f613a216060830184866139da565b9695505050505050565b5f60208284031215613a3b575f5ffd5b81518015158114612b4d575f5ffd5b602081525f6134e46020830184866139da565b5f8151808452602084019350602083015f5b82811015613a965781516001600160a01b0316865260209586019590910190600101613a6f565b5093949350505050565b838152826020820152606060408201525f613abe6060830184613a5d565b95945050505050565b634e487b7160e01b5f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015613b4857603f19878603018452613b338583516131bb565b94506020938401939190910190600101613b17565b50929695505050505050565b60408101613b6282856137bc565b612b4d6020830184613199565b803563ffffffff81168114613b82575f5ffd5b919050565b5f60208284031215613b97575f5ffd5b612b4d82613b6f565b805f5b6002811015612ec35763ffffffff613bba83613b6f565b1684526020938401939190910190600101613ba3565b6040810161272b8284613ba0565b8181038181111561272b5761272b613876565b5f60018201613c0257613c02613876565b5060010190565b5f5f8335601e19843603018112613c1e575f5ffd5b8301803591506001600160401b03821115613c37575f5ffd5b602001915036819003821315612d32575f5ffd5b88815287602082015260a060408201525f613c6a60a08301888a6139da565b8281036060840152613c7d8187896139da565b90508281036080840152613c928185876139da565b9b9a5050505050505050505050565b5f60208284031215613cb1575f5ffd5b5051919050565b81516001600160401b03811115613cd157613cd1613404565b613ce581613cdf84546137f2565b846138b8565b6020601f821160018114613d12575f8315613d005750848201515b613d0a8482613903565b8555506138fc565b5f84815260208120601f198516915b82811015613d415787850151825560209485019460019092019101613d21565b5084821015613d5e57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b83815260208101839052608081016134e46040830184613ba0565b5f60208284031215613d98575f5ffd5b81516001600160401b03811115613dad575f5ffd5b8201601f81018413613dbd575f5ffd5b8051613dcb61352b826134ec565b8082825260208201915060208360051b850101925086831115613dec575f5ffd5b6020840193505b82841015613a21578351613e06816130f4565b825260209384019390910190613df3565b5f82613e3157634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160a01b03929092168252602082015260400190565b5f8151808452602084019350602083015f5b82811015613a96578151865260209586019590910190600101613e61565b6001600160a01b03841681526060602082018190525f90613ea290830185613a5d565b8281036040840152613a218185613e4f565b604081525f613ec66040830185613a5d565b8281036020840152613abe8185613e4f56fe1b418a230a21d37a078bf8f16decbde8ccceacd77159371f62f0d4ea00d19967a164736f6c634300081c000a",
|
|
1548
1896
|
"linkReferences": {},
|
|
1549
1897
|
"deployedLinkReferences": {},
|
|
1550
1898
|
"immutableReferences": {},
|
|
1551
1899
|
"inputSourceName": "project/contracts/Enclave.sol",
|
|
1552
|
-
"buildInfoId": "solc-0_8_28-
|
|
1900
|
+
"buildInfoId": "solc-0_8_28-e60a5d7c133605edcf61acdd5ba43ab44ee0928e"
|
|
1553
1901
|
}
|