@mapprotocol/common-contracts 0.1.0 → 0.2.0
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/README.md +114 -58
- package/artifacts/contracts/AuthorityManager.sol/AuthorityManager.json +2 -2
- package/artifacts/contracts/base/{BaseImplemention.sol → BaseImplementation.sol}/BaseImplementation.json +1 -1
- package/contracts/AuthorityManager.sol +1 -1
- package/package.json +15 -3
- package/typechain-types/contracts/base/{BaseImplemention.sol/BaseImplementation.ts → BaseImplementation.ts} +1 -1
- package/typechain-types/contracts/base/index.ts +1 -2
- package/typechain-types/factories/@openzeppelin/contracts/access/manager/AccessManager__factory.ts +1 -1
- package/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts +1 -1
- package/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.ts +1 -1
- package/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.ts +1 -1
- package/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.ts +1 -1
- package/typechain-types/factories/contracts/AuthorityManager__factory.ts +1 -1
- package/typechain-types/factories/contracts/base/{BaseImplemention.sol/BaseImplementation__factory.ts → BaseImplementation__factory.ts} +1 -1
- package/typechain-types/factories/contracts/base/index.ts +1 -1
- package/typechain-types/index.ts +2 -2
- package/utils/addressCodec.ts +52 -0
- package/utils/deployment.ts +81 -0
- package/utils/index.ts +25 -0
- package/utils/tronHelper.ts +80 -0
- package/typechain-types/contracts/base/BaseImplemention.sol/index.ts +0 -4
- package/typechain-types/factories/contracts/base/BaseImplemention.sol/index.ts +0 -4
- /package/contracts/base/{BaseImplemention.sol → BaseImplementation.sol} +0 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @mapprotocol/common-contracts
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Shared smart contracts and TypeScript utilities for MAP Protocol's multi-chain infrastructure.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
@@ -8,100 +8,156 @@ Common smart contracts library for MAP Protocol.
|
|
|
8
8
|
npm install @mapprotocol/common-contracts
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
## Solidity Contracts
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
### BaseImplementation
|
|
14
|
+
|
|
15
|
+
Abstract base for all upgradeable protocol contracts. Combines UUPS proxy, pausable, and access control in one inheritance.
|
|
16
|
+
|
|
17
|
+
```solidity
|
|
18
|
+
import "@mapprotocol/common-contracts/contracts/base/BaseImplementation.sol";
|
|
19
|
+
|
|
20
|
+
contract MyContract is BaseImplementation {
|
|
21
|
+
function initialize(address _admin) public initializer {
|
|
22
|
+
__BaseImplementation_init(_admin);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
15
25
|
```
|
|
16
26
|
|
|
17
|
-
|
|
27
|
+
**Includes:**
|
|
28
|
+
- `UUPSUpgradeable` — proxy upgrade pattern
|
|
29
|
+
- `PausableUpgradeable` — emergency pause via `trigger()`
|
|
30
|
+
- `AccessManagedUpgradeable` — role-based function access
|
|
31
|
+
- `getImplementation()` — read current implementation address
|
|
18
32
|
|
|
19
|
-
###
|
|
33
|
+
### AuthorityManager
|
|
20
34
|
|
|
21
|
-
|
|
35
|
+
Extended `AccessManager` with enumerable role members. One instance per chain controls all protocol contracts.
|
|
22
36
|
|
|
23
37
|
```solidity
|
|
24
|
-
import "@mapprotocol/common-contracts/contracts/base/BaseImplemention.sol";
|
|
25
38
|
import "@mapprotocol/common-contracts/contracts/AuthorityManager.sol";
|
|
26
39
|
```
|
|
27
40
|
|
|
28
|
-
|
|
41
|
+
**Key functions:**
|
|
42
|
+
- `grantRole(roleId, account, delay)` — assign role
|
|
43
|
+
- `revokeRole(roleId, account)` — remove role
|
|
44
|
+
- `setTargetFunctionRole(target, selectors, roleId)` — restrict contract functions to a role
|
|
45
|
+
- `getRoleMembers(roleId)` — list all members of a role
|
|
46
|
+
|
|
47
|
+
## TypeScript Utilities
|
|
29
48
|
|
|
30
|
-
|
|
49
|
+
### Deployment
|
|
31
50
|
|
|
32
51
|
```typescript
|
|
33
|
-
import {
|
|
34
|
-
import { ethers } from "ethers";
|
|
52
|
+
import { getDeploymentByKey, saveDeployment, resolveDeploymentEnv } from "@mapprotocol/common-contracts/utils/deployment";
|
|
35
53
|
|
|
36
|
-
//
|
|
37
|
-
const
|
|
38
|
-
const baseContract = await BaseImplement__factory.deploy(signer);
|
|
54
|
+
// Read deployed address (defaults to <cwd>/deployments/deploy.json)
|
|
55
|
+
const addr = await getDeploymentByKey("Bsc", "Gateway");
|
|
39
56
|
|
|
40
|
-
//
|
|
41
|
-
const
|
|
42
|
-
|
|
57
|
+
// With custom suffix and path
|
|
58
|
+
const addr = await getDeploymentByKey("Bsc", "Gateway", { suffix: "main", basePath: "./my-deployments" });
|
|
59
|
+
|
|
60
|
+
// Save deployment
|
|
61
|
+
await saveDeployment("Bsc", "Gateway", "0x...");
|
|
43
62
|
```
|
|
44
63
|
|
|
45
|
-
|
|
64
|
+
### Tron Interaction
|
|
46
65
|
|
|
47
|
-
|
|
48
|
-
|
|
66
|
+
```typescript
|
|
67
|
+
import { createTronWeb, tronDeploy, getTronContract, tronToHex, tronFromHex } from "@mapprotocol/common-contracts/utils/tronHelper";
|
|
49
68
|
|
|
50
|
-
|
|
51
|
-
|
|
69
|
+
// Address conversion (pure, no RPC needed)
|
|
70
|
+
const hex = tronToHex("TXyz..."); // -> "0x..."
|
|
71
|
+
const base58 = tronFromHex("0x..."); // -> "TXyz..."
|
|
52
72
|
|
|
53
|
-
|
|
73
|
+
// Deploy contract on Tron
|
|
74
|
+
const tronWeb = createTronWeb({ rpcUrl: "https://api.trongrid.io", privateKey: "..." });
|
|
75
|
+
const addr = await tronDeploy(tronWeb, artifacts, "MyContract", [arg1, arg2]);
|
|
54
76
|
|
|
55
|
-
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
- **TypeScript Support**: Full TypeChain generated types for type-safe development
|
|
77
|
+
// Read-only (no privateKey needed)
|
|
78
|
+
const readOnly = createTronWeb({ rpcUrl: "https://api.trongrid.io" });
|
|
79
|
+
const contract = await getTronContract(readOnly, artifacts, "MyContract", addr);
|
|
80
|
+
```
|
|
60
81
|
|
|
61
|
-
|
|
82
|
+
### Address Encoding
|
|
62
83
|
|
|
63
|
-
|
|
84
|
+
```typescript
|
|
85
|
+
import { addressToHex, isTronAddress, isSolanaChain } from "@mapprotocol/common-contracts/utils/addressCodec";
|
|
64
86
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
87
|
+
// Auto-detect format and convert to hex
|
|
88
|
+
addressToHex("0xAbC..."); // EVM -> lowercase hex
|
|
89
|
+
addressToHex("TXyz..."); // Tron -> extract 20-byte address
|
|
90
|
+
addressToHex("So11111..."); // Solana -> full base58 decode
|
|
91
|
+
|
|
92
|
+
// Type checks
|
|
93
|
+
isTronAddress("TXyz..."); // true (validates 0x41 prefix byte)
|
|
94
|
+
isSolanaChain("Sol"); // true
|
|
70
95
|
```
|
|
71
96
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
97
|
+
## Forge Script Base
|
|
98
|
+
|
|
99
|
+
For monorepo projects, `script/Base.s.sol` provides deployment primitives:
|
|
100
|
+
|
|
101
|
+
```solidity
|
|
102
|
+
import {BaseScript} from "../../common/script/Base.s.sol";
|
|
103
|
+
|
|
104
|
+
contract MyDeploy is BaseScript {
|
|
105
|
+
function run() public broadcast {
|
|
106
|
+
// CREATE2 factory deployment (deterministic address)
|
|
107
|
+
address addr = deployByFactory("my_salt", type(MyContract).creationCode, abi.encode(arg));
|
|
108
|
+
|
|
109
|
+
// Check factory availability
|
|
110
|
+
require(isFactoryAvailable(), "no factory on this chain");
|
|
111
|
+
|
|
112
|
+
// UUPS proxy upgrade
|
|
113
|
+
upgradeProxy(proxyAddr, newImplAddr);
|
|
114
|
+
|
|
115
|
+
// Deploy new impl + upgrade in one step
|
|
116
|
+
deployAndUpgrade(proxyAddr, type(MyContractV2).creationCode);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
77
119
|
```
|
|
78
120
|
|
|
79
|
-
|
|
121
|
+
## Development
|
|
122
|
+
|
|
80
123
|
```bash
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
npm run
|
|
84
|
-
|
|
124
|
+
# Build
|
|
125
|
+
forge build # Foundry
|
|
126
|
+
npm run build:hardhat # Hardhat + TypeChain
|
|
127
|
+
|
|
128
|
+
# Test
|
|
129
|
+
forge test
|
|
130
|
+
forge test --gas-report
|
|
131
|
+
|
|
132
|
+
# Format
|
|
133
|
+
forge fmt
|
|
134
|
+
|
|
135
|
+
# Publish
|
|
136
|
+
npm run prepublishOnly # clean + build + typecheck
|
|
137
|
+
npm publish
|
|
85
138
|
```
|
|
86
139
|
|
|
87
|
-
##
|
|
140
|
+
## Package Contents
|
|
88
141
|
|
|
89
|
-
|
|
90
|
-
|
|
142
|
+
| Path | Description |
|
|
143
|
+
|------|-------------|
|
|
144
|
+
| `contracts/**/*.sol` | Solidity source files |
|
|
145
|
+
| `artifacts/**/*.json` | Compiled ABI + bytecode |
|
|
146
|
+
| `typechain-types/**/*` | TypeChain generated types |
|
|
147
|
+
| `utils/*.ts` | Shared TypeScript utilities |
|
|
91
148
|
|
|
92
|
-
##
|
|
149
|
+
## Requirements
|
|
93
150
|
|
|
94
|
-
-
|
|
95
|
-
-
|
|
151
|
+
- Solidity ^0.8.20
|
|
152
|
+
- Node.js >= 18
|
|
153
|
+
- OpenZeppelin Contracts 5.4.0
|
|
96
154
|
|
|
97
155
|
## License
|
|
98
156
|
|
|
99
157
|
MIT
|
|
100
158
|
|
|
101
|
-
##
|
|
102
|
-
|
|
103
|
-
[GitHub](https://github.com/mapprotocol/mapo-contracts-v2/tree/main/common)
|
|
104
|
-
|
|
105
|
-
## Issues
|
|
159
|
+
## Links
|
|
106
160
|
|
|
107
|
-
|
|
161
|
+
- [Repository](https://github.com/mapprotocol/mapo-contracts-v2/tree/main/common)
|
|
162
|
+
- [Issues](https://github.com/mapprotocol/mapo-contracts-v2/issues)
|
|
163
|
+
- [MAP Protocol](https://mapprotocol.io)
|
|
@@ -1230,8 +1230,8 @@
|
|
|
1230
1230
|
"type": "function"
|
|
1231
1231
|
}
|
|
1232
1232
|
],
|
|
1233
|
-
"bytecode": "0x60806040523480156200001157600080fd5b50604051620032f5380380620032f5833981016040819052620000349162000529565b806001600160a01b0381166200006557604051630409d6d160e11b8152600060048201526024015b60405180910390fd5b620000746000828180620000b3565b5050600080526004602052620000ab7f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec826200030a565b5050620005ba565b60006002600160401b03196001600160401b03861601620000f35760405163061c6a4360e21b81526001600160401b03861660048201526024016200005c565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff1615908115620001f25763ffffffff8516620001426200032a565b6200014e919062000571565b905060405180604001604052808265ffffffffffff168152602001620001808663ffffffff166200033c60201b60201c565b6001600160701b039081169091526001600160401b03891660009081526001602090815260408083206001600160a01b038c16845282529091208351815494909201519092166601000000000000026001600160a01b031990931665ffffffffffff909116179190911790556200029c565b6001600160401b03871660009081526001602090815260408083206001600160a01b038a168452909152812054620002419166010000000000009091046001600160701b031690869062000345565b6001600160401b03891660009081526001602090815260408083206001600160a01b038c168452909152902080546001600160701b03909316660100000000000002600160301b600160a01b03199093169290921790915590505b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b600062000321836001600160a01b038416620003fa565b90505b92915050565b600062000337426200044c565b905090565b63ffffffff1690565b600080806200035d6001600160701b03871662000485565b90506000620003a08563ffffffff168763ffffffff168463ffffffff16116200038857600062000394565b6200039488856200059a565b63ffffffff16620004a6565b905063ffffffff8116620003b36200032a565b620003bf919062000571565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b6000818152600183016020526040812054620004435750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000324565b50600062000324565b600065ffffffffffff82111562000481576040516306dfcc6560e41b815260306004820152602481018390526044016200005c565b5090565b6000806200049c6001600160701b038416620004b7565b5090949350505050565b600082821882841102821862000321565b60008080620004d084620004ca6200032a565b620004dd565b9250925092509193909250565b6001600160501b03602083901c166001600160701b03831665ffffffffffff604085901c811690841681111562000517578282826200051c565b816000805b9250925092509250925092565b6000602082840312156200053c57600080fd5b81516001600160a01b03811681146200055457600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b65ffffffffffff8181168382160190808211156200059357620005936200055b565b5092915050565b63ffffffff8281168282160390808211156200059357620005936200055b565b612d2b80620005ca6000396000f3fe6080604052600436106102045760003560e01c806375b238fc11610118578063b7d2b162116100a0578063d6bb62c61161006f578063d6bb62c6146106cc578063d78a83b1146106ec578063f801a69814610724578063fc8610d11461075e578063fe0776f51461077e57600080fd5b8063b7d2b16214610656578063cc1b6c8114610676578063d1f856ee1461068c578063d22b5989146106ac57600080fd5b8063a5808e2f116100e7578063a5808e2f14610572578063a64d95ce1461059f578063abd9bd2a146105bf578063ac9650d8146105ed578063b70096131461061a57600080fd5b806375b238fc146104ed578063853551b81461050257806394c7d7ee14610522578063a166aa891461054257600080fd5b806330cae1871161019b5780634665096d1161016a5780634665096d1461043a5780634c1da1e2146104505780635296295214610470578063530dd456146104905780636d5115bd146104cd57600080fd5b806330cae1871461038e5780633adc277a146103ae5780633ca7c02a146103e55780634136a33c1461040057600080fd5b806318ff183c116101d757806318ff183c146102e15780631cff79cd1461030157806325c471a0146103145780633078f1141461033457600080fd5b806308d6122d146102095780630b0a93ba1461022b57806312be87271461028c578063167bd395146102c1575b600080fd5b34801561021557600080fd5b506102296102243660046124fa565b61079e565b005b34801561023757600080fd5b5061026f610246366004612560565b6001600160401b0390811660009081526001602081905260409091200154600160401b90041690565b6040516001600160401b0390911681526020015b60405180910390f35b34801561029857600080fd5b506102ac6102a7366004612560565b6107f1565b60405163ffffffff9091168152602001610283565b3480156102cd57600080fd5b506102296102dc36600461257b565b61082c565b3480156102ed57600080fd5b506102296102fc3660046125b9565b610842565b6102ac61030f366004612628565b6108a9565b34801561032057600080fd5b5061022961032f366004612690565b6109d9565b34801561034057600080fd5b5061035461034f3660046126d5565b610a27565b604051610283949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561039a57600080fd5b506102296103a93660046126f1565b610a8c565b3480156103ba57600080fd5b506103ce6103c9366004612724565b610a9e565b60405165ffffffffffff9091168152602001610283565b3480156103f157600080fd5b5061026f6001600160401b0381565b34801561040c57600080fd5b506102ac61041b366004612724565b600090815260026020526040902054600160301b900463ffffffff1690565b34801561044657600080fd5b5062093a806102ac565b34801561045c57600080fd5b506102ac61046b36600461273d565b610ad1565b34801561047c57600080fd5b5061022961048b3660046126f1565b610aff565b34801561049c57600080fd5b5061026f6104ab366004612560565b6001600160401b03908116600090815260016020819052604090912001541690565b3480156104d957600080fd5b5061026f6104e8366004612770565b610b11565b3480156104f957600080fd5b5061026f600081565b34801561050e57600080fd5b5061022961051d36600461279e565b610b4c565b34801561052e57600080fd5b5061022961053d366004612628565b610be3565b34801561054e57600080fd5b5061056261055d36600461273d565b610c8f565b6040519015158152602001610283565b34801561057e57600080fd5b5061059261058d366004612560565b610cb7565b60405161028391906127bc565b3480156105ab57600080fd5b506102296105ba366004612809565b610cdb565b3480156105cb57600080fd5b506105df6105da366004612833565b610ced565b604051908152602001610283565b3480156105f957600080fd5b5061060d610608366004612897565b610d26565b60405161028391906128fc565b34801561062657600080fd5b5061063a610635366004612976565b610e0d565b60408051921515835263ffffffff909116602083015201610283565b34801561066257600080fd5b506102296106713660046126d5565b610e94565b34801561068257600080fd5b50620697806102ac565b34801561069857600080fd5b5061063a6106a73660046126d5565b610ed7565b3480156106b857600080fd5b506102296106c73660046129c1565b610f54565b3480156106d857600080fd5b506102ac6106e7366004612833565b610f66565b3480156106f857600080fd5b5061070c6107073660046129df565b6110c0565b6040516001600160a01b039091168152602001610283565b34801561073057600080fd5b5061074461073f366004612a09565b6110e2565b6040805192835263ffffffff909116602083015201610283565b34801561076a57600080fd5b506105df610779366004612560565b611227565b34801561078a57600080fd5b506102296107993660046126d5565b611248565b6107a6611271565b60005b828110156107ea576107e2858585848181106107c7576107c7612a7b565b90506020020160208101906107dc9190612a91565b846112ec565b6001016107a9565b5050505050565b6001600160401b03811660009081526001602081905260408220015461082690600160801b90046001600160701b031661136e565b92915050565b610834611271565b61083e828261138d565b5050565b61084a611271565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b15801561088d57600080fd5b505af11580156108a1573d6000803e3d6000fd5b505050505050565b60003381806108ba838888886113ff565b91509150811580156108d0575063ffffffff8116155b156109235782876108e18888611452565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b03191660448201526064015b60405180910390fd5b600061093184898989610ced565b9050600063ffffffff8316151580610958575061094d82610a9e565b65ffffffffffff1615155b15610969576109668261146a565b90505b60035461097f8a61097a8b8b611452565b61156a565b6003819055506109c78a8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503492506115ac915050565b506003559450505050505b9392505050565b6109e1611271565b60006109f784846109f1876107f1565b85611650565b90508015610a21576001600160401b03841660009081526004602052604090206107ea908461189b565b50505050565b6001600160401b03821660009081526001602090815260408083206001600160a01b03851684529091528120805465ffffffffffff811692918291829190610a7e90600160301b90046001600160701b03166118b0565b969991985096509350505050565b610a94611271565b61083e82826118d3565b60008181526002602052604081205465ffffffffffff16610abe81611977565b610ac857806109d2565b60009392505050565b6001600160a01b038116600090815260208190526040812060010154610826906001600160701b031661136e565b610b07611271565b61083e82826119a6565b6001600160a01b0382166000908152602081815260408083206001600160e01b0319851684529091529020546001600160401b031692915050565b610b54611271565b6001600160401b0383161580610b7257506001600160401b03838116145b15610b9b5760405163061c6a4360e21b81526001600160401b038416600482015260240161091a565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a4508383604051610bd6929190612ad7565b60405180910390a2505050565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612af3565b6001600160e01b03191614610c7b57604051630641fee960e31b81526001600160a01b038216600482015260240161091a565b6107ea610c8a85838686610ced565b61146a565b6001600160a01b0316600090815260208190526040902060010154600160701b900460ff1690565b6001600160401b038116600090815260046020526040902060609061082690611a58565b610ce3611271565b61083e8282611a65565b600084848484604051602001610d069493929190612b10565b604051602081830303815290604052805190602001209050949350505050565b604080516000815260208101909152606090826001600160401b03811115610d5057610d50612b90565b604051908082528060200260200182016040528015610d8357816020015b6060815260200190600190039081610d6e5790505b50915060005b83811015610e0557610de030868684818110610da757610da7612a7b565b9050602002810190610db99190612ba6565b85604051602001610dcc93929190612bec565b604051602081830303815290604052611b76565b838281518110610df257610df2612a7b565b6020908102919091010152600101610d89565b505092915050565b600080610e1984610c8f565b15610e2957506000905080610e8c565b306001600160a01b03861603610e4e57610e438484611bec565b600091509150610e8c565b6000610e5a8585610b11565b9050600080610e698389610ed7565b9150915081610e7a57600080610e84565b63ffffffff811615815b945094505050505b935093915050565b610e9c611271565b6000610ea88383611c03565b90508015610ed2576001600160401b0383166000908152600460205260409020610a219083611cf0565b505050565b60008067fffffffffffffffe196001600160401b03851601610eff5750600190506000610f4d565b600080610f0c8686610a27565b5050915091508165ffffffffffff16600014158015610f425750610f2e611d05565b65ffffffffffff168265ffffffffffff1611155b93509150610f4d9050565b9250929050565b610f5c611271565b61083e8282611d15565b60003381610f748585611452565b90506000610f8488888888610ced565b60008181526002602052604081205491925065ffffffffffff9091169003610fc25760405163060a299b60e41b81526004810182905260240161091a565b826001600160a01b0316886001600160a01b03161461105e576000610fe8600085610ed7565b5090506000611003610ffd6102468b87610b11565b86610ed7565b50905081158015611012575080155b1561105b57604051630ff89d4760e21b81526001600160a01b038087166004830152808c1660248301528a1660448201526001600160e01b03198516606482015260840161091a565b50505b600081815260026020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a398975050505050505050565b6001600160401b03821660009081526004602052604081206109d29083611dd2565b60008033816110f3828989896113ff565b91505060008163ffffffff16611107611d05565b6111119190612c13565b905063ffffffff82161580611148575060008665ffffffffffff1611801561114857508065ffffffffffff168665ffffffffffff16105b156111595782896108e18a8a611452565b6111738665ffffffffffff168265ffffffffffff16611dde565b9550611181838a8a8a610ced565b945061118c85611dee565b60008581526002602052604090819020805465ffffffffffff891669ffffffffffffffffffff19821617600160301b9182900463ffffffff90811660010190811692830291909117909255915190955086907f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b490611213908a9088908f908f908f90612c32565b60405180910390a350505094509492505050565b6001600160401b038116600090815260046020526040812061082690611e3b565b6001600160a01b0381163314610e9c57604051635f159e6360e01b815260040160405180910390fd5b33600080611280838236611e45565b9150915081610ed2578063ffffffff166000036112dc5760006112a38136611f0f565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b0382166024820152909250604401905061091a565b610a21610c8a8430600036610ced565b6001600160a01b0383166000818152602081815260408083206001600160e01b0319871680855290835292819020805467ffffffffffffffff19166001600160401b038716908117909155905192835292917f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a3505050565b600080611383836001600160701b03166118b0565b5090949350505050565b6001600160a01b038216600081815260208190526040908190206001018054841515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb138906113f390841515815260200190565b60405180910390a25050565b600080306001600160a01b038616036114265761141d868585611e45565b91509150611449565b600483106114425761143d86866106358787611452565b61141d565b5060009050805b94509492505050565b60006114616004828486612b66565b6109d291612c78565b60008181526002602052604081205465ffffffffffff811690600160301b900463ffffffff168183036114b35760405163060a299b60e41b81526004810185905260240161091a565b6114bb611d05565b65ffffffffffff168265ffffffffffff1611156114ee57604051630c65b5bd60e11b81526004810185905260240161091a565b6114f782611977565b1561151857604051631e2975b960e21b81526004810185905260240161091a565b600084815260026020526040808220805465ffffffffffff191690555163ffffffff83169186917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a39392505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b6060814710156115d85760405163cf47918160e01b81524760048201526024810183905260440161091a565b600080856001600160a01b031684866040516115f49190612ca6565b60006040518083038185875af1925050503d8060008114611631576040519150601f19603f3d011682016040523d82523d6000602084013e611636565b606091505b5091509150611646868383612101565b9695505050505050565b600067fffffffffffffffe196001600160401b0386160161168f5760405163061c6a4360e21b81526001600160401b038616600482015260240161091a565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff1615908115611781578463ffffffff166116db611d05565b6116e59190612c13565b905060405180604001604052808265ffffffffffff1681526020016117138663ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b03891660009081526001602090815260408083206001600160a01b038c1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff9091161791909117905561182d565b6001600160401b03871660009081526001602090815260408083206001600160a01b038a1684529091528120546117cb91600160301b9091046001600160701b031690869061215d565b6001600160401b03891660009081526001602090815260408083206001600160a01b038c168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b60006109d2836001600160a01b038416612207565b60008060006118c6846118c1611d05565b612256565b9250925092509193909250565b6001600160401b03821615806118f157506001600160401b03828116145b1561191a5760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b038281166000818152600160208190526040808320909101805467ffffffffffffffff19169486169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a35050565b6000611981611d05565b65ffffffffffff1661199662093a8084612c13565b65ffffffffffff16111592915050565b6001600160401b03821615806119c457506001600160401b03828116145b156119ed5760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b03828116600081815260016020819052604080832090910180546fffffffffffffffff00000000000000001916600160401b958716958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a35050565b606060006109d2836122a3565b67fffffffffffffffe196001600160401b03831601611aa25760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b038216600090815260016020819052604082200154611adc90600160801b90046001600160701b0316836206978061215d565b6001600160401b0385166000818152600160208190526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b4890610bd6908590859063ffffffff92909216825265ffffffffffff16602082015260400190565b6060600080846001600160a01b031684604051611b939190612ca6565b600060405180830381855af49150503d8060008114611bce576040519150601f19603f3d011682016040523d82523d6000602084013e611bd3565b606091505b5091509150611be3858383612101565b95945050505050565b6000611bf8838361156a565b600354149392505050565b600067fffffffffffffffe196001600160401b03841601611c425760405163061c6a4360e21b81526001600160401b038416600482015260240161091a565b6001600160401b03831660009081526001602090815260408083206001600160a01b038616845290915281205465ffffffffffff169003611c8557506000610826565b6001600160401b03831660008181526001602090815260408083206001600160a01b038716808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a350600192915050565b60006109d2836001600160a01b0384166122ff565b6000611d10426123f9565b905090565b6001600160a01b038216600090815260208190526040812060010154611d48906001600160701b0316836206978061215d565b6001600160a01b0385166000818152602081815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8716815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c9101610bd6565b60006109d28383612430565b60008282188284110282186109d2565b60008181526002602052604090205465ffffffffffff168015801590611e1a5750611e1881611977565b155b1561083e5760405163813e945960e01b81526004810183905260240161091a565b6000610826825490565b6000806004831015611e5c57506000905080610e8c565b306001600160a01b03861603611e7f57610e4330611e7a8686611452565b611bec565b6000806000611e8e8787611f0f565b92509250925082158015611ea65750611ea630610c8f565b15611eba5760008094509450505050610e8c565b600080611ec7848b610ed7565b9150915081611ee157600080965096505050505050610e8c565b611ef78363ffffffff168263ffffffff16611dde565b63ffffffff8116159b909a5098505050505050505050565b600080806004841015611f2a575060009150819050806120fa565b6000611f368686611452565b90506001600160e01b031981166310a6aa3760e31b1480611f6757506001600160e01b031981166330cae18760e01b145b80611f8257506001600160e01b0319811663294b14a960e11b145b80611f9d57506001600160e01b03198116635326cae760e11b145b80611fb857506001600160e01b0319811663d22b598960e01b145b15611fce576001600080935093509350506120fa565b6001600160e01b0319811663063fc60f60e21b1480611ffd57506001600160e01b0319811663167bd39560e01b145b8061201857506001600160e01b031981166308d6122d60e01b145b1561205a57600061202d60246004888a612b66565b81019061203a919061273d565b9050600061204782610ad1565b600196506000955093506120fa92505050565b6001600160e01b0319811663012e238d60e51b148061208957506001600160e01b03198116635be958b160e11b145b156120e457600061209e60246004888a612b66565b8101906120ab9190612560565b905060016120d5826001600160401b03908116600090815260016020819052604090912001541690565b600094509450945050506120fa565b60006120f03083610b11565b6000935093509350505b9250925092565b606082612116576121118261245a565b6109d2565b815115801561212d57506001600160a01b0384163b155b1561215657604051639996b31560e01b81526001600160a01b038516600482015260240161091a565b50806109d2565b6000806000612174866001600160701b031661136e565b905060006121b18563ffffffff168763ffffffff168463ffffffff161161219c5760006121a6565b6121a68885612cc2565b63ffffffff16611dde565b90508063ffffffff166121c2611d05565b6121cc9190612c13565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b600081815260018301602052604081205461224e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610826565b506000610826565b69ffffffffffffffffffff602083901c166001600160701b03831665ffffffffffff604085901c811690841681111561229157828282612296565b816000805b9250925092509250925092565b6060816000018054806020026020016040519081016040528092919081815260200182805480156122f357602002820191906000526020600020905b8154815260200190600101908083116122df575b50505050509050919050565b600081815260018301602052604081205480156123e8576000612323600183612b53565b855490915060009061233790600190612b53565b905080821461239c57600086600001828154811061235757612357612a7b565b906000526020600020015490508087600001848154811061237a5761237a612a7b565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806123ad576123ad612cdf565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610826565b6000915050610826565b5092915050565b600065ffffffffffff82111561242c576040516306dfcc6560e41b8152603060048201526024810183905260440161091a565b5090565b600082600001828154811061244757612447612a7b565b9060005260206000200154905092915050565b80511561246957805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6001600160a01b038116811461248257600080fd5b60008083601f8401126124ac57600080fd5b5081356001600160401b038111156124c357600080fd5b6020830191508360208260051b8501011115610f4d57600080fd5b80356001600160401b03811681146124f557600080fd5b919050565b6000806000806060858703121561251057600080fd5b843561251b81612485565b935060208501356001600160401b0381111561253657600080fd5b6125428782880161249a565b90945092506125559050604086016124de565b905092959194509250565b60006020828403121561257257600080fd5b6109d2826124de565b6000806040838503121561258e57600080fd5b823561259981612485565b9150602083013580151581146125ae57600080fd5b809150509250929050565b600080604083850312156125cc57600080fd5b82356125d781612485565b915060208301356125ae81612485565b60008083601f8401126125f957600080fd5b5081356001600160401b0381111561261057600080fd5b602083019150836020828501011115610f4d57600080fd5b60008060006040848603121561263d57600080fd5b833561264881612485565b925060208401356001600160401b0381111561266357600080fd5b61266f868287016125e7565b9497909650939450505050565b803563ffffffff811681146124f557600080fd5b6000806000606084860312156126a557600080fd5b6126ae846124de565b925060208401356126be81612485565b91506126cc6040850161267c565b90509250925092565b600080604083850312156126e857600080fd5b6125d7836124de565b6000806040838503121561270457600080fd5b61270d836124de565b915061271b602084016124de565b90509250929050565b60006020828403121561273657600080fd5b5035919050565b60006020828403121561274f57600080fd5b81356109d281612485565b6001600160e01b03198116811461248257600080fd5b6000806040838503121561278357600080fd5b823561278e81612485565b915060208301356125ae8161275a565b6000806000604084860312156127b357600080fd5b612648846124de565b6020808252825182820181905260009190848201906040850190845b818110156127fd5783516001600160a01b0316835292840192918401916001016127d8565b50909695505050505050565b6000806040838503121561281c57600080fd5b612825836124de565b915061271b6020840161267c565b6000806000806060858703121561284957600080fd5b843561285481612485565b9350602085013561286481612485565b925060408501356001600160401b0381111561287f57600080fd5b61288b878288016125e7565b95989497509550505050565b600080602083850312156128aa57600080fd5b82356001600160401b038111156128c057600080fd5b6128cc8582860161249a565b90969095509350505050565b60005b838110156128f35781810151838201526020016128db565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561296957878503603f190184528151805180875261294a818989018a85016128d8565b601f01601f191695909501860194509285019290850190600101612923565b5092979650505050505050565b60008060006060848603121561298b57600080fd5b833561299681612485565b925060208401356129a681612485565b915060408401356129b68161275a565b809150509250925092565b600080604083850312156129d457600080fd5b823561282581612485565b600080604083850312156129f257600080fd5b6129fb836124de565b946020939093013593505050565b60008060008060608587031215612a1f57600080fd5b8435612a2a81612485565b935060208501356001600160401b03811115612a4557600080fd5b612a51878288016125e7565b909450925050604085013565ffffffffffff81168114612a7057600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612aa357600080fd5b81356109d28161275a565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000612aeb602083018486612aae565b949350505050565b600060208284031215612b0557600080fd5b81516109d28161275a565b6001600160a01b038581168252841660208201526060604082018190526000906116469083018486612aae565b634e487b7160e01b600052601160045260246000fd5b8181038181111561082657610826612b3d565b60008085851115612b7657600080fd5b83861115612b8357600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000808335601e19843603018112612bbd57600080fd5b8301803591506001600160401b03821115612bd757600080fd5b602001915036819003821315610f4d57600080fd5b828482376000838201600081528351612c098183602088016128d8565b0195945050505050565b65ffffffffffff8181168382160190808211156123f2576123f2612b3d565b65ffffffffffff861681526001600160a01b03858116602083015284166040820152608060608201819052600090612c6d9083018486612aae565b979650505050505050565b6001600160e01b03198135818116916004851015610e055760049490940360031b84901b1690921692915050565b60008251612cb88184602087016128d8565b9190910192915050565b63ffffffff8281168282160390808211156123f2576123f2612b3d565b634e487b7160e01b600052603160045260246000fdfea26469706673582212209152931e25786cb68c4657bcf15ad9aefe771594b6910114d77f1eaf8f871a5f64736f6c63430008180033",
|
|
1234
|
-
"deployedBytecode": "0x6080604052600436106102045760003560e01c806375b238fc11610118578063b7d2b162116100a0578063d6bb62c61161006f578063d6bb62c6146106cc578063d78a83b1146106ec578063f801a69814610724578063fc8610d11461075e578063fe0776f51461077e57600080fd5b8063b7d2b16214610656578063cc1b6c8114610676578063d1f856ee1461068c578063d22b5989146106ac57600080fd5b8063a5808e2f116100e7578063a5808e2f14610572578063a64d95ce1461059f578063abd9bd2a146105bf578063ac9650d8146105ed578063b70096131461061a57600080fd5b806375b238fc146104ed578063853551b81461050257806394c7d7ee14610522578063a166aa891461054257600080fd5b806330cae1871161019b5780634665096d1161016a5780634665096d1461043a5780634c1da1e2146104505780635296295214610470578063530dd456146104905780636d5115bd146104cd57600080fd5b806330cae1871461038e5780633adc277a146103ae5780633ca7c02a146103e55780634136a33c1461040057600080fd5b806318ff183c116101d757806318ff183c146102e15780631cff79cd1461030157806325c471a0146103145780633078f1141461033457600080fd5b806308d6122d146102095780630b0a93ba1461022b57806312be87271461028c578063167bd395146102c1575b600080fd5b34801561021557600080fd5b506102296102243660046124fa565b61079e565b005b34801561023757600080fd5b5061026f610246366004612560565b6001600160401b0390811660009081526001602081905260409091200154600160401b90041690565b6040516001600160401b0390911681526020015b60405180910390f35b34801561029857600080fd5b506102ac6102a7366004612560565b6107f1565b60405163ffffffff9091168152602001610283565b3480156102cd57600080fd5b506102296102dc36600461257b565b61082c565b3480156102ed57600080fd5b506102296102fc3660046125b9565b610842565b6102ac61030f366004612628565b6108a9565b34801561032057600080fd5b5061022961032f366004612690565b6109d9565b34801561034057600080fd5b5061035461034f3660046126d5565b610a27565b604051610283949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561039a57600080fd5b506102296103a93660046126f1565b610a8c565b3480156103ba57600080fd5b506103ce6103c9366004612724565b610a9e565b60405165ffffffffffff9091168152602001610283565b3480156103f157600080fd5b5061026f6001600160401b0381565b34801561040c57600080fd5b506102ac61041b366004612724565b600090815260026020526040902054600160301b900463ffffffff1690565b34801561044657600080fd5b5062093a806102ac565b34801561045c57600080fd5b506102ac61046b36600461273d565b610ad1565b34801561047c57600080fd5b5061022961048b3660046126f1565b610aff565b34801561049c57600080fd5b5061026f6104ab366004612560565b6001600160401b03908116600090815260016020819052604090912001541690565b3480156104d957600080fd5b5061026f6104e8366004612770565b610b11565b3480156104f957600080fd5b5061026f600081565b34801561050e57600080fd5b5061022961051d36600461279e565b610b4c565b34801561052e57600080fd5b5061022961053d366004612628565b610be3565b34801561054e57600080fd5b5061056261055d36600461273d565b610c8f565b6040519015158152602001610283565b34801561057e57600080fd5b5061059261058d366004612560565b610cb7565b60405161028391906127bc565b3480156105ab57600080fd5b506102296105ba366004612809565b610cdb565b3480156105cb57600080fd5b506105df6105da366004612833565b610ced565b604051908152602001610283565b3480156105f957600080fd5b5061060d610608366004612897565b610d26565b60405161028391906128fc565b34801561062657600080fd5b5061063a610635366004612976565b610e0d565b60408051921515835263ffffffff909116602083015201610283565b34801561066257600080fd5b506102296106713660046126d5565b610e94565b34801561068257600080fd5b50620697806102ac565b34801561069857600080fd5b5061063a6106a73660046126d5565b610ed7565b3480156106b857600080fd5b506102296106c73660046129c1565b610f54565b3480156106d857600080fd5b506102ac6106e7366004612833565b610f66565b3480156106f857600080fd5b5061070c6107073660046129df565b6110c0565b6040516001600160a01b039091168152602001610283565b34801561073057600080fd5b5061074461073f366004612a09565b6110e2565b6040805192835263ffffffff909116602083015201610283565b34801561076a57600080fd5b506105df610779366004612560565b611227565b34801561078a57600080fd5b506102296107993660046126d5565b611248565b6107a6611271565b60005b828110156107ea576107e2858585848181106107c7576107c7612a7b565b90506020020160208101906107dc9190612a91565b846112ec565b6001016107a9565b5050505050565b6001600160401b03811660009081526001602081905260408220015461082690600160801b90046001600160701b031661136e565b92915050565b610834611271565b61083e828261138d565b5050565b61084a611271565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b15801561088d57600080fd5b505af11580156108a1573d6000803e3d6000fd5b505050505050565b60003381806108ba838888886113ff565b91509150811580156108d0575063ffffffff8116155b156109235782876108e18888611452565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b03191660448201526064015b60405180910390fd5b600061093184898989610ced565b9050600063ffffffff8316151580610958575061094d82610a9e565b65ffffffffffff1615155b15610969576109668261146a565b90505b60035461097f8a61097a8b8b611452565b61156a565b6003819055506109c78a8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503492506115ac915050565b506003559450505050505b9392505050565b6109e1611271565b60006109f784846109f1876107f1565b85611650565b90508015610a21576001600160401b03841660009081526004602052604090206107ea908461189b565b50505050565b6001600160401b03821660009081526001602090815260408083206001600160a01b03851684529091528120805465ffffffffffff811692918291829190610a7e90600160301b90046001600160701b03166118b0565b969991985096509350505050565b610a94611271565b61083e82826118d3565b60008181526002602052604081205465ffffffffffff16610abe81611977565b610ac857806109d2565b60009392505050565b6001600160a01b038116600090815260208190526040812060010154610826906001600160701b031661136e565b610b07611271565b61083e82826119a6565b6001600160a01b0382166000908152602081815260408083206001600160e01b0319851684529091529020546001600160401b031692915050565b610b54611271565b6001600160401b0383161580610b7257506001600160401b03838116145b15610b9b5760405163061c6a4360e21b81526001600160401b038416600482015260240161091a565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a4508383604051610bd6929190612ad7565b60405180910390a2505050565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612af3565b6001600160e01b03191614610c7b57604051630641fee960e31b81526001600160a01b038216600482015260240161091a565b6107ea610c8a85838686610ced565b61146a565b6001600160a01b0316600090815260208190526040902060010154600160701b900460ff1690565b6001600160401b038116600090815260046020526040902060609061082690611a58565b610ce3611271565b61083e8282611a65565b600084848484604051602001610d069493929190612b10565b604051602081830303815290604052805190602001209050949350505050565b604080516000815260208101909152606090826001600160401b03811115610d5057610d50612b90565b604051908082528060200260200182016040528015610d8357816020015b6060815260200190600190039081610d6e5790505b50915060005b83811015610e0557610de030868684818110610da757610da7612a7b565b9050602002810190610db99190612ba6565b85604051602001610dcc93929190612bec565b604051602081830303815290604052611b76565b838281518110610df257610df2612a7b565b6020908102919091010152600101610d89565b505092915050565b600080610e1984610c8f565b15610e2957506000905080610e8c565b306001600160a01b03861603610e4e57610e438484611bec565b600091509150610e8c565b6000610e5a8585610b11565b9050600080610e698389610ed7565b9150915081610e7a57600080610e84565b63ffffffff811615815b945094505050505b935093915050565b610e9c611271565b6000610ea88383611c03565b90508015610ed2576001600160401b0383166000908152600460205260409020610a219083611cf0565b505050565b60008067fffffffffffffffe196001600160401b03851601610eff5750600190506000610f4d565b600080610f0c8686610a27565b5050915091508165ffffffffffff16600014158015610f425750610f2e611d05565b65ffffffffffff168265ffffffffffff1611155b93509150610f4d9050565b9250929050565b610f5c611271565b61083e8282611d15565b60003381610f748585611452565b90506000610f8488888888610ced565b60008181526002602052604081205491925065ffffffffffff9091169003610fc25760405163060a299b60e41b81526004810182905260240161091a565b826001600160a01b0316886001600160a01b03161461105e576000610fe8600085610ed7565b5090506000611003610ffd6102468b87610b11565b86610ed7565b50905081158015611012575080155b1561105b57604051630ff89d4760e21b81526001600160a01b038087166004830152808c1660248301528a1660448201526001600160e01b03198516606482015260840161091a565b50505b600081815260026020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a398975050505050505050565b6001600160401b03821660009081526004602052604081206109d29083611dd2565b60008033816110f3828989896113ff565b91505060008163ffffffff16611107611d05565b6111119190612c13565b905063ffffffff82161580611148575060008665ffffffffffff1611801561114857508065ffffffffffff168665ffffffffffff16105b156111595782896108e18a8a611452565b6111738665ffffffffffff168265ffffffffffff16611dde565b9550611181838a8a8a610ced565b945061118c85611dee565b60008581526002602052604090819020805465ffffffffffff891669ffffffffffffffffffff19821617600160301b9182900463ffffffff90811660010190811692830291909117909255915190955086907f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b490611213908a9088908f908f908f90612c32565b60405180910390a350505094509492505050565b6001600160401b038116600090815260046020526040812061082690611e3b565b6001600160a01b0381163314610e9c57604051635f159e6360e01b815260040160405180910390fd5b33600080611280838236611e45565b9150915081610ed2578063ffffffff166000036112dc5760006112a38136611f0f565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b0382166024820152909250604401905061091a565b610a21610c8a8430600036610ced565b6001600160a01b0383166000818152602081815260408083206001600160e01b0319871680855290835292819020805467ffffffffffffffff19166001600160401b038716908117909155905192835292917f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a3505050565b600080611383836001600160701b03166118b0565b5090949350505050565b6001600160a01b038216600081815260208190526040908190206001018054841515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb138906113f390841515815260200190565b60405180910390a25050565b600080306001600160a01b038616036114265761141d868585611e45565b91509150611449565b600483106114425761143d86866106358787611452565b61141d565b5060009050805b94509492505050565b60006114616004828486612b66565b6109d291612c78565b60008181526002602052604081205465ffffffffffff811690600160301b900463ffffffff168183036114b35760405163060a299b60e41b81526004810185905260240161091a565b6114bb611d05565b65ffffffffffff168265ffffffffffff1611156114ee57604051630c65b5bd60e11b81526004810185905260240161091a565b6114f782611977565b1561151857604051631e2975b960e21b81526004810185905260240161091a565b600084815260026020526040808220805465ffffffffffff191690555163ffffffff83169186917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a39392505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b6060814710156115d85760405163cf47918160e01b81524760048201526024810183905260440161091a565b600080856001600160a01b031684866040516115f49190612ca6565b60006040518083038185875af1925050503d8060008114611631576040519150601f19603f3d011682016040523d82523d6000602084013e611636565b606091505b5091509150611646868383612101565b9695505050505050565b600067fffffffffffffffe196001600160401b0386160161168f5760405163061c6a4360e21b81526001600160401b038616600482015260240161091a565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff1615908115611781578463ffffffff166116db611d05565b6116e59190612c13565b905060405180604001604052808265ffffffffffff1681526020016117138663ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b03891660009081526001602090815260408083206001600160a01b038c1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff9091161791909117905561182d565b6001600160401b03871660009081526001602090815260408083206001600160a01b038a1684529091528120546117cb91600160301b9091046001600160701b031690869061215d565b6001600160401b03891660009081526001602090815260408083206001600160a01b038c168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b60006109d2836001600160a01b038416612207565b60008060006118c6846118c1611d05565b612256565b9250925092509193909250565b6001600160401b03821615806118f157506001600160401b03828116145b1561191a5760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b038281166000818152600160208190526040808320909101805467ffffffffffffffff19169486169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a35050565b6000611981611d05565b65ffffffffffff1661199662093a8084612c13565b65ffffffffffff16111592915050565b6001600160401b03821615806119c457506001600160401b03828116145b156119ed5760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b03828116600081815260016020819052604080832090910180546fffffffffffffffff00000000000000001916600160401b958716958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a35050565b606060006109d2836122a3565b67fffffffffffffffe196001600160401b03831601611aa25760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b038216600090815260016020819052604082200154611adc90600160801b90046001600160701b0316836206978061215d565b6001600160401b0385166000818152600160208190526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b4890610bd6908590859063ffffffff92909216825265ffffffffffff16602082015260400190565b6060600080846001600160a01b031684604051611b939190612ca6565b600060405180830381855af49150503d8060008114611bce576040519150601f19603f3d011682016040523d82523d6000602084013e611bd3565b606091505b5091509150611be3858383612101565b95945050505050565b6000611bf8838361156a565b600354149392505050565b600067fffffffffffffffe196001600160401b03841601611c425760405163061c6a4360e21b81526001600160401b038416600482015260240161091a565b6001600160401b03831660009081526001602090815260408083206001600160a01b038616845290915281205465ffffffffffff169003611c8557506000610826565b6001600160401b03831660008181526001602090815260408083206001600160a01b038716808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a350600192915050565b60006109d2836001600160a01b0384166122ff565b6000611d10426123f9565b905090565b6001600160a01b038216600090815260208190526040812060010154611d48906001600160701b0316836206978061215d565b6001600160a01b0385166000818152602081815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8716815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c9101610bd6565b60006109d28383612430565b60008282188284110282186109d2565b60008181526002602052604090205465ffffffffffff168015801590611e1a5750611e1881611977565b155b1561083e5760405163813e945960e01b81526004810183905260240161091a565b6000610826825490565b6000806004831015611e5c57506000905080610e8c565b306001600160a01b03861603611e7f57610e4330611e7a8686611452565b611bec565b6000806000611e8e8787611f0f565b92509250925082158015611ea65750611ea630610c8f565b15611eba5760008094509450505050610e8c565b600080611ec7848b610ed7565b9150915081611ee157600080965096505050505050610e8c565b611ef78363ffffffff168263ffffffff16611dde565b63ffffffff8116159b909a5098505050505050505050565b600080806004841015611f2a575060009150819050806120fa565b6000611f368686611452565b90506001600160e01b031981166310a6aa3760e31b1480611f6757506001600160e01b031981166330cae18760e01b145b80611f8257506001600160e01b0319811663294b14a960e11b145b80611f9d57506001600160e01b03198116635326cae760e11b145b80611fb857506001600160e01b0319811663d22b598960e01b145b15611fce576001600080935093509350506120fa565b6001600160e01b0319811663063fc60f60e21b1480611ffd57506001600160e01b0319811663167bd39560e01b145b8061201857506001600160e01b031981166308d6122d60e01b145b1561205a57600061202d60246004888a612b66565b81019061203a919061273d565b9050600061204782610ad1565b600196506000955093506120fa92505050565b6001600160e01b0319811663012e238d60e51b148061208957506001600160e01b03198116635be958b160e11b145b156120e457600061209e60246004888a612b66565b8101906120ab9190612560565b905060016120d5826001600160401b03908116600090815260016020819052604090912001541690565b600094509450945050506120fa565b60006120f03083610b11565b6000935093509350505b9250925092565b606082612116576121118261245a565b6109d2565b815115801561212d57506001600160a01b0384163b155b1561215657604051639996b31560e01b81526001600160a01b038516600482015260240161091a565b50806109d2565b6000806000612174866001600160701b031661136e565b905060006121b18563ffffffff168763ffffffff168463ffffffff161161219c5760006121a6565b6121a68885612cc2565b63ffffffff16611dde565b90508063ffffffff166121c2611d05565b6121cc9190612c13565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b600081815260018301602052604081205461224e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610826565b506000610826565b69ffffffffffffffffffff602083901c166001600160701b03831665ffffffffffff604085901c811690841681111561229157828282612296565b816000805b9250925092509250925092565b6060816000018054806020026020016040519081016040528092919081815260200182805480156122f357602002820191906000526020600020905b8154815260200190600101908083116122df575b50505050509050919050565b600081815260018301602052604081205480156123e8576000612323600183612b53565b855490915060009061233790600190612b53565b905080821461239c57600086600001828154811061235757612357612a7b565b906000526020600020015490508087600001848154811061237a5761237a612a7b565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806123ad576123ad612cdf565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610826565b6000915050610826565b5092915050565b600065ffffffffffff82111561242c576040516306dfcc6560e41b8152603060048201526024810183905260440161091a565b5090565b600082600001828154811061244757612447612a7b565b9060005260206000200154905092915050565b80511561246957805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6001600160a01b038116811461248257600080fd5b60008083601f8401126124ac57600080fd5b5081356001600160401b038111156124c357600080fd5b6020830191508360208260051b8501011115610f4d57600080fd5b80356001600160401b03811681146124f557600080fd5b919050565b6000806000806060858703121561251057600080fd5b843561251b81612485565b935060208501356001600160401b0381111561253657600080fd5b6125428782880161249a565b90945092506125559050604086016124de565b905092959194509250565b60006020828403121561257257600080fd5b6109d2826124de565b6000806040838503121561258e57600080fd5b823561259981612485565b9150602083013580151581146125ae57600080fd5b809150509250929050565b600080604083850312156125cc57600080fd5b82356125d781612485565b915060208301356125ae81612485565b60008083601f8401126125f957600080fd5b5081356001600160401b0381111561261057600080fd5b602083019150836020828501011115610f4d57600080fd5b60008060006040848603121561263d57600080fd5b833561264881612485565b925060208401356001600160401b0381111561266357600080fd5b61266f868287016125e7565b9497909650939450505050565b803563ffffffff811681146124f557600080fd5b6000806000606084860312156126a557600080fd5b6126ae846124de565b925060208401356126be81612485565b91506126cc6040850161267c565b90509250925092565b600080604083850312156126e857600080fd5b6125d7836124de565b6000806040838503121561270457600080fd5b61270d836124de565b915061271b602084016124de565b90509250929050565b60006020828403121561273657600080fd5b5035919050565b60006020828403121561274f57600080fd5b81356109d281612485565b6001600160e01b03198116811461248257600080fd5b6000806040838503121561278357600080fd5b823561278e81612485565b915060208301356125ae8161275a565b6000806000604084860312156127b357600080fd5b612648846124de565b6020808252825182820181905260009190848201906040850190845b818110156127fd5783516001600160a01b0316835292840192918401916001016127d8565b50909695505050505050565b6000806040838503121561281c57600080fd5b612825836124de565b915061271b6020840161267c565b6000806000806060858703121561284957600080fd5b843561285481612485565b9350602085013561286481612485565b925060408501356001600160401b0381111561287f57600080fd5b61288b878288016125e7565b95989497509550505050565b600080602083850312156128aa57600080fd5b82356001600160401b038111156128c057600080fd5b6128cc8582860161249a565b90969095509350505050565b60005b838110156128f35781810151838201526020016128db565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561296957878503603f190184528151805180875261294a818989018a85016128d8565b601f01601f191695909501860194509285019290850190600101612923565b5092979650505050505050565b60008060006060848603121561298b57600080fd5b833561299681612485565b925060208401356129a681612485565b915060408401356129b68161275a565b809150509250925092565b600080604083850312156129d457600080fd5b823561282581612485565b600080604083850312156129f257600080fd5b6129fb836124de565b946020939093013593505050565b60008060008060608587031215612a1f57600080fd5b8435612a2a81612485565b935060208501356001600160401b03811115612a4557600080fd5b612a51878288016125e7565b909450925050604085013565ffffffffffff81168114612a7057600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612aa357600080fd5b81356109d28161275a565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000612aeb602083018486612aae565b949350505050565b600060208284031215612b0557600080fd5b81516109d28161275a565b6001600160a01b038581168252841660208201526060604082018190526000906116469083018486612aae565b634e487b7160e01b600052601160045260246000fd5b8181038181111561082657610826612b3d565b60008085851115612b7657600080fd5b83861115612b8357600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000808335601e19843603018112612bbd57600080fd5b8301803591506001600160401b03821115612bd757600080fd5b602001915036819003821315610f4d57600080fd5b828482376000838201600081528351612c098183602088016128d8565b0195945050505050565b65ffffffffffff8181168382160190808211156123f2576123f2612b3d565b65ffffffffffff861681526001600160a01b03858116602083015284166040820152608060608201819052600090612c6d9083018486612aae565b979650505050505050565b6001600160e01b03198135818116916004851015610e055760049490940360031b84901b1690921692915050565b60008251612cb88184602087016128d8565b9190910192915050565b63ffffffff8281168282160390808211156123f2576123f2612b3d565b634e487b7160e01b600052603160045260246000fdfea26469706673582212209152931e25786cb68c4657bcf15ad9aefe771594b6910114d77f1eaf8f871a5f64736f6c63430008180033",
|
|
1233
|
+
"bytecode": "0x608060405234801561001057600080fd5b506040516132b73803806132b783398101604081905261002f916104f4565b806001600160a01b03811661005f57604051630409d6d160e11b8152600060048201526024015b60405180910390fd5b61006c60008281806100a8565b50506000805260046020526100a17f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec826102f3565b505061057d565b60006002600160401b03196001600160401b038616016100e65760405163061c6a4360e21b81526001600160401b0386166004820152602401610056565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff16159081156101dd5763ffffffff8516610132610311565b61013c919061053a565b905060405180604001604052808265ffffffffffff16815260200161016c8663ffffffff1661032160201b60201c565b6001600160701b039081169091526001600160401b03891660009081526001602090815260408083206001600160a01b038c16845282529091208351815494909201519092166601000000000000026001600160a01b031990931665ffffffffffff90911617919091179055610285565b6001600160401b03871660009081526001602090815260408083206001600160a01b038a16845290915281205461022a9166010000000000009091046001600160701b031690869061032a565b6001600160401b03891660009081526001602090815260408083206001600160a01b038c168452909152902080546001600160701b03909316660100000000000002600160301b600160a01b03199093169290921790915590505b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b6000610308836001600160a01b0384166103d3565b90505b92915050565b600061031c42610422565b905090565b63ffffffff1690565b600080806103406001600160701b038716610459565b9050600061037d8563ffffffff168763ffffffff168463ffffffff1611610368576000610372565b6103728885610560565b63ffffffff16610478565b905063ffffffff811661038e610311565b610398919061053a565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b600081815260018301602052604081205461041a5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561030b565b50600061030b565b600065ffffffffffff821115610455576040516306dfcc6560e41b81526030600482015260248101839052604401610056565b5090565b60008061046e6001600160701b038416610488565b5090949350505050565b6000828218828411028218610308565b6000808061049d84610498610311565b6104aa565b9250925092509193909250565b6001600160501b03602083901c166001600160701b03831665ffffffffffff604085901c81169084168111156104e2578282826104e7565b816000805b9250925092509250925092565b60006020828403121561050657600080fd5b81516001600160a01b038116811461051d57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b65ffffffffffff81811683821601908082111561055957610559610524565b5092915050565b63ffffffff82811682821603908082111561055957610559610524565b612d2b8061058c6000396000f3fe6080604052600436106102045760003560e01c806375b238fc11610118578063b7d2b162116100a0578063d6bb62c61161006f578063d6bb62c6146106cc578063d78a83b1146106ec578063f801a69814610724578063fc8610d11461075e578063fe0776f51461077e57600080fd5b8063b7d2b16214610656578063cc1b6c8114610676578063d1f856ee1461068c578063d22b5989146106ac57600080fd5b8063a5808e2f116100e7578063a5808e2f14610572578063a64d95ce1461059f578063abd9bd2a146105bf578063ac9650d8146105ed578063b70096131461061a57600080fd5b806375b238fc146104ed578063853551b81461050257806394c7d7ee14610522578063a166aa891461054257600080fd5b806330cae1871161019b5780634665096d1161016a5780634665096d1461043a5780634c1da1e2146104505780635296295214610470578063530dd456146104905780636d5115bd146104cd57600080fd5b806330cae1871461038e5780633adc277a146103ae5780633ca7c02a146103e55780634136a33c1461040057600080fd5b806318ff183c116101d757806318ff183c146102e15780631cff79cd1461030157806325c471a0146103145780633078f1141461033457600080fd5b806308d6122d146102095780630b0a93ba1461022b57806312be87271461028c578063167bd395146102c1575b600080fd5b34801561021557600080fd5b506102296102243660046124fa565b61079e565b005b34801561023757600080fd5b5061026f610246366004612560565b6001600160401b0390811660009081526001602081905260409091200154600160401b90041690565b6040516001600160401b0390911681526020015b60405180910390f35b34801561029857600080fd5b506102ac6102a7366004612560565b6107f1565b60405163ffffffff9091168152602001610283565b3480156102cd57600080fd5b506102296102dc36600461257b565b61082c565b3480156102ed57600080fd5b506102296102fc3660046125b9565b610842565b6102ac61030f366004612628565b6108a9565b34801561032057600080fd5b5061022961032f366004612690565b6109d9565b34801561034057600080fd5b5061035461034f3660046126d5565b610a27565b604051610283949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561039a57600080fd5b506102296103a93660046126f1565b610a8c565b3480156103ba57600080fd5b506103ce6103c9366004612724565b610a9e565b60405165ffffffffffff9091168152602001610283565b3480156103f157600080fd5b5061026f6001600160401b0381565b34801561040c57600080fd5b506102ac61041b366004612724565b600090815260026020526040902054600160301b900463ffffffff1690565b34801561044657600080fd5b5062093a806102ac565b34801561045c57600080fd5b506102ac61046b36600461273d565b610ad1565b34801561047c57600080fd5b5061022961048b3660046126f1565b610aff565b34801561049c57600080fd5b5061026f6104ab366004612560565b6001600160401b03908116600090815260016020819052604090912001541690565b3480156104d957600080fd5b5061026f6104e8366004612770565b610b11565b3480156104f957600080fd5b5061026f600081565b34801561050e57600080fd5b5061022961051d36600461279e565b610b4c565b34801561052e57600080fd5b5061022961053d366004612628565b610be3565b34801561054e57600080fd5b5061056261055d36600461273d565b610c8f565b6040519015158152602001610283565b34801561057e57600080fd5b5061059261058d366004612560565b610cb7565b60405161028391906127bc565b3480156105ab57600080fd5b506102296105ba366004612809565b610cdb565b3480156105cb57600080fd5b506105df6105da366004612833565b610ced565b604051908152602001610283565b3480156105f957600080fd5b5061060d610608366004612897565b610d26565b60405161028391906128fc565b34801561062657600080fd5b5061063a610635366004612976565b610e0d565b60408051921515835263ffffffff909116602083015201610283565b34801561066257600080fd5b506102296106713660046126d5565b610e94565b34801561068257600080fd5b50620697806102ac565b34801561069857600080fd5b5061063a6106a73660046126d5565b610ed7565b3480156106b857600080fd5b506102296106c73660046129c1565b610f54565b3480156106d857600080fd5b506102ac6106e7366004612833565b610f66565b3480156106f857600080fd5b5061070c6107073660046129df565b6110c0565b6040516001600160a01b039091168152602001610283565b34801561073057600080fd5b5061074461073f366004612a09565b6110e2565b6040805192835263ffffffff909116602083015201610283565b34801561076a57600080fd5b506105df610779366004612560565b611227565b34801561078a57600080fd5b506102296107993660046126d5565b611248565b6107a6611271565b60005b828110156107ea576107e2858585848181106107c7576107c7612a7b565b90506020020160208101906107dc9190612a91565b846112ec565b6001016107a9565b5050505050565b6001600160401b03811660009081526001602081905260408220015461082690600160801b90046001600160701b031661136e565b92915050565b610834611271565b61083e828261138d565b5050565b61084a611271565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b15801561088d57600080fd5b505af11580156108a1573d6000803e3d6000fd5b505050505050565b60003381806108ba838888886113ff565b91509150811580156108d0575063ffffffff8116155b156109235782876108e18888611452565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b03191660448201526064015b60405180910390fd5b600061093184898989610ced565b9050600063ffffffff8316151580610958575061094d82610a9e565b65ffffffffffff1615155b15610969576109668261146a565b90505b60035461097f8a61097a8b8b611452565b61156a565b6003819055506109c78a8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503492506115ac915050565b506003559450505050505b9392505050565b6109e1611271565b60006109f784846109f1876107f1565b85611650565b90508015610a21576001600160401b03841660009081526004602052604090206107ea908461189b565b50505050565b6001600160401b03821660009081526001602090815260408083206001600160a01b03851684529091528120805465ffffffffffff811692918291829190610a7e90600160301b90046001600160701b03166118b0565b969991985096509350505050565b610a94611271565b61083e82826118d3565b60008181526002602052604081205465ffffffffffff16610abe81611977565b610ac857806109d2565b60009392505050565b6001600160a01b038116600090815260208190526040812060010154610826906001600160701b031661136e565b610b07611271565b61083e82826119a6565b6001600160a01b0382166000908152602081815260408083206001600160e01b0319851684529091529020546001600160401b031692915050565b610b54611271565b6001600160401b0383161580610b7257506001600160401b03838116145b15610b9b5760405163061c6a4360e21b81526001600160401b038416600482015260240161091a565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a4508383604051610bd6929190612ad7565b60405180910390a2505050565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612af3565b6001600160e01b03191614610c7b57604051630641fee960e31b81526001600160a01b038216600482015260240161091a565b6107ea610c8a85838686610ced565b61146a565b6001600160a01b0316600090815260208190526040902060010154600160701b900460ff1690565b6001600160401b038116600090815260046020526040902060609061082690611a58565b610ce3611271565b61083e8282611a65565b600084848484604051602001610d069493929190612b10565b604051602081830303815290604052805190602001209050949350505050565b604080516000815260208101909152606090826001600160401b03811115610d5057610d50612b90565b604051908082528060200260200182016040528015610d8357816020015b6060815260200190600190039081610d6e5790505b50915060005b83811015610e0557610de030868684818110610da757610da7612a7b565b9050602002810190610db99190612ba6565b85604051602001610dcc93929190612bec565b604051602081830303815290604052611b76565b838281518110610df257610df2612a7b565b6020908102919091010152600101610d89565b505092915050565b600080610e1984610c8f565b15610e2957506000905080610e8c565b306001600160a01b03861603610e4e57610e438484611bec565b600091509150610e8c565b6000610e5a8585610b11565b9050600080610e698389610ed7565b9150915081610e7a57600080610e84565b63ffffffff811615815b945094505050505b935093915050565b610e9c611271565b6000610ea88383611c03565b90508015610ed2576001600160401b0383166000908152600460205260409020610a219083611cf0565b505050565b60008067fffffffffffffffe196001600160401b03851601610eff5750600190506000610f4d565b600080610f0c8686610a27565b5050915091508165ffffffffffff16600014158015610f425750610f2e611d05565b65ffffffffffff168265ffffffffffff1611155b93509150610f4d9050565b9250929050565b610f5c611271565b61083e8282611d15565b60003381610f748585611452565b90506000610f8488888888610ced565b60008181526002602052604081205491925065ffffffffffff9091169003610fc25760405163060a299b60e41b81526004810182905260240161091a565b826001600160a01b0316886001600160a01b03161461105e576000610fe8600085610ed7565b5090506000611003610ffd6102468b87610b11565b86610ed7565b50905081158015611012575080155b1561105b57604051630ff89d4760e21b81526001600160a01b038087166004830152808c1660248301528a1660448201526001600160e01b03198516606482015260840161091a565b50505b600081815260026020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a398975050505050505050565b6001600160401b03821660009081526004602052604081206109d29083611dd2565b60008033816110f3828989896113ff565b91505060008163ffffffff16611107611d05565b6111119190612c13565b905063ffffffff82161580611148575060008665ffffffffffff1611801561114857508065ffffffffffff168665ffffffffffff16105b156111595782896108e18a8a611452565b6111738665ffffffffffff168265ffffffffffff16611dde565b9550611181838a8a8a610ced565b945061118c85611dee565b60008581526002602052604090819020805465ffffffffffff891669ffffffffffffffffffff19821617600160301b9182900463ffffffff90811660010190811692830291909117909255915190955086907f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b490611213908a9088908f908f908f90612c32565b60405180910390a350505094509492505050565b6001600160401b038116600090815260046020526040812061082690611e3b565b6001600160a01b0381163314610e9c57604051635f159e6360e01b815260040160405180910390fd5b33600080611280838236611e45565b9150915081610ed2578063ffffffff166000036112dc5760006112a38136611f0f565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b0382166024820152909250604401905061091a565b610a21610c8a8430600036610ced565b6001600160a01b0383166000818152602081815260408083206001600160e01b0319871680855290835292819020805467ffffffffffffffff19166001600160401b038716908117909155905192835292917f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a3505050565b600080611383836001600160701b03166118b0565b5090949350505050565b6001600160a01b038216600081815260208190526040908190206001018054841515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb138906113f390841515815260200190565b60405180910390a25050565b600080306001600160a01b038616036114265761141d868585611e45565b91509150611449565b600483106114425761143d86866106358787611452565b61141d565b5060009050805b94509492505050565b60006114616004828486612b66565b6109d291612c78565b60008181526002602052604081205465ffffffffffff811690600160301b900463ffffffff168183036114b35760405163060a299b60e41b81526004810185905260240161091a565b6114bb611d05565b65ffffffffffff168265ffffffffffff1611156114ee57604051630c65b5bd60e11b81526004810185905260240161091a565b6114f782611977565b1561151857604051631e2975b960e21b81526004810185905260240161091a565b600084815260026020526040808220805465ffffffffffff191690555163ffffffff83169186917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a39392505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b6060814710156115d85760405163cf47918160e01b81524760048201526024810183905260440161091a565b600080856001600160a01b031684866040516115f49190612ca6565b60006040518083038185875af1925050503d8060008114611631576040519150601f19603f3d011682016040523d82523d6000602084013e611636565b606091505b5091509150611646868383612101565b9695505050505050565b600067fffffffffffffffe196001600160401b0386160161168f5760405163061c6a4360e21b81526001600160401b038616600482015260240161091a565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff1615908115611781578463ffffffff166116db611d05565b6116e59190612c13565b905060405180604001604052808265ffffffffffff1681526020016117138663ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b03891660009081526001602090815260408083206001600160a01b038c1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff9091161791909117905561182d565b6001600160401b03871660009081526001602090815260408083206001600160a01b038a1684529091528120546117cb91600160301b9091046001600160701b031690869061215d565b6001600160401b03891660009081526001602090815260408083206001600160a01b038c168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b60006109d2836001600160a01b038416612207565b60008060006118c6846118c1611d05565b612256565b9250925092509193909250565b6001600160401b03821615806118f157506001600160401b03828116145b1561191a5760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b038281166000818152600160208190526040808320909101805467ffffffffffffffff19169486169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a35050565b6000611981611d05565b65ffffffffffff1661199662093a8084612c13565b65ffffffffffff16111592915050565b6001600160401b03821615806119c457506001600160401b03828116145b156119ed5760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b03828116600081815260016020819052604080832090910180546fffffffffffffffff00000000000000001916600160401b958716958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a35050565b606060006109d2836122a3565b67fffffffffffffffe196001600160401b03831601611aa25760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b038216600090815260016020819052604082200154611adc90600160801b90046001600160701b0316836206978061215d565b6001600160401b0385166000818152600160208190526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b4890610bd6908590859063ffffffff92909216825265ffffffffffff16602082015260400190565b6060600080846001600160a01b031684604051611b939190612ca6565b600060405180830381855af49150503d8060008114611bce576040519150601f19603f3d011682016040523d82523d6000602084013e611bd3565b606091505b5091509150611be3858383612101565b95945050505050565b6000611bf8838361156a565b600354149392505050565b600067fffffffffffffffe196001600160401b03841601611c425760405163061c6a4360e21b81526001600160401b038416600482015260240161091a565b6001600160401b03831660009081526001602090815260408083206001600160a01b038616845290915281205465ffffffffffff169003611c8557506000610826565b6001600160401b03831660008181526001602090815260408083206001600160a01b038716808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a350600192915050565b60006109d2836001600160a01b0384166122ff565b6000611d10426123f9565b905090565b6001600160a01b038216600090815260208190526040812060010154611d48906001600160701b0316836206978061215d565b6001600160a01b0385166000818152602081815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8716815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c9101610bd6565b60006109d28383612430565b60008282188284110282186109d2565b60008181526002602052604090205465ffffffffffff168015801590611e1a5750611e1881611977565b155b1561083e5760405163813e945960e01b81526004810183905260240161091a565b6000610826825490565b6000806004831015611e5c57506000905080610e8c565b306001600160a01b03861603611e7f57610e4330611e7a8686611452565b611bec565b6000806000611e8e8787611f0f565b92509250925082158015611ea65750611ea630610c8f565b15611eba5760008094509450505050610e8c565b600080611ec7848b610ed7565b9150915081611ee157600080965096505050505050610e8c565b611ef78363ffffffff168263ffffffff16611dde565b63ffffffff8116159b909a5098505050505050505050565b600080806004841015611f2a575060009150819050806120fa565b6000611f368686611452565b90506001600160e01b031981166310a6aa3760e31b1480611f6757506001600160e01b031981166330cae18760e01b145b80611f8257506001600160e01b0319811663294b14a960e11b145b80611f9d57506001600160e01b03198116635326cae760e11b145b80611fb857506001600160e01b0319811663d22b598960e01b145b15611fce576001600080935093509350506120fa565b6001600160e01b0319811663063fc60f60e21b1480611ffd57506001600160e01b0319811663167bd39560e01b145b8061201857506001600160e01b031981166308d6122d60e01b145b1561205a57600061202d60246004888a612b66565b81019061203a919061273d565b9050600061204782610ad1565b600196506000955093506120fa92505050565b6001600160e01b0319811663012e238d60e51b148061208957506001600160e01b03198116635be958b160e11b145b156120e457600061209e60246004888a612b66565b8101906120ab9190612560565b905060016120d5826001600160401b03908116600090815260016020819052604090912001541690565b600094509450945050506120fa565b60006120f03083610b11565b6000935093509350505b9250925092565b606082612116576121118261245a565b6109d2565b815115801561212d57506001600160a01b0384163b155b1561215657604051639996b31560e01b81526001600160a01b038516600482015260240161091a565b50806109d2565b6000806000612174866001600160701b031661136e565b905060006121b18563ffffffff168763ffffffff168463ffffffff161161219c5760006121a6565b6121a68885612cc2565b63ffffffff16611dde565b90508063ffffffff166121c2611d05565b6121cc9190612c13565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b600081815260018301602052604081205461224e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610826565b506000610826565b69ffffffffffffffffffff602083901c166001600160701b03831665ffffffffffff604085901c811690841681111561229157828282612296565b816000805b9250925092509250925092565b6060816000018054806020026020016040519081016040528092919081815260200182805480156122f357602002820191906000526020600020905b8154815260200190600101908083116122df575b50505050509050919050565b600081815260018301602052604081205480156123e8576000612323600183612b53565b855490915060009061233790600190612b53565b905080821461239c57600086600001828154811061235757612357612a7b565b906000526020600020015490508087600001848154811061237a5761237a612a7b565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806123ad576123ad612cdf565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610826565b6000915050610826565b5092915050565b600065ffffffffffff82111561242c576040516306dfcc6560e41b8152603060048201526024810183905260440161091a565b5090565b600082600001828154811061244757612447612a7b565b9060005260206000200154905092915050565b80511561246957805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6001600160a01b038116811461248257600080fd5b60008083601f8401126124ac57600080fd5b5081356001600160401b038111156124c357600080fd5b6020830191508360208260051b8501011115610f4d57600080fd5b80356001600160401b03811681146124f557600080fd5b919050565b6000806000806060858703121561251057600080fd5b843561251b81612485565b935060208501356001600160401b0381111561253657600080fd5b6125428782880161249a565b90945092506125559050604086016124de565b905092959194509250565b60006020828403121561257257600080fd5b6109d2826124de565b6000806040838503121561258e57600080fd5b823561259981612485565b9150602083013580151581146125ae57600080fd5b809150509250929050565b600080604083850312156125cc57600080fd5b82356125d781612485565b915060208301356125ae81612485565b60008083601f8401126125f957600080fd5b5081356001600160401b0381111561261057600080fd5b602083019150836020828501011115610f4d57600080fd5b60008060006040848603121561263d57600080fd5b833561264881612485565b925060208401356001600160401b0381111561266357600080fd5b61266f868287016125e7565b9497909650939450505050565b803563ffffffff811681146124f557600080fd5b6000806000606084860312156126a557600080fd5b6126ae846124de565b925060208401356126be81612485565b91506126cc6040850161267c565b90509250925092565b600080604083850312156126e857600080fd5b6125d7836124de565b6000806040838503121561270457600080fd5b61270d836124de565b915061271b602084016124de565b90509250929050565b60006020828403121561273657600080fd5b5035919050565b60006020828403121561274f57600080fd5b81356109d281612485565b6001600160e01b03198116811461248257600080fd5b6000806040838503121561278357600080fd5b823561278e81612485565b915060208301356125ae8161275a565b6000806000604084860312156127b357600080fd5b612648846124de565b6020808252825182820181905260009190848201906040850190845b818110156127fd5783516001600160a01b0316835292840192918401916001016127d8565b50909695505050505050565b6000806040838503121561281c57600080fd5b612825836124de565b915061271b6020840161267c565b6000806000806060858703121561284957600080fd5b843561285481612485565b9350602085013561286481612485565b925060408501356001600160401b0381111561287f57600080fd5b61288b878288016125e7565b95989497509550505050565b600080602083850312156128aa57600080fd5b82356001600160401b038111156128c057600080fd5b6128cc8582860161249a565b90969095509350505050565b60005b838110156128f35781810151838201526020016128db565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561296957878503603f190184528151805180875261294a818989018a85016128d8565b601f01601f191695909501860194509285019290850190600101612923565b5092979650505050505050565b60008060006060848603121561298b57600080fd5b833561299681612485565b925060208401356129a681612485565b915060408401356129b68161275a565b809150509250925092565b600080604083850312156129d457600080fd5b823561282581612485565b600080604083850312156129f257600080fd5b6129fb836124de565b946020939093013593505050565b60008060008060608587031215612a1f57600080fd5b8435612a2a81612485565b935060208501356001600160401b03811115612a4557600080fd5b612a51878288016125e7565b909450925050604085013565ffffffffffff81168114612a7057600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612aa357600080fd5b81356109d28161275a565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000612aeb602083018486612aae565b949350505050565b600060208284031215612b0557600080fd5b81516109d28161275a565b6001600160a01b038581168252841660208201526060604082018190526000906116469083018486612aae565b634e487b7160e01b600052601160045260246000fd5b8181038181111561082657610826612b3d565b60008085851115612b7657600080fd5b83861115612b8357600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000808335601e19843603018112612bbd57600080fd5b8301803591506001600160401b03821115612bd757600080fd5b602001915036819003821315610f4d57600080fd5b828482376000838201600081528351612c098183602088016128d8565b0195945050505050565b65ffffffffffff8181168382160190808211156123f2576123f2612b3d565b65ffffffffffff861681526001600160a01b03858116602083015284166040820152608060608201819052600090612c6d9083018486612aae565b979650505050505050565b6001600160e01b03198135818116916004851015610e055760049490940360031b84901b1690921692915050565b60008251612cb88184602087016128d8565b9190910192915050565b63ffffffff8281168282160390808211156123f2576123f2612b3d565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a5f431b284777d609a182b1d18254eda749a5abec857d0c186374bdf3db2f9c764736f6c63430008190033",
|
|
1234
|
+
"deployedBytecode": "0x6080604052600436106102045760003560e01c806375b238fc11610118578063b7d2b162116100a0578063d6bb62c61161006f578063d6bb62c6146106cc578063d78a83b1146106ec578063f801a69814610724578063fc8610d11461075e578063fe0776f51461077e57600080fd5b8063b7d2b16214610656578063cc1b6c8114610676578063d1f856ee1461068c578063d22b5989146106ac57600080fd5b8063a5808e2f116100e7578063a5808e2f14610572578063a64d95ce1461059f578063abd9bd2a146105bf578063ac9650d8146105ed578063b70096131461061a57600080fd5b806375b238fc146104ed578063853551b81461050257806394c7d7ee14610522578063a166aa891461054257600080fd5b806330cae1871161019b5780634665096d1161016a5780634665096d1461043a5780634c1da1e2146104505780635296295214610470578063530dd456146104905780636d5115bd146104cd57600080fd5b806330cae1871461038e5780633adc277a146103ae5780633ca7c02a146103e55780634136a33c1461040057600080fd5b806318ff183c116101d757806318ff183c146102e15780631cff79cd1461030157806325c471a0146103145780633078f1141461033457600080fd5b806308d6122d146102095780630b0a93ba1461022b57806312be87271461028c578063167bd395146102c1575b600080fd5b34801561021557600080fd5b506102296102243660046124fa565b61079e565b005b34801561023757600080fd5b5061026f610246366004612560565b6001600160401b0390811660009081526001602081905260409091200154600160401b90041690565b6040516001600160401b0390911681526020015b60405180910390f35b34801561029857600080fd5b506102ac6102a7366004612560565b6107f1565b60405163ffffffff9091168152602001610283565b3480156102cd57600080fd5b506102296102dc36600461257b565b61082c565b3480156102ed57600080fd5b506102296102fc3660046125b9565b610842565b6102ac61030f366004612628565b6108a9565b34801561032057600080fd5b5061022961032f366004612690565b6109d9565b34801561034057600080fd5b5061035461034f3660046126d5565b610a27565b604051610283949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561039a57600080fd5b506102296103a93660046126f1565b610a8c565b3480156103ba57600080fd5b506103ce6103c9366004612724565b610a9e565b60405165ffffffffffff9091168152602001610283565b3480156103f157600080fd5b5061026f6001600160401b0381565b34801561040c57600080fd5b506102ac61041b366004612724565b600090815260026020526040902054600160301b900463ffffffff1690565b34801561044657600080fd5b5062093a806102ac565b34801561045c57600080fd5b506102ac61046b36600461273d565b610ad1565b34801561047c57600080fd5b5061022961048b3660046126f1565b610aff565b34801561049c57600080fd5b5061026f6104ab366004612560565b6001600160401b03908116600090815260016020819052604090912001541690565b3480156104d957600080fd5b5061026f6104e8366004612770565b610b11565b3480156104f957600080fd5b5061026f600081565b34801561050e57600080fd5b5061022961051d36600461279e565b610b4c565b34801561052e57600080fd5b5061022961053d366004612628565b610be3565b34801561054e57600080fd5b5061056261055d36600461273d565b610c8f565b6040519015158152602001610283565b34801561057e57600080fd5b5061059261058d366004612560565b610cb7565b60405161028391906127bc565b3480156105ab57600080fd5b506102296105ba366004612809565b610cdb565b3480156105cb57600080fd5b506105df6105da366004612833565b610ced565b604051908152602001610283565b3480156105f957600080fd5b5061060d610608366004612897565b610d26565b60405161028391906128fc565b34801561062657600080fd5b5061063a610635366004612976565b610e0d565b60408051921515835263ffffffff909116602083015201610283565b34801561066257600080fd5b506102296106713660046126d5565b610e94565b34801561068257600080fd5b50620697806102ac565b34801561069857600080fd5b5061063a6106a73660046126d5565b610ed7565b3480156106b857600080fd5b506102296106c73660046129c1565b610f54565b3480156106d857600080fd5b506102ac6106e7366004612833565b610f66565b3480156106f857600080fd5b5061070c6107073660046129df565b6110c0565b6040516001600160a01b039091168152602001610283565b34801561073057600080fd5b5061074461073f366004612a09565b6110e2565b6040805192835263ffffffff909116602083015201610283565b34801561076a57600080fd5b506105df610779366004612560565b611227565b34801561078a57600080fd5b506102296107993660046126d5565b611248565b6107a6611271565b60005b828110156107ea576107e2858585848181106107c7576107c7612a7b565b90506020020160208101906107dc9190612a91565b846112ec565b6001016107a9565b5050505050565b6001600160401b03811660009081526001602081905260408220015461082690600160801b90046001600160701b031661136e565b92915050565b610834611271565b61083e828261138d565b5050565b61084a611271565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b15801561088d57600080fd5b505af11580156108a1573d6000803e3d6000fd5b505050505050565b60003381806108ba838888886113ff565b91509150811580156108d0575063ffffffff8116155b156109235782876108e18888611452565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b03191660448201526064015b60405180910390fd5b600061093184898989610ced565b9050600063ffffffff8316151580610958575061094d82610a9e565b65ffffffffffff1615155b15610969576109668261146a565b90505b60035461097f8a61097a8b8b611452565b61156a565b6003819055506109c78a8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503492506115ac915050565b506003559450505050505b9392505050565b6109e1611271565b60006109f784846109f1876107f1565b85611650565b90508015610a21576001600160401b03841660009081526004602052604090206107ea908461189b565b50505050565b6001600160401b03821660009081526001602090815260408083206001600160a01b03851684529091528120805465ffffffffffff811692918291829190610a7e90600160301b90046001600160701b03166118b0565b969991985096509350505050565b610a94611271565b61083e82826118d3565b60008181526002602052604081205465ffffffffffff16610abe81611977565b610ac857806109d2565b60009392505050565b6001600160a01b038116600090815260208190526040812060010154610826906001600160701b031661136e565b610b07611271565b61083e82826119a6565b6001600160a01b0382166000908152602081815260408083206001600160e01b0319851684529091529020546001600160401b031692915050565b610b54611271565b6001600160401b0383161580610b7257506001600160401b03838116145b15610b9b5760405163061c6a4360e21b81526001600160401b038416600482015260240161091a565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a4508383604051610bd6929190612ad7565b60405180910390a2505050565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612af3565b6001600160e01b03191614610c7b57604051630641fee960e31b81526001600160a01b038216600482015260240161091a565b6107ea610c8a85838686610ced565b61146a565b6001600160a01b0316600090815260208190526040902060010154600160701b900460ff1690565b6001600160401b038116600090815260046020526040902060609061082690611a58565b610ce3611271565b61083e8282611a65565b600084848484604051602001610d069493929190612b10565b604051602081830303815290604052805190602001209050949350505050565b604080516000815260208101909152606090826001600160401b03811115610d5057610d50612b90565b604051908082528060200260200182016040528015610d8357816020015b6060815260200190600190039081610d6e5790505b50915060005b83811015610e0557610de030868684818110610da757610da7612a7b565b9050602002810190610db99190612ba6565b85604051602001610dcc93929190612bec565b604051602081830303815290604052611b76565b838281518110610df257610df2612a7b565b6020908102919091010152600101610d89565b505092915050565b600080610e1984610c8f565b15610e2957506000905080610e8c565b306001600160a01b03861603610e4e57610e438484611bec565b600091509150610e8c565b6000610e5a8585610b11565b9050600080610e698389610ed7565b9150915081610e7a57600080610e84565b63ffffffff811615815b945094505050505b935093915050565b610e9c611271565b6000610ea88383611c03565b90508015610ed2576001600160401b0383166000908152600460205260409020610a219083611cf0565b505050565b60008067fffffffffffffffe196001600160401b03851601610eff5750600190506000610f4d565b600080610f0c8686610a27565b5050915091508165ffffffffffff16600014158015610f425750610f2e611d05565b65ffffffffffff168265ffffffffffff1611155b93509150610f4d9050565b9250929050565b610f5c611271565b61083e8282611d15565b60003381610f748585611452565b90506000610f8488888888610ced565b60008181526002602052604081205491925065ffffffffffff9091169003610fc25760405163060a299b60e41b81526004810182905260240161091a565b826001600160a01b0316886001600160a01b03161461105e576000610fe8600085610ed7565b5090506000611003610ffd6102468b87610b11565b86610ed7565b50905081158015611012575080155b1561105b57604051630ff89d4760e21b81526001600160a01b038087166004830152808c1660248301528a1660448201526001600160e01b03198516606482015260840161091a565b50505b600081815260026020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a398975050505050505050565b6001600160401b03821660009081526004602052604081206109d29083611dd2565b60008033816110f3828989896113ff565b91505060008163ffffffff16611107611d05565b6111119190612c13565b905063ffffffff82161580611148575060008665ffffffffffff1611801561114857508065ffffffffffff168665ffffffffffff16105b156111595782896108e18a8a611452565b6111738665ffffffffffff168265ffffffffffff16611dde565b9550611181838a8a8a610ced565b945061118c85611dee565b60008581526002602052604090819020805465ffffffffffff891669ffffffffffffffffffff19821617600160301b9182900463ffffffff90811660010190811692830291909117909255915190955086907f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b490611213908a9088908f908f908f90612c32565b60405180910390a350505094509492505050565b6001600160401b038116600090815260046020526040812061082690611e3b565b6001600160a01b0381163314610e9c57604051635f159e6360e01b815260040160405180910390fd5b33600080611280838236611e45565b9150915081610ed2578063ffffffff166000036112dc5760006112a38136611f0f565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b0382166024820152909250604401905061091a565b610a21610c8a8430600036610ced565b6001600160a01b0383166000818152602081815260408083206001600160e01b0319871680855290835292819020805467ffffffffffffffff19166001600160401b038716908117909155905192835292917f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a3505050565b600080611383836001600160701b03166118b0565b5090949350505050565b6001600160a01b038216600081815260208190526040908190206001018054841515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb138906113f390841515815260200190565b60405180910390a25050565b600080306001600160a01b038616036114265761141d868585611e45565b91509150611449565b600483106114425761143d86866106358787611452565b61141d565b5060009050805b94509492505050565b60006114616004828486612b66565b6109d291612c78565b60008181526002602052604081205465ffffffffffff811690600160301b900463ffffffff168183036114b35760405163060a299b60e41b81526004810185905260240161091a565b6114bb611d05565b65ffffffffffff168265ffffffffffff1611156114ee57604051630c65b5bd60e11b81526004810185905260240161091a565b6114f782611977565b1561151857604051631e2975b960e21b81526004810185905260240161091a565b600084815260026020526040808220805465ffffffffffff191690555163ffffffff83169186917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a39392505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b6060814710156115d85760405163cf47918160e01b81524760048201526024810183905260440161091a565b600080856001600160a01b031684866040516115f49190612ca6565b60006040518083038185875af1925050503d8060008114611631576040519150601f19603f3d011682016040523d82523d6000602084013e611636565b606091505b5091509150611646868383612101565b9695505050505050565b600067fffffffffffffffe196001600160401b0386160161168f5760405163061c6a4360e21b81526001600160401b038616600482015260240161091a565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff1615908115611781578463ffffffff166116db611d05565b6116e59190612c13565b905060405180604001604052808265ffffffffffff1681526020016117138663ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b03891660009081526001602090815260408083206001600160a01b038c1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff9091161791909117905561182d565b6001600160401b03871660009081526001602090815260408083206001600160a01b038a1684529091528120546117cb91600160301b9091046001600160701b031690869061215d565b6001600160401b03891660009081526001602090815260408083206001600160a01b038c168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b60006109d2836001600160a01b038416612207565b60008060006118c6846118c1611d05565b612256565b9250925092509193909250565b6001600160401b03821615806118f157506001600160401b03828116145b1561191a5760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b038281166000818152600160208190526040808320909101805467ffffffffffffffff19169486169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a35050565b6000611981611d05565b65ffffffffffff1661199662093a8084612c13565b65ffffffffffff16111592915050565b6001600160401b03821615806119c457506001600160401b03828116145b156119ed5760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b03828116600081815260016020819052604080832090910180546fffffffffffffffff00000000000000001916600160401b958716958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a35050565b606060006109d2836122a3565b67fffffffffffffffe196001600160401b03831601611aa25760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b038216600090815260016020819052604082200154611adc90600160801b90046001600160701b0316836206978061215d565b6001600160401b0385166000818152600160208190526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b4890610bd6908590859063ffffffff92909216825265ffffffffffff16602082015260400190565b6060600080846001600160a01b031684604051611b939190612ca6565b600060405180830381855af49150503d8060008114611bce576040519150601f19603f3d011682016040523d82523d6000602084013e611bd3565b606091505b5091509150611be3858383612101565b95945050505050565b6000611bf8838361156a565b600354149392505050565b600067fffffffffffffffe196001600160401b03841601611c425760405163061c6a4360e21b81526001600160401b038416600482015260240161091a565b6001600160401b03831660009081526001602090815260408083206001600160a01b038616845290915281205465ffffffffffff169003611c8557506000610826565b6001600160401b03831660008181526001602090815260408083206001600160a01b038716808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a350600192915050565b60006109d2836001600160a01b0384166122ff565b6000611d10426123f9565b905090565b6001600160a01b038216600090815260208190526040812060010154611d48906001600160701b0316836206978061215d565b6001600160a01b0385166000818152602081815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8716815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c9101610bd6565b60006109d28383612430565b60008282188284110282186109d2565b60008181526002602052604090205465ffffffffffff168015801590611e1a5750611e1881611977565b155b1561083e5760405163813e945960e01b81526004810183905260240161091a565b6000610826825490565b6000806004831015611e5c57506000905080610e8c565b306001600160a01b03861603611e7f57610e4330611e7a8686611452565b611bec565b6000806000611e8e8787611f0f565b92509250925082158015611ea65750611ea630610c8f565b15611eba5760008094509450505050610e8c565b600080611ec7848b610ed7565b9150915081611ee157600080965096505050505050610e8c565b611ef78363ffffffff168263ffffffff16611dde565b63ffffffff8116159b909a5098505050505050505050565b600080806004841015611f2a575060009150819050806120fa565b6000611f368686611452565b90506001600160e01b031981166310a6aa3760e31b1480611f6757506001600160e01b031981166330cae18760e01b145b80611f8257506001600160e01b0319811663294b14a960e11b145b80611f9d57506001600160e01b03198116635326cae760e11b145b80611fb857506001600160e01b0319811663d22b598960e01b145b15611fce576001600080935093509350506120fa565b6001600160e01b0319811663063fc60f60e21b1480611ffd57506001600160e01b0319811663167bd39560e01b145b8061201857506001600160e01b031981166308d6122d60e01b145b1561205a57600061202d60246004888a612b66565b81019061203a919061273d565b9050600061204782610ad1565b600196506000955093506120fa92505050565b6001600160e01b0319811663012e238d60e51b148061208957506001600160e01b03198116635be958b160e11b145b156120e457600061209e60246004888a612b66565b8101906120ab9190612560565b905060016120d5826001600160401b03908116600090815260016020819052604090912001541690565b600094509450945050506120fa565b60006120f03083610b11565b6000935093509350505b9250925092565b606082612116576121118261245a565b6109d2565b815115801561212d57506001600160a01b0384163b155b1561215657604051639996b31560e01b81526001600160a01b038516600482015260240161091a565b50806109d2565b6000806000612174866001600160701b031661136e565b905060006121b18563ffffffff168763ffffffff168463ffffffff161161219c5760006121a6565b6121a68885612cc2565b63ffffffff16611dde565b90508063ffffffff166121c2611d05565b6121cc9190612c13565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b600081815260018301602052604081205461224e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610826565b506000610826565b69ffffffffffffffffffff602083901c166001600160701b03831665ffffffffffff604085901c811690841681111561229157828282612296565b816000805b9250925092509250925092565b6060816000018054806020026020016040519081016040528092919081815260200182805480156122f357602002820191906000526020600020905b8154815260200190600101908083116122df575b50505050509050919050565b600081815260018301602052604081205480156123e8576000612323600183612b53565b855490915060009061233790600190612b53565b905080821461239c57600086600001828154811061235757612357612a7b565b906000526020600020015490508087600001848154811061237a5761237a612a7b565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806123ad576123ad612cdf565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610826565b6000915050610826565b5092915050565b600065ffffffffffff82111561242c576040516306dfcc6560e41b8152603060048201526024810183905260440161091a565b5090565b600082600001828154811061244757612447612a7b565b9060005260206000200154905092915050565b80511561246957805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6001600160a01b038116811461248257600080fd5b60008083601f8401126124ac57600080fd5b5081356001600160401b038111156124c357600080fd5b6020830191508360208260051b8501011115610f4d57600080fd5b80356001600160401b03811681146124f557600080fd5b919050565b6000806000806060858703121561251057600080fd5b843561251b81612485565b935060208501356001600160401b0381111561253657600080fd5b6125428782880161249a565b90945092506125559050604086016124de565b905092959194509250565b60006020828403121561257257600080fd5b6109d2826124de565b6000806040838503121561258e57600080fd5b823561259981612485565b9150602083013580151581146125ae57600080fd5b809150509250929050565b600080604083850312156125cc57600080fd5b82356125d781612485565b915060208301356125ae81612485565b60008083601f8401126125f957600080fd5b5081356001600160401b0381111561261057600080fd5b602083019150836020828501011115610f4d57600080fd5b60008060006040848603121561263d57600080fd5b833561264881612485565b925060208401356001600160401b0381111561266357600080fd5b61266f868287016125e7565b9497909650939450505050565b803563ffffffff811681146124f557600080fd5b6000806000606084860312156126a557600080fd5b6126ae846124de565b925060208401356126be81612485565b91506126cc6040850161267c565b90509250925092565b600080604083850312156126e857600080fd5b6125d7836124de565b6000806040838503121561270457600080fd5b61270d836124de565b915061271b602084016124de565b90509250929050565b60006020828403121561273657600080fd5b5035919050565b60006020828403121561274f57600080fd5b81356109d281612485565b6001600160e01b03198116811461248257600080fd5b6000806040838503121561278357600080fd5b823561278e81612485565b915060208301356125ae8161275a565b6000806000604084860312156127b357600080fd5b612648846124de565b6020808252825182820181905260009190848201906040850190845b818110156127fd5783516001600160a01b0316835292840192918401916001016127d8565b50909695505050505050565b6000806040838503121561281c57600080fd5b612825836124de565b915061271b6020840161267c565b6000806000806060858703121561284957600080fd5b843561285481612485565b9350602085013561286481612485565b925060408501356001600160401b0381111561287f57600080fd5b61288b878288016125e7565b95989497509550505050565b600080602083850312156128aa57600080fd5b82356001600160401b038111156128c057600080fd5b6128cc8582860161249a565b90969095509350505050565b60005b838110156128f35781810151838201526020016128db565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561296957878503603f190184528151805180875261294a818989018a85016128d8565b601f01601f191695909501860194509285019290850190600101612923565b5092979650505050505050565b60008060006060848603121561298b57600080fd5b833561299681612485565b925060208401356129a681612485565b915060408401356129b68161275a565b809150509250925092565b600080604083850312156129d457600080fd5b823561282581612485565b600080604083850312156129f257600080fd5b6129fb836124de565b946020939093013593505050565b60008060008060608587031215612a1f57600080fd5b8435612a2a81612485565b935060208501356001600160401b03811115612a4557600080fd5b612a51878288016125e7565b909450925050604085013565ffffffffffff81168114612a7057600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612aa357600080fd5b81356109d28161275a565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000612aeb602083018486612aae565b949350505050565b600060208284031215612b0557600080fd5b81516109d28161275a565b6001600160a01b038581168252841660208201526060604082018190526000906116469083018486612aae565b634e487b7160e01b600052601160045260246000fd5b8181038181111561082657610826612b3d565b60008085851115612b7657600080fd5b83861115612b8357600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000808335601e19843603018112612bbd57600080fd5b8301803591506001600160401b03821115612bd757600080fd5b602001915036819003821315610f4d57600080fd5b828482376000838201600081528351612c098183602088016128d8565b0195945050505050565b65ffffffffffff8181168382160190808211156123f2576123f2612b3d565b65ffffffffffff861681526001600160a01b03858116602083015284166040820152608060608201819052600090612c6d9083018486612aae565b979650505050505050565b6001600160e01b03198135818116916004851015610e055760049490940360031b84901b1690921692915050565b60008251612cb88184602087016128d8565b9190910192915050565b63ffffffff8281168282160390808211156123f2576123f2612b3d565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a5f431b284777d609a182b1d18254eda749a5abec857d0c186374bdf3db2f9c764736f6c63430008190033",
|
|
1235
1235
|
"linkReferences": {},
|
|
1236
1236
|
"deployedLinkReferences": {}
|
|
1237
1237
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mapprotocol/common-contracts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Common contracts for MAP Protocol",
|
|
5
5
|
"main": "typechain-types/index.js",
|
|
6
6
|
"types": "typechain-types/index.d.ts",
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
"artifacts/contracts/**/*.json",
|
|
10
10
|
"!artifacts/contracts/**/*.dbg.json",
|
|
11
11
|
"typechain-types/**/*",
|
|
12
|
+
"utils/**/*.ts",
|
|
12
13
|
"README.md"
|
|
13
14
|
],
|
|
14
15
|
"repository": {
|
|
@@ -46,8 +47,17 @@
|
|
|
46
47
|
"author": "MAP Protocol",
|
|
47
48
|
"license": "MIT",
|
|
48
49
|
"dependencies": {
|
|
49
|
-
"@openzeppelin/contracts": "
|
|
50
|
-
"@openzeppelin/contracts-upgradeable": "
|
|
50
|
+
"@openzeppelin/contracts": "5.4.0",
|
|
51
|
+
"@openzeppelin/contracts-upgradeable": "5.4.0",
|
|
52
|
+
"bs58": "^4.0.1"
|
|
53
|
+
},
|
|
54
|
+
"peerDependencies": {
|
|
55
|
+
"tronweb": ">=5.0.0"
|
|
56
|
+
},
|
|
57
|
+
"peerDependenciesMeta": {
|
|
58
|
+
"tronweb": {
|
|
59
|
+
"optional": true
|
|
60
|
+
}
|
|
51
61
|
},
|
|
52
62
|
"devDependencies": {
|
|
53
63
|
"@nomicfoundation/hardhat-chai-matchers": "^2.0.0",
|
|
@@ -62,8 +72,10 @@
|
|
|
62
72
|
"@types/mocha": ">=9.1.0",
|
|
63
73
|
"@types/node": ">=18.0.0",
|
|
64
74
|
"chai": "^4.2.0",
|
|
75
|
+
"dotenv": "^16.0.3",
|
|
65
76
|
"ethers": "^6.4.0",
|
|
66
77
|
"hardhat": "^2.19.0",
|
|
78
|
+
"tronweb": "^5.3.0",
|
|
67
79
|
"hardhat-gas-reporter": "^1.0.8",
|
|
68
80
|
"solidity-coverage": "^0.8.0",
|
|
69
81
|
"ts-node": ">=8.0.0",
|
package/typechain-types/factories/@openzeppelin/contracts/access/manager/AccessManager__factory.ts
CHANGED
|
@@ -1187,7 +1187,7 @@ const _abi = [
|
|
|
1187
1187
|
] as const;
|
|
1188
1188
|
|
|
1189
1189
|
const _bytecode =
|
|
1190
|
-
"0x60806040523480156200001157600080fd5b5060405162002e2c38038062002e2c833981016040819052620000349162000481565b6001600160a01b0381166200006457604051630409d6d160e11b8152600060048201526024015b60405180910390fd5b6200007360008281806200007b565b50506200050b565b60006002600160401b03196001600160401b03861601620000bb5760405163061c6a4360e21b81526001600160401b03861660048201526024016200005b565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff1615908115620001ba5763ffffffff85166200010a620002d2565b620001169190620004c2565b905060405180604001604052808265ffffffffffff168152602001620001488663ffffffff16620002e460201b60201c565b6001600160701b039081169091526001600160401b03891660009081526001602090815260408083206001600160a01b038c16845282529091208351815494909201519092166601000000000000026001600160a01b031990931665ffffffffffff9091161791909117905562000264565b6001600160401b03871660009081526001602090815260408083206001600160a01b038a168452909152812054620002099166010000000000009091046001600160701b0316908690620002ed565b6001600160401b03891660009081526001602090815260408083206001600160a01b038c168452909152902080546001600160701b03909316660100000000000002600160301b600160a01b03199093169290921790915590505b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b6000620002df42620003a2565b905090565b63ffffffff1690565b60008080620003056001600160701b038716620003db565b90506000620003488563ffffffff168763ffffffff168463ffffffff1611620003305760006200033c565b6200033c8885620004eb565b63ffffffff16620003fc565b905063ffffffff81166200035b620002d2565b620003679190620004c2565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b600065ffffffffffff821115620003d7576040516306dfcc6560e41b815260306004820152602481018390526044016200005b565b5090565b600080620003f26001600160701b0384166200040f565b5090949350505050565b60008282188284110282185b9392505050565b60008080620004288462000422620002d2565b62000435565b9250925092509193909250565b6001600160501b03602083901c166001600160701b03831665ffffffffffff604085901c81169084168111156200046f5782828262000474565b816000805b9250925092509250925092565b6000602082840312156200049457600080fd5b81516001600160a01b03811681146200040857600080fd5b634e487b7160e01b600052601160045260246000fd5b65ffffffffffff818116838216019080821115620004e457620004e4620004ac565b5092915050565b63ffffffff828116828216039080821115620004e457620004e4620004ac565b612911806200051b6000396000f3fe6080604052600436106101e35760003560e01c80636d5115bd11610102578063b700961311610095578063d22b598911610064578063d22b59891461065e578063d6bb62c61461067e578063f801a6981461069e578063fe0776f5146106d857600080fd5b8063b7009613146105cc578063b7d2b16214610608578063cc1b6c8114610628578063d1f856ee1461063e57600080fd5b8063a166aa89116100d1578063a166aa8914610521578063a64d95ce14610551578063abd9bd2a14610571578063ac9650d81461059f57600080fd5b80636d5115bd146104ac57806375b238fc146104cc578063853551b8146104e157806394c7d7ee1461050157600080fd5b806330cae1871161017a5780634665096d116101495780634665096d146104195780634c1da1e21461042f578063529629521461044f578063530dd4561461046f57600080fd5b806330cae1871461036d5780633adc277a1461038d5780633ca7c02a146103c45780634136a33c146103df57600080fd5b806318ff183c116101b657806318ff183c146102c05780631cff79cd146102e057806325c471a0146102f35780633078f1141461031357600080fd5b806308d6122d146101e85780630b0a93ba1461020a57806312be87271461026b578063167bd395146102a0575b600080fd5b3480156101f457600080fd5b50610208610203366004612179565b6106f8565b005b34801561021657600080fd5b5061024e6102253660046121df565b6001600160401b0390811660009081526001602081905260409091200154600160401b90041690565b6040516001600160401b0390911681526020015b60405180910390f35b34801561027757600080fd5b5061028b6102863660046121df565b61074b565b60405163ffffffff9091168152602001610262565b3480156102ac57600080fd5b506102086102bb3660046121fa565b610786565b3480156102cc57600080fd5b506102086102db366004612238565b61079c565b61028b6102ee3660046122a7565b610803565b3480156102ff57600080fd5b5061020861030e36600461230f565b610933565b34801561031f57600080fd5b5061033361032e366004612354565b610955565b604051610262949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561037957600080fd5b50610208610388366004612370565b6109ba565b34801561039957600080fd5b506103ad6103a83660046123a3565b6109cc565b60405165ffffffffffff9091168152602001610262565b3480156103d057600080fd5b5061024e6001600160401b0381565b3480156103eb57600080fd5b5061028b6103fa3660046123a3565b600090815260026020526040902054600160301b900463ffffffff1690565b34801561042557600080fd5b5062093a8061028b565b34801561043b57600080fd5b5061028b61044a3660046123bc565b6109ff565b34801561045b57600080fd5b5061020861046a366004612370565b610a2d565b34801561047b57600080fd5b5061024e61048a3660046121df565b6001600160401b03908116600090815260016020819052604090912001541690565b3480156104b857600080fd5b5061024e6104c73660046123ef565b610a3f565b3480156104d857600080fd5b5061024e600081565b3480156104ed57600080fd5b506102086104fc36600461241d565b610a7a565b34801561050d57600080fd5b5061020861051c3660046122a7565b610b11565b34801561052d57600080fd5b5061054161053c3660046123bc565b610bbd565b6040519015158152602001610262565b34801561055d57600080fd5b5061020861056c36600461243b565b610be5565b34801561057d57600080fd5b5061059161058c366004612465565b610bf7565b604051908152602001610262565b3480156105ab57600080fd5b506105bf6105ba3660046124c9565b610c30565b604051610262919061252e565b3480156105d857600080fd5b506105ec6105e73660046125a8565b610d17565b60408051921515835263ffffffff909116602083015201610262565b34801561061457600080fd5b50610208610623366004612354565b610d9e565b34801561063457600080fd5b506206978061028b565b34801561064a57600080fd5b506105ec610659366004612354565b610db5565b34801561066a57600080fd5b506102086106793660046125f3565b610e32565b34801561068a57600080fd5b5061028b610699366004612465565b610e44565b3480156106aa57600080fd5b506106be6106b9366004612611565b610f9e565b6040805192835263ffffffff909116602083015201610262565b3480156106e457600080fd5b506102086106f3366004612354565b6110e3565b61070061110c565b60005b828110156107445761073c8585858481811061072157610721612683565b90506020020160208101906107369190612699565b84611187565b600101610703565b5050505050565b6001600160401b03811660009081526001602081905260408220015461078090600160801b90046001600160701b0316611209565b92915050565b61078e61110c565b6107988282611228565b5050565b6107a461110c565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b1580156107e757600080fd5b505af11580156107fb573d6000803e3d6000fd5b505050505050565b60003381806108148388888861129a565b915091508115801561082a575063ffffffff8116155b1561087d57828761083b88886112ed565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b03191660448201526064015b60405180910390fd5b600061088b84898989610bf7565b9050600063ffffffff83161515806108b257506108a7826109cc565b65ffffffffffff1615155b156108c3576108c082611305565b90505b6003546108d98a6108d48b8b6112ed565b611405565b6003819055506109218a8a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250349250611447915050565b506003559450505050505b9392505050565b61093b61110c565b61094f83836109498661074b565b846114eb565b50505050565b6001600160401b03821660009081526001602090815260408083206001600160a01b03851684529091528120805465ffffffffffff8116929182918291906109ac90600160301b90046001600160701b0316611736565b969991985096509350505050565b6109c261110c565b6107988282611759565b60008181526002602052604081205465ffffffffffff166109ec816117fd565b6109f6578061092c565b60009392505050565b6001600160a01b038116600090815260208190526040812060010154610780906001600160701b0316611209565b610a3561110c565b610798828261182c565b6001600160a01b0382166000908152602081815260408083206001600160e01b0319851684529091529020546001600160401b031692915050565b610a8261110c565b6001600160401b0383161580610aa057506001600160401b03838116145b15610ac95760405163061c6a4360e21b81526001600160401b0384166004820152602401610874565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a4508383604051610b049291906126df565b60405180910390a2505050565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa158015610b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7691906126fb565b6001600160e01b03191614610ba957604051630641fee960e31b81526001600160a01b0382166004820152602401610874565b610744610bb885838686610bf7565b611305565b6001600160a01b0316600090815260208190526040902060010154600160701b900460ff1690565b610bed61110c565b61079882826118de565b600084848484604051602001610c109493929190612718565b604051602081830303815290604052805190602001209050949350505050565b604080516000815260208101909152606090826001600160401b03811115610c5a57610c5a612785565b604051908082528060200260200182016040528015610c8d57816020015b6060815260200190600190039081610c785790505b50915060005b83811015610d0f57610cea30868684818110610cb157610cb1612683565b9050602002810190610cc3919061279b565b85604051602001610cd6939291906127e1565b6040516020818303038152906040526119ef565b838281518110610cfc57610cfc612683565b6020908102919091010152600101610c93565b505092915050565b600080610d2384610bbd565b15610d3357506000905080610d96565b306001600160a01b03861603610d5857610d4d8484611a65565b600091509150610d96565b6000610d648585610a3f565b9050600080610d738389610db5565b9150915081610d8457600080610d8e565b63ffffffff811615815b945094505050505b935093915050565b610da661110c565b610db08282611a7c565b505050565b60008067fffffffffffffffe196001600160401b03851601610ddd5750600190506000610e2b565b600080610dea8686610955565b5050915091508165ffffffffffff16600014158015610e205750610e0c611b69565b65ffffffffffff168265ffffffffffff1611155b93509150610e2b9050565b9250929050565b610e3a61110c565b6107988282611b79565b60003381610e5285856112ed565b90506000610e6288888888610bf7565b60008181526002602052604081205491925065ffffffffffff9091169003610ea05760405163060a299b60e41b815260048101829052602401610874565b826001600160a01b0316886001600160a01b031614610f3c576000610ec6600085610db5565b5090506000610ee1610edb6102258b87610a3f565b86610db5565b50905081158015610ef0575080155b15610f3957604051630ff89d4760e21b81526001600160a01b038087166004830152808c1660248301528a1660448201526001600160e01b031985166064820152608401610874565b50505b600081815260026020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a398975050505050505050565b6000803381610faf8289898961129a565b91505060008163ffffffff16610fc3611b69565b610fcd9190612808565b905063ffffffff82161580611004575060008665ffffffffffff1611801561100457508065ffffffffffff168665ffffffffffff16105b1561101557828961083b8a8a6112ed565b61102f8665ffffffffffff168265ffffffffffff16611c36565b955061103d838a8a8a610bf7565b945061104885611c46565b60008581526002602052604090819020805465ffffffffffff891669ffffffffffffffffffff19821617600160301b9182900463ffffffff90811660010190811692830291909117909255915190955086907f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b4906110cf908a9088908f908f908f9061282e565b60405180910390a350505094509492505050565b6001600160a01b0381163314610da657604051635f159e6360e01b815260040160405180910390fd5b3360008061111b838236611c93565b9150915081610db0578063ffffffff1660000361117757600061113e8136611d5d565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b03821660248201529092506044019050610874565b61094f610bb88430600036610bf7565b6001600160a01b0383166000818152602081815260408083206001600160e01b0319871680855290835292819020805467ffffffffffffffff19166001600160401b038716908117909155905192835292917f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a3505050565b60008061121e836001600160701b0316611736565b5090949350505050565b6001600160a01b038216600081815260208190526040908190206001018054841515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb1389061128e90841515815260200190565b60405180910390a25050565b600080306001600160a01b038616036112c1576112b8868585611c93565b915091506112e4565b600483106112dd576112d886866105e787876112ed565b6112b8565b5060009050805b94509492505050565b60006112fc600482848661275b565b61092c91612874565b60008181526002602052604081205465ffffffffffff811690600160301b900463ffffffff1681830361134e5760405163060a299b60e41b815260048101859052602401610874565b611356611b69565b65ffffffffffff168265ffffffffffff16111561138957604051630c65b5bd60e11b815260048101859052602401610874565b611392826117fd565b156113b357604051631e2975b960e21b815260048101859052602401610874565b600084815260026020526040808220805465ffffffffffff191690555163ffffffff83169186917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a39392505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b6060814710156114735760405163cf47918160e01b815247600482015260248101839052604401610874565b600080856001600160a01b0316848660405161148f91906128a2565b60006040518083038185875af1925050503d80600081146114cc576040519150601f19603f3d011682016040523d82523d6000602084013e6114d1565b606091505b50915091506114e1868383611f4f565b9695505050505050565b600067fffffffffffffffe196001600160401b0386160161152a5760405163061c6a4360e21b81526001600160401b0386166004820152602401610874565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff161590811561161c578463ffffffff16611576611b69565b6115809190612808565b905060405180604001604052808265ffffffffffff1681526020016115ae8663ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b03891660009081526001602090815260408083206001600160a01b038c1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff909116179190911790556116c8565b6001600160401b03871660009081526001602090815260408083206001600160a01b038a16845290915281205461166691600160301b9091046001600160701b0316908690611fab565b6001600160401b03891660009081526001602090815260408083206001600160a01b038c168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b600080600061174c84611747611b69565b612055565b9250925092509193909250565b6001600160401b038216158061177757506001600160401b03828116145b156117a05760405163061c6a4360e21b81526001600160401b0383166004820152602401610874565b6001600160401b038281166000818152600160208190526040808320909101805467ffffffffffffffff19169486169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a35050565b6000611807611b69565b65ffffffffffff1661181c62093a8084612808565b65ffffffffffff16111592915050565b6001600160401b038216158061184a57506001600160401b03828116145b156118735760405163061c6a4360e21b81526001600160401b0383166004820152602401610874565b6001600160401b03828116600081815260016020819052604080832090910180546fffffffffffffffff00000000000000001916600160401b958716958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a35050565b67fffffffffffffffe196001600160401b0383160161191b5760405163061c6a4360e21b81526001600160401b0383166004820152602401610874565b6001600160401b03821660009081526001602081905260408220015461195590600160801b90046001600160701b03168362069780611fab565b6001600160401b0385166000818152600160208190526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b4890610b04908590859063ffffffff92909216825265ffffffffffff16602082015260400190565b6060600080846001600160a01b031684604051611a0c91906128a2565b600060405180830381855af49150503d8060008114611a47576040519150601f19603f3d011682016040523d82523d6000602084013e611a4c565b606091505b5091509150611a5c858383611f4f565b95945050505050565b6000611a718383611405565b600354149392505050565b600067fffffffffffffffe196001600160401b03841601611abb5760405163061c6a4360e21b81526001600160401b0384166004820152602401610874565b6001600160401b03831660009081526001602090815260408083206001600160a01b038616845290915281205465ffffffffffff169003611afe57506000610780565b6001600160401b03831660008181526001602090815260408083206001600160a01b038716808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a350600192915050565b6000611b74426120a2565b905090565b6001600160a01b038216600090815260208190526040812060010154611bac906001600160701b03168362069780611fab565b6001600160a01b0385166000818152602081815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8716815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c9101610b04565b600082821882841102821861092c565b60008181526002602052604090205465ffffffffffff168015801590611c725750611c70816117fd565b155b156107985760405163813e945960e01b815260048101839052602401610874565b6000806004831015611caa57506000905080610d96565b306001600160a01b03861603611ccd57610d4d30611cc886866112ed565b611a65565b6000806000611cdc8787611d5d565b92509250925082158015611cf45750611cf430610bbd565b15611d085760008094509450505050610d96565b600080611d15848b610db5565b9150915081611d2f57600080965096505050505050610d96565b611d458363ffffffff168263ffffffff16611c36565b63ffffffff8116159b909a5098505050505050505050565b600080806004841015611d7857506000915081905080611f48565b6000611d8486866112ed565b90506001600160e01b031981166310a6aa3760e31b1480611db557506001600160e01b031981166330cae18760e01b145b80611dd057506001600160e01b0319811663294b14a960e11b145b80611deb57506001600160e01b03198116635326cae760e11b145b80611e0657506001600160e01b0319811663d22b598960e01b145b15611e1c57600160008093509350935050611f48565b6001600160e01b0319811663063fc60f60e21b1480611e4b57506001600160e01b0319811663167bd39560e01b145b80611e6657506001600160e01b031981166308d6122d60e01b145b15611ea8576000611e7b60246004888a61275b565b810190611e8891906123bc565b90506000611e95826109ff565b60019650600095509350611f4892505050565b6001600160e01b0319811663012e238d60e51b1480611ed757506001600160e01b03198116635be958b160e11b145b15611f32576000611eec60246004888a61275b565b810190611ef991906121df565b90506001611f23826001600160401b03908116600090815260016020819052604090912001541690565b60009450945094505050611f48565b6000611f3e3083610a3f565b6000935093509350505b9250925092565b606082611f6457611f5f826120d9565b61092c565b8151158015611f7b57506001600160a01b0384163b155b15611fa457604051639996b31560e01b81526001600160a01b0385166004820152602401610874565b508061092c565b6000806000611fc2866001600160701b0316611209565b90506000611fff8563ffffffff168763ffffffff168463ffffffff1611611fea576000611ff4565b611ff488856128be565b63ffffffff16611c36565b90508063ffffffff16612010611b69565b61201a9190612808565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b69ffffffffffffffffffff602083901c166001600160701b03831665ffffffffffff604085901c811690841681111561209057828282612095565b816000805b9250925092509250925092565b600065ffffffffffff8211156120d5576040516306dfcc6560e41b81526030600482015260248101839052604401610874565b5090565b8051156120e857805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6001600160a01b038116811461210157600080fd5b60008083601f84011261212b57600080fd5b5081356001600160401b0381111561214257600080fd5b6020830191508360208260051b8501011115610e2b57600080fd5b80356001600160401b038116811461217457600080fd5b919050565b6000806000806060858703121561218f57600080fd5b843561219a81612104565b935060208501356001600160401b038111156121b557600080fd5b6121c187828801612119565b90945092506121d490506040860161215d565b905092959194509250565b6000602082840312156121f157600080fd5b61092c8261215d565b6000806040838503121561220d57600080fd5b823561221881612104565b91506020830135801515811461222d57600080fd5b809150509250929050565b6000806040838503121561224b57600080fd5b823561225681612104565b9150602083013561222d81612104565b60008083601f84011261227857600080fd5b5081356001600160401b0381111561228f57600080fd5b602083019150836020828501011115610e2b57600080fd5b6000806000604084860312156122bc57600080fd5b83356122c781612104565b925060208401356001600160401b038111156122e257600080fd5b6122ee86828701612266565b9497909650939450505050565b803563ffffffff8116811461217457600080fd5b60008060006060848603121561232457600080fd5b61232d8461215d565b9250602084013561233d81612104565b915061234b604085016122fb565b90509250925092565b6000806040838503121561236757600080fd5b6122568361215d565b6000806040838503121561238357600080fd5b61238c8361215d565b915061239a6020840161215d565b90509250929050565b6000602082840312156123b557600080fd5b5035919050565b6000602082840312156123ce57600080fd5b813561092c81612104565b6001600160e01b03198116811461210157600080fd5b6000806040838503121561240257600080fd5b823561240d81612104565b9150602083013561222d816123d9565b60008060006040848603121561243257600080fd5b6122c78461215d565b6000806040838503121561244e57600080fd5b6124578361215d565b915061239a602084016122fb565b6000806000806060858703121561247b57600080fd5b843561248681612104565b9350602085013561249681612104565b925060408501356001600160401b038111156124b157600080fd5b6124bd87828801612266565b95989497509550505050565b600080602083850312156124dc57600080fd5b82356001600160401b038111156124f257600080fd5b6124fe85828601612119565b90969095509350505050565b60005b8381101561252557818101518382015260200161250d565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561259b57878503603f190184528151805180875261257c818989018a850161250a565b601f01601f191695909501860194509285019290850190600101612555565b5092979650505050505050565b6000806000606084860312156125bd57600080fd5b83356125c881612104565b925060208401356125d881612104565b915060408401356125e8816123d9565b809150509250925092565b6000806040838503121561260657600080fd5b823561245781612104565b6000806000806060858703121561262757600080fd5b843561263281612104565b935060208501356001600160401b0381111561264d57600080fd5b61265987828801612266565b909450925050604085013565ffffffffffff8116811461267857600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156126ab57600080fd5b813561092c816123d9565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006126f36020830184866126b6565b949350505050565b60006020828403121561270d57600080fd5b815161092c816123d9565b6001600160a01b038581168252841660208201526060604082018190526000906114e190830184866126b6565b634e487b7160e01b600052601160045260246000fd5b6000808585111561276b57600080fd5b8386111561277857600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000808335601e198436030181126127b257600080fd5b8301803591506001600160401b038211156127cc57600080fd5b602001915036819003821315610e2b57600080fd5b8284823760008382016000815283516127fe81836020880161250a565b0195945050505050565b65ffffffffffff81811683821601908082111561282757612827612745565b5092915050565b65ffffffffffff861681526001600160a01b0385811660208301528416604082015260806060820181905260009061286990830184866126b6565b979650505050505050565b6001600160e01b03198135818116916004851015610d0f5760049490940360031b84901b1690921692915050565b600082516128b481846020870161250a565b9190910192915050565b63ffffffff8281168282160390808211156128275761282761274556fea264697066735822122081cb68b0a785c9112ecafc7557a7cf47ffc208a84b3c60b008005f9f66eac44964736f6c63430008180033";
|
|
1190
|
+
"0x608060405234801561001057600080fd5b50604051612df6380380612df683398101604081905261002f91610454565b6001600160a01b03811661005e57604051630409d6d160e11b8152600060048201526024015b60405180910390fd5b61006b6000828180610072565b50506104d6565b60006002600160401b03196001600160401b038616016100b05760405163061c6a4360e21b81526001600160401b0386166004820152602401610055565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff16159081156101a75763ffffffff85166100fc6102bd565b6101069190610493565b905060405180604001604052808265ffffffffffff1681526020016101368663ffffffff166102cd60201b60201c565b6001600160701b039081169091526001600160401b03891660009081526001602090815260408083206001600160a01b038c16845282529091208351815494909201519092166601000000000000026001600160a01b031990931665ffffffffffff9091161791909117905561024f565b6001600160401b03871660009081526001602090815260408083206001600160a01b038a1684529091528120546101f49166010000000000009091046001600160701b03169086906102d6565b6001600160401b03891660009081526001602090815260408083206001600160a01b038c168452909152902080546001600160701b03909316660100000000000002600160301b600160a01b03199093169290921790915590505b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b60006102c84261037f565b905090565b63ffffffff1690565b600080806102ec6001600160701b0387166103b6565b905060006103298563ffffffff168763ffffffff168463ffffffff161161031457600061031e565b61031e88856104b9565b63ffffffff166103d5565b905063ffffffff811661033a6102bd565b6103449190610493565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b600065ffffffffffff8211156103b2576040516306dfcc6560e41b81526030600482015260248101839052604401610055565b5090565b6000806103cb6001600160701b0384166103e8565b5090949350505050565b60008282188284110282185b9392505050565b600080806103fd846103f86102bd565b61040a565b9250925092509193909250565b6001600160501b03602083901c166001600160701b03831665ffffffffffff604085901c811690841681111561044257828282610447565b816000805b9250925092509250925092565b60006020828403121561046657600080fd5b81516001600160a01b03811681146103e157600080fd5b634e487b7160e01b600052601160045260246000fd5b65ffffffffffff8181168382160190808211156104b2576104b261047d565b5092915050565b63ffffffff8281168282160390808211156104b2576104b261047d565b612911806104e56000396000f3fe6080604052600436106101e35760003560e01c80636d5115bd11610102578063b700961311610095578063d22b598911610064578063d22b59891461065e578063d6bb62c61461067e578063f801a6981461069e578063fe0776f5146106d857600080fd5b8063b7009613146105cc578063b7d2b16214610608578063cc1b6c8114610628578063d1f856ee1461063e57600080fd5b8063a166aa89116100d1578063a166aa8914610521578063a64d95ce14610551578063abd9bd2a14610571578063ac9650d81461059f57600080fd5b80636d5115bd146104ac57806375b238fc146104cc578063853551b8146104e157806394c7d7ee1461050157600080fd5b806330cae1871161017a5780634665096d116101495780634665096d146104195780634c1da1e21461042f578063529629521461044f578063530dd4561461046f57600080fd5b806330cae1871461036d5780633adc277a1461038d5780633ca7c02a146103c45780634136a33c146103df57600080fd5b806318ff183c116101b657806318ff183c146102c05780631cff79cd146102e057806325c471a0146102f35780633078f1141461031357600080fd5b806308d6122d146101e85780630b0a93ba1461020a57806312be87271461026b578063167bd395146102a0575b600080fd5b3480156101f457600080fd5b50610208610203366004612179565b6106f8565b005b34801561021657600080fd5b5061024e6102253660046121df565b6001600160401b0390811660009081526001602081905260409091200154600160401b90041690565b6040516001600160401b0390911681526020015b60405180910390f35b34801561027757600080fd5b5061028b6102863660046121df565b61074b565b60405163ffffffff9091168152602001610262565b3480156102ac57600080fd5b506102086102bb3660046121fa565b610786565b3480156102cc57600080fd5b506102086102db366004612238565b61079c565b61028b6102ee3660046122a7565b610803565b3480156102ff57600080fd5b5061020861030e36600461230f565b610933565b34801561031f57600080fd5b5061033361032e366004612354565b610955565b604051610262949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561037957600080fd5b50610208610388366004612370565b6109ba565b34801561039957600080fd5b506103ad6103a83660046123a3565b6109cc565b60405165ffffffffffff9091168152602001610262565b3480156103d057600080fd5b5061024e6001600160401b0381565b3480156103eb57600080fd5b5061028b6103fa3660046123a3565b600090815260026020526040902054600160301b900463ffffffff1690565b34801561042557600080fd5b5062093a8061028b565b34801561043b57600080fd5b5061028b61044a3660046123bc565b6109ff565b34801561045b57600080fd5b5061020861046a366004612370565b610a2d565b34801561047b57600080fd5b5061024e61048a3660046121df565b6001600160401b03908116600090815260016020819052604090912001541690565b3480156104b857600080fd5b5061024e6104c73660046123ef565b610a3f565b3480156104d857600080fd5b5061024e600081565b3480156104ed57600080fd5b506102086104fc36600461241d565b610a7a565b34801561050d57600080fd5b5061020861051c3660046122a7565b610b11565b34801561052d57600080fd5b5061054161053c3660046123bc565b610bbd565b6040519015158152602001610262565b34801561055d57600080fd5b5061020861056c36600461243b565b610be5565b34801561057d57600080fd5b5061059161058c366004612465565b610bf7565b604051908152602001610262565b3480156105ab57600080fd5b506105bf6105ba3660046124c9565b610c30565b604051610262919061252e565b3480156105d857600080fd5b506105ec6105e73660046125a8565b610d17565b60408051921515835263ffffffff909116602083015201610262565b34801561061457600080fd5b50610208610623366004612354565b610d9e565b34801561063457600080fd5b506206978061028b565b34801561064a57600080fd5b506105ec610659366004612354565b610db5565b34801561066a57600080fd5b506102086106793660046125f3565b610e32565b34801561068a57600080fd5b5061028b610699366004612465565b610e44565b3480156106aa57600080fd5b506106be6106b9366004612611565b610f9e565b6040805192835263ffffffff909116602083015201610262565b3480156106e457600080fd5b506102086106f3366004612354565b6110e3565b61070061110c565b60005b828110156107445761073c8585858481811061072157610721612683565b90506020020160208101906107369190612699565b84611187565b600101610703565b5050505050565b6001600160401b03811660009081526001602081905260408220015461078090600160801b90046001600160701b0316611209565b92915050565b61078e61110c565b6107988282611228565b5050565b6107a461110c565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b1580156107e757600080fd5b505af11580156107fb573d6000803e3d6000fd5b505050505050565b60003381806108148388888861129a565b915091508115801561082a575063ffffffff8116155b1561087d57828761083b88886112ed565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b03191660448201526064015b60405180910390fd5b600061088b84898989610bf7565b9050600063ffffffff83161515806108b257506108a7826109cc565b65ffffffffffff1615155b156108c3576108c082611305565b90505b6003546108d98a6108d48b8b6112ed565b611405565b6003819055506109218a8a8a8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250349250611447915050565b506003559450505050505b9392505050565b61093b61110c565b61094f83836109498661074b565b846114eb565b50505050565b6001600160401b03821660009081526001602090815260408083206001600160a01b03851684529091528120805465ffffffffffff8116929182918291906109ac90600160301b90046001600160701b0316611736565b969991985096509350505050565b6109c261110c565b6107988282611759565b60008181526002602052604081205465ffffffffffff166109ec816117fd565b6109f6578061092c565b60009392505050565b6001600160a01b038116600090815260208190526040812060010154610780906001600160701b0316611209565b610a3561110c565b610798828261182c565b6001600160a01b0382166000908152602081815260408083206001600160e01b0319851684529091529020546001600160401b031692915050565b610a8261110c565b6001600160401b0383161580610aa057506001600160401b03838116145b15610ac95760405163061c6a4360e21b81526001600160401b0384166004820152602401610874565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a4508383604051610b049291906126df565b60405180910390a2505050565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa158015610b52573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b7691906126fb565b6001600160e01b03191614610ba957604051630641fee960e31b81526001600160a01b0382166004820152602401610874565b610744610bb885838686610bf7565b611305565b6001600160a01b0316600090815260208190526040902060010154600160701b900460ff1690565b610bed61110c565b61079882826118de565b600084848484604051602001610c109493929190612718565b604051602081830303815290604052805190602001209050949350505050565b604080516000815260208101909152606090826001600160401b03811115610c5a57610c5a612785565b604051908082528060200260200182016040528015610c8d57816020015b6060815260200190600190039081610c785790505b50915060005b83811015610d0f57610cea30868684818110610cb157610cb1612683565b9050602002810190610cc3919061279b565b85604051602001610cd6939291906127e1565b6040516020818303038152906040526119ef565b838281518110610cfc57610cfc612683565b6020908102919091010152600101610c93565b505092915050565b600080610d2384610bbd565b15610d3357506000905080610d96565b306001600160a01b03861603610d5857610d4d8484611a65565b600091509150610d96565b6000610d648585610a3f565b9050600080610d738389610db5565b9150915081610d8457600080610d8e565b63ffffffff811615815b945094505050505b935093915050565b610da661110c565b610db08282611a7c565b505050565b60008067fffffffffffffffe196001600160401b03851601610ddd5750600190506000610e2b565b600080610dea8686610955565b5050915091508165ffffffffffff16600014158015610e205750610e0c611b69565b65ffffffffffff168265ffffffffffff1611155b93509150610e2b9050565b9250929050565b610e3a61110c565b6107988282611b79565b60003381610e5285856112ed565b90506000610e6288888888610bf7565b60008181526002602052604081205491925065ffffffffffff9091169003610ea05760405163060a299b60e41b815260048101829052602401610874565b826001600160a01b0316886001600160a01b031614610f3c576000610ec6600085610db5565b5090506000610ee1610edb6102258b87610a3f565b86610db5565b50905081158015610ef0575080155b15610f3957604051630ff89d4760e21b81526001600160a01b038087166004830152808c1660248301528a1660448201526001600160e01b031985166064820152608401610874565b50505b600081815260026020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a398975050505050505050565b6000803381610faf8289898961129a565b91505060008163ffffffff16610fc3611b69565b610fcd9190612808565b905063ffffffff82161580611004575060008665ffffffffffff1611801561100457508065ffffffffffff168665ffffffffffff16105b1561101557828961083b8a8a6112ed565b61102f8665ffffffffffff168265ffffffffffff16611c36565b955061103d838a8a8a610bf7565b945061104885611c46565b60008581526002602052604090819020805465ffffffffffff891669ffffffffffffffffffff19821617600160301b9182900463ffffffff90811660010190811692830291909117909255915190955086907f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b4906110cf908a9088908f908f908f9061282e565b60405180910390a350505094509492505050565b6001600160a01b0381163314610da657604051635f159e6360e01b815260040160405180910390fd5b3360008061111b838236611c93565b9150915081610db0578063ffffffff1660000361117757600061113e8136611d5d565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b03821660248201529092506044019050610874565b61094f610bb88430600036610bf7565b6001600160a01b0383166000818152602081815260408083206001600160e01b0319871680855290835292819020805467ffffffffffffffff19166001600160401b038716908117909155905192835292917f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a3505050565b60008061121e836001600160701b0316611736565b5090949350505050565b6001600160a01b038216600081815260208190526040908190206001018054841515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb1389061128e90841515815260200190565b60405180910390a25050565b600080306001600160a01b038616036112c1576112b8868585611c93565b915091506112e4565b600483106112dd576112d886866105e787876112ed565b6112b8565b5060009050805b94509492505050565b60006112fc600482848661275b565b61092c91612874565b60008181526002602052604081205465ffffffffffff811690600160301b900463ffffffff1681830361134e5760405163060a299b60e41b815260048101859052602401610874565b611356611b69565b65ffffffffffff168265ffffffffffff16111561138957604051630c65b5bd60e11b815260048101859052602401610874565b611392826117fd565b156113b357604051631e2975b960e21b815260048101859052602401610874565b600084815260026020526040808220805465ffffffffffff191690555163ffffffff83169186917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a39392505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b6060814710156114735760405163cf47918160e01b815247600482015260248101839052604401610874565b600080856001600160a01b0316848660405161148f91906128a2565b60006040518083038185875af1925050503d80600081146114cc576040519150601f19603f3d011682016040523d82523d6000602084013e6114d1565b606091505b50915091506114e1868383611f4f565b9695505050505050565b600067fffffffffffffffe196001600160401b0386160161152a5760405163061c6a4360e21b81526001600160401b0386166004820152602401610874565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff161590811561161c578463ffffffff16611576611b69565b6115809190612808565b905060405180604001604052808265ffffffffffff1681526020016115ae8663ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b03891660009081526001602090815260408083206001600160a01b038c1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff909116179190911790556116c8565b6001600160401b03871660009081526001602090815260408083206001600160a01b038a16845290915281205461166691600160301b9091046001600160701b0316908690611fab565b6001600160401b03891660009081526001602090815260408083206001600160a01b038c168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b600080600061174c84611747611b69565b612055565b9250925092509193909250565b6001600160401b038216158061177757506001600160401b03828116145b156117a05760405163061c6a4360e21b81526001600160401b0383166004820152602401610874565b6001600160401b038281166000818152600160208190526040808320909101805467ffffffffffffffff19169486169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a35050565b6000611807611b69565b65ffffffffffff1661181c62093a8084612808565b65ffffffffffff16111592915050565b6001600160401b038216158061184a57506001600160401b03828116145b156118735760405163061c6a4360e21b81526001600160401b0383166004820152602401610874565b6001600160401b03828116600081815260016020819052604080832090910180546fffffffffffffffff00000000000000001916600160401b958716958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a35050565b67fffffffffffffffe196001600160401b0383160161191b5760405163061c6a4360e21b81526001600160401b0383166004820152602401610874565b6001600160401b03821660009081526001602081905260408220015461195590600160801b90046001600160701b03168362069780611fab565b6001600160401b0385166000818152600160208190526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b4890610b04908590859063ffffffff92909216825265ffffffffffff16602082015260400190565b6060600080846001600160a01b031684604051611a0c91906128a2565b600060405180830381855af49150503d8060008114611a47576040519150601f19603f3d011682016040523d82523d6000602084013e611a4c565b606091505b5091509150611a5c858383611f4f565b95945050505050565b6000611a718383611405565b600354149392505050565b600067fffffffffffffffe196001600160401b03841601611abb5760405163061c6a4360e21b81526001600160401b0384166004820152602401610874565b6001600160401b03831660009081526001602090815260408083206001600160a01b038616845290915281205465ffffffffffff169003611afe57506000610780565b6001600160401b03831660008181526001602090815260408083206001600160a01b038716808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a350600192915050565b6000611b74426120a2565b905090565b6001600160a01b038216600090815260208190526040812060010154611bac906001600160701b03168362069780611fab565b6001600160a01b0385166000818152602081815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8716815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c9101610b04565b600082821882841102821861092c565b60008181526002602052604090205465ffffffffffff168015801590611c725750611c70816117fd565b155b156107985760405163813e945960e01b815260048101839052602401610874565b6000806004831015611caa57506000905080610d96565b306001600160a01b03861603611ccd57610d4d30611cc886866112ed565b611a65565b6000806000611cdc8787611d5d565b92509250925082158015611cf45750611cf430610bbd565b15611d085760008094509450505050610d96565b600080611d15848b610db5565b9150915081611d2f57600080965096505050505050610d96565b611d458363ffffffff168263ffffffff16611c36565b63ffffffff8116159b909a5098505050505050505050565b600080806004841015611d7857506000915081905080611f48565b6000611d8486866112ed565b90506001600160e01b031981166310a6aa3760e31b1480611db557506001600160e01b031981166330cae18760e01b145b80611dd057506001600160e01b0319811663294b14a960e11b145b80611deb57506001600160e01b03198116635326cae760e11b145b80611e0657506001600160e01b0319811663d22b598960e01b145b15611e1c57600160008093509350935050611f48565b6001600160e01b0319811663063fc60f60e21b1480611e4b57506001600160e01b0319811663167bd39560e01b145b80611e6657506001600160e01b031981166308d6122d60e01b145b15611ea8576000611e7b60246004888a61275b565b810190611e8891906123bc565b90506000611e95826109ff565b60019650600095509350611f4892505050565b6001600160e01b0319811663012e238d60e51b1480611ed757506001600160e01b03198116635be958b160e11b145b15611f32576000611eec60246004888a61275b565b810190611ef991906121df565b90506001611f23826001600160401b03908116600090815260016020819052604090912001541690565b60009450945094505050611f48565b6000611f3e3083610a3f565b6000935093509350505b9250925092565b606082611f6457611f5f826120d9565b61092c565b8151158015611f7b57506001600160a01b0384163b155b15611fa457604051639996b31560e01b81526001600160a01b0385166004820152602401610874565b508061092c565b6000806000611fc2866001600160701b0316611209565b90506000611fff8563ffffffff168763ffffffff168463ffffffff1611611fea576000611ff4565b611ff488856128be565b63ffffffff16611c36565b90508063ffffffff16612010611b69565b61201a9190612808565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b69ffffffffffffffffffff602083901c166001600160701b03831665ffffffffffff604085901c811690841681111561209057828282612095565b816000805b9250925092509250925092565b600065ffffffffffff8211156120d5576040516306dfcc6560e41b81526030600482015260248101839052604401610874565b5090565b8051156120e857805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6001600160a01b038116811461210157600080fd5b60008083601f84011261212b57600080fd5b5081356001600160401b0381111561214257600080fd5b6020830191508360208260051b8501011115610e2b57600080fd5b80356001600160401b038116811461217457600080fd5b919050565b6000806000806060858703121561218f57600080fd5b843561219a81612104565b935060208501356001600160401b038111156121b557600080fd5b6121c187828801612119565b90945092506121d490506040860161215d565b905092959194509250565b6000602082840312156121f157600080fd5b61092c8261215d565b6000806040838503121561220d57600080fd5b823561221881612104565b91506020830135801515811461222d57600080fd5b809150509250929050565b6000806040838503121561224b57600080fd5b823561225681612104565b9150602083013561222d81612104565b60008083601f84011261227857600080fd5b5081356001600160401b0381111561228f57600080fd5b602083019150836020828501011115610e2b57600080fd5b6000806000604084860312156122bc57600080fd5b83356122c781612104565b925060208401356001600160401b038111156122e257600080fd5b6122ee86828701612266565b9497909650939450505050565b803563ffffffff8116811461217457600080fd5b60008060006060848603121561232457600080fd5b61232d8461215d565b9250602084013561233d81612104565b915061234b604085016122fb565b90509250925092565b6000806040838503121561236757600080fd5b6122568361215d565b6000806040838503121561238357600080fd5b61238c8361215d565b915061239a6020840161215d565b90509250929050565b6000602082840312156123b557600080fd5b5035919050565b6000602082840312156123ce57600080fd5b813561092c81612104565b6001600160e01b03198116811461210157600080fd5b6000806040838503121561240257600080fd5b823561240d81612104565b9150602083013561222d816123d9565b60008060006040848603121561243257600080fd5b6122c78461215d565b6000806040838503121561244e57600080fd5b6124578361215d565b915061239a602084016122fb565b6000806000806060858703121561247b57600080fd5b843561248681612104565b9350602085013561249681612104565b925060408501356001600160401b038111156124b157600080fd5b6124bd87828801612266565b95989497509550505050565b600080602083850312156124dc57600080fd5b82356001600160401b038111156124f257600080fd5b6124fe85828601612119565b90969095509350505050565b60005b8381101561252557818101518382015260200161250d565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561259b57878503603f190184528151805180875261257c818989018a850161250a565b601f01601f191695909501860194509285019290850190600101612555565b5092979650505050505050565b6000806000606084860312156125bd57600080fd5b83356125c881612104565b925060208401356125d881612104565b915060408401356125e8816123d9565b809150509250925092565b6000806040838503121561260657600080fd5b823561245781612104565b6000806000806060858703121561262757600080fd5b843561263281612104565b935060208501356001600160401b0381111561264d57600080fd5b61265987828801612266565b909450925050604085013565ffffffffffff8116811461267857600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156126ab57600080fd5b813561092c816123d9565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6020815260006126f36020830184866126b6565b949350505050565b60006020828403121561270d57600080fd5b815161092c816123d9565b6001600160a01b038581168252841660208201526060604082018190526000906114e190830184866126b6565b634e487b7160e01b600052601160045260246000fd5b6000808585111561276b57600080fd5b8386111561277857600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000808335601e198436030181126127b257600080fd5b8301803591506001600160401b038211156127cc57600080fd5b602001915036819003821315610e2b57600080fd5b8284823760008382016000815283516127fe81836020880161250a565b0195945050505050565b65ffffffffffff81811683821601908082111561282757612827612745565b5092915050565b65ffffffffffff861681526001600160a01b0385811660208301528416604082015260806060820181905260009061286990830184866126b6565b979650505050505050565b6001600160e01b03198135818116916004851015610d0f5760049490940360031b84901b1690921692915050565b600082516128b481846020870161250a565b9190910192915050565b63ffffffff8281168282160390808211156128275761282761274556fea26469706673582212205b659f61b0a9a4ff31053b8013f6881a9fde29498f163db8a03775be9dfe764b64736f6c63430008190033";
|
|
1191
1191
|
|
|
1192
1192
|
type AccessManagerConstructorParams =
|
|
1193
1193
|
| [signer?: Signer]
|
package/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.ts
CHANGED
|
@@ -56,7 +56,7 @@ const _abi = [
|
|
|
56
56
|
] as const;
|
|
57
57
|
|
|
58
58
|
const _bytecode =
|
|
59
|
-
"
|
|
59
|
+
"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220263d48dc17f402ea6661b37ed10a7e8c0acee6402254a9974e23338e96fc73a464736f6c63430008190033";
|
|
60
60
|
|
|
61
61
|
type ERC1967UtilsConstructorParams =
|
|
62
62
|
| [signer?: Signer]
|
|
@@ -29,7 +29,7 @@ const _abi = [
|
|
|
29
29
|
] as const;
|
|
30
30
|
|
|
31
31
|
const _bytecode =
|
|
32
|
-
"
|
|
32
|
+
"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220672c08d946f9cc4527caea7fc8972f43e8b6ab59a8b07ca51ecc459976abe02664736f6c63430008190033";
|
|
33
33
|
|
|
34
34
|
type AddressConstructorParams =
|
|
35
35
|
| [signer?: Signer]
|
|
@@ -55,7 +55,7 @@ const _abi = [
|
|
|
55
55
|
] as const;
|
|
56
56
|
|
|
57
57
|
const _bytecode =
|
|
58
|
-
"
|
|
58
|
+
"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209cbecec411902b384d1b531af38ff3a4bcfe81faa9577b45cbf7165e29cbdf5b64736f6c63430008190033";
|
|
59
59
|
|
|
60
60
|
type ErrorsConstructorParams =
|
|
61
61
|
| [signer?: Signer]
|
|
@@ -72,7 +72,7 @@ const _abi = [
|
|
|
72
72
|
] as const;
|
|
73
73
|
|
|
74
74
|
const _bytecode =
|
|
75
|
-
"
|
|
75
|
+
"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220c93f45ef7d250e1194c497e17130b4bf4d37284dd1ff024886173aebfbb5c9c464736f6c63430008190033";
|
|
76
76
|
|
|
77
77
|
type SafeCastConstructorParams =
|
|
78
78
|
| [signer?: Signer]
|
|
@@ -1249,7 +1249,7 @@ const _abi = [
|
|
|
1249
1249
|
] as const;
|
|
1250
1250
|
|
|
1251
1251
|
const _bytecode =
|
|
1252
|
-
"0x60806040523480156200001157600080fd5b50604051620032f5380380620032f5833981016040819052620000349162000529565b806001600160a01b0381166200006557604051630409d6d160e11b8152600060048201526024015b60405180910390fd5b620000746000828180620000b3565b5050600080526004602052620000ab7f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec826200030a565b5050620005ba565b60006002600160401b03196001600160401b03861601620000f35760405163061c6a4360e21b81526001600160401b03861660048201526024016200005c565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff1615908115620001f25763ffffffff8516620001426200032a565b6200014e919062000571565b905060405180604001604052808265ffffffffffff168152602001620001808663ffffffff166200033c60201b60201c565b6001600160701b039081169091526001600160401b03891660009081526001602090815260408083206001600160a01b038c16845282529091208351815494909201519092166601000000000000026001600160a01b031990931665ffffffffffff909116179190911790556200029c565b6001600160401b03871660009081526001602090815260408083206001600160a01b038a168452909152812054620002419166010000000000009091046001600160701b031690869062000345565b6001600160401b03891660009081526001602090815260408083206001600160a01b038c168452909152902080546001600160701b03909316660100000000000002600160301b600160a01b03199093169290921790915590505b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b600062000321836001600160a01b038416620003fa565b90505b92915050565b600062000337426200044c565b905090565b63ffffffff1690565b600080806200035d6001600160701b03871662000485565b90506000620003a08563ffffffff168763ffffffff168463ffffffff16116200038857600062000394565b6200039488856200059a565b63ffffffff16620004a6565b905063ffffffff8116620003b36200032a565b620003bf919062000571565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b6000818152600183016020526040812054620004435750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000324565b50600062000324565b600065ffffffffffff82111562000481576040516306dfcc6560e41b815260306004820152602481018390526044016200005c565b5090565b6000806200049c6001600160701b038416620004b7565b5090949350505050565b600082821882841102821862000321565b60008080620004d084620004ca6200032a565b620004dd565b9250925092509193909250565b6001600160501b03602083901c166001600160701b03831665ffffffffffff604085901c811690841681111562000517578282826200051c565b816000805b9250925092509250925092565b6000602082840312156200053c57600080fd5b81516001600160a01b03811681146200055457600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b65ffffffffffff8181168382160190808211156200059357620005936200055b565b5092915050565b63ffffffff8281168282160390808211156200059357620005936200055b565b612d2b80620005ca6000396000f3fe6080604052600436106102045760003560e01c806375b238fc11610118578063b7d2b162116100a0578063d6bb62c61161006f578063d6bb62c6146106cc578063d78a83b1146106ec578063f801a69814610724578063fc8610d11461075e578063fe0776f51461077e57600080fd5b8063b7d2b16214610656578063cc1b6c8114610676578063d1f856ee1461068c578063d22b5989146106ac57600080fd5b8063a5808e2f116100e7578063a5808e2f14610572578063a64d95ce1461059f578063abd9bd2a146105bf578063ac9650d8146105ed578063b70096131461061a57600080fd5b806375b238fc146104ed578063853551b81461050257806394c7d7ee14610522578063a166aa891461054257600080fd5b806330cae1871161019b5780634665096d1161016a5780634665096d1461043a5780634c1da1e2146104505780635296295214610470578063530dd456146104905780636d5115bd146104cd57600080fd5b806330cae1871461038e5780633adc277a146103ae5780633ca7c02a146103e55780634136a33c1461040057600080fd5b806318ff183c116101d757806318ff183c146102e15780631cff79cd1461030157806325c471a0146103145780633078f1141461033457600080fd5b806308d6122d146102095780630b0a93ba1461022b57806312be87271461028c578063167bd395146102c1575b600080fd5b34801561021557600080fd5b506102296102243660046124fa565b61079e565b005b34801561023757600080fd5b5061026f610246366004612560565b6001600160401b0390811660009081526001602081905260409091200154600160401b90041690565b6040516001600160401b0390911681526020015b60405180910390f35b34801561029857600080fd5b506102ac6102a7366004612560565b6107f1565b60405163ffffffff9091168152602001610283565b3480156102cd57600080fd5b506102296102dc36600461257b565b61082c565b3480156102ed57600080fd5b506102296102fc3660046125b9565b610842565b6102ac61030f366004612628565b6108a9565b34801561032057600080fd5b5061022961032f366004612690565b6109d9565b34801561034057600080fd5b5061035461034f3660046126d5565b610a27565b604051610283949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561039a57600080fd5b506102296103a93660046126f1565b610a8c565b3480156103ba57600080fd5b506103ce6103c9366004612724565b610a9e565b60405165ffffffffffff9091168152602001610283565b3480156103f157600080fd5b5061026f6001600160401b0381565b34801561040c57600080fd5b506102ac61041b366004612724565b600090815260026020526040902054600160301b900463ffffffff1690565b34801561044657600080fd5b5062093a806102ac565b34801561045c57600080fd5b506102ac61046b36600461273d565b610ad1565b34801561047c57600080fd5b5061022961048b3660046126f1565b610aff565b34801561049c57600080fd5b5061026f6104ab366004612560565b6001600160401b03908116600090815260016020819052604090912001541690565b3480156104d957600080fd5b5061026f6104e8366004612770565b610b11565b3480156104f957600080fd5b5061026f600081565b34801561050e57600080fd5b5061022961051d36600461279e565b610b4c565b34801561052e57600080fd5b5061022961053d366004612628565b610be3565b34801561054e57600080fd5b5061056261055d36600461273d565b610c8f565b6040519015158152602001610283565b34801561057e57600080fd5b5061059261058d366004612560565b610cb7565b60405161028391906127bc565b3480156105ab57600080fd5b506102296105ba366004612809565b610cdb565b3480156105cb57600080fd5b506105df6105da366004612833565b610ced565b604051908152602001610283565b3480156105f957600080fd5b5061060d610608366004612897565b610d26565b60405161028391906128fc565b34801561062657600080fd5b5061063a610635366004612976565b610e0d565b60408051921515835263ffffffff909116602083015201610283565b34801561066257600080fd5b506102296106713660046126d5565b610e94565b34801561068257600080fd5b50620697806102ac565b34801561069857600080fd5b5061063a6106a73660046126d5565b610ed7565b3480156106b857600080fd5b506102296106c73660046129c1565b610f54565b3480156106d857600080fd5b506102ac6106e7366004612833565b610f66565b3480156106f857600080fd5b5061070c6107073660046129df565b6110c0565b6040516001600160a01b039091168152602001610283565b34801561073057600080fd5b5061074461073f366004612a09565b6110e2565b6040805192835263ffffffff909116602083015201610283565b34801561076a57600080fd5b506105df610779366004612560565b611227565b34801561078a57600080fd5b506102296107993660046126d5565b611248565b6107a6611271565b60005b828110156107ea576107e2858585848181106107c7576107c7612a7b565b90506020020160208101906107dc9190612a91565b846112ec565b6001016107a9565b5050505050565b6001600160401b03811660009081526001602081905260408220015461082690600160801b90046001600160701b031661136e565b92915050565b610834611271565b61083e828261138d565b5050565b61084a611271565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b15801561088d57600080fd5b505af11580156108a1573d6000803e3d6000fd5b505050505050565b60003381806108ba838888886113ff565b91509150811580156108d0575063ffffffff8116155b156109235782876108e18888611452565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b03191660448201526064015b60405180910390fd5b600061093184898989610ced565b9050600063ffffffff8316151580610958575061094d82610a9e565b65ffffffffffff1615155b15610969576109668261146a565b90505b60035461097f8a61097a8b8b611452565b61156a565b6003819055506109c78a8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503492506115ac915050565b506003559450505050505b9392505050565b6109e1611271565b60006109f784846109f1876107f1565b85611650565b90508015610a21576001600160401b03841660009081526004602052604090206107ea908461189b565b50505050565b6001600160401b03821660009081526001602090815260408083206001600160a01b03851684529091528120805465ffffffffffff811692918291829190610a7e90600160301b90046001600160701b03166118b0565b969991985096509350505050565b610a94611271565b61083e82826118d3565b60008181526002602052604081205465ffffffffffff16610abe81611977565b610ac857806109d2565b60009392505050565b6001600160a01b038116600090815260208190526040812060010154610826906001600160701b031661136e565b610b07611271565b61083e82826119a6565b6001600160a01b0382166000908152602081815260408083206001600160e01b0319851684529091529020546001600160401b031692915050565b610b54611271565b6001600160401b0383161580610b7257506001600160401b03838116145b15610b9b5760405163061c6a4360e21b81526001600160401b038416600482015260240161091a565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a4508383604051610bd6929190612ad7565b60405180910390a2505050565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612af3565b6001600160e01b03191614610c7b57604051630641fee960e31b81526001600160a01b038216600482015260240161091a565b6107ea610c8a85838686610ced565b61146a565b6001600160a01b0316600090815260208190526040902060010154600160701b900460ff1690565b6001600160401b038116600090815260046020526040902060609061082690611a58565b610ce3611271565b61083e8282611a65565b600084848484604051602001610d069493929190612b10565b604051602081830303815290604052805190602001209050949350505050565b604080516000815260208101909152606090826001600160401b03811115610d5057610d50612b90565b604051908082528060200260200182016040528015610d8357816020015b6060815260200190600190039081610d6e5790505b50915060005b83811015610e0557610de030868684818110610da757610da7612a7b565b9050602002810190610db99190612ba6565b85604051602001610dcc93929190612bec565b604051602081830303815290604052611b76565b838281518110610df257610df2612a7b565b6020908102919091010152600101610d89565b505092915050565b600080610e1984610c8f565b15610e2957506000905080610e8c565b306001600160a01b03861603610e4e57610e438484611bec565b600091509150610e8c565b6000610e5a8585610b11565b9050600080610e698389610ed7565b9150915081610e7a57600080610e84565b63ffffffff811615815b945094505050505b935093915050565b610e9c611271565b6000610ea88383611c03565b90508015610ed2576001600160401b0383166000908152600460205260409020610a219083611cf0565b505050565b60008067fffffffffffffffe196001600160401b03851601610eff5750600190506000610f4d565b600080610f0c8686610a27565b5050915091508165ffffffffffff16600014158015610f425750610f2e611d05565b65ffffffffffff168265ffffffffffff1611155b93509150610f4d9050565b9250929050565b610f5c611271565b61083e8282611d15565b60003381610f748585611452565b90506000610f8488888888610ced565b60008181526002602052604081205491925065ffffffffffff9091169003610fc25760405163060a299b60e41b81526004810182905260240161091a565b826001600160a01b0316886001600160a01b03161461105e576000610fe8600085610ed7565b5090506000611003610ffd6102468b87610b11565b86610ed7565b50905081158015611012575080155b1561105b57604051630ff89d4760e21b81526001600160a01b038087166004830152808c1660248301528a1660448201526001600160e01b03198516606482015260840161091a565b50505b600081815260026020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a398975050505050505050565b6001600160401b03821660009081526004602052604081206109d29083611dd2565b60008033816110f3828989896113ff565b91505060008163ffffffff16611107611d05565b6111119190612c13565b905063ffffffff82161580611148575060008665ffffffffffff1611801561114857508065ffffffffffff168665ffffffffffff16105b156111595782896108e18a8a611452565b6111738665ffffffffffff168265ffffffffffff16611dde565b9550611181838a8a8a610ced565b945061118c85611dee565b60008581526002602052604090819020805465ffffffffffff891669ffffffffffffffffffff19821617600160301b9182900463ffffffff90811660010190811692830291909117909255915190955086907f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b490611213908a9088908f908f908f90612c32565b60405180910390a350505094509492505050565b6001600160401b038116600090815260046020526040812061082690611e3b565b6001600160a01b0381163314610e9c57604051635f159e6360e01b815260040160405180910390fd5b33600080611280838236611e45565b9150915081610ed2578063ffffffff166000036112dc5760006112a38136611f0f565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b0382166024820152909250604401905061091a565b610a21610c8a8430600036610ced565b6001600160a01b0383166000818152602081815260408083206001600160e01b0319871680855290835292819020805467ffffffffffffffff19166001600160401b038716908117909155905192835292917f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a3505050565b600080611383836001600160701b03166118b0565b5090949350505050565b6001600160a01b038216600081815260208190526040908190206001018054841515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb138906113f390841515815260200190565b60405180910390a25050565b600080306001600160a01b038616036114265761141d868585611e45565b91509150611449565b600483106114425761143d86866106358787611452565b61141d565b5060009050805b94509492505050565b60006114616004828486612b66565b6109d291612c78565b60008181526002602052604081205465ffffffffffff811690600160301b900463ffffffff168183036114b35760405163060a299b60e41b81526004810185905260240161091a565b6114bb611d05565b65ffffffffffff168265ffffffffffff1611156114ee57604051630c65b5bd60e11b81526004810185905260240161091a565b6114f782611977565b1561151857604051631e2975b960e21b81526004810185905260240161091a565b600084815260026020526040808220805465ffffffffffff191690555163ffffffff83169186917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a39392505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b6060814710156115d85760405163cf47918160e01b81524760048201526024810183905260440161091a565b600080856001600160a01b031684866040516115f49190612ca6565b60006040518083038185875af1925050503d8060008114611631576040519150601f19603f3d011682016040523d82523d6000602084013e611636565b606091505b5091509150611646868383612101565b9695505050505050565b600067fffffffffffffffe196001600160401b0386160161168f5760405163061c6a4360e21b81526001600160401b038616600482015260240161091a565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff1615908115611781578463ffffffff166116db611d05565b6116e59190612c13565b905060405180604001604052808265ffffffffffff1681526020016117138663ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b03891660009081526001602090815260408083206001600160a01b038c1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff9091161791909117905561182d565b6001600160401b03871660009081526001602090815260408083206001600160a01b038a1684529091528120546117cb91600160301b9091046001600160701b031690869061215d565b6001600160401b03891660009081526001602090815260408083206001600160a01b038c168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b60006109d2836001600160a01b038416612207565b60008060006118c6846118c1611d05565b612256565b9250925092509193909250565b6001600160401b03821615806118f157506001600160401b03828116145b1561191a5760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b038281166000818152600160208190526040808320909101805467ffffffffffffffff19169486169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a35050565b6000611981611d05565b65ffffffffffff1661199662093a8084612c13565b65ffffffffffff16111592915050565b6001600160401b03821615806119c457506001600160401b03828116145b156119ed5760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b03828116600081815260016020819052604080832090910180546fffffffffffffffff00000000000000001916600160401b958716958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a35050565b606060006109d2836122a3565b67fffffffffffffffe196001600160401b03831601611aa25760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b038216600090815260016020819052604082200154611adc90600160801b90046001600160701b0316836206978061215d565b6001600160401b0385166000818152600160208190526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b4890610bd6908590859063ffffffff92909216825265ffffffffffff16602082015260400190565b6060600080846001600160a01b031684604051611b939190612ca6565b600060405180830381855af49150503d8060008114611bce576040519150601f19603f3d011682016040523d82523d6000602084013e611bd3565b606091505b5091509150611be3858383612101565b95945050505050565b6000611bf8838361156a565b600354149392505050565b600067fffffffffffffffe196001600160401b03841601611c425760405163061c6a4360e21b81526001600160401b038416600482015260240161091a565b6001600160401b03831660009081526001602090815260408083206001600160a01b038616845290915281205465ffffffffffff169003611c8557506000610826565b6001600160401b03831660008181526001602090815260408083206001600160a01b038716808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a350600192915050565b60006109d2836001600160a01b0384166122ff565b6000611d10426123f9565b905090565b6001600160a01b038216600090815260208190526040812060010154611d48906001600160701b0316836206978061215d565b6001600160a01b0385166000818152602081815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8716815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c9101610bd6565b60006109d28383612430565b60008282188284110282186109d2565b60008181526002602052604090205465ffffffffffff168015801590611e1a5750611e1881611977565b155b1561083e5760405163813e945960e01b81526004810183905260240161091a565b6000610826825490565b6000806004831015611e5c57506000905080610e8c565b306001600160a01b03861603611e7f57610e4330611e7a8686611452565b611bec565b6000806000611e8e8787611f0f565b92509250925082158015611ea65750611ea630610c8f565b15611eba5760008094509450505050610e8c565b600080611ec7848b610ed7565b9150915081611ee157600080965096505050505050610e8c565b611ef78363ffffffff168263ffffffff16611dde565b63ffffffff8116159b909a5098505050505050505050565b600080806004841015611f2a575060009150819050806120fa565b6000611f368686611452565b90506001600160e01b031981166310a6aa3760e31b1480611f6757506001600160e01b031981166330cae18760e01b145b80611f8257506001600160e01b0319811663294b14a960e11b145b80611f9d57506001600160e01b03198116635326cae760e11b145b80611fb857506001600160e01b0319811663d22b598960e01b145b15611fce576001600080935093509350506120fa565b6001600160e01b0319811663063fc60f60e21b1480611ffd57506001600160e01b0319811663167bd39560e01b145b8061201857506001600160e01b031981166308d6122d60e01b145b1561205a57600061202d60246004888a612b66565b81019061203a919061273d565b9050600061204782610ad1565b600196506000955093506120fa92505050565b6001600160e01b0319811663012e238d60e51b148061208957506001600160e01b03198116635be958b160e11b145b156120e457600061209e60246004888a612b66565b8101906120ab9190612560565b905060016120d5826001600160401b03908116600090815260016020819052604090912001541690565b600094509450945050506120fa565b60006120f03083610b11565b6000935093509350505b9250925092565b606082612116576121118261245a565b6109d2565b815115801561212d57506001600160a01b0384163b155b1561215657604051639996b31560e01b81526001600160a01b038516600482015260240161091a565b50806109d2565b6000806000612174866001600160701b031661136e565b905060006121b18563ffffffff168763ffffffff168463ffffffff161161219c5760006121a6565b6121a68885612cc2565b63ffffffff16611dde565b90508063ffffffff166121c2611d05565b6121cc9190612c13565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b600081815260018301602052604081205461224e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610826565b506000610826565b69ffffffffffffffffffff602083901c166001600160701b03831665ffffffffffff604085901c811690841681111561229157828282612296565b816000805b9250925092509250925092565b6060816000018054806020026020016040519081016040528092919081815260200182805480156122f357602002820191906000526020600020905b8154815260200190600101908083116122df575b50505050509050919050565b600081815260018301602052604081205480156123e8576000612323600183612b53565b855490915060009061233790600190612b53565b905080821461239c57600086600001828154811061235757612357612a7b565b906000526020600020015490508087600001848154811061237a5761237a612a7b565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806123ad576123ad612cdf565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610826565b6000915050610826565b5092915050565b600065ffffffffffff82111561242c576040516306dfcc6560e41b8152603060048201526024810183905260440161091a565b5090565b600082600001828154811061244757612447612a7b565b9060005260206000200154905092915050565b80511561246957805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6001600160a01b038116811461248257600080fd5b60008083601f8401126124ac57600080fd5b5081356001600160401b038111156124c357600080fd5b6020830191508360208260051b8501011115610f4d57600080fd5b80356001600160401b03811681146124f557600080fd5b919050565b6000806000806060858703121561251057600080fd5b843561251b81612485565b935060208501356001600160401b0381111561253657600080fd5b6125428782880161249a565b90945092506125559050604086016124de565b905092959194509250565b60006020828403121561257257600080fd5b6109d2826124de565b6000806040838503121561258e57600080fd5b823561259981612485565b9150602083013580151581146125ae57600080fd5b809150509250929050565b600080604083850312156125cc57600080fd5b82356125d781612485565b915060208301356125ae81612485565b60008083601f8401126125f957600080fd5b5081356001600160401b0381111561261057600080fd5b602083019150836020828501011115610f4d57600080fd5b60008060006040848603121561263d57600080fd5b833561264881612485565b925060208401356001600160401b0381111561266357600080fd5b61266f868287016125e7565b9497909650939450505050565b803563ffffffff811681146124f557600080fd5b6000806000606084860312156126a557600080fd5b6126ae846124de565b925060208401356126be81612485565b91506126cc6040850161267c565b90509250925092565b600080604083850312156126e857600080fd5b6125d7836124de565b6000806040838503121561270457600080fd5b61270d836124de565b915061271b602084016124de565b90509250929050565b60006020828403121561273657600080fd5b5035919050565b60006020828403121561274f57600080fd5b81356109d281612485565b6001600160e01b03198116811461248257600080fd5b6000806040838503121561278357600080fd5b823561278e81612485565b915060208301356125ae8161275a565b6000806000604084860312156127b357600080fd5b612648846124de565b6020808252825182820181905260009190848201906040850190845b818110156127fd5783516001600160a01b0316835292840192918401916001016127d8565b50909695505050505050565b6000806040838503121561281c57600080fd5b612825836124de565b915061271b6020840161267c565b6000806000806060858703121561284957600080fd5b843561285481612485565b9350602085013561286481612485565b925060408501356001600160401b0381111561287f57600080fd5b61288b878288016125e7565b95989497509550505050565b600080602083850312156128aa57600080fd5b82356001600160401b038111156128c057600080fd5b6128cc8582860161249a565b90969095509350505050565b60005b838110156128f35781810151838201526020016128db565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561296957878503603f190184528151805180875261294a818989018a85016128d8565b601f01601f191695909501860194509285019290850190600101612923565b5092979650505050505050565b60008060006060848603121561298b57600080fd5b833561299681612485565b925060208401356129a681612485565b915060408401356129b68161275a565b809150509250925092565b600080604083850312156129d457600080fd5b823561282581612485565b600080604083850312156129f257600080fd5b6129fb836124de565b946020939093013593505050565b60008060008060608587031215612a1f57600080fd5b8435612a2a81612485565b935060208501356001600160401b03811115612a4557600080fd5b612a51878288016125e7565b909450925050604085013565ffffffffffff81168114612a7057600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612aa357600080fd5b81356109d28161275a565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000612aeb602083018486612aae565b949350505050565b600060208284031215612b0557600080fd5b81516109d28161275a565b6001600160a01b038581168252841660208201526060604082018190526000906116469083018486612aae565b634e487b7160e01b600052601160045260246000fd5b8181038181111561082657610826612b3d565b60008085851115612b7657600080fd5b83861115612b8357600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000808335601e19843603018112612bbd57600080fd5b8301803591506001600160401b03821115612bd757600080fd5b602001915036819003821315610f4d57600080fd5b828482376000838201600081528351612c098183602088016128d8565b0195945050505050565b65ffffffffffff8181168382160190808211156123f2576123f2612b3d565b65ffffffffffff861681526001600160a01b03858116602083015284166040820152608060608201819052600090612c6d9083018486612aae565b979650505050505050565b6001600160e01b03198135818116916004851015610e055760049490940360031b84901b1690921692915050565b60008251612cb88184602087016128d8565b9190910192915050565b63ffffffff8281168282160390808211156123f2576123f2612b3d565b634e487b7160e01b600052603160045260246000fdfea26469706673582212209152931e25786cb68c4657bcf15ad9aefe771594b6910114d77f1eaf8f871a5f64736f6c63430008180033";
|
|
1252
|
+
"0x608060405234801561001057600080fd5b506040516132b73803806132b783398101604081905261002f916104f4565b806001600160a01b03811661005f57604051630409d6d160e11b8152600060048201526024015b60405180910390fd5b61006c60008281806100a8565b50506000805260046020526100a17f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec826102f3565b505061057d565b60006002600160401b03196001600160401b038616016100e65760405163061c6a4360e21b81526001600160401b0386166004820152602401610056565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff16159081156101dd5763ffffffff8516610132610311565b61013c919061053a565b905060405180604001604052808265ffffffffffff16815260200161016c8663ffffffff1661032160201b60201c565b6001600160701b039081169091526001600160401b03891660009081526001602090815260408083206001600160a01b038c16845282529091208351815494909201519092166601000000000000026001600160a01b031990931665ffffffffffff90911617919091179055610285565b6001600160401b03871660009081526001602090815260408083206001600160a01b038a16845290915281205461022a9166010000000000009091046001600160701b031690869061032a565b6001600160401b03891660009081526001602090815260408083206001600160a01b038c168452909152902080546001600160701b03909316660100000000000002600160301b600160a01b03199093169290921790915590505b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b6000610308836001600160a01b0384166103d3565b90505b92915050565b600061031c42610422565b905090565b63ffffffff1690565b600080806103406001600160701b038716610459565b9050600061037d8563ffffffff168763ffffffff168463ffffffff1611610368576000610372565b6103728885610560565b63ffffffff16610478565b905063ffffffff811661038e610311565b610398919061053a565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b600081815260018301602052604081205461041a5750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561030b565b50600061030b565b600065ffffffffffff821115610455576040516306dfcc6560e41b81526030600482015260248101839052604401610056565b5090565b60008061046e6001600160701b038416610488565b5090949350505050565b6000828218828411028218610308565b6000808061049d84610498610311565b6104aa565b9250925092509193909250565b6001600160501b03602083901c166001600160701b03831665ffffffffffff604085901c81169084168111156104e2578282826104e7565b816000805b9250925092509250925092565b60006020828403121561050657600080fd5b81516001600160a01b038116811461051d57600080fd5b9392505050565b634e487b7160e01b600052601160045260246000fd5b65ffffffffffff81811683821601908082111561055957610559610524565b5092915050565b63ffffffff82811682821603908082111561055957610559610524565b612d2b8061058c6000396000f3fe6080604052600436106102045760003560e01c806375b238fc11610118578063b7d2b162116100a0578063d6bb62c61161006f578063d6bb62c6146106cc578063d78a83b1146106ec578063f801a69814610724578063fc8610d11461075e578063fe0776f51461077e57600080fd5b8063b7d2b16214610656578063cc1b6c8114610676578063d1f856ee1461068c578063d22b5989146106ac57600080fd5b8063a5808e2f116100e7578063a5808e2f14610572578063a64d95ce1461059f578063abd9bd2a146105bf578063ac9650d8146105ed578063b70096131461061a57600080fd5b806375b238fc146104ed578063853551b81461050257806394c7d7ee14610522578063a166aa891461054257600080fd5b806330cae1871161019b5780634665096d1161016a5780634665096d1461043a5780634c1da1e2146104505780635296295214610470578063530dd456146104905780636d5115bd146104cd57600080fd5b806330cae1871461038e5780633adc277a146103ae5780633ca7c02a146103e55780634136a33c1461040057600080fd5b806318ff183c116101d757806318ff183c146102e15780631cff79cd1461030157806325c471a0146103145780633078f1141461033457600080fd5b806308d6122d146102095780630b0a93ba1461022b57806312be87271461028c578063167bd395146102c1575b600080fd5b34801561021557600080fd5b506102296102243660046124fa565b61079e565b005b34801561023757600080fd5b5061026f610246366004612560565b6001600160401b0390811660009081526001602081905260409091200154600160401b90041690565b6040516001600160401b0390911681526020015b60405180910390f35b34801561029857600080fd5b506102ac6102a7366004612560565b6107f1565b60405163ffffffff9091168152602001610283565b3480156102cd57600080fd5b506102296102dc36600461257b565b61082c565b3480156102ed57600080fd5b506102296102fc3660046125b9565b610842565b6102ac61030f366004612628565b6108a9565b34801561032057600080fd5b5061022961032f366004612690565b6109d9565b34801561034057600080fd5b5061035461034f3660046126d5565b610a27565b604051610283949392919065ffffffffffff948516815263ffffffff93841660208201529190921660408201529116606082015260800190565b34801561039a57600080fd5b506102296103a93660046126f1565b610a8c565b3480156103ba57600080fd5b506103ce6103c9366004612724565b610a9e565b60405165ffffffffffff9091168152602001610283565b3480156103f157600080fd5b5061026f6001600160401b0381565b34801561040c57600080fd5b506102ac61041b366004612724565b600090815260026020526040902054600160301b900463ffffffff1690565b34801561044657600080fd5b5062093a806102ac565b34801561045c57600080fd5b506102ac61046b36600461273d565b610ad1565b34801561047c57600080fd5b5061022961048b3660046126f1565b610aff565b34801561049c57600080fd5b5061026f6104ab366004612560565b6001600160401b03908116600090815260016020819052604090912001541690565b3480156104d957600080fd5b5061026f6104e8366004612770565b610b11565b3480156104f957600080fd5b5061026f600081565b34801561050e57600080fd5b5061022961051d36600461279e565b610b4c565b34801561052e57600080fd5b5061022961053d366004612628565b610be3565b34801561054e57600080fd5b5061056261055d36600461273d565b610c8f565b6040519015158152602001610283565b34801561057e57600080fd5b5061059261058d366004612560565b610cb7565b60405161028391906127bc565b3480156105ab57600080fd5b506102296105ba366004612809565b610cdb565b3480156105cb57600080fd5b506105df6105da366004612833565b610ced565b604051908152602001610283565b3480156105f957600080fd5b5061060d610608366004612897565b610d26565b60405161028391906128fc565b34801561062657600080fd5b5061063a610635366004612976565b610e0d565b60408051921515835263ffffffff909116602083015201610283565b34801561066257600080fd5b506102296106713660046126d5565b610e94565b34801561068257600080fd5b50620697806102ac565b34801561069857600080fd5b5061063a6106a73660046126d5565b610ed7565b3480156106b857600080fd5b506102296106c73660046129c1565b610f54565b3480156106d857600080fd5b506102ac6106e7366004612833565b610f66565b3480156106f857600080fd5b5061070c6107073660046129df565b6110c0565b6040516001600160a01b039091168152602001610283565b34801561073057600080fd5b5061074461073f366004612a09565b6110e2565b6040805192835263ffffffff909116602083015201610283565b34801561076a57600080fd5b506105df610779366004612560565b611227565b34801561078a57600080fd5b506102296107993660046126d5565b611248565b6107a6611271565b60005b828110156107ea576107e2858585848181106107c7576107c7612a7b565b90506020020160208101906107dc9190612a91565b846112ec565b6001016107a9565b5050505050565b6001600160401b03811660009081526001602081905260408220015461082690600160801b90046001600160701b031661136e565b92915050565b610834611271565b61083e828261138d565b5050565b61084a611271565b604051637a9e5e4b60e01b81526001600160a01b038281166004830152831690637a9e5e4b90602401600060405180830381600087803b15801561088d57600080fd5b505af11580156108a1573d6000803e3d6000fd5b505050505050565b60003381806108ba838888886113ff565b91509150811580156108d0575063ffffffff8116155b156109235782876108e18888611452565b6040516381c6f24b60e01b81526001600160a01b0393841660048201529290911660248301526001600160e01b03191660448201526064015b60405180910390fd5b600061093184898989610ced565b9050600063ffffffff8316151580610958575061094d82610a9e565b65ffffffffffff1615155b15610969576109668261146a565b90505b60035461097f8a61097a8b8b611452565b61156a565b6003819055506109c78a8a8a8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152503492506115ac915050565b506003559450505050505b9392505050565b6109e1611271565b60006109f784846109f1876107f1565b85611650565b90508015610a21576001600160401b03841660009081526004602052604090206107ea908461189b565b50505050565b6001600160401b03821660009081526001602090815260408083206001600160a01b03851684529091528120805465ffffffffffff811692918291829190610a7e90600160301b90046001600160701b03166118b0565b969991985096509350505050565b610a94611271565b61083e82826118d3565b60008181526002602052604081205465ffffffffffff16610abe81611977565b610ac857806109d2565b60009392505050565b6001600160a01b038116600090815260208190526040812060010154610826906001600160701b031661136e565b610b07611271565b61083e82826119a6565b6001600160a01b0382166000908152602081815260408083206001600160e01b0319851684529091529020546001600160401b031692915050565b610b54611271565b6001600160401b0383161580610b7257506001600160401b03838116145b15610b9b5760405163061c6a4360e21b81526001600160401b038416600482015260240161091a565b826001600160401b03167f1256f5b5ecb89caec12db449738f2fbcd1ba5806cf38f35413f4e5c15bf6a4508383604051610bd6929190612ad7565b60405180910390a2505050565b60408051638fb3603760e01b80825291513392918391638fb36037916004808201926020929091908290030181865afa158015610c24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c489190612af3565b6001600160e01b03191614610c7b57604051630641fee960e31b81526001600160a01b038216600482015260240161091a565b6107ea610c8a85838686610ced565b61146a565b6001600160a01b0316600090815260208190526040902060010154600160701b900460ff1690565b6001600160401b038116600090815260046020526040902060609061082690611a58565b610ce3611271565b61083e8282611a65565b600084848484604051602001610d069493929190612b10565b604051602081830303815290604052805190602001209050949350505050565b604080516000815260208101909152606090826001600160401b03811115610d5057610d50612b90565b604051908082528060200260200182016040528015610d8357816020015b6060815260200190600190039081610d6e5790505b50915060005b83811015610e0557610de030868684818110610da757610da7612a7b565b9050602002810190610db99190612ba6565b85604051602001610dcc93929190612bec565b604051602081830303815290604052611b76565b838281518110610df257610df2612a7b565b6020908102919091010152600101610d89565b505092915050565b600080610e1984610c8f565b15610e2957506000905080610e8c565b306001600160a01b03861603610e4e57610e438484611bec565b600091509150610e8c565b6000610e5a8585610b11565b9050600080610e698389610ed7565b9150915081610e7a57600080610e84565b63ffffffff811615815b945094505050505b935093915050565b610e9c611271565b6000610ea88383611c03565b90508015610ed2576001600160401b0383166000908152600460205260409020610a219083611cf0565b505050565b60008067fffffffffffffffe196001600160401b03851601610eff5750600190506000610f4d565b600080610f0c8686610a27565b5050915091508165ffffffffffff16600014158015610f425750610f2e611d05565b65ffffffffffff168265ffffffffffff1611155b93509150610f4d9050565b9250929050565b610f5c611271565b61083e8282611d15565b60003381610f748585611452565b90506000610f8488888888610ced565b60008181526002602052604081205491925065ffffffffffff9091169003610fc25760405163060a299b60e41b81526004810182905260240161091a565b826001600160a01b0316886001600160a01b03161461105e576000610fe8600085610ed7565b5090506000611003610ffd6102468b87610b11565b86610ed7565b50905081158015611012575080155b1561105b57604051630ff89d4760e21b81526001600160a01b038087166004830152808c1660248301528a1660448201526001600160e01b03198516606482015260840161091a565b50505b600081815260026020526040808220805465ffffffffffff1916908190559051600160301b90910463ffffffff1691829184917fbd9ac67a6e2f6463b80927326310338bcbb4bdb7936ce1365ea3e01067e7b9f791a398975050505050505050565b6001600160401b03821660009081526004602052604081206109d29083611dd2565b60008033816110f3828989896113ff565b91505060008163ffffffff16611107611d05565b6111119190612c13565b905063ffffffff82161580611148575060008665ffffffffffff1611801561114857508065ffffffffffff168665ffffffffffff16105b156111595782896108e18a8a611452565b6111738665ffffffffffff168265ffffffffffff16611dde565b9550611181838a8a8a610ced565b945061118c85611dee565b60008581526002602052604090819020805465ffffffffffff891669ffffffffffffffffffff19821617600160301b9182900463ffffffff90811660010190811692830291909117909255915190955086907f82a2da5dee54ea8021c6545b4444620291e07ee83be6dd57edb175062715f3b490611213908a9088908f908f908f90612c32565b60405180910390a350505094509492505050565b6001600160401b038116600090815260046020526040812061082690611e3b565b6001600160a01b0381163314610e9c57604051635f159e6360e01b815260040160405180910390fd5b33600080611280838236611e45565b9150915081610ed2578063ffffffff166000036112dc5760006112a38136611f0f565b5060405163f07e038f60e01b81526001600160a01b03871660048201526001600160401b0382166024820152909250604401905061091a565b610a21610c8a8430600036610ced565b6001600160a01b0383166000818152602081815260408083206001600160e01b0319871680855290835292819020805467ffffffffffffffff19166001600160401b038716908117909155905192835292917f9ea6790c7dadfd01c9f8b9762b3682607af2c7e79e05a9f9fdf5580dde949151910160405180910390a3505050565b600080611383836001600160701b03166118b0565b5090949350505050565b6001600160a01b038216600081815260208190526040908190206001018054841515600160701b0260ff60701b19909116179055517f90d4e7bb7e5d933792b3562e1741306f8be94837e1348dacef9b6f1df56eb138906113f390841515815260200190565b60405180910390a25050565b600080306001600160a01b038616036114265761141d868585611e45565b91509150611449565b600483106114425761143d86866106358787611452565b61141d565b5060009050805b94509492505050565b60006114616004828486612b66565b6109d291612c78565b60008181526002602052604081205465ffffffffffff811690600160301b900463ffffffff168183036114b35760405163060a299b60e41b81526004810185905260240161091a565b6114bb611d05565b65ffffffffffff168265ffffffffffff1611156114ee57604051630c65b5bd60e11b81526004810185905260240161091a565b6114f782611977565b1561151857604051631e2975b960e21b81526004810185905260240161091a565b600084815260026020526040808220805465ffffffffffff191690555163ffffffff83169186917f76a2a46953689d4861a5d3f6ed883ad7e6af674a21f8e162707159fc9dde614d9190a39392505050565b604080516001600160a01b03939093166020808501919091526001600160e01b0319929092168382015280518084038201815260609093019052815191012090565b6060814710156115d85760405163cf47918160e01b81524760048201526024810183905260440161091a565b600080856001600160a01b031684866040516115f49190612ca6565b60006040518083038185875af1925050503d8060008114611631576040519150601f19603f3d011682016040523d82523d6000602084013e611636565b606091505b5091509150611646868383612101565b9695505050505050565b600067fffffffffffffffe196001600160401b0386160161168f5760405163061c6a4360e21b81526001600160401b038616600482015260240161091a565b6001600160401b03851660009081526001602090815260408083206001600160a01b038816845290915281205465ffffffffffff1615908115611781578463ffffffff166116db611d05565b6116e59190612c13565b905060405180604001604052808265ffffffffffff1681526020016117138663ffffffff1663ffffffff1690565b6001600160701b039081169091526001600160401b03891660009081526001602090815260408083206001600160a01b038c1684528252909120835181549490920151909216600160301b026001600160a01b031990931665ffffffffffff9091161791909117905561182d565b6001600160401b03871660009081526001602090815260408083206001600160a01b038a1684529091528120546117cb91600160301b9091046001600160701b031690869061215d565b6001600160401b03891660009081526001602090815260408083206001600160a01b038c168452909152902080546001600160701b03909316600160301b0273ffffffffffffffffffffffffffff000000000000199093169290921790915590505b6040805163ffffffff8616815265ffffffffffff831660208201528315158183015290516001600160a01b038816916001600160401b038a16917ff98448b987f1428e0e230e1f3c6e2ce15b5693eaf31827fbd0b1ec4b424ae7cf9181900360600190a35095945050505050565b60006109d2836001600160a01b038416612207565b60008060006118c6846118c1611d05565b612256565b9250925092509193909250565b6001600160401b03821615806118f157506001600160401b03828116145b1561191a5760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b038281166000818152600160208190526040808320909101805467ffffffffffffffff19169486169485179055517f1fd6dd7631312dfac2205b52913f99de03b4d7e381d5d27d3dbfe0713e6e63409190a35050565b6000611981611d05565b65ffffffffffff1661199662093a8084612c13565b65ffffffffffff16111592915050565b6001600160401b03821615806119c457506001600160401b03828116145b156119ed5760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b03828116600081815260016020819052604080832090910180546fffffffffffffffff00000000000000001916600160401b958716958602179055517f7a8059630b897b5de4c08ade69f8b90c3ead1f8596d62d10b6c4d14a0afb4ae29190a35050565b606060006109d2836122a3565b67fffffffffffffffe196001600160401b03831601611aa25760405163061c6a4360e21b81526001600160401b038316600482015260240161091a565b6001600160401b038216600090815260016020819052604082200154611adc90600160801b90046001600160701b0316836206978061215d565b6001600160401b0385166000818152600160208190526040918290200180546001600160701b03909516600160801b026dffffffffffffffffffffffffffff60801b199095169490941790935591519092507ffeb69018ee8b8fd50ea86348f1267d07673379f72cffdeccec63853ee8ce8b4890610bd6908590859063ffffffff92909216825265ffffffffffff16602082015260400190565b6060600080846001600160a01b031684604051611b939190612ca6565b600060405180830381855af49150503d8060008114611bce576040519150601f19603f3d011682016040523d82523d6000602084013e611bd3565b606091505b5091509150611be3858383612101565b95945050505050565b6000611bf8838361156a565b600354149392505050565b600067fffffffffffffffe196001600160401b03841601611c425760405163061c6a4360e21b81526001600160401b038416600482015260240161091a565b6001600160401b03831660009081526001602090815260408083206001600160a01b038616845290915281205465ffffffffffff169003611c8557506000610826565b6001600160401b03831660008181526001602090815260408083206001600160a01b038716808552925280832080546001600160a01b0319169055519092917ff229baa593af28c41b1d16b748cd7688f0c83aaf92d4be41c44005defe84c16691a350600192915050565b60006109d2836001600160a01b0384166122ff565b6000611d10426123f9565b905090565b6001600160a01b038216600090815260208190526040812060010154611d48906001600160701b0316836206978061215d565b6001600160a01b0385166000818152602081815260409182902060010180546dffffffffffffffffffffffffffff19166001600160701b039690961695909517909455805163ffffffff8716815265ffffffffffff841694810194909452919350917fa56b76017453f399ec2327ba00375dbfb1fd070ff854341ad6191e6a2e2de19c9101610bd6565b60006109d28383612430565b60008282188284110282186109d2565b60008181526002602052604090205465ffffffffffff168015801590611e1a5750611e1881611977565b155b1561083e5760405163813e945960e01b81526004810183905260240161091a565b6000610826825490565b6000806004831015611e5c57506000905080610e8c565b306001600160a01b03861603611e7f57610e4330611e7a8686611452565b611bec565b6000806000611e8e8787611f0f565b92509250925082158015611ea65750611ea630610c8f565b15611eba5760008094509450505050610e8c565b600080611ec7848b610ed7565b9150915081611ee157600080965096505050505050610e8c565b611ef78363ffffffff168263ffffffff16611dde565b63ffffffff8116159b909a5098505050505050505050565b600080806004841015611f2a575060009150819050806120fa565b6000611f368686611452565b90506001600160e01b031981166310a6aa3760e31b1480611f6757506001600160e01b031981166330cae18760e01b145b80611f8257506001600160e01b0319811663294b14a960e11b145b80611f9d57506001600160e01b03198116635326cae760e11b145b80611fb857506001600160e01b0319811663d22b598960e01b145b15611fce576001600080935093509350506120fa565b6001600160e01b0319811663063fc60f60e21b1480611ffd57506001600160e01b0319811663167bd39560e01b145b8061201857506001600160e01b031981166308d6122d60e01b145b1561205a57600061202d60246004888a612b66565b81019061203a919061273d565b9050600061204782610ad1565b600196506000955093506120fa92505050565b6001600160e01b0319811663012e238d60e51b148061208957506001600160e01b03198116635be958b160e11b145b156120e457600061209e60246004888a612b66565b8101906120ab9190612560565b905060016120d5826001600160401b03908116600090815260016020819052604090912001541690565b600094509450945050506120fa565b60006120f03083610b11565b6000935093509350505b9250925092565b606082612116576121118261245a565b6109d2565b815115801561212d57506001600160a01b0384163b155b1561215657604051639996b31560e01b81526001600160a01b038516600482015260240161091a565b50806109d2565b6000806000612174866001600160701b031661136e565b905060006121b18563ffffffff168763ffffffff168463ffffffff161161219c5760006121a6565b6121a68885612cc2565b63ffffffff16611dde565b90508063ffffffff166121c2611d05565b6121cc9190612c13565b925063ffffffff8616602083901b67ffffffff0000000016604085901b6dffffffffffff000000000000000016171793505050935093915050565b600081815260018301602052604081205461224e57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610826565b506000610826565b69ffffffffffffffffffff602083901c166001600160701b03831665ffffffffffff604085901c811690841681111561229157828282612296565b816000805b9250925092509250925092565b6060816000018054806020026020016040519081016040528092919081815260200182805480156122f357602002820191906000526020600020905b8154815260200190600101908083116122df575b50505050509050919050565b600081815260018301602052604081205480156123e8576000612323600183612b53565b855490915060009061233790600190612b53565b905080821461239c57600086600001828154811061235757612357612a7b565b906000526020600020015490508087600001848154811061237a5761237a612a7b565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806123ad576123ad612cdf565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610826565b6000915050610826565b5092915050565b600065ffffffffffff82111561242c576040516306dfcc6560e41b8152603060048201526024810183905260440161091a565b5090565b600082600001828154811061244757612447612a7b565b9060005260206000200154905092915050565b80511561246957805160208201fd5b60405163d6bda27560e01b815260040160405180910390fd5b50565b6001600160a01b038116811461248257600080fd5b60008083601f8401126124ac57600080fd5b5081356001600160401b038111156124c357600080fd5b6020830191508360208260051b8501011115610f4d57600080fd5b80356001600160401b03811681146124f557600080fd5b919050565b6000806000806060858703121561251057600080fd5b843561251b81612485565b935060208501356001600160401b0381111561253657600080fd5b6125428782880161249a565b90945092506125559050604086016124de565b905092959194509250565b60006020828403121561257257600080fd5b6109d2826124de565b6000806040838503121561258e57600080fd5b823561259981612485565b9150602083013580151581146125ae57600080fd5b809150509250929050565b600080604083850312156125cc57600080fd5b82356125d781612485565b915060208301356125ae81612485565b60008083601f8401126125f957600080fd5b5081356001600160401b0381111561261057600080fd5b602083019150836020828501011115610f4d57600080fd5b60008060006040848603121561263d57600080fd5b833561264881612485565b925060208401356001600160401b0381111561266357600080fd5b61266f868287016125e7565b9497909650939450505050565b803563ffffffff811681146124f557600080fd5b6000806000606084860312156126a557600080fd5b6126ae846124de565b925060208401356126be81612485565b91506126cc6040850161267c565b90509250925092565b600080604083850312156126e857600080fd5b6125d7836124de565b6000806040838503121561270457600080fd5b61270d836124de565b915061271b602084016124de565b90509250929050565b60006020828403121561273657600080fd5b5035919050565b60006020828403121561274f57600080fd5b81356109d281612485565b6001600160e01b03198116811461248257600080fd5b6000806040838503121561278357600080fd5b823561278e81612485565b915060208301356125ae8161275a565b6000806000604084860312156127b357600080fd5b612648846124de565b6020808252825182820181905260009190848201906040850190845b818110156127fd5783516001600160a01b0316835292840192918401916001016127d8565b50909695505050505050565b6000806040838503121561281c57600080fd5b612825836124de565b915061271b6020840161267c565b6000806000806060858703121561284957600080fd5b843561285481612485565b9350602085013561286481612485565b925060408501356001600160401b0381111561287f57600080fd5b61288b878288016125e7565b95989497509550505050565b600080602083850312156128aa57600080fd5b82356001600160401b038111156128c057600080fd5b6128cc8582860161249a565b90969095509350505050565b60005b838110156128f35781810151838201526020016128db565b50506000910152565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561296957878503603f190184528151805180875261294a818989018a85016128d8565b601f01601f191695909501860194509285019290850190600101612923565b5092979650505050505050565b60008060006060848603121561298b57600080fd5b833561299681612485565b925060208401356129a681612485565b915060408401356129b68161275a565b809150509250925092565b600080604083850312156129d457600080fd5b823561282581612485565b600080604083850312156129f257600080fd5b6129fb836124de565b946020939093013593505050565b60008060008060608587031215612a1f57600080fd5b8435612a2a81612485565b935060208501356001600160401b03811115612a4557600080fd5b612a51878288016125e7565b909450925050604085013565ffffffffffff81168114612a7057600080fd5b939692955090935050565b634e487b7160e01b600052603260045260246000fd5b600060208284031215612aa357600080fd5b81356109d28161275a565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b602081526000612aeb602083018486612aae565b949350505050565b600060208284031215612b0557600080fd5b81516109d28161275a565b6001600160a01b038581168252841660208201526060604082018190526000906116469083018486612aae565b634e487b7160e01b600052601160045260246000fd5b8181038181111561082657610826612b3d565b60008085851115612b7657600080fd5b83861115612b8357600080fd5b5050820193919092039150565b634e487b7160e01b600052604160045260246000fd5b6000808335601e19843603018112612bbd57600080fd5b8301803591506001600160401b03821115612bd757600080fd5b602001915036819003821315610f4d57600080fd5b828482376000838201600081528351612c098183602088016128d8565b0195945050505050565b65ffffffffffff8181168382160190808211156123f2576123f2612b3d565b65ffffffffffff861681526001600160a01b03858116602083015284166040820152608060608201819052600090612c6d9083018486612aae565b979650505050505050565b6001600160e01b03198135818116916004851015610e055760049490940360031b84901b1690921692915050565b60008251612cb88184602087016128d8565b9190910192915050565b63ffffffff8281168282160390808211156123f2576123f2612b3d565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220a5f431b284777d609a182b1d18254eda749a5abec857d0c186374bdf3db2f9c764736f6c63430008190033";
|
|
1253
1253
|
|
|
1254
1254
|
type AuthorityManagerConstructorParams =
|
|
1255
1255
|
| [signer?: Signer]
|
|
@@ -6,7 +6,7 @@ import { Contract, Interface, type ContractRunner } from "ethers";
|
|
|
6
6
|
import type {
|
|
7
7
|
BaseImplementation,
|
|
8
8
|
BaseImplementationInterface,
|
|
9
|
-
} from "
|
|
9
|
+
} from "../../../contracts/base/BaseImplementation";
|
|
10
10
|
|
|
11
11
|
const _abi = [
|
|
12
12
|
{
|
package/typechain-types/index.ts
CHANGED
|
@@ -42,5 +42,5 @@ export type { Multicall } from "./@openzeppelin/contracts/utils/Multicall";
|
|
|
42
42
|
export { Multicall__factory } from "./factories/@openzeppelin/contracts/utils/Multicall__factory";
|
|
43
43
|
export type { AuthorityManager } from "./contracts/AuthorityManager";
|
|
44
44
|
export { AuthorityManager__factory } from "./factories/contracts/AuthorityManager__factory";
|
|
45
|
-
export type { BaseImplementation } from "./contracts/base/
|
|
46
|
-
export { BaseImplementation__factory } from "./factories/contracts/base/
|
|
45
|
+
export type { BaseImplementation } from "./contracts/base/BaseImplementation";
|
|
46
|
+
export { BaseImplementation__factory } from "./factories/contracts/base/BaseImplementation__factory";
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import bs58 from "bs58";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Convert address to hex bytes based on address format
|
|
5
|
+
* - EVM address (0x prefix): return as-is (20 bytes)
|
|
6
|
+
* - Tron address (T prefix, 34 chars): base58 decode, extract 20 bytes
|
|
7
|
+
* - Solana/other base58 address: base58 decode to full bytes
|
|
8
|
+
*/
|
|
9
|
+
export function addressToHex(addr: string): string {
|
|
10
|
+
if (addr.startsWith("0x")) {
|
|
11
|
+
return addr.toLowerCase();
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
if (isTronAddress(addr)) {
|
|
15
|
+
const decoded = bs58.decode(addr);
|
|
16
|
+
// Tron format: 0x41 (1 byte) + address (20 bytes) + checksum (4 bytes)
|
|
17
|
+
const addressBytes = decoded.slice(1, 21);
|
|
18
|
+
return "0x" + Buffer.from(addressBytes).toString("hex");
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (isBase58(addr)) {
|
|
22
|
+
const decoded = bs58.decode(addr);
|
|
23
|
+
return "0x" + Buffer.from(decoded).toString("hex");
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
throw new Error(`Unknown address format: ${addr}`);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function isBase58(addr: string): boolean {
|
|
30
|
+
const base58Chars = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
|
31
|
+
for (const char of addr) {
|
|
32
|
+
if (!base58Chars.includes(char)) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function isTronAddress(addr: string): boolean {
|
|
40
|
+
if (!addr.startsWith("T") || addr.length !== 34 || !isBase58(addr)) return false;
|
|
41
|
+
try {
|
|
42
|
+
const decoded = bs58.decode(addr);
|
|
43
|
+
// Tron: 0x41 (1 byte) + address (20 bytes) + checksum (4 bytes) = 25 bytes
|
|
44
|
+
return decoded.length === 25 && decoded[0] === 0x41;
|
|
45
|
+
} catch {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function isSolanaChain(chainName: string): boolean {
|
|
51
|
+
return chainName === "Sol" || chainName === "sol_test";
|
|
52
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
let fs = require("fs");
|
|
2
|
+
let path = require("path");
|
|
3
|
+
|
|
4
|
+
type Deployment = {
|
|
5
|
+
[network: string]: {
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export interface DeploymentOptions {
|
|
11
|
+
basePath?: string; // defaults to <cwd>/deployments/
|
|
12
|
+
suffix?: string; // defaults to "prod"
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Default deployments path: <project_root>/deployments/
|
|
16
|
+
function defaultDeployPath(): string {
|
|
17
|
+
return path.join(process.cwd(), "deployments");
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Resolve deployment environment key from network name
|
|
21
|
+
// e.g., "Bsc" + "prod" -> "Bsc_prod", "Bsc_test" -> "Bsc_test"
|
|
22
|
+
export function resolveDeploymentEnv(network: string, suffix: string = "prod"): string {
|
|
23
|
+
if (network.includes("test")) return network;
|
|
24
|
+
return `${network}_${suffix}`;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export async function getDeploymentByKey(network: string, key: string, opts?: DeploymentOptions): Promise<string> {
|
|
28
|
+
const deployPath = opts?.basePath || defaultDeployPath();
|
|
29
|
+
const env = resolveDeploymentEnv(network, opts?.suffix);
|
|
30
|
+
const deployment = await readDeploymentFromFile(deployPath, env);
|
|
31
|
+
const addr = deployment[env]?.[key];
|
|
32
|
+
if (!addr) throw `no ${key} deployment in ${env}`;
|
|
33
|
+
return addr;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export async function hasDeployment(network: string, key: string, opts?: DeploymentOptions): Promise<boolean> {
|
|
37
|
+
try {
|
|
38
|
+
const deployPath = opts?.basePath || defaultDeployPath();
|
|
39
|
+
const env = resolveDeploymentEnv(network, opts?.suffix);
|
|
40
|
+
const deployment = await readDeploymentFromFile(deployPath, env);
|
|
41
|
+
const addr = deployment[env]?.[key];
|
|
42
|
+
return !!addr && addr.length > 2 && addr !== "0x";
|
|
43
|
+
} catch {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export async function saveDeployment(network: string, key: string, addr: string, opts?: DeploymentOptions): Promise<void> {
|
|
49
|
+
const deployPath = opts?.basePath || defaultDeployPath();
|
|
50
|
+
const env = resolveDeploymentEnv(network, opts?.suffix);
|
|
51
|
+
const deployment = await readDeploymentFromFile(deployPath, env);
|
|
52
|
+
deployment[env][key] = addr;
|
|
53
|
+
const p = path.resolve(deployPath, "deploy.json");
|
|
54
|
+
await ensureDir(deployPath);
|
|
55
|
+
fs.writeFileSync(p, JSON.stringify(deployment, null, "\t"));
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
async function readDeploymentFromFile(basePath: string, env: string): Promise<Deployment> {
|
|
59
|
+
const p = path.resolve(basePath, "deploy.json");
|
|
60
|
+
let deploy: Deployment;
|
|
61
|
+
if (!fs.existsSync(p)) {
|
|
62
|
+
deploy = {};
|
|
63
|
+
deploy[env] = {};
|
|
64
|
+
} else {
|
|
65
|
+
const rawdata = fs.readFileSync(p, "utf-8");
|
|
66
|
+
deploy = JSON.parse(rawdata);
|
|
67
|
+
if (!deploy[env]) {
|
|
68
|
+
deploy[env] = {};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return deploy;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
async function ensureDir(dirPath: string): Promise<void> {
|
|
75
|
+
const absPath = path.resolve(dirPath);
|
|
76
|
+
try {
|
|
77
|
+
await fs.promises.stat(absPath);
|
|
78
|
+
} catch (e) {
|
|
79
|
+
await fs.promises.mkdir(absPath, { recursive: true });
|
|
80
|
+
}
|
|
81
|
+
}
|
package/utils/index.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export {
|
|
2
|
+
resolveDeploymentEnv,
|
|
3
|
+
getDeploymentByKey,
|
|
4
|
+
hasDeployment,
|
|
5
|
+
saveDeployment,
|
|
6
|
+
type DeploymentOptions
|
|
7
|
+
} from "./deployment";
|
|
8
|
+
|
|
9
|
+
export {
|
|
10
|
+
tronDeploy,
|
|
11
|
+
getTronContract,
|
|
12
|
+
getTronDeployer,
|
|
13
|
+
tronFromHex,
|
|
14
|
+
tronToHex,
|
|
15
|
+
isTronNetwork,
|
|
16
|
+
createTronWeb,
|
|
17
|
+
type TronConfig
|
|
18
|
+
} from "./tronHelper";
|
|
19
|
+
|
|
20
|
+
export {
|
|
21
|
+
addressToHex,
|
|
22
|
+
isBase58,
|
|
23
|
+
isTronAddress,
|
|
24
|
+
isSolanaChain
|
|
25
|
+
} from "./addressCodec";
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
let TronWeb = require("tronweb");
|
|
2
|
+
|
|
3
|
+
// ============================================================
|
|
4
|
+
// Pure address conversion — no RPC, no private key needed
|
|
5
|
+
// ============================================================
|
|
6
|
+
|
|
7
|
+
export function tronFromHex(hex: string): string {
|
|
8
|
+
if (hex.startsWith("T") && hex.length === 34) return hex;
|
|
9
|
+
return TronWeb.address.fromHex(hex);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function tronToHex(addr: string): string {
|
|
13
|
+
if (addr.startsWith("0x") && addr.length === 42) return addr;
|
|
14
|
+
return TronWeb.address.toHex(addr).replace(/^(41)/, "0x");
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export function isTronNetwork(network: string): boolean {
|
|
18
|
+
return network === "Tron" || network === "tron_test" || network === "Tron_test";
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
// ============================================================
|
|
22
|
+
// TronWeb instance creation
|
|
23
|
+
// ============================================================
|
|
24
|
+
|
|
25
|
+
export interface TronConfig {
|
|
26
|
+
rpcUrl: string;
|
|
27
|
+
privateKey?: string; // optional — omit for read-only operations
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function createTronWeb(config: TronConfig) {
|
|
31
|
+
const opts: any = { fullHost: config.rpcUrl };
|
|
32
|
+
if (config.privateKey) {
|
|
33
|
+
opts.privateKey = config.privateKey;
|
|
34
|
+
}
|
|
35
|
+
return new TronWeb(opts);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// ============================================================
|
|
39
|
+
// Contract interaction — requires tronWeb instance
|
|
40
|
+
// ============================================================
|
|
41
|
+
|
|
42
|
+
export async function tronDeploy(
|
|
43
|
+
tronWeb: any,
|
|
44
|
+
artifacts: any,
|
|
45
|
+
contractName: string,
|
|
46
|
+
args: any[] = [],
|
|
47
|
+
feeLimit: number = 15_000_000_000
|
|
48
|
+
): Promise<string> {
|
|
49
|
+
let c = await artifacts.readArtifact(contractName);
|
|
50
|
+
console.log("deploy address is:", tronWeb.defaultAddress.base58);
|
|
51
|
+
let instance = await tronWeb.contract().new({
|
|
52
|
+
abi: c.abi,
|
|
53
|
+
bytecode: c.bytecode,
|
|
54
|
+
feeLimit,
|
|
55
|
+
callValue: 0,
|
|
56
|
+
parameters: args,
|
|
57
|
+
});
|
|
58
|
+
let hex = instance.address; // 41-prefixed hex
|
|
59
|
+
let base58 = tronWeb.address.fromHex(hex);
|
|
60
|
+
console.log(`${contractName} deployed: ${base58} (${hex})`);
|
|
61
|
+
return hex.replace(/^41/, "0x");
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export async function getTronContract(
|
|
65
|
+
tronWeb: any,
|
|
66
|
+
artifacts: any,
|
|
67
|
+
contractName: string,
|
|
68
|
+
addr: string
|
|
69
|
+
): Promise<any> {
|
|
70
|
+
console.log("operator address is:", tronWeb.defaultAddress.base58);
|
|
71
|
+
let C = await artifacts.readArtifact(contractName);
|
|
72
|
+
return tronWeb.contract(C.abi, addr);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export function getTronDeployer(tronWeb: any, hex: boolean = false): string {
|
|
76
|
+
if (hex) {
|
|
77
|
+
return tronWeb.defaultAddress.hex.replace(/^(41)/, "0x");
|
|
78
|
+
}
|
|
79
|
+
return tronWeb.defaultAddress.base58;
|
|
80
|
+
}
|
|
File without changes
|