@enclave-e3/contracts 0.1.3 → 0.1.5
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/build-info/{solc-0_8_27-9aea5e3f6e25811e781e96c22e8edaf1eb1a01c5.json → solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56.json} +2 -2
- package/artifacts/build-info/solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56.output.json +1 -0
- package/artifacts/contracts/Enclave.sol/Enclave.json +3 -3
- package/artifacts/contracts/Enclave.sol/artifacts.d.ts +3 -3
- package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/ICiphernodeRegistry.json +1 -1
- package/artifacts/contracts/interfaces/ICiphernodeRegistry.sol/artifacts.d.ts +1 -1
- 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 +1 -1
- package/artifacts/contracts/interfaces/IE3Program.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/interfaces/IEnclave.sol/IEnclave.json +1 -1
- package/artifacts/contracts/interfaces/IEnclave.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/interfaces/IInputValidator.sol/IInputValidator.json +1 -1
- package/artifacts/contracts/interfaces/IInputValidator.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/interfaces/IRegistryFilter.sol/IRegistryFilter.json +1 -1
- package/artifacts/contracts/interfaces/IRegistryFilter.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/CiphernodeRegistryOwnable.json +1 -1
- package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/registry/NaiveRegistryFilter.sol/NaiveRegistryFilter.json +1 -1
- package/artifacts/contracts/registry/NaiveRegistryFilter.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistry.json +1 -1
- package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.json +1 -1
- package/artifacts/contracts/test/MockCiphernodeRegistry.sol/artifacts.d.ts +2 -2
- package/artifacts/contracts/test/MockComputeProvider.sol/MockComputeProvider.json +1 -1
- package/artifacts/contracts/test/MockComputeProvider.sol/artifacts.d.ts +1 -1
- 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 +1 -1
- package/artifacts/contracts/test/MockE3Program.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/test/MockInputValidator.sol/MockInputValidator.json +1 -1
- package/artifacts/contracts/test/MockInputValidator.sol/artifacts.d.ts +1 -1
- package/artifacts/contracts/test/MockRegistryFilter.sol/IRegistry.json +1 -1
- package/artifacts/contracts/test/MockRegistryFilter.sol/MockNaiveRegistryFilter.json +1 -1
- package/artifacts/contracts/test/MockRegistryFilter.sol/artifacts.d.ts +2 -2
- package/artifacts/poseidon-solidity/PoseidonT3.sol/PoseidonT3.json +1 -1
- package/artifacts/poseidon-solidity/PoseidonT3.sol/artifacts.d.ts +1 -1
- package/contracts/interfaces/IEnclave.sol +5 -5
- package/dist/scripts/deployEnclave.d.ts.map +1 -1
- package/dist/scripts/deployEnclave.js +12 -3
- package/dist/scripts/deployMocks.d.ts.map +1 -1
- package/dist/scripts/deployMocks.js +4 -0
- package/dist/types/factories/contracts/Enclave__factory.d.ts +1 -1
- package/dist/types/factories/contracts/Enclave__factory.js +1 -1
- package/package.json +2 -2
- package/artifacts/build-info/solc-0_8_27-9aea5e3f6e25811e781e96c22e8edaf1eb1a01c5.output.json +0 -1
|
@@ -15,7 +15,7 @@ export interface ICiphernodeRegistry$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/interfaces/ICiphernodeRegistry.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
import "hardhat/types/artifacts";
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"deployedLinkReferences": {},
|
|
40
40
|
"immutableReferences": {},
|
|
41
41
|
"inputSourceName": "project/contracts/interfaces/IComputeProvider.sol",
|
|
42
|
-
"buildInfoId": "solc-0_8_27-
|
|
42
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
43
43
|
}
|
|
@@ -15,7 +15,7 @@ export interface IComputeProvider$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/interfaces/IComputeProvider.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
import "hardhat/types/artifacts";
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"deployedLinkReferences": {},
|
|
40
40
|
"immutableReferences": {},
|
|
41
41
|
"inputSourceName": "project/contracts/interfaces/IDecryptionVerifier.sol",
|
|
42
|
-
"buildInfoId": "solc-0_8_27-
|
|
42
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
43
43
|
}
|
|
@@ -15,7 +15,7 @@ export interface IDecryptionVerifier$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/interfaces/IDecryptionVerifier.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
import "hardhat/types/artifacts";
|
|
@@ -78,5 +78,5 @@
|
|
|
78
78
|
"deployedLinkReferences": {},
|
|
79
79
|
"immutableReferences": {},
|
|
80
80
|
"inputSourceName": "project/contracts/interfaces/IE3Program.sol",
|
|
81
|
-
"buildInfoId": "solc-0_8_27-
|
|
81
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
82
82
|
}
|
|
@@ -15,7 +15,7 @@ export interface IE3Program$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/interfaces/IE3Program.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
import "hardhat/types/artifacts";
|
|
@@ -704,5 +704,5 @@
|
|
|
704
704
|
"deployedLinkReferences": {},
|
|
705
705
|
"immutableReferences": {},
|
|
706
706
|
"inputSourceName": "project/contracts/interfaces/IEnclave.sol",
|
|
707
|
-
"buildInfoId": "solc-0_8_27-
|
|
707
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
708
708
|
}
|
|
@@ -15,7 +15,7 @@ export interface IEnclave$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/interfaces/IEnclave.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
import "hardhat/types/artifacts";
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"deployedLinkReferences": {},
|
|
35
35
|
"immutableReferences": {},
|
|
36
36
|
"inputSourceName": "project/contracts/interfaces/IInputValidator.sol",
|
|
37
|
-
"buildInfoId": "solc-0_8_27-
|
|
37
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
38
38
|
}
|
|
@@ -15,7 +15,7 @@ export interface IInputValidator$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/interfaces/IInputValidator.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
import "hardhat/types/artifacts";
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"deployedLinkReferences": {},
|
|
35
35
|
"immutableReferences": {},
|
|
36
36
|
"inputSourceName": "project/contracts/interfaces/IRegistryFilter.sol",
|
|
37
|
-
"buildInfoId": "solc-0_8_27-
|
|
37
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
38
38
|
}
|
|
@@ -15,7 +15,7 @@ export interface IRegistryFilter$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/interfaces/IRegistryFilter.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
import "hardhat/types/artifacts";
|
package/artifacts/contracts/registry/CiphernodeRegistryOwnable.sol/CiphernodeRegistryOwnable.json
CHANGED
|
@@ -689,5 +689,5 @@
|
|
|
689
689
|
},
|
|
690
690
|
"immutableReferences": {},
|
|
691
691
|
"inputSourceName": "project/contracts/registry/CiphernodeRegistryOwnable.sol",
|
|
692
|
-
"buildInfoId": "solc-0_8_27-
|
|
692
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
693
693
|
}
|
|
@@ -15,7 +15,7 @@ export interface CiphernodeRegistryOwnable$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {"npm/poseidon-solidity@0.0.5/PoseidonT3.sol":{"PoseidonT3":[{"length":20,"start":2945},{"length":20,"start":3603},{"length":20,"start":3767},{"length":20,"start":4083},{"length":20,"start":4247}]}};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/registry/CiphernodeRegistryOwnable.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
import "hardhat/types/artifacts";
|
|
@@ -305,5 +305,5 @@
|
|
|
305
305
|
"deployedLinkReferences": {},
|
|
306
306
|
"immutableReferences": {},
|
|
307
307
|
"inputSourceName": "project/contracts/registry/NaiveRegistryFilter.sol",
|
|
308
|
-
"buildInfoId": "solc-0_8_27-
|
|
308
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
309
309
|
}
|
|
@@ -15,7 +15,7 @@ export interface NaiveRegistryFilter$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/registry/NaiveRegistryFilter.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
import "hardhat/types/artifacts";
|
|
@@ -219,5 +219,5 @@
|
|
|
219
219
|
"deployedLinkReferences": {},
|
|
220
220
|
"immutableReferences": {},
|
|
221
221
|
"inputSourceName": "project/contracts/test/MockCiphernodeRegistry.sol",
|
|
222
|
-
"buildInfoId": "solc-0_8_27-
|
|
222
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
223
223
|
}
|
package/artifacts/contracts/test/MockCiphernodeRegistry.sol/MockCiphernodeRegistryEmptyKey.json
CHANGED
|
@@ -219,5 +219,5 @@
|
|
|
219
219
|
"deployedLinkReferences": {},
|
|
220
220
|
"immutableReferences": {},
|
|
221
221
|
"inputSourceName": "project/contracts/test/MockCiphernodeRegistry.sol",
|
|
222
|
-
"buildInfoId": "solc-0_8_27-
|
|
222
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
223
223
|
}
|
|
@@ -15,7 +15,7 @@ export interface MockCiphernodeRegistry$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/test/MockCiphernodeRegistry.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
export interface MockCiphernodeRegistryEmptyKey$Type {
|
|
@@ -29,7 +29,7 @@ export interface MockCiphernodeRegistryEmptyKey$Type {
|
|
|
29
29
|
readonly deployedLinkReferences: {};
|
|
30
30
|
readonly immutableReferences: {};
|
|
31
31
|
readonly inputSourceName: "project/contracts/test/MockCiphernodeRegistry.sol";
|
|
32
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
32
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
import "hardhat/types/artifacts";
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"deployedLinkReferences": {},
|
|
45
45
|
"immutableReferences": {},
|
|
46
46
|
"inputSourceName": "project/contracts/test/MockComputeProvider.sol",
|
|
47
|
-
"buildInfoId": "solc-0_8_27-
|
|
47
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
48
48
|
}
|
|
@@ -15,7 +15,7 @@ export interface MockComputeProvider$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/test/MockComputeProvider.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
import "hardhat/types/artifacts";
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"deployedLinkReferences": {},
|
|
40
40
|
"immutableReferences": {},
|
|
41
41
|
"inputSourceName": "project/contracts/test/MockDecryptionVerifier.sol",
|
|
42
|
-
"buildInfoId": "solc-0_8_27-
|
|
42
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
43
43
|
}
|
|
@@ -15,7 +15,7 @@ export interface MockDecryptionVerifier$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/test/MockDecryptionVerifier.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
import "hardhat/types/artifacts";
|
|
@@ -160,5 +160,5 @@
|
|
|
160
160
|
"deployedLinkReferences": {},
|
|
161
161
|
"immutableReferences": {},
|
|
162
162
|
"inputSourceName": "project/contracts/test/MockE3Program.sol",
|
|
163
|
-
"buildInfoId": "solc-0_8_27-
|
|
163
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
164
164
|
}
|
|
@@ -15,7 +15,7 @@ export interface MockE3Program$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/test/MockE3Program.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
import "hardhat/types/artifacts";
|
|
@@ -39,5 +39,5 @@
|
|
|
39
39
|
"deployedLinkReferences": {},
|
|
40
40
|
"immutableReferences": {},
|
|
41
41
|
"inputSourceName": "project/contracts/test/MockInputValidator.sol",
|
|
42
|
-
"buildInfoId": "solc-0_8_27-
|
|
42
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
43
43
|
}
|
|
@@ -15,7 +15,7 @@ export interface MockInputValidator$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/test/MockInputValidator.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
import "hardhat/types/artifacts";
|
|
@@ -33,5 +33,5 @@
|
|
|
33
33
|
"deployedLinkReferences": {},
|
|
34
34
|
"immutableReferences": {},
|
|
35
35
|
"inputSourceName": "project/contracts/test/MockRegistryFilter.sol",
|
|
36
|
-
"buildInfoId": "solc-0_8_27-
|
|
36
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
37
37
|
}
|
|
@@ -258,5 +258,5 @@
|
|
|
258
258
|
"deployedLinkReferences": {},
|
|
259
259
|
"immutableReferences": {},
|
|
260
260
|
"inputSourceName": "project/contracts/test/MockRegistryFilter.sol",
|
|
261
|
-
"buildInfoId": "solc-0_8_27-
|
|
261
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
262
262
|
}
|
|
@@ -15,7 +15,7 @@ export interface IRegistry$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "project/contracts/test/MockRegistryFilter.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
export interface MockNaiveRegistryFilter$Type {
|
|
@@ -29,7 +29,7 @@ export interface MockNaiveRegistryFilter$Type {
|
|
|
29
29
|
readonly deployedLinkReferences: {};
|
|
30
30
|
readonly immutableReferences: {};
|
|
31
31
|
readonly inputSourceName: "project/contracts/test/MockRegistryFilter.sol";
|
|
32
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
32
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
33
33
|
};
|
|
34
34
|
|
|
35
35
|
import "hardhat/types/artifacts";
|
|
@@ -29,5 +29,5 @@
|
|
|
29
29
|
"deployedLinkReferences": {},
|
|
30
30
|
"immutableReferences": {},
|
|
31
31
|
"inputSourceName": "npm/poseidon-solidity@0.0.5/PoseidonT3.sol",
|
|
32
|
-
"buildInfoId": "solc-0_8_27-
|
|
32
|
+
"buildInfoId": "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56"
|
|
33
33
|
}
|
|
@@ -15,7 +15,7 @@ export interface PoseidonT3$Type {
|
|
|
15
15
|
readonly deployedLinkReferences: {};
|
|
16
16
|
readonly immutableReferences: {};
|
|
17
17
|
readonly inputSourceName: "npm/poseidon-solidity@0.0.5/PoseidonT3.sol";
|
|
18
|
-
readonly buildInfoId: "solc-0_8_27-
|
|
18
|
+
readonly buildInfoId: "solc-0_8_27-97c5c59c2349d6c07bd9b7583fed40a5ace84d56";
|
|
19
19
|
};
|
|
20
20
|
|
|
21
21
|
import "hardhat/types/artifacts";
|
|
@@ -138,7 +138,7 @@ interface IEnclave {
|
|
|
138
138
|
/// @return success True if the E3 was successfully activated.
|
|
139
139
|
function activate(
|
|
140
140
|
uint256 e3Id,
|
|
141
|
-
bytes
|
|
141
|
+
bytes calldata publicKey
|
|
142
142
|
) external returns (bool success);
|
|
143
143
|
|
|
144
144
|
/// @notice This function should be called to publish input data for Encrypted Execution Environment (E3).
|
|
@@ -160,8 +160,8 @@ interface IEnclave {
|
|
|
160
160
|
/// @return success True if the output was successfully published.
|
|
161
161
|
function publishCiphertextOutput(
|
|
162
162
|
uint256 e3Id,
|
|
163
|
-
bytes
|
|
164
|
-
bytes
|
|
163
|
+
bytes calldata ciphertextOutput,
|
|
164
|
+
bytes calldata proof
|
|
165
165
|
) external returns (bool success);
|
|
166
166
|
|
|
167
167
|
/// @notice This function publishes the plaintext output of an Encrypted Execution Environment (E3).
|
|
@@ -172,8 +172,8 @@ interface IEnclave {
|
|
|
172
172
|
/// @param proof ABI encoded data to verify the plaintextOutput.
|
|
173
173
|
function publishPlaintextOutput(
|
|
174
174
|
uint256 e3Id,
|
|
175
|
-
bytes
|
|
176
|
-
bytes
|
|
175
|
+
bytes calldata plaintextOutput,
|
|
176
|
+
bytes calldata proof
|
|
177
177
|
) external returns (bool success);
|
|
178
178
|
|
|
179
179
|
////////////////////////////////////////////////////////////
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployEnclave.d.ts","sourceRoot":"","sources":["../../scripts/deployEnclave.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,eAAO,MAAM,aAAa,GAAU,YAAY,OAAO,
|
|
1
|
+
{"version":3,"file":"deployEnclave.d.ts","sourceRoot":"","sources":["../../scripts/deployEnclave.ts"],"names":[],"mappings":"AAYA;;GAEG;AACH,eAAO,MAAM,aAAa,GAAU,YAAY,OAAO,kBAoGtD,CAAC"}
|
|
@@ -21,6 +21,7 @@ export const deployEnclave = async (withMocks) => {
|
|
|
21
21
|
const encoded = ethers.AbiCoder.defaultAbiCoder().encode(["uint256", "uint256", "uint256[]"], [polynomial_degree, plaintext_modulus, moduli]);
|
|
22
22
|
const THIRTY_DAYS_IN_SECONDS = 60 * 60 * 24 * 30;
|
|
23
23
|
const addressOne = "0x0000000000000000000000000000000000000001";
|
|
24
|
+
console.log("Deploying Enclave");
|
|
24
25
|
const { enclave } = await deployAndSaveEnclave({
|
|
25
26
|
params: encoded,
|
|
26
27
|
owner: ownerAddress,
|
|
@@ -29,22 +30,22 @@ export const deployEnclave = async (withMocks) => {
|
|
|
29
30
|
hre,
|
|
30
31
|
});
|
|
31
32
|
const enclaveAddress = await enclave.getAddress();
|
|
32
|
-
console.log("
|
|
33
|
+
console.log("Deploying CiphernodeRegistry");
|
|
33
34
|
const { ciphernodeRegistry } = await deployAndSaveCiphernodeRegistryOwnable({
|
|
34
35
|
enclaveAddress: enclaveAddress,
|
|
35
36
|
owner: ownerAddress,
|
|
36
37
|
hre,
|
|
37
38
|
});
|
|
38
39
|
const ciphernodeRegistryAddress = await ciphernodeRegistry.getAddress();
|
|
39
|
-
console.log("
|
|
40
|
+
console.log("Deploying NaiveRegistryFilter");
|
|
40
41
|
const { naiveRegistryFilter } = await deployAndSaveNaiveRegistryFilter({
|
|
41
42
|
ciphernodeRegistryAddress: ciphernodeRegistryAddress,
|
|
42
43
|
owner: ownerAddress,
|
|
43
44
|
hre,
|
|
44
45
|
});
|
|
45
46
|
const naiveRegistryFilterAddress = await naiveRegistryFilter.getAddress();
|
|
46
|
-
console.log("NaiveRegistryFilter deployed to: ", naiveRegistryFilterAddress);
|
|
47
47
|
const registryAddress = await enclave.ciphernodeRegistry();
|
|
48
|
+
console.log("Setting CiphernodeRegistry in Enclave");
|
|
48
49
|
if (registryAddress === ciphernodeRegistryAddress) {
|
|
49
50
|
console.log(`Enclave contract already has registry`);
|
|
50
51
|
}
|
|
@@ -53,9 +54,17 @@ export const deployEnclave = async (withMocks) => {
|
|
|
53
54
|
await tx.wait();
|
|
54
55
|
console.log(`Enclave contract updated with registry`);
|
|
55
56
|
}
|
|
57
|
+
console.log(`
|
|
58
|
+
Deployments:
|
|
59
|
+
----------------------------------------------------------------------
|
|
60
|
+
Enclave: ${enclaveAddress}
|
|
61
|
+
CiphernodeRegistry: ${ciphernodeRegistryAddress}
|
|
62
|
+
NaiveRegistryFilter: ${naiveRegistryFilterAddress}
|
|
63
|
+
`);
|
|
56
64
|
// Deploy mocks only if specified
|
|
57
65
|
const shouldDeployMocks = process.env.DEPLOY_MOCKS === "true" || withMocks;
|
|
58
66
|
if (shouldDeployMocks) {
|
|
67
|
+
console.log("Deploying Mocks");
|
|
59
68
|
const { decryptionVerifierAddress, e3ProgramAddress } = await deployMocks();
|
|
60
69
|
const encryptionSchemeId = ethers.keccak256(ethers.toUtf8Bytes("fhe.rs:BFV"));
|
|
61
70
|
console.log("encryptionSchemeId", encryptionSchemeId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployMocks.d.ts","sourceRoot":"","sources":["../../scripts/deployMocks.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,eAAe;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"deployMocks.d.ts","sourceRoot":"","sources":["../../scripts/deployMocks.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,eAAe;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,yBAAyB,EAAE,MAAM,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,QAAa,OAAO,CAAC,eAAe,CAuC3D,CAAC"}
|
|
@@ -14,12 +14,16 @@ import { deployAndSaveMockProgram } from "./deployAndSave/mockProgram";
|
|
|
14
14
|
* @returns The addresses of the mock contracts.
|
|
15
15
|
*/
|
|
16
16
|
export const deployMocks = async () => {
|
|
17
|
+
console.log("Deploying Compute Provider");
|
|
17
18
|
const { computeProvider } = await deployAndSaveMockComputeProvider(hre);
|
|
18
19
|
const computeProviderAddress = await computeProvider.getAddress();
|
|
20
|
+
console.log("Deploying Decryption Verifier");
|
|
19
21
|
const { decryptionVerifier } = await deployAndSaveMockDecryptionVerifier(hre);
|
|
20
22
|
const decryptionVerifierAddress = await decryptionVerifier.getAddress();
|
|
23
|
+
console.log("Deploying Input Validator");
|
|
21
24
|
const { inputValidator } = await deployAndSaveMockInputValidator(hre);
|
|
22
25
|
const inputValidatorAddress = await inputValidator.getAddress();
|
|
26
|
+
console.log("Deploying E3 Program");
|
|
23
27
|
const { e3Program } = await deployAndSaveMockProgram({
|
|
24
28
|
mockInputValidator: inputValidatorAddress,
|
|
25
29
|
hre,
|
|
@@ -16,7 +16,7 @@ export declare class Enclave__factory extends ContractFactory {
|
|
|
16
16
|
deploymentTransaction(): ContractTransactionResponse;
|
|
17
17
|
}>;
|
|
18
18
|
connect(runner: ContractRunner | null): Enclave__factory;
|
|
19
|
-
static readonly bytecode = "0x608060405234801561000f575f5ffd5b5060405161366038038061366083398101604081905261002e916104c2565b61003a84848484610043565b505050506106c4565b5f5160206136405f395f51905f52805468010000000000000000810460ff1615906001600160401b03165f811580156100795750825b90505f826001600160401b031660011480156100945750303b155b9050811580156100a2575080155b156100c05760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156100ee57845460ff60401b1916680100000000000000001785555b6100f733610190565b610100876101a4565b5061010a886101ec565b506101148661029c565b505f5160206136205f395f51905f52546001600160a01b038a811691161461013f5761013f89610346565b831561018557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b610198610380565b6101a1816103bd565b50565b5f6101ad6103c5565b5060018181556040518281527fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b523552906020015b60405180910390a1919050565b5f6101f56103c5565b6001600160a01b0382161580159061021a57505f546001600160a01b03838116911614155b829061024a576040516375ac4eb760e11b81526001600160a01b0390911660048201526024015b60405180910390fd5b50505f80546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b6906020016101df565b5f6102a56103c5565b81515f5b8181101561030457600160088583815181106102c7576102c7610616565b60200260200101516040516102dc919061062a565b908152604051908190036020019020805491151560ff199092169190911790556001016102a9565b50600191507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81836040516103389190610640565b60405180910390a150919050565b61034e6103c5565b6001600160a01b03811661037757604051631e4fbdf760e01b81525f6004820152602401610241565b6101a18161040d565b5f5160206136405f395f51905f525468010000000000000000900460ff166103bb57604051631afcd79f60e31b815260040160405180910390fd5b565b61034e610380565b336103e45f5160206136205f395f51905f52546001600160a01b031690565b6001600160a01b0316146103bb5760405163118cdaa760e01b8152336004820152602401610241565b5f5160206136205f395f51905f5280546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6001600160a01b03811681146101a1575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156104ba576104ba61047e565b604052919050565b5f5f5f5f608085870312156104d5575f5ffd5b84516104e08161046a565b60208601519094506104f18161046a565b6040860151606087015191945092506001600160401b03811115610513575f5ffd5b8501601f81018713610523575f5ffd5b80516001600160401b0381111561053c5761053c61047e565b8060051b61054c60208201610492565b9182526020818401810192908101908a841115610567575f5ffd5b6020850192505b838310156106075782516001600160401b0381111561058b575f5ffd5b8501603f81018c1361059b575f5ffd5b60208101516001600160401b038111156105b7576105b761047e565b6105ca601f8201601f1916602001610492565b8181526040838301018e10156105de575f5ffd5b8160408401602083015e5f6020838301015280855250505060208201915060208301925061056e565b979a9699509497505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156106b857603f19878603018452815180518087528060208301602089015e5f602082890101526020601f19601f83011688010196505050602082019150602084019350600181019050610666565b50929695505050505050565b612f4f806106d15f395ff3fe6080604052600436106101af575f3560e01c80638dcdd86b116100e7578063cf0f34c411610087578063ddef9ea111610062578063ddef9ea11461055c578063f2fde38b146105a3578063fad8e111146105c2578063fd2f3d01146105e1575f5ffd5b8063cf0f34c4146104fd578063d002e1271461051c578063d016b08d1461053d575f5ffd5b8063b68fd1be116100c2578063b68fd1be1461047c578063c4ccafa21461049b578063cb649617146104c9578063cbd16872146104de575f5ffd5b80638dcdd86b146104145780639c8570c814610432578063b3c88d6714610451575f5ffd5b80634fc77264116101525780636db5c8fd1161012d5780636db5c8fd14610390578063715018a6146103a55780637edcd7ab146103b95780638da5cb5b146103d8575f5ffd5b80634fc7726414610331578063503f3288146103505780635314e9fa14610371575f5ffd5b80634017daf01161018d5780634017daf014610265578063406ed35c1461029c578063459d9294146102c85780634e92ec6314610312575f5ffd5b80630e092fc3146101b35780630ef81b2f146101e557806310bc628114610231575b5f5ffd5b3480156101be575f5ffd5b506101d26101cd366004612251565b610600565b6040519081526020015b60405180910390f35b3480156101f0575f5ffd5b506102196101ff366004612251565b5f908152600760205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016101dc565b34801561023c575f5ffd5b5061021961024b366004612251565b60076020525f90815260409020546001600160a01b031681565b348015610270575f5ffd5b5061028461027f366004612251565b61066d565b6040516101dc9c9b9a99989796959493929190612296565b3480156102a7575f5ffd5b506102bb6102b6366004612251565b6107f1565b6040516101dc9190612477565b3480156102d3575f5ffd5b506103026102e236600461254e565b805160208183018101805160088252928201919093012091525460ff1681565b60405190151581526020016101dc565b34801561031d575f5ffd5b5061030261032c366004612251565b610a7d565b34801561033c575f5ffd5b5061030261034b36600461259c565b610b1e565b34801561035b575f5ffd5b5061036f61036a36600461265b565b610bc2565b005b34801561037c575f5ffd5b5061030261038b366004612708565b610d2d565b34801561039b575f5ffd5b506101d260015481565b3480156103b0575f5ffd5b5061036f610ef1565b3480156103c4575f5ffd5b506103026103d3366004612750565b610f04565b3480156103e3575f5ffd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610219565b34801561041f575f5ffd5b505f54610219906001600160a01b031681565b34801561043d575f5ffd5b5061030261044c366004612750565b6110bc565b34801561045c575f5ffd5b506101d261046b366004612251565b60066020525f908152604090205481565b348015610487575f5ffd5b506103026104963660046127c9565b61125e565b3480156104a6575f5ffd5b506103026104b536600461259c565b60036020525f908152604090205460ff1681565b3480156104d4575f5ffd5b506101d260025481565b3480156104e9575f5ffd5b506103026104f83660046127fb565b611308565b348015610508575f5ffd5b50610302610517366004612251565b6113c9565b61052f61052a366004612829565b611408565b6040516101dc929190612861565b348015610548575f5ffd5b50610302610557366004612708565b611a0f565b348015610567575f5ffd5b5061058e610576366004612251565b60056020525f90815260409020805460019091015482565b604080519283526020830191909152016101dc565b3480156105ae575f5ffd5b5061036f6105bd36600461259c565b611c17565b3480156105cd575f5ffd5b506103026105dc36600461259c565b611c54565b3480156105ec575f5ffd5b506103026105fb36600461259c565b611cff565b5f8181526004602052604081206008015482906001600160a01b03166106455760405163cd6f4a4f60e01b815260040161063c91815260200190565b60405180910390fd5b505f828152600560209081526040808320600181015484526002019091529020545b92915050565b60046020525f90815260409020805460028201546005830154600684015460078501546008860154600987018054969795969495939492936001600160a01b03909216926106ba90612879565b80601f01602080910402602001604051908101604052809291908181526020018280546106e690612879565b80156107315780601f1061070857610100808354040283529160200191610731565b820191905f5260205f20905b81548152906001019060200180831161071457829003601f168201915b505050600a840154600b850154600c860154600d870154600e8801805497986001600160a01b0395861698949095169650919450929161077090612879565b80601f016020809104026020016040519081016040528092919081815260200182805461079c90612879565b80156107e75780601f106107be576101008083540402835291602001916107e7565b820191905f5260205f20905b8154815290600101906020018083116107ca57829003601f168201915b505050505090508c565b6107f96120ca565b5f82815260046020908152604080832081516101c0810183528154815282518084019384905290949193850192909160018501916002918390855b82829054906101000a900463ffffffff1663ffffffff168152602001906004019060208260030104928301926001038202915080841161083457505050928452505050600282810154602083015260408051808201808352919093019291600385019182845b81548152602001906001019080831161089a57505050918352505060058201546020820152600682015460408201526007820154606082015260088201546001600160a01b0316608082015260098201805460a0909201916108fb90612879565b80601f016020809104026020016040519081016040528092919081815260200182805461092790612879565b80156109725780601f1061094957610100808354040283529160200191610972565b820191905f5260205f20905b81548152906001019060200180831161095557829003601f168201915b5050509183525050600a8201546001600160a01b039081166020830152600b830154166040820152600c8201546060820152600d8201546080820152600e8201805460a0909201916109c390612879565b80601f01602080910402602001604051908101604052809291908181526020018280546109ef90612879565b8015610a3a5780601f10610a1157610100808354040283529160200191610a3a565b820191905f5260205f20905b815481529060010190602001808311610a1d57829003601f168201915b5050509190925250505060e081015190915082906001600160a01b0316610a775760405163cd6f4a4f60e01b815260040161063c91815260200190565b50919050565b5f610a86611da9565b5f8281526007602052604090205482906001600160a01b0316610abf576040516381c4951960e01b815260040161063c91815260200190565b50505f818152600760205260409081902080546001600160a01b0319169055516001907f104eb329a192aef26eddea07c2af5ad2587792e62b37ed4045b6ba59bc5540fc90610b119084815260200190565b60405180910390a1919050565b5f610b27611da9565b6001600160a01b0382165f90815260036020526040902054829060ff16610b6d576040516321ac7c5f60e01b81526001600160a01b03909116600482015260240161063c565b50506001600160a01b0381165f81815260036020908152604091829020805460ff1916905590519182526001917f56070b80bd617fcd2f7a284861edb488830a38f9dedcd77b2cb2f4eac17743e79101610b11565b5f610bcb611e04565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f81158015610bf75750825b90505f8267ffffffffffffffff166001148015610c135750303b155b905081158015610c21575080155b15610c3f5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c7357845468ff00000000000000001916680100000000000000001785555b610c7c33611e2c565b610c85876113c9565b50610c8f88611c54565b50610c998661125e565b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b038a8116911614610cd757610cd789611c17565b8315610d2257845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b5f5f610d38856107f1565b90508060a001515f148590610d6357604051633e26347b60e21b815260040161063c91815260200190565b50606081015151421015610d8a5760405163a0750b5160e01b815260040160405180910390fd5b606081015160200151421115610db357604051633d82a7cd60e11b815260040160405180910390fd5b5f8054604051630e82f3b760e41b8152600481018890526001600160a01b039091169063e82f3b7090602401602060405180830381865afa158015610dfa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1e91906128bf565b9050808585604051610e319291906128d6565b604051809103902014610e5757604051630d8dbe2560e01b815260040160405180910390fd5b5f826080015142610e6891906128f9565b5f888152600460205260409081902060060182905551909150610e8e90879087906128d6565b604080519182900382205f8a8152600460205291909120600c01557f50df9e2c9fc5a7f4a07e403fa0300b88fcc8c6943bdff4b8ae71f55b7fd95f8990610edc90899084908a908a90612934565b60405180910390a15060019695505050505050565b610ef9611da9565b610f025f611e3d565b565b5f5f610f0f876107f1565b90505f8160a00151118790610f3a5760405163166b4d0360e01b815260040161063c91815260200190565b506101808101518790610f635760405163032c20ef60e21b815260040161063c91815260200190565b506101a081015151879015610f8e576040516360ec327960e01b815260040161063c91815260200190565b505f878152600460205260409020600e01610faa86888361299f565b508061014001516001600160a01b0316632f0e1bbf888888604051610fd09291906128d6565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168252611013929189908990600401612934565b602060405180830381865afa15801561102e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110529190612a59565b915085858361107657604051632f9f8ab960e01b815260040161063c929190612a78565b5050867f02a24c3402076671e129905ba4579d884b1f94ded1c07fc03d26d11b60bca16987876040516110aa929190612a78565b60405180910390a25095945050505050565b5f5f6110c7876107f1565b90505f8160a001511187906110f25760405163166b4d0360e01b815260040161063c91815260200190565b5060a0810151879042811115611124576040516370c05fb960e11b81526004810192909252602482015260440161063c565b505061018081015187901561114f57604051637eb9cea960e11b815260040161063c91815260200190565b505f86866040516111619291906128d6565b604080519182900382205f8b815260046020819052929020600d0181905560e0850151632f0e1bbf60e01b84529093506001600160a01b031691632f0e1bbf916111b3918c9186918b918b9101612934565b6020604051808303815f875af11580156111cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f39190612a59565b925086868461121757604051632f9f8ab960e01b815260040161063c929190612a78565b5050877f7cc27e4a5626cbc4f8ba1a927b0448de55e6a114bc87660331270c5109ade071888860405161124b929190612a78565b60405180910390a2505095945050505050565b5f611267611da9565b81515f5b818110156112c65760016008858381518110611289576112896128ab565b602002602001015160405161129e9190612a8b565b908152604051908190036020019020805491151560ff1990921691909117905560010161126b565b50600191507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81836040516112fa9190612aa1565b60405180910390a150919050565b5f611311611da9565b6001600160a01b0382161580159061134257505f838152600760205260409020546001600160a01b03838116911614155b8390611364576040516381c4951960e01b815260040161063c91815260200190565b50505f8281526007602090815260409182902080546001600160a01b0319166001600160a01b03851617905590518381526001917ff4041a3f914dac3bc9bf5f003ba41f28dbb84abe42f4e07c76266f5c8ceecb69910160405180910390a192915050565b5f6113d2611da9565b5060018181556040518281527fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b52355290602001610b11565b5f6114116120ca565b348061143357604051638c4fcd9360e01b815260040161063c91815260200190565b506114446040840160208501612b1c565b63ffffffff1661145a6060850160408601612b1c565b63ffffffff161015801561148257505f61147a6040850160208601612b1c565b63ffffffff16115b83602001906114a557604051633744092160e21b815260040161063c9190612b65565b5060608301356080840135108015906114c2575042608084013510155b6114df576040516308594fb760e01b815260040160405180910390fd5b5f8360a001351180156114f857506001548360a0013511155b8360a001359061151e576040516313b783af60e21b815260040161063c91815260200190565b5060035f61153260e0860160c0870161259c565b6001600160a01b0316815260208101919091526040015f205460ff1661155e60e0850160c0860161259c565b906115885760405163295a6a6f60e11b81526001600160a01b03909116600482015260240161063c565b5060028054925082905f61159b83612b73565b9091555050604080514460208201529081018390525f9060600160408051601f198184030181529181528151602092830120808552815180830183529093509186019060029083908390808284375f9201919091525050506020830152436040808401919091528051808201825290606086019060029083908390808284375f9201829052506060860193909352505060a080860135608085015283015261164960e0850160c0860161259c565b6001600160a01b031660e08084019190915261166790850185612b8b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506101008701949094525050506101608301819052610180830181905260408051602081019091528181526101a0840152806116d760e0870160c0880161259c565b6001600160a01b031663a61d7e3e86856116f460e08b018b612b8b565b6117026101008d018d612b8b565b6040518763ffffffff1660e01b815260040161172396959493929190612bce565b60408051808303815f875af115801561173e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117629190612c0d565b5f8281526007602052604090205491935091506001600160a01b031682816117a0576040516381c4951960e01b815260040161063c91815260200190565b50816001600160a01b0381166117d557604051633ca1cee360e11b81526001600160a01b03909116600482015260240161063c565b5060c085018390526001600160a01b0380831661012087015281166101408601525f86815260046020908152604090912086518155908601518691906118219060018301906002612156565b50604082015181600201556060820151816003019060026118439291906121f1565b506080820151600582015560a0820151600682015560c0820151600782015560e08201516008820180546001600160a01b0319166001600160a01b03909216919091179055610100820151600982019061189d9082612c31565b50610120820151600a820180546001600160a01b039283166001600160a01b031991821617909155610140840151600b84018054919093169116179055610160820151600c820155610180820151600d8201556101a0820151600e8201906119059082612c31565b50505f546001600160a01b03169050639ccb58d58761192760208b018b61259c565b8a6020016040518463ffffffff1660e01b815260040161194993929190612cec565b6020604051808303815f875af1158015611965573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119899190612a59565b6119a657604051630d8dbe2560e01b815260040160405180910390fd5b6119b660e0880160c0890161259c565b6001600160a01b03167fe31ba2ed37bce9c2bca28aabe3990572a1694b7a208f61e5cced4471fa33c8e587876119ef60208c018c61259c565b6040516119fe93929190612d0f565b60405180910390a250505050915091565b5f5f611a1a856107f1565b90505f8160a00151118590611a455760405163166b4d0360e01b815260040161063c91815260200190565b5060a08101518590428111611a765760405163142c294360e31b81526004810192909252602482015260440161063c565b50505f85815260066020526040902054611a918160016128f9565b5f8781526006602052604080822092909255610120840151915163caf9278560e01b815290916001600160a01b03169063caf9278590611ad99033908a908a90600401612d40565b5f604051808303815f875af1158015611af4573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611b1b9190810190612d62565b90505f73__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe604051806040016040528085805190602001205f1c8152602001868152506040518263ffffffff1660e01b8152600401611b729190612dd7565b602060405180830381865af4158015611b8d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bb191906128bf565b5f898152600560205260409020909150611bcb9082611ead565b5060019450877f7555a0b1b87fe36304326aed23f5c78102b63922b1141f8df7d4593eff2021dd838386604051611c0493929190612e07565b60405180910390a2505050509392505050565b611c1f611da9565b6001600160a01b038116611c4857604051631e4fbdf760e01b81525f600482015260240161063c565b611c5181611e3d565b50565b5f611c5d611da9565b6001600160a01b03821615801590611c8257505f546001600160a01b03838116911614155b8290611cad576040516375ac4eb760e11b81526001600160a01b03909116600482015260240161063c565b50505f80546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b690602001610b11565b5f611d08611da9565b6001600160a01b0382165f90815260036020526040902054829060ff1615611d4f5760405163b29d459560e01b81526001600160a01b03909116600482015260240161063c565b50506001600160a01b0381165f81815260036020908152604091829020805460ff19166001908117909155915192835290917fb8d368517268f297fff00825d67d098763117d061360d31027be5b2e1a59d4679101610b11565b33611ddb7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610f025760405163118cdaa760e01b815233600482015260240161063c565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610667565b611e3461207f565b611c51816120a4565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018210611eee576040516361c0541760e11b815260040160405180910390fd5b815f03611f0e576040516314b48df160e11b815260040160405180910390fd5b5f82815260038401602052604090205415611f3c576040516312c50cad60e11b815260040160405180910390fd5b825460018085015490611f509083906128f9565b611f5b826002612f0e565b1015611f6d57611f6a81612b73565b90505b60018501819055835f5b82811015612045578084901c60011660010361202a576040805180820182525f83815260028a0160209081529083902054825281018490529051632b0aac7f60e11b815273__$078c82ddf6c95d34ea184ef1dd6130d136$__9163561558fe91611fe49190600401612dd7565b602060405180830381865af4158015611fff573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061202391906128bf565b915061203d565b5f81815260028801602052604090208290555b600101611f77565b5061204f83612b73565b8087555f928352600287016020908152604080852084905596845260039097019096529390209390935550919050565b6120876120ac565b610f0257604051631afcd79f60e31b815260040160405180910390fd5b611c1f61207f565b5f6120b5611e04565b5468010000000000000000900460ff16919050565b604051806101c001604052805f81526020016120e461221f565b81526020015f81526020016120f761221f565b81526020015f81526020015f81526020015f81526020015f6001600160a01b03168152602001606081526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f81526020015f8152602001606081525090565b6001830191839082156121e1579160200282015f5b838211156121af57835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261216b565b80156121df5782816101000a81549063ffffffff02191690556004016020816003010492830192600103026121af565b505b506121ed92915061223d565b5090565b82600281019282156121e1579160200282015b828111156121e1578251825591602001919060010190612204565b60405180604001604052806002906020820280368337509192915050565b5b808211156121ed575f815560010161223e565b5f60208284031215612261575f5ffd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b8c81528b60208201528a60408201528960608201528860808201526001600160a01b03881660a082015261018060c08201525f6122d7610180830189612268565b6001600160a01b03881660e08401526001600160a01b03871661010084015285610120840152846101408401528281036101608401526123178185612268565b9f9e505050505050505050505050505050565b805f5b600281101561235257815163ffffffff1684526020938401939091019060010161232d565b50505050565b805f5b600281101561235257815184526020938401939091019060010161235b565b805182525f6020820151612391602085018261232a565b506040820151606084015260608201516123ae6080850182612358565b50608082015160c084015260a082015160e084015260c082015161010084015260e08201516123e96101208501826001600160a01b03169052565b50610100820151610200610140850152612407610200850182612268565b90506101208301516124256101608601826001600160a01b03169052565b506101408301516001600160a01b038116610180860152506101608301516101a08501526101808301516101c08501526101a08301518482036101e086015261246e8282612268565b95945050505050565b602081525f612489602083018461237a565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156124cd576124cd612490565b604052919050565b5f67ffffffffffffffff8211156124ee576124ee612490565b50601f01601f191660200190565b5f82601f83011261250b575f5ffd5b813561251e612519826124d5565b6124a4565b818152846020838601011115612532575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f6020828403121561255e575f5ffd5b813567ffffffffffffffff811115612574575f5ffd5b612580848285016124fc565b949350505050565b6001600160a01b0381168114611c51575f5ffd5b5f602082840312156125ac575f5ffd5b813561248981612588565b5f82601f8301126125c6575f5ffd5b813567ffffffffffffffff8111156125e0576125e0612490565b8060051b6125f0602082016124a4565b9182526020818501810192908101908684111561260b575f5ffd5b6020860192505b8383101561265157823567ffffffffffffffff811115612630575f5ffd5b61263f886020838a01016124fc565b83525060209283019290910190612612565b9695505050505050565b5f5f5f5f6080858703121561266e575f5ffd5b843561267981612588565b9350602085013561268981612588565b925060408501359150606085013567ffffffffffffffff8111156126ab575f5ffd5b6126b7878288016125b7565b91505092959194509250565b5f5f83601f8401126126d3575f5ffd5b50813567ffffffffffffffff8111156126ea575f5ffd5b602083019150836020828501011115612701575f5ffd5b9250929050565b5f5f5f6040848603121561271a575f5ffd5b83359250602084013567ffffffffffffffff811115612737575f5ffd5b612743868287016126c3565b9497909650939450505050565b5f5f5f5f5f60608688031215612764575f5ffd5b85359450602086013567ffffffffffffffff811115612781575f5ffd5b61278d888289016126c3565b909550935050604086013567ffffffffffffffff8111156127ac575f5ffd5b6127b8888289016126c3565b969995985093965092949392505050565b5f602082840312156127d9575f5ffd5b813567ffffffffffffffff8111156127ef575f5ffd5b612580848285016125b7565b5f5f6040838503121561280c575f5ffd5b82359150602083013561281e81612588565b809150509250929050565b5f60208284031215612839575f5ffd5b813567ffffffffffffffff81111561284f575f5ffd5b82016101208185031215612489575f5ffd5b828152604060208201525f612580604083018461237a565b600181811c9082168061288d57607f821691505b602082108103610a7757634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156128cf575f5ffd5b5051919050565b818382375f9101908152919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610667576106676128e5565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b848152836020820152606060408201525f61265160608301848661290c565b601f82111561299a57805f5260205f20601f840160051c810160208510156129785750805b601f840160051c820191505b81811015612997575f8155600101612984565b50505b505050565b67ffffffffffffffff8311156129b7576129b7612490565b6129cb836129c58354612879565b83612953565b5f601f8411600181146129fc575f85156129e55750838201355b5f19600387901b1c1916600186901b178355612997565b5f83815260208120601f198716915b82811015612a2b5786850135825560209485019460019092019101612a0b565b5086821015612a47575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f60208284031215612a69575f5ffd5b81518015158114612489575f5ffd5b602081525f61258060208301848661290c565b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612af857603f19878603018452612ae3858351612268565b94506020938401939190910190600101612ac7565b50929695505050505050565b803563ffffffff81168114612b17575f5ffd5b919050565b5f60208284031215612b2c575f5ffd5b61248982612b04565b805f5b60028110156123525763ffffffff612b4f83612b04565b1684526020938401939190910190600101612b38565b604081016106678284612b35565b5f60018201612b8457612b846128e5565b5060010190565b5f5f8335601e19843603018112612ba0575f5ffd5b83018035915067ffffffffffffffff821115612bba575f5ffd5b602001915036819003821315612701575f5ffd5b868152856020820152608060408201525f612bed60808301868861290c565b8281036060840152612c0081858761290c565b9998505050505050505050565b5f5f60408385031215612c1e575f5ffd5b8251602084015190925061281e81612588565b815167ffffffffffffffff811115612c4b57612c4b612490565b612c5f81612c598454612879565b84612953565b6020601f821160018114612c91575f8315612c7a5750848201515b5f19600385901b1c1916600184901b178455612997565b5f84815260208120601f198516915b82811015612cc05787850151825560209485019460019092019101612ca0565b5084821015612cdd57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b8381526001600160a01b0383166020820152608081016125806040830184612b35565b838152606060208201525f612d27606083018561237a565b90506001600160a01b0383166040830152949350505050565b6001600160a01b0384168152604060208201525f61246e60408301848661290c565b5f60208284031215612d72575f5ffd5b815167ffffffffffffffff811115612d88575f5ffd5b8201601f81018413612d98575f5ffd5b8051612da6612519826124d5565b818152856020838501011115612dba575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b6040810181835f5b6002811015612dfe578151835260209283019290910190600101612ddf565b50505092915050565b606081525f612e196060830186612268565b60208301949094525060400152919050565b6001815b6001841115612e6657808504811115612e4a57612e4a6128e5565b6001841615612e5857908102905b60019390931c928002612e2f565b935093915050565b5f82612e7c57506001610667565b81612e8857505f610667565b8160018114612e9e5760028114612ea857612ec4565b6001915050610667565b60ff841115612eb957612eb96128e5565b50506001821b610667565b5060208310610133831016604e8410600b8410161715612ee7575081810a610667565b612ef35f198484612e2b565b805f1904821115612f0657612f066128e5565b029392505050565b5f6124898383612e6e56fea26469706673582212208e38d9a14a92dfd1c9d8d96a51b9ca6d95dd63685c684b18e99a8e1e20af1b0364736f6c634300081b00339016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00";
|
|
19
|
+
static readonly bytecode = "0x608060405234801561000f575f5ffd5b5060405161366038038061366083398101604081905261002e916104c2565b61003a84848484610043565b505050506106c4565b5f5160206136405f395f51905f52805468010000000000000000810460ff1615906001600160401b03165f811580156100795750825b90505f826001600160401b031660011480156100945750303b155b9050811580156100a2575080155b156100c05760405163f92ee8a960e01b815260040160405180910390fd5b84546001600160401b031916600117855583156100ee57845460ff60401b1916680100000000000000001785555b6100f733610190565b610100876101a4565b5061010a886101ec565b506101148661029c565b505f5160206136205f395f51905f52546001600160a01b038a811691161461013f5761013f89610346565b831561018557845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b610198610380565b6101a1816103bd565b50565b5f6101ad6103c5565b5060018181556040518281527fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b523552906020015b60405180910390a1919050565b5f6101f56103c5565b6001600160a01b0382161580159061021a57505f546001600160a01b03838116911614155b829061024a576040516375ac4eb760e11b81526001600160a01b0390911660048201526024015b60405180910390fd5b50505f80546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b6906020016101df565b5f6102a56103c5565b81515f5b8181101561030457600160088583815181106102c7576102c7610616565b60200260200101516040516102dc919061062a565b908152604051908190036020019020805491151560ff199092169190911790556001016102a9565b50600191507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81836040516103389190610640565b60405180910390a150919050565b61034e6103c5565b6001600160a01b03811661037757604051631e4fbdf760e01b81525f6004820152602401610241565b6101a18161040d565b5f5160206136405f395f51905f525468010000000000000000900460ff166103bb57604051631afcd79f60e31b815260040160405180910390fd5b565b61034e610380565b336103e45f5160206136205f395f51905f52546001600160a01b031690565b6001600160a01b0316146103bb5760405163118cdaa760e01b8152336004820152602401610241565b5f5160206136205f395f51905f5280546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b6001600160a01b03811681146101a1575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b03811182821017156104ba576104ba61047e565b604052919050565b5f5f5f5f608085870312156104d5575f5ffd5b84516104e08161046a565b60208601519094506104f18161046a565b6040860151606087015191945092506001600160401b03811115610513575f5ffd5b8501601f81018713610523575f5ffd5b80516001600160401b0381111561053c5761053c61047e565b8060051b61054c60208201610492565b9182526020818401810192908101908a841115610567575f5ffd5b6020850192505b838310156106075782516001600160401b0381111561058b575f5ffd5b8501603f81018c1361059b575f5ffd5b60208101516001600160401b038111156105b7576105b761047e565b6105ca601f8201601f1916602001610492565b8181526040838301018e10156105de575f5ffd5b8160408401602083015e5f6020838301015280855250505060208201915060208301925061056e565b979a9699509497505050505050565b634e487b7160e01b5f52603260045260245ffd5b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b828110156106b857603f19878603018452815180518087528060208301602089015e5f602082890101526020601f19601f83011688010196505050602082019150602084019350600181019050610666565b50929695505050505050565b612f4f806106d15f395ff3fe6080604052600436106101af575f3560e01c80638dcdd86b116100e7578063cf0f34c411610087578063ddef9ea111610062578063ddef9ea11461055c578063f2fde38b146105a3578063fad8e111146105c2578063fd2f3d01146105e1575f5ffd5b8063cf0f34c4146104fd578063d002e1271461051c578063d016b08d1461053d575f5ffd5b8063b68fd1be116100c2578063b68fd1be1461047c578063c4ccafa21461049b578063cb649617146104c9578063cbd16872146104de575f5ffd5b80638dcdd86b146104145780639c8570c814610432578063b3c88d6714610451575f5ffd5b80634fc77264116101525780636db5c8fd1161012d5780636db5c8fd14610390578063715018a6146103a55780637edcd7ab146103b95780638da5cb5b146103d8575f5ffd5b80634fc7726414610331578063503f3288146103505780635314e9fa14610371575f5ffd5b80634017daf01161018d5780634017daf014610265578063406ed35c1461029c578063459d9294146102c85780634e92ec6314610312575f5ffd5b80630e092fc3146101b35780630ef81b2f146101e557806310bc628114610231575b5f5ffd5b3480156101be575f5ffd5b506101d26101cd366004612251565b610600565b6040519081526020015b60405180910390f35b3480156101f0575f5ffd5b506102196101ff366004612251565b5f908152600760205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016101dc565b34801561023c575f5ffd5b5061021961024b366004612251565b60076020525f90815260409020546001600160a01b031681565b348015610270575f5ffd5b5061028461027f366004612251565b61066d565b6040516101dc9c9b9a99989796959493929190612296565b3480156102a7575f5ffd5b506102bb6102b6366004612251565b6107f1565b6040516101dc9190612477565b3480156102d3575f5ffd5b506103026102e236600461254e565b805160208183018101805160088252928201919093012091525460ff1681565b60405190151581526020016101dc565b34801561031d575f5ffd5b5061030261032c366004612251565b610a7d565b34801561033c575f5ffd5b5061030261034b36600461259c565b610b1e565b34801561035b575f5ffd5b5061036f61036a36600461265b565b610bc2565b005b34801561037c575f5ffd5b5061030261038b366004612708565b610d2d565b34801561039b575f5ffd5b506101d260015481565b3480156103b0575f5ffd5b5061036f610ef1565b3480156103c4575f5ffd5b506103026103d3366004612750565b610f04565b3480156103e3575f5ffd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316610219565b34801561041f575f5ffd5b505f54610219906001600160a01b031681565b34801561043d575f5ffd5b5061030261044c366004612750565b6110bc565b34801561045c575f5ffd5b506101d261046b366004612251565b60066020525f908152604090205481565b348015610487575f5ffd5b506103026104963660046127c9565b61125e565b3480156104a6575f5ffd5b506103026104b536600461259c565b60036020525f908152604090205460ff1681565b3480156104d4575f5ffd5b506101d260025481565b3480156104e9575f5ffd5b506103026104f83660046127fb565b611308565b348015610508575f5ffd5b50610302610517366004612251565b6113c9565b61052f61052a366004612829565b611408565b6040516101dc929190612861565b348015610548575f5ffd5b50610302610557366004612708565b611a0f565b348015610567575f5ffd5b5061058e610576366004612251565b60056020525f90815260409020805460019091015482565b604080519283526020830191909152016101dc565b3480156105ae575f5ffd5b5061036f6105bd36600461259c565b611c17565b3480156105cd575f5ffd5b506103026105dc36600461259c565b611c54565b3480156105ec575f5ffd5b506103026105fb36600461259c565b611cff565b5f8181526004602052604081206008015482906001600160a01b03166106455760405163cd6f4a4f60e01b815260040161063c91815260200190565b60405180910390fd5b505f828152600560209081526040808320600181015484526002019091529020545b92915050565b60046020525f90815260409020805460028201546005830154600684015460078501546008860154600987018054969795969495939492936001600160a01b03909216926106ba90612879565b80601f01602080910402602001604051908101604052809291908181526020018280546106e690612879565b80156107315780601f1061070857610100808354040283529160200191610731565b820191905f5260205f20905b81548152906001019060200180831161071457829003601f168201915b505050600a840154600b850154600c860154600d870154600e8801805497986001600160a01b0395861698949095169650919450929161077090612879565b80601f016020809104026020016040519081016040528092919081815260200182805461079c90612879565b80156107e75780601f106107be576101008083540402835291602001916107e7565b820191905f5260205f20905b8154815290600101906020018083116107ca57829003601f168201915b505050505090508c565b6107f96120ca565b5f82815260046020908152604080832081516101c0810183528154815282518084019384905290949193850192909160018501916002918390855b82829054906101000a900463ffffffff1663ffffffff168152602001906004019060208260030104928301926001038202915080841161083457505050928452505050600282810154602083015260408051808201808352919093019291600385019182845b81548152602001906001019080831161089a57505050918352505060058201546020820152600682015460408201526007820154606082015260088201546001600160a01b0316608082015260098201805460a0909201916108fb90612879565b80601f016020809104026020016040519081016040528092919081815260200182805461092790612879565b80156109725780601f1061094957610100808354040283529160200191610972565b820191905f5260205f20905b81548152906001019060200180831161095557829003601f168201915b5050509183525050600a8201546001600160a01b039081166020830152600b830154166040820152600c8201546060820152600d8201546080820152600e8201805460a0909201916109c390612879565b80601f01602080910402602001604051908101604052809291908181526020018280546109ef90612879565b8015610a3a5780601f10610a1157610100808354040283529160200191610a3a565b820191905f5260205f20905b815481529060010190602001808311610a1d57829003601f168201915b5050509190925250505060e081015190915082906001600160a01b0316610a775760405163cd6f4a4f60e01b815260040161063c91815260200190565b50919050565b5f610a86611da9565b5f8281526007602052604090205482906001600160a01b0316610abf576040516381c4951960e01b815260040161063c91815260200190565b50505f818152600760205260409081902080546001600160a01b0319169055516001907f104eb329a192aef26eddea07c2af5ad2587792e62b37ed4045b6ba59bc5540fc90610b119084815260200190565b60405180910390a1919050565b5f610b27611da9565b6001600160a01b0382165f90815260036020526040902054829060ff16610b6d576040516321ac7c5f60e01b81526001600160a01b03909116600482015260240161063c565b50506001600160a01b0381165f81815260036020908152604091829020805460ff1916905590519182526001917f56070b80bd617fcd2f7a284861edb488830a38f9dedcd77b2cb2f4eac17743e79101610b11565b5f610bcb611e04565b805490915060ff68010000000000000000820416159067ffffffffffffffff165f81158015610bf75750825b90505f8267ffffffffffffffff166001148015610c135750303b155b905081158015610c21575080155b15610c3f5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610c7357845468ff00000000000000001916680100000000000000001785555b610c7c33611e2c565b610c85876113c9565b50610c8f88611c54565b50610c998661125e565b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b038a8116911614610cd757610cd789611c17565b8315610d2257845468ff000000000000000019168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b5f5f610d38856107f1565b90508060a001515f148590610d6357604051633e26347b60e21b815260040161063c91815260200190565b50606081015151421015610d8a5760405163a0750b5160e01b815260040160405180910390fd5b606081015160200151421115610db357604051633d82a7cd60e11b815260040160405180910390fd5b5f8054604051630e82f3b760e41b8152600481018890526001600160a01b039091169063e82f3b7090602401602060405180830381865afa158015610dfa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e1e91906128bf565b9050808585604051610e319291906128d6565b604051809103902014610e5757604051630d8dbe2560e01b815260040160405180910390fd5b5f826080015142610e6891906128f9565b5f888152600460205260409081902060060182905551909150610e8e90879087906128d6565b604080519182900382205f8a8152600460205291909120600c01557f50df9e2c9fc5a7f4a07e403fa0300b88fcc8c6943bdff4b8ae71f55b7fd95f8990610edc90899084908a908a90612934565b60405180910390a15060019695505050505050565b610ef9611da9565b610f025f611e3d565b565b5f5f610f0f876107f1565b90505f8160a00151118790610f3a5760405163166b4d0360e01b815260040161063c91815260200190565b506101808101518790610f635760405163032c20ef60e21b815260040161063c91815260200190565b506101a081015151879015610f8e576040516360ec327960e01b815260040161063c91815260200190565b505f878152600460205260409020600e01610faa86888361299f565b508061014001516001600160a01b0316632f0e1bbf888888604051610fd09291906128d6565b6040519081900381207fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168252611013929189908990600401612934565b602060405180830381865afa15801561102e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110529190612a59565b915085858361107657604051632f9f8ab960e01b815260040161063c929190612a78565b5050867f02a24c3402076671e129905ba4579d884b1f94ded1c07fc03d26d11b60bca16987876040516110aa929190612a78565b60405180910390a25095945050505050565b5f5f6110c7876107f1565b90505f8160a001511187906110f25760405163166b4d0360e01b815260040161063c91815260200190565b5060a0810151879042811115611124576040516370c05fb960e11b81526004810192909252602482015260440161063c565b505061018081015187901561114f57604051637eb9cea960e11b815260040161063c91815260200190565b505f86866040516111619291906128d6565b604080519182900382205f8b815260046020819052929020600d0181905560e0850151632f0e1bbf60e01b84529093506001600160a01b031691632f0e1bbf916111b3918c9186918b918b9101612934565b6020604051808303815f875af11580156111cf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f39190612a59565b925086868461121757604051632f9f8ab960e01b815260040161063c929190612a78565b5050877f7cc27e4a5626cbc4f8ba1a927b0448de55e6a114bc87660331270c5109ade071888860405161124b929190612a78565b60405180910390a2505095945050505050565b5f611267611da9565b81515f5b818110156112c65760016008858381518110611289576112896128ab565b602002602001015160405161129e9190612a8b565b908152604051908190036020019020805491151560ff1990921691909117905560010161126b565b50600191507f027b83cad653f54850fef6faa8c705f73a53e7f8de50a3a33ac1e0e3a5c0be81836040516112fa9190612aa1565b60405180910390a150919050565b5f611311611da9565b6001600160a01b0382161580159061134257505f838152600760205260409020546001600160a01b03838116911614155b8390611364576040516381c4951960e01b815260040161063c91815260200190565b50505f8281526007602090815260409182902080546001600160a01b0319166001600160a01b03851617905590518381526001917ff4041a3f914dac3bc9bf5f003ba41f28dbb84abe42f4e07c76266f5c8ceecb69910160405180910390a192915050565b5f6113d2611da9565b5060018181556040518281527fba0716ba1ee2ea8ecc4c64119b4537cdb42a99d82acf92af5b87607b8b52355290602001610b11565b5f6114116120ca565b348061143357604051638c4fcd9360e01b815260040161063c91815260200190565b506114446040840160208501612b1c565b63ffffffff1661145a6060850160408601612b1c565b63ffffffff161015801561148257505f61147a6040850160208601612b1c565b63ffffffff16115b83602001906114a557604051633744092160e21b815260040161063c9190612b65565b5060608301356080840135108015906114c2575042608084013510155b6114df576040516308594fb760e01b815260040160405180910390fd5b5f8360a001351180156114f857506001548360a0013511155b8360a001359061151e576040516313b783af60e21b815260040161063c91815260200190565b5060035f61153260e0860160c0870161259c565b6001600160a01b0316815260208101919091526040015f205460ff1661155e60e0850160c0860161259c565b906115885760405163295a6a6f60e11b81526001600160a01b03909116600482015260240161063c565b5060028054925082905f61159b83612b73565b9091555050604080514460208201529081018390525f9060600160408051601f198184030181529181528151602092830120808552815180830183529093509186019060029083908390808284375f9201919091525050506020830152436040808401919091528051808201825290606086019060029083908390808284375f9201829052506060860193909352505060a080860135608085015283015261164960e0850160c0860161259c565b6001600160a01b031660e08084019190915261166790850185612b8b565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506101008701949094525050506101608301819052610180830181905260408051602081019091528181526101a0840152806116d760e0870160c0880161259c565b6001600160a01b031663a61d7e3e86856116f460e08b018b612b8b565b6117026101008d018d612b8b565b6040518763ffffffff1660e01b815260040161172396959493929190612bce565b60408051808303815f875af115801561173e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117629190612c0d565b5f8281526007602052604090205491935091506001600160a01b031682816117a0576040516381c4951960e01b815260040161063c91815260200190565b50816001600160a01b0381166117d557604051633ca1cee360e11b81526001600160a01b03909116600482015260240161063c565b5060c085018390526001600160a01b0380831661012087015281166101408601525f86815260046020908152604090912086518155908601518691906118219060018301906002612156565b50604082015181600201556060820151816003019060026118439291906121f1565b506080820151600582015560a0820151600682015560c0820151600782015560e08201516008820180546001600160a01b0319166001600160a01b03909216919091179055610100820151600982019061189d9082612c31565b50610120820151600a820180546001600160a01b039283166001600160a01b031991821617909155610140840151600b84018054919093169116179055610160820151600c820155610180820151600d8201556101a0820151600e8201906119059082612c31565b50505f546001600160a01b03169050639ccb58d58761192760208b018b61259c565b8a6020016040518463ffffffff1660e01b815260040161194993929190612cec565b6020604051808303815f875af1158015611965573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119899190612a59565b6119a657604051630d8dbe2560e01b815260040160405180910390fd5b6119b660e0880160c0890161259c565b6001600160a01b03167fe31ba2ed37bce9c2bca28aabe3990572a1694b7a208f61e5cced4471fa33c8e587876119ef60208c018c61259c565b6040516119fe93929190612d0f565b60405180910390a250505050915091565b5f5f611a1a856107f1565b90505f8160a00151118590611a455760405163166b4d0360e01b815260040161063c91815260200190565b5060a08101518590428111611a765760405163142c294360e31b81526004810192909252602482015260440161063c565b50505f85815260066020526040902054611a918160016128f9565b5f8781526006602052604080822092909255610120840151915163caf9278560e01b815290916001600160a01b03169063caf9278590611ad99033908a908a90600401612d40565b5f604051808303815f875af1158015611af4573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611b1b9190810190612d62565b90505f73__$078c82ddf6c95d34ea184ef1dd6130d136$__63561558fe604051806040016040528085805190602001205f1c8152602001868152506040518263ffffffff1660e01b8152600401611b729190612dd7565b602060405180830381865af4158015611b8d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611bb191906128bf565b5f898152600560205260409020909150611bcb9082611ead565b5060019450877f7555a0b1b87fe36304326aed23f5c78102b63922b1141f8df7d4593eff2021dd838386604051611c0493929190612e07565b60405180910390a2505050509392505050565b611c1f611da9565b6001600160a01b038116611c4857604051631e4fbdf760e01b81525f600482015260240161063c565b611c5181611e3d565b50565b5f611c5d611da9565b6001600160a01b03821615801590611c8257505f546001600160a01b03838116911614155b8290611cad576040516375ac4eb760e11b81526001600160a01b03909116600482015260240161063c565b50505f80546001600160a01b0319166001600160a01b0383169081179091556040519081526001907f80052b810d39120cf6c976cca504a21703f585521dc7a41c6d241090e6c579b690602001610b11565b5f611d08611da9565b6001600160a01b0382165f90815260036020526040902054829060ff1615611d4f5760405163b29d459560e01b81526001600160a01b03909116600482015260240161063c565b50506001600160a01b0381165f81815260036020908152604091829020805460ff19166001908117909155915192835290917fb8d368517268f297fff00825d67d098763117d061360d31027be5b2e1a59d4679101610b11565b33611ddb7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614610f025760405163118cdaa760e01b815233600482015260240161063c565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610667565b611e3461207f565b611c51816120a4565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b5f7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000018210611eee576040516361c0541760e11b815260040160405180910390fd5b815f03611f0e576040516314b48df160e11b815260040160405180910390fd5b5f82815260038401602052604090205415611f3c576040516312c50cad60e11b815260040160405180910390fd5b825460018085015490611f509083906128f9565b611f5b826002612f0e565b1015611f6d57611f6a81612b73565b90505b60018501819055835f5b82811015612045578084901c60011660010361202a576040805180820182525f83815260028a0160209081529083902054825281018490529051632b0aac7f60e11b815273__$078c82ddf6c95d34ea184ef1dd6130d136$__9163561558fe91611fe49190600401612dd7565b602060405180830381865af4158015611fff573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061202391906128bf565b915061203d565b5f81815260028801602052604090208290555b600101611f77565b5061204f83612b73565b8087555f928352600287016020908152604080852084905596845260039097019096529390209390935550919050565b6120876120ac565b610f0257604051631afcd79f60e31b815260040160405180910390fd5b611c1f61207f565b5f6120b5611e04565b5468010000000000000000900460ff16919050565b604051806101c001604052805f81526020016120e461221f565b81526020015f81526020016120f761221f565b81526020015f81526020015f81526020015f81526020015f6001600160a01b03168152602001606081526020015f6001600160a01b031681526020015f6001600160a01b031681526020015f81526020015f8152602001606081525090565b6001830191839082156121e1579160200282015f5b838211156121af57835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030261216b565b80156121df5782816101000a81549063ffffffff02191690556004016020816003010492830192600103026121af565b505b506121ed92915061223d565b5090565b82600281019282156121e1579160200282015b828111156121e1578251825591602001919060010190612204565b60405180604001604052806002906020820280368337509192915050565b5b808211156121ed575f815560010161223e565b5f60208284031215612261575f5ffd5b5035919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b8c81528b60208201528a60408201528960608201528860808201526001600160a01b03881660a082015261018060c08201525f6122d7610180830189612268565b6001600160a01b03881660e08401526001600160a01b03871661010084015285610120840152846101408401528281036101608401526123178185612268565b9f9e505050505050505050505050505050565b805f5b600281101561235257815163ffffffff1684526020938401939091019060010161232d565b50505050565b805f5b600281101561235257815184526020938401939091019060010161235b565b805182525f6020820151612391602085018261232a565b506040820151606084015260608201516123ae6080850182612358565b50608082015160c084015260a082015160e084015260c082015161010084015260e08201516123e96101208501826001600160a01b03169052565b50610100820151610200610140850152612407610200850182612268565b90506101208301516124256101608601826001600160a01b03169052565b506101408301516001600160a01b038116610180860152506101608301516101a08501526101808301516101c08501526101a08301518482036101e086015261246e8282612268565b95945050505050565b602081525f612489602083018461237a565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff811182821017156124cd576124cd612490565b604052919050565b5f67ffffffffffffffff8211156124ee576124ee612490565b50601f01601f191660200190565b5f82601f83011261250b575f5ffd5b813561251e612519826124d5565b6124a4565b818152846020838601011115612532575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f6020828403121561255e575f5ffd5b813567ffffffffffffffff811115612574575f5ffd5b612580848285016124fc565b949350505050565b6001600160a01b0381168114611c51575f5ffd5b5f602082840312156125ac575f5ffd5b813561248981612588565b5f82601f8301126125c6575f5ffd5b813567ffffffffffffffff8111156125e0576125e0612490565b8060051b6125f0602082016124a4565b9182526020818501810192908101908684111561260b575f5ffd5b6020860192505b8383101561265157823567ffffffffffffffff811115612630575f5ffd5b61263f886020838a01016124fc565b83525060209283019290910190612612565b9695505050505050565b5f5f5f5f6080858703121561266e575f5ffd5b843561267981612588565b9350602085013561268981612588565b925060408501359150606085013567ffffffffffffffff8111156126ab575f5ffd5b6126b7878288016125b7565b91505092959194509250565b5f5f83601f8401126126d3575f5ffd5b50813567ffffffffffffffff8111156126ea575f5ffd5b602083019150836020828501011115612701575f5ffd5b9250929050565b5f5f5f6040848603121561271a575f5ffd5b83359250602084013567ffffffffffffffff811115612737575f5ffd5b612743868287016126c3565b9497909650939450505050565b5f5f5f5f5f60608688031215612764575f5ffd5b85359450602086013567ffffffffffffffff811115612781575f5ffd5b61278d888289016126c3565b909550935050604086013567ffffffffffffffff8111156127ac575f5ffd5b6127b8888289016126c3565b969995985093965092949392505050565b5f602082840312156127d9575f5ffd5b813567ffffffffffffffff8111156127ef575f5ffd5b612580848285016125b7565b5f5f6040838503121561280c575f5ffd5b82359150602083013561281e81612588565b809150509250929050565b5f60208284031215612839575f5ffd5b813567ffffffffffffffff81111561284f575f5ffd5b82016101208185031215612489575f5ffd5b828152604060208201525f612580604083018461237a565b600181811c9082168061288d57607f821691505b602082108103610a7757634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b5f602082840312156128cf575f5ffd5b5051919050565b818382375f9101908152919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610667576106676128e5565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b848152836020820152606060408201525f61265160608301848661290c565b601f82111561299a57805f5260205f20601f840160051c810160208510156129785750805b601f840160051c820191505b81811015612997575f8155600101612984565b50505b505050565b67ffffffffffffffff8311156129b7576129b7612490565b6129cb836129c58354612879565b83612953565b5f601f8411600181146129fc575f85156129e55750838201355b5f19600387901b1c1916600186901b178355612997565b5f83815260208120601f198716915b82811015612a2b5786850135825560209485019460019092019101612a0b565b5086821015612a47575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b5f60208284031215612a69575f5ffd5b81518015158114612489575f5ffd5b602081525f61258060208301848661290c565b5f82518060208501845e5f920191825250919050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015612af857603f19878603018452612ae3858351612268565b94506020938401939190910190600101612ac7565b50929695505050505050565b803563ffffffff81168114612b17575f5ffd5b919050565b5f60208284031215612b2c575f5ffd5b61248982612b04565b805f5b60028110156123525763ffffffff612b4f83612b04565b1684526020938401939190910190600101612b38565b604081016106678284612b35565b5f60018201612b8457612b846128e5565b5060010190565b5f5f8335601e19843603018112612ba0575f5ffd5b83018035915067ffffffffffffffff821115612bba575f5ffd5b602001915036819003821315612701575f5ffd5b868152856020820152608060408201525f612bed60808301868861290c565b8281036060840152612c0081858761290c565b9998505050505050505050565b5f5f60408385031215612c1e575f5ffd5b8251602084015190925061281e81612588565b815167ffffffffffffffff811115612c4b57612c4b612490565b612c5f81612c598454612879565b84612953565b6020601f821160018114612c91575f8315612c7a5750848201515b5f19600385901b1c1916600184901b178455612997565b5f84815260208120601f198516915b82811015612cc05787850151825560209485019460019092019101612ca0565b5084821015612cdd57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b8381526001600160a01b0383166020820152608081016125806040830184612b35565b838152606060208201525f612d27606083018561237a565b90506001600160a01b0383166040830152949350505050565b6001600160a01b0384168152604060208201525f61246e60408301848661290c565b5f60208284031215612d72575f5ffd5b815167ffffffffffffffff811115612d88575f5ffd5b8201601f81018413612d98575f5ffd5b8051612da6612519826124d5565b818152856020838501011115612dba575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b6040810181835f5b6002811015612dfe578151835260209283019290910190600101612ddf565b50505092915050565b606081525f612e196060830186612268565b60208301949094525060400152919050565b6001815b6001841115612e6657808504811115612e4a57612e4a6128e5565b6001841615612e5857908102905b60019390931c928002612e2f565b935093915050565b5f82612e7c57506001610667565b81612e8857505f610667565b8160018114612e9e5760028114612ea857612ec4565b6001915050610667565b60ff841115612eb957612eb96128e5565b50506001821b610667565b5060208310610133831016604e8410600b8410161715612ee7575081810a610667565b612ef35f198484612e2b565b805f1904821115612f0657612f066128e5565b029392505050565b5f6124898383612e6e56fea2646970667358221220c25944d9641657712a195463e15d49cc06fc96e13cf6311ea233f6ae0c4dae3a64736f6c634300081b00339016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300f0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00";
|
|
20
20
|
static readonly abi: readonly [{
|
|
21
21
|
readonly inputs: readonly [{
|
|
22
22
|
readonly internalType: "address";
|