@pendle/core-v2 4.5.0 → 4.5.1
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/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC20WithSupplyCapSY.sol/PendleERC20WithSupplyCapSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC20WithSupplyCapSY.sol/PendleERC20WithSupplyCapSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Swell/PendleSwellRswETHStakingSY.sol/PendleSwellRswETHStakingSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Swell/PendleSwellRswETHStakingSY.sol/PendleSwellRswETHStakingSY.json +1049 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Swell/PendleSwellStakingERC20SY.sol/PendleSwellStakingERC20SY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Swell/PendleSwellStakingERC20SY.sol/PendleSwellStakingERC20SY.json +1039 -0
- package/build/artifacts/contracts/interfaces/Swell/ISwellSimpleStakingERC20.sol/ISwellSimpleStakingERC20.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Swell/ISwellSimpleStakingERC20.sol/ISwellSimpleStakingERC20.json +207 -0
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
- package/contracts/core/StandardizedYield/implementations/PendleERC20WithSupplyCapSY.sol +6 -1
- package/contracts/core/StandardizedYield/implementations/Swell/PendleSwellRswETHStakingSY.sol +57 -0
- package/contracts/core/StandardizedYield/implementations/Swell/PendleSwellStakingERC20SY.sol +111 -0
- package/contracts/interfaces/Swell/ISwellSimpleStakingERC20.sol +66 -0
- package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +12 -4
- package/deployments/1-markets/EZETH-MAINNET-SEP2024.json +11 -0
- package/deployments/1-markets/RSWETH-SWELL-STAKING-MAINNET-JUL2024.json +11 -0
- package/deployments/1-markets/WEETH-MAINNET-SEP2024.json +11 -0
- package/deployments/42161-markets/EZETH-ARB-SEP2024.json +11 -0
- package/deployments/42161-markets/SILO-PTEETH-ARBITRUM-JUNE2024.json +11 -0
- package/deployments/42161-markets/SILO-PTEZETH-ARBITRUM-JUNE2024.json +11 -0
- package/deployments/42161-markets/WEETH-ARB-SEP2024.json +11 -0
- package/deployments/56-markets/WEETH-BSC-SEP2024.json +11 -0
- package/deployments/merkle-distribution/2024-04-25.json +14930 -0
- package/package.json +1 -1
- package/typechain-types/ISwellSimpleStakingERC20.ts +289 -0
- package/typechain-types/PendleSwellRswETHStakingSY.ts +1325 -0
- package/typechain-types/PendleSwellStakingERC20SY.ts +1299 -0
- package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
- package/typechain-types/factories/ISwellSimpleStakingERC20__factory.ts +226 -0
- package/typechain-types/factories/PendleERC20WithSupplyCapSY__factory.ts +1 -1
- package/typechain-types/factories/PendleSwellRswETHStakingSY__factory.ts +1106 -0
- package/typechain-types/factories/PendleSwellStakingERC20SY__factory.ts +1112 -0
- package/typechain-types/hardhat.d.ts +27 -0
- package/typechain-types/index.ts +6 -0
- /package/deployments/1-markets/{EZETH-JUNE2024.json → EZETH-APR2024.json} +0 -0
- /package/deployments/42161-markets/{RSETH-MAY2024.json → RSETH-JUNE2024.json} +0 -0
- /package/deployments/42161-markets/{WEETH-MAY2024.json → WEETH-JUNE2024.json} +0 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_format": "hh-sol-artifact-1",
|
|
3
|
+
"contractName": "ISwellSimpleStakingERC20",
|
|
4
|
+
"sourceName": "contracts/interfaces/Swell/ISwellSimpleStakingERC20.sol",
|
|
5
|
+
"abi": [
|
|
6
|
+
{
|
|
7
|
+
"inputs": [],
|
|
8
|
+
"name": "ADDRESS_NULL",
|
|
9
|
+
"type": "error"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"inputs": [],
|
|
13
|
+
"name": "AMOUNT_NULL",
|
|
14
|
+
"type": "error"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"inputs": [],
|
|
18
|
+
"name": "INSUFFICIENT_BALANCE",
|
|
19
|
+
"type": "error"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"inputs": [
|
|
23
|
+
{
|
|
24
|
+
"internalType": "address",
|
|
25
|
+
"name": "token",
|
|
26
|
+
"type": "address"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"name": "TOKEN_NOT_ALLOWED",
|
|
30
|
+
"type": "error"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"anonymous": false,
|
|
34
|
+
"inputs": [
|
|
35
|
+
{
|
|
36
|
+
"indexed": true,
|
|
37
|
+
"internalType": "address",
|
|
38
|
+
"name": "token",
|
|
39
|
+
"type": "address"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"indexed": true,
|
|
43
|
+
"internalType": "address",
|
|
44
|
+
"name": "staker",
|
|
45
|
+
"type": "address"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"indexed": false,
|
|
49
|
+
"internalType": "uint256",
|
|
50
|
+
"name": "amount",
|
|
51
|
+
"type": "uint256"
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
"name": "Deposit",
|
|
55
|
+
"type": "event"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"anonymous": false,
|
|
59
|
+
"inputs": [
|
|
60
|
+
{
|
|
61
|
+
"indexed": true,
|
|
62
|
+
"internalType": "address",
|
|
63
|
+
"name": "token",
|
|
64
|
+
"type": "address"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"components": [
|
|
68
|
+
{
|
|
69
|
+
"internalType": "bool",
|
|
70
|
+
"name": "deposit",
|
|
71
|
+
"type": "bool"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"internalType": "bool",
|
|
75
|
+
"name": "withdraw",
|
|
76
|
+
"type": "bool"
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"indexed": false,
|
|
80
|
+
"internalType": "struct ISwellSimpleStakingERC20.Supported",
|
|
81
|
+
"name": "supported",
|
|
82
|
+
"type": "tuple"
|
|
83
|
+
}
|
|
84
|
+
],
|
|
85
|
+
"name": "SupportedToken",
|
|
86
|
+
"type": "event"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"anonymous": false,
|
|
90
|
+
"inputs": [
|
|
91
|
+
{
|
|
92
|
+
"indexed": true,
|
|
93
|
+
"internalType": "address",
|
|
94
|
+
"name": "token",
|
|
95
|
+
"type": "address"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"indexed": true,
|
|
99
|
+
"internalType": "address",
|
|
100
|
+
"name": "staker",
|
|
101
|
+
"type": "address"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"indexed": false,
|
|
105
|
+
"internalType": "uint256",
|
|
106
|
+
"name": "amount",
|
|
107
|
+
"type": "uint256"
|
|
108
|
+
}
|
|
109
|
+
],
|
|
110
|
+
"name": "Withdraw",
|
|
111
|
+
"type": "event"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"inputs": [
|
|
115
|
+
{
|
|
116
|
+
"internalType": "address",
|
|
117
|
+
"name": "_token",
|
|
118
|
+
"type": "address"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"internalType": "uint256",
|
|
122
|
+
"name": "_amount",
|
|
123
|
+
"type": "uint256"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"internalType": "address",
|
|
127
|
+
"name": "_receiver",
|
|
128
|
+
"type": "address"
|
|
129
|
+
}
|
|
130
|
+
],
|
|
131
|
+
"name": "deposit",
|
|
132
|
+
"outputs": [],
|
|
133
|
+
"stateMutability": "nonpayable",
|
|
134
|
+
"type": "function"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"inputs": [
|
|
138
|
+
{
|
|
139
|
+
"internalType": "address",
|
|
140
|
+
"name": "_token",
|
|
141
|
+
"type": "address"
|
|
142
|
+
}
|
|
143
|
+
],
|
|
144
|
+
"name": "rescueERC20",
|
|
145
|
+
"outputs": [],
|
|
146
|
+
"stateMutability": "nonpayable",
|
|
147
|
+
"type": "function"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"inputs": [
|
|
151
|
+
{
|
|
152
|
+
"internalType": "address",
|
|
153
|
+
"name": "_token",
|
|
154
|
+
"type": "address"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"components": [
|
|
158
|
+
{
|
|
159
|
+
"internalType": "bool",
|
|
160
|
+
"name": "deposit",
|
|
161
|
+
"type": "bool"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"internalType": "bool",
|
|
165
|
+
"name": "withdraw",
|
|
166
|
+
"type": "bool"
|
|
167
|
+
}
|
|
168
|
+
],
|
|
169
|
+
"internalType": "struct ISwellSimpleStakingERC20.Supported",
|
|
170
|
+
"name": "_supported",
|
|
171
|
+
"type": "tuple"
|
|
172
|
+
}
|
|
173
|
+
],
|
|
174
|
+
"name": "supportToken",
|
|
175
|
+
"outputs": [],
|
|
176
|
+
"stateMutability": "nonpayable",
|
|
177
|
+
"type": "function"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"inputs": [
|
|
181
|
+
{
|
|
182
|
+
"internalType": "address",
|
|
183
|
+
"name": "_token",
|
|
184
|
+
"type": "address"
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"internalType": "uint256",
|
|
188
|
+
"name": "_amount",
|
|
189
|
+
"type": "uint256"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"internalType": "address",
|
|
193
|
+
"name": "_receiver",
|
|
194
|
+
"type": "address"
|
|
195
|
+
}
|
|
196
|
+
],
|
|
197
|
+
"name": "withdraw",
|
|
198
|
+
"outputs": [],
|
|
199
|
+
"stateMutability": "nonpayable",
|
|
200
|
+
"type": "function"
|
|
201
|
+
}
|
|
202
|
+
],
|
|
203
|
+
"bytecode": "0x",
|
|
204
|
+
"deployedBytecode": "0x",
|
|
205
|
+
"linkReferences": {},
|
|
206
|
+
"deployedLinkReferences": {}
|
|
207
|
+
}
|
|
@@ -402,8 +402,8 @@
|
|
|
402
402
|
"type": "function"
|
|
403
403
|
}
|
|
404
404
|
],
|
|
405
|
-
"bytecode": "0x608060405234801561001057600080fd5b50611bcd806100206000396000f3fe608060405234801561001057600080fd5b506004361061008e5760003560e01c80630ac6aa69146100935780630f8cb321146100b95780635dc9bdbe146100cc57806362576930146100df578063955ee4e7146100f2578063a34560c614610105578063bcc454e214610118578063d1b087c91461012b578063e8a89c761461013e578063f2344deb146101f8575b600080fd5b6100a66100a1366004611810565b61020b565b6040519081526020015b60405180910390f35b6100a66100c7366004611810565b6102a6565b6100a66100da366004611873565b6103fb565b6100a66100ed36600461191e565b6104bf565b6100a661010036600461191e565b61054a565b6100a6610113366004611810565b6105be565b6100a661012636600461191e565b6105e8565b6100a6610139366004611810565b610666565b61015161014c36600461191e565b61068f565b604080516001600160a01b03978816815295871660208088019190915294871686820152606080870194909452608080870193909352815160a0808801919091529482015160c0808801919091529082015160e080880191909152938201519096166101008087019190915291810151610120860152928301516101408501529382015161016084015281015161018083015291909101516101a08201526101c0016100b0565b6100a661020636600461191e565b6106ea565b60008061021b846100c78561070b565b9050600061022985856102a6565b9050600061023f670de0b6b3a764000084610724565b90506000610255670de0b6b3a764000084610724565b9050600061026285610753565b9050600061026f85610753565b9050600061027d8386610724565b9050600061028b8386610724565b9050610297828261076b565b9b9a5050505050505050505050565b6000826001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030a919061193b565b1561031e5750670de0b6b3a76400006103f5565b81600061032a85610795565b9050600061034261033a8761080b565b839042610872565b90506000610363836000015183602001518460000151856040015188610973565b905060008413156103cf576000610387836060015183610a3090919063ffffffff16565b9050670de0b6b3a76400008112156103ba5760405163329e322960e21b8152600481018290526024015b60405180910390fd5b6103c381610a5f565b955050505050506103f5565b6103ee6103e9836060015183610a7290919063ffffffff16565b610a5f565b9450505050505b92915050565b6000826001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561043b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045f919061193b565b156104735750670de0b6b3a76400006103f5565b60006104896104818561080b565b849042610872565b905060006104ab84600001518360200151846000015185604001516000610973565b90506104b681610a5f565b95945050505050565b6000806104cb83610a90565b50509050610543816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610510573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610534919061195d565b61053d856106ea565b90610724565b9392505050565b60008061055683610795565b905060006105638461080b565b90506000610572838342610872565b9050600061058c610584878686610b04565b855190610a72565b826020015161059b919061198c565b90506105b4846040015182610a3090919063ffffffff16565b9695505050505050565b6000806105ce846100c78561070b565b905060006105dc85856102a6565b90506104b6828261076b565b6000806105f483610a90565b50509050610543816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065d919061195d565b61053d8561054a565b60008061067e610679856100c78661070b565b610753565b905060006105dc61067986866102a6565b600080600080600061069f611798565b60008060006106ad8a610a90565b9250925092508198508097508296506106c58a610795565b93506106d08a610bc7565b95506106dc8a856103fb565b945050505091939550919395565b6000806106f683610795565b905061054383826107068661080b565b610b04565b600080821361071c576000196103f5565b600192915050565b600080610739670de0b6b3a7640000856119b4565b905082818161074a5761074a6119cb565b04949350505050565b60006103f58261053d670de0b6b3a7640000826119e1565b60006105438361053d61077d85610bf8565b61078687610bf8565b61079091906119f4565b610c0e565b61079d611798565b60405163794052f360e01b81526001600160a01b0383169063794052f3906107c9903090600401611a1b565b61012060405180830381865afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f59190611a3a565b6040516314ae175360e11b8152600090309063295c2ea690610831908590600401611a1b565b602060405180830381865afa15801561084e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f5919061195d565b61089d6040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106108c15760405163b2094b5960e01b815260040160405180910390fd5b6000828560a001516108d391906119e1565b90506108df8582610c25565b825260208501516108f1908590610c86565b60208301528451158061090657506020820151155b15610934578451602083015160405163b1c4aefb60e01b8152600481019290925260248201526044016103b1565b61095285600001518661010001518460200151856000015185610cbd565b604083015260c08501516109669082610d3e565b6060830152509392505050565b6000806109808784610d77565b90506000610998610991888a61198c565b8390610a30565b9050670d529ae9e86000008113156109d457604051637e34684f60e11b815260048101829052670d529ae9e860000060248201526044016103b1565b60006109df82610dbe565b9050856109ec8289610a30565b6109f6919061198c565b9350670de0b6b3a7640000841215610a245760405163329e322960e21b8152600481018590526024016103b1565b50505095945050505050565b600080610a45670de0b6b3a764000085611abc565b9050828181610a5657610a566119cb565b05949350505050565b600080821215610a6e57600080fd5b5090565b600080610a7f8385611abc565b9050670de0b6b3a764000081610a56565b6000806000836001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af79190611aec565b9250925092509193909250565b6000428360a0015111610b8e576000610b1c85610a90565b50509050610b8683826001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b62573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053d919061195d565b915050610543565b6000428460a00151610ba091906119e1565b90506000610bb385610100015183610d3e565b90506105b4670de0b6b3a764000082610a30565b600080610bd383610795565b90506000610be5826101000151610bf8565b9050610bf081610e11565b949350505050565b60006001600160ff1b03821115610a6e57600080fd5b6000808213610a6e57610c2082611b39565b6103f5565b6000610c3082610bf8565b610c47610c426201518061016d6119b4565b610bf8565b8460800151610c569190611abc565b610c609190611b55565b9050600081136103f557604051630e520c3b60e11b8152600481018290526024016103b1565b60008060008312610c98576001610c9c565b6000195b9050610cb3610c4285610cae86610c0e565b611226565b610bf09082611abc565b600080610cca8684610d3e565b9050670de0b6b3a7640000811215610cf85760405163329e322960e21b8152600481018290526024016103b1565b6000610d0e610d07878a61198c565b8990610a30565b90506000610d1b82610dbe565b9050610d278187610a30565b610d3190846119f4565b9998505050505050505050565b600080610d506201518061016d6119b4565b610d5a84866119b4565b610d649190611b83565b9050610bf0610d7282610bf8565b610e11565b600081831215610db45760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016103b1565b61054382846119f4565b6000670de0b6b3a76400008203610de85760405163a9c8b14d60e01b815260040160405180910390fd5b6000610e06610dff84670de0b6b3a76400006119f4565b8490610a30565b905061054381611245565b6000680238fd42c5cf03ffff198212158015610e36575068070c1cc73b00c800008213155b610e755760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016103b1565b6000821215610ead57610e8a82600003610e11565b6a0c097ce7bc90715b34b9f160241b81610ea657610ea66119cb565b0592915050565b60006806f05b59d3b20000008312610eeb57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b610f21565b6803782dace9d90000008312610f1d57506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380610f21565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac620000008412610f715768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412610fad576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b188000008412610fe757682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611021576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261105a57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126110935768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126110cc576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126111055768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6000670de0b6b3a764000061123b84846119b4565b6105439190611b83565b60008082136112865760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016103b1565b670c7d713b49da0000821380156112a45750670f43fc2c04ee000082125b156112c857670de0b6b3a76400006112bb836112d6565b81610ea657610ea66119cb565b6103f5826113f5565b919050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281611317576113176119cb565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a76400008212156114365761142d826a0c097ce7bc90715b34b9f160241b81611427576114276119cb565b056113f5565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126114815772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126114b8576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312611500576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a700831261153b576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261157257693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126115a957690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126115de5768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261160957680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d831261163e576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312611673576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126116a7576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126116db576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281611704576117046119cb565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461180257600080fd5b50565b80356112d1816117ed565b6000806040838503121561182357600080fd5b823561182e816117ed565b946020939093013593505050565b60405161012081016001600160401b038111828210171561186d57634e487b7160e01b600052604160045260246000fd5b60405290565b60008082840361014081121561188857600080fd5b8335611893816117ed565b9250610120601f1982018113156118a957600080fd5b6118b161183c565b91506020850135825260408501356020830152606085013560408301526118da60808601611805565b606083015260a0850135608083015260c085013560a083015260e085013560c08301526101008086013560e084015281860135818401525050809150509250929050565b60006020828403121561193057600080fd5b8135610543816117ed565b60006020828403121561194d57600080fd5b8151801515811461054357600080fd5b60006020828403121561196f57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156119ac576119ac611976565b505092915050565b80820281158282048414176103f5576103f5611976565b634e487b7160e01b600052601260045260246000fd5b818103818111156103f5576103f5611976565b8181036000831280158383131683831282161715611a1457611a14611976565b5092915050565b6001600160a01b0391909116815260200190565b80516112d1816117ed565b60006101208284031215611a4d57600080fd5b611a5561183c565b825181526020830151602082015260408301516040820152611a7960608401611a2f565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b80820260008212600160ff1b84141615611ad857611ad8611976565b81810583148215176103f5576103f5611976565b600080600060608486031215611b0157600080fd5b8351611b0c816117ed565b6020850151909350611b1d816117ed565b6040850151909250611b2e816117ed565b809150509250925092565b6000600160ff1b8201611b4e57611b4e611976565b5060000390565b600082611b6457611b646119cb565b600160ff1b821460001984141615611b7e57611b7e611976565b500590565b600082611b9257611b926119cb565b50049056fea2646970667358221220486d109f7a6d2985f24fd4d36306d36cb4477331cfb1c8220c09a2d3b4e9073764736f6c63430008170033",
|
|
406
|
-
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061008e5760003560e01c80630ac6aa69146100935780630f8cb321146100b95780635dc9bdbe146100cc57806362576930146100df578063955ee4e7146100f2578063a34560c614610105578063bcc454e214610118578063d1b087c91461012b578063e8a89c761461013e578063f2344deb146101f8575b600080fd5b6100a66100a1366004611810565b61020b565b6040519081526020015b60405180910390f35b6100a66100c7366004611810565b6102a6565b6100a66100da366004611873565b6103fb565b6100a66100ed36600461191e565b6104bf565b6100a661010036600461191e565b61054a565b6100a6610113366004611810565b6105be565b6100a661012636600461191e565b6105e8565b6100a6610139366004611810565b610666565b61015161014c36600461191e565b61068f565b604080516001600160a01b03978816815295871660208088019190915294871686820152606080870194909452608080870193909352815160a0808801919091529482015160c0808801919091529082015160e080880191909152938201519096166101008087019190915291810151610120860152928301516101408501529382015161016084015281015161018083015291909101516101a08201526101c0016100b0565b6100a661020636600461191e565b6106ea565b60008061021b846100c78561070b565b9050600061022985856102a6565b9050600061023f670de0b6b3a764000084610724565b90506000610255670de0b6b3a764000084610724565b9050600061026285610753565b9050600061026f85610753565b9050600061027d8386610724565b9050600061028b8386610724565b9050610297828261076b565b9b9a5050505050505050505050565b6000826001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030a919061193b565b1561031e5750670de0b6b3a76400006103f5565b81600061032a85610795565b9050600061034261033a8761080b565b839042610872565b90506000610363836000015183602001518460000151856040015188610973565b905060008413156103cf576000610387836060015183610a3090919063ffffffff16565b9050670de0b6b3a76400008112156103ba5760405163329e322960e21b8152600481018290526024015b60405180910390fd5b6103c381610a5f565b955050505050506103f5565b6103ee6103e9836060015183610a7290919063ffffffff16565b610a5f565b9450505050505b92915050565b6000826001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561043b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045f919061193b565b156104735750670de0b6b3a76400006103f5565b60006104896104818561080b565b849042610872565b905060006104ab84600001518360200151846000015185604001516000610973565b90506104b681610a5f565b95945050505050565b6000806104cb83610a90565b50509050610543816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610510573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610534919061195d565b61053d856106ea565b90610724565b9392505050565b60008061055683610795565b905060006105638461080b565b90506000610572838342610872565b9050600061058c610584878686610b04565b855190610a72565b826020015161059b919061198c565b90506105b4846040015182610a3090919063ffffffff16565b9695505050505050565b6000806105ce846100c78561070b565b905060006105dc85856102a6565b90506104b6828261076b565b6000806105f483610a90565b50509050610543816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610639573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065d919061195d565b61053d8561054a565b60008061067e610679856100c78661070b565b610753565b905060006105dc61067986866102a6565b600080600080600061069f611798565b60008060006106ad8a610a90565b9250925092508198508097508296506106c58a610795565b93506106d08a610bc7565b95506106dc8a856103fb565b945050505091939550919395565b6000806106f683610795565b905061054383826107068661080b565b610b04565b600080821361071c576000196103f5565b600192915050565b600080610739670de0b6b3a7640000856119b4565b905082818161074a5761074a6119cb565b04949350505050565b60006103f58261053d670de0b6b3a7640000826119e1565b60006105438361053d61077d85610bf8565b61078687610bf8565b61079091906119f4565b610c0e565b61079d611798565b60405163794052f360e01b81526001600160a01b0383169063794052f3906107c9903090600401611a1b565b61012060405180830381865afa1580156107e7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f59190611a3a565b6040516314ae175360e11b8152600090309063295c2ea690610831908590600401611a1b565b602060405180830381865afa15801561084e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f5919061195d565b61089d6040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106108c15760405163b2094b5960e01b815260040160405180910390fd5b6000828560a001516108d391906119e1565b90506108df8582610c25565b825260208501516108f1908590610c86565b60208301528451158061090657506020820151155b15610934578451602083015160405163b1c4aefb60e01b8152600481019290925260248201526044016103b1565b61095285600001518661010001518460200151856000015185610cbd565b604083015260c08501516109669082610d3e565b6060830152509392505050565b6000806109808784610d77565b90506000610998610991888a61198c565b8390610a30565b9050670d529ae9e86000008113156109d457604051637e34684f60e11b815260048101829052670d529ae9e860000060248201526044016103b1565b60006109df82610dbe565b9050856109ec8289610a30565b6109f6919061198c565b9350670de0b6b3a7640000841215610a245760405163329e322960e21b8152600481018590526024016103b1565b50505095945050505050565b600080610a45670de0b6b3a764000085611abc565b9050828181610a5657610a566119cb565b05949350505050565b600080821215610a6e57600080fd5b5090565b600080610a7f8385611abc565b9050670de0b6b3a764000081610a56565b6000806000836001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af79190611aec565b9250925092509193909250565b6000428360a0015111610b8e576000610b1c85610a90565b50509050610b8683826001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b62573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053d919061195d565b915050610543565b6000428460a00151610ba091906119e1565b90506000610bb385610100015183610d3e565b90506105b4670de0b6b3a764000082610a30565b600080610bd383610795565b90506000610be5826101000151610bf8565b9050610bf081610e11565b949350505050565b60006001600160ff1b03821115610a6e57600080fd5b6000808213610a6e57610c2082611b39565b6103f5565b6000610c3082610bf8565b610c47610c426201518061016d6119b4565b610bf8565b8460800151610c569190611abc565b610c609190611b55565b9050600081136103f557604051630e520c3b60e11b8152600481018290526024016103b1565b60008060008312610c98576001610c9c565b6000195b9050610cb3610c4285610cae86610c0e565b611226565b610bf09082611abc565b600080610cca8684610d3e565b9050670de0b6b3a7640000811215610cf85760405163329e322960e21b8152600481018290526024016103b1565b6000610d0e610d07878a61198c565b8990610a30565b90506000610d1b82610dbe565b9050610d278187610a30565b610d3190846119f4565b9998505050505050505050565b600080610d506201518061016d6119b4565b610d5a84866119b4565b610d649190611b83565b9050610bf0610d7282610bf8565b610e11565b600081831215610db45760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016103b1565b61054382846119f4565b6000670de0b6b3a76400008203610de85760405163a9c8b14d60e01b815260040160405180910390fd5b6000610e06610dff84670de0b6b3a76400006119f4565b8490610a30565b905061054381611245565b6000680238fd42c5cf03ffff198212158015610e36575068070c1cc73b00c800008213155b610e755760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016103b1565b6000821215610ead57610e8a82600003610e11565b6a0c097ce7bc90715b34b9f160241b81610ea657610ea66119cb565b0592915050565b60006806f05b59d3b20000008312610eeb57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b610f21565b6803782dace9d90000008312610f1d57506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380610f21565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac620000008412610f715768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412610fad576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b188000008412610fe757682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611021576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac6200000841261105a57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126110935768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b188000084126110cc576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126111055768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b6000670de0b6b3a764000061123b84846119b4565b6105439190611b83565b60008082136112865760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016103b1565b670c7d713b49da0000821380156112a45750670f43fc2c04ee000082125b156112c857670de0b6b3a76400006112bb836112d6565b81610ea657610ea66119cb565b6103f5826113f5565b919050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff1985010281611317576113176119cb565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a76400008212156114365761142d826a0c097ce7bc90715b34b9f160241b81611427576114276119cb565b056113f5565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126114815772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126114b8576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312611500576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a700831261153b576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf850831261157257693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126115a957690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126115de5768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261160957680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d831261163e576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f17757889379378312611673576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126116a7576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac83126116db576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281611704576117046119cb565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461180257600080fd5b50565b80356112d1816117ed565b6000806040838503121561182357600080fd5b823561182e816117ed565b946020939093013593505050565b60405161012081016001600160401b038111828210171561186d57634e487b7160e01b600052604160045260246000fd5b60405290565b60008082840361014081121561188857600080fd5b8335611893816117ed565b9250610120601f1982018113156118a957600080fd5b6118b161183c565b91506020850135825260408501356020830152606085013560408301526118da60808601611805565b606083015260a0850135608083015260c085013560a083015260e085013560c08301526101008086013560e084015281860135818401525050809150509250929050565b60006020828403121561193057600080fd5b8135610543816117ed565b60006020828403121561194d57600080fd5b8151801515811461054357600080fd5b60006020828403121561196f57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156119ac576119ac611976565b505092915050565b80820281158282048414176103f5576103f5611976565b634e487b7160e01b600052601260045260246000fd5b818103818111156103f5576103f5611976565b8181036000831280158383131683831282161715611a1457611a14611976565b5092915050565b6001600160a01b0391909116815260200190565b80516112d1816117ed565b60006101208284031215611a4d57600080fd5b611a5561183c565b825181526020830151602082015260408301516040820152611a7960608401611a2f565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b80820260008212600160ff1b84141615611ad857611ad8611976565b81810583148215176103f5576103f5611976565b600080600060608486031215611b0157600080fd5b8351611b0c816117ed565b6020850151909350611b1d816117ed565b6040850151909250611b2e816117ed565b809150509250925092565b6000600160ff1b8201611b4e57611b4e611976565b5060000390565b600082611b6457611b646119cb565b600160ff1b821460001984141615611b7e57611b7e611976565b500590565b600082611b9257611b926119cb565b50049056fea2646970667358221220486d109f7a6d2985f24fd4d36306d36cb4477331cfb1c8220c09a2d3b4e9073764736f6c63430008170033",
|
|
405
|
+
"bytecode": "0x608060405234801561001057600080fd5b50611c00806100206000396000f3fe608060405234801561001057600080fd5b506004361061008e5760003560e01c80630ac6aa69146100935780630f8cb321146100b95780635dc9bdbe146100cc57806362576930146100df578063955ee4e7146100f2578063a34560c614610105578063bcc454e214610118578063d1b087c91461012b578063e8a89c761461013e578063f2344deb146101f8575b600080fd5b6100a66100a1366004611843565b61020b565b6040519081526020015b60405180910390f35b6100a66100c7366004611843565b6102a6565b6100a66100da3660046118a6565b6103fb565b6100a66100ed366004611951565b6104bf565b6100a6610100366004611951565b61054a565b6100a6610113366004611843565b6105e7565b6100a6610126366004611951565b610611565b6100a6610139366004611843565b61068f565b61015161014c366004611951565b6106b8565b604080516001600160a01b03978816815295871660208088019190915294871686820152606080870194909452608080870193909352815160a0808801919091529482015160c0808801919091529082015160e080880191909152938201519096166101008087019190915291810151610120860152928301516101408501529382015161016084015281015161018083015291909101516101a08201526101c0016100b0565b6100a6610206366004611951565b610713565b60008061021b846100c785610734565b9050600061022985856102a6565b9050600061023f670de0b6b3a76400008461074d565b90506000610255670de0b6b3a76400008461074d565b905060006102628561077c565b9050600061026f8561077c565b9050600061027d838661074d565b9050600061028b838661074d565b90506102978282610794565b9b9a5050505050505050505050565b6000826001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030a919061196e565b1561031e5750670de0b6b3a76400006103f5565b81600061032a856107be565b9050600061034261033a87610834565b83904261089b565b9050600061036383600001518360200151846000015185604001518861099c565b905060008413156103cf576000610387836060015183610a5990919063ffffffff16565b9050670de0b6b3a76400008112156103ba5760405163329e322960e21b8152600481018290526024015b60405180910390fd5b6103c381610a88565b955050505050506103f5565b6103ee6103e9836060015183610a9b90919063ffffffff16565b610a88565b9450505050505b92915050565b6000826001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561043b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045f919061196e565b156104735750670de0b6b3a76400006103f5565b600061048961048185610834565b84904261089b565b905060006104ab8460000151836020015184600001518560400151600061099c565b90506104b681610a88565b95945050505050565b6000806104cb83610ab9565b50509050610543816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610510573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105349190611990565b61053d85610713565b9061074d565b9392505050565b600080610556836107be565b9050600061056384610834565b90506000428360a0015111610595576020830151610582908390610b2d565b835161058e91906119bf565b90506105cd565b60006105a284844261089b565b90506105ba6105b2878686610b71565b855190610a9b565b81602001516105c991906119bf565b9150505b6104b66103e9846040015183610a5990919063ffffffff16565b6000806105f7846100c785610734565b9050600061060585856102a6565b90506104b68282610794565b60008061061d83610ab9565b50509050610543816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106869190611990565b61053d8561054a565b6000806106a76106a2856100c786610734565b61077c565b905060006106056106a286866102a6565b60008060008060006106c86117cb565b60008060006106d68a610ab9565b9250925092508198508097508296506106ee8a6107be565b93506106f98a610c3e565b95506107058a856103fb565b945050505091939550919395565b60008061071f836107be565b9050610543838261072f86610834565b610b71565b6000808213610745576000196103f5565b600192915050565b600080610762670de0b6b3a7640000856119e7565b9050828181610773576107736119fe565b04949350505050565b60006103f58261053d670de0b6b3a764000082611a14565b60006105438361053d6107a685610c67565b6107af87610c67565b6107b99190611a27565b610c7d565b6107c66117cb565b60405163794052f360e01b81526001600160a01b0383169063794052f3906107f2903090600401611a4e565b61012060405180830381865afa158015610810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f59190611a6d565b6040516314ae175360e11b8152600090309063295c2ea69061085a908590600401611a4e565b602060405180830381865afa158015610877573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f59190611990565b6108c66040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106108ea5760405163b2094b5960e01b815260040160405180910390fd5b6000828560a001516108fc9190611a14565b90506109088582610c94565b8252602085015161091a908590610b2d565b60208301528451158061092f57506020820151155b1561095d578451602083015160405163b1c4aefb60e01b8152600481019290925260248201526044016103b1565b61097b85600001518661010001518460200151856000015185610cf0565b604083015260c085015161098f9082610d71565b6060830152509392505050565b6000806109a98784610daa565b905060006109c16109ba888a6119bf565b8390610a59565b9050670d529ae9e86000008113156109fd57604051637e34684f60e11b815260048101829052670d529ae9e860000060248201526044016103b1565b6000610a0882610df1565b905085610a158289610a59565b610a1f91906119bf565b9350670de0b6b3a7640000841215610a4d5760405163329e322960e21b8152600481018590526024016103b1565b50505095945050505050565b600080610a6e670de0b6b3a764000085611aef565b9050828181610a7f57610a7f6119fe565b05949350505050565b600080821215610a9757600080fd5b5090565b600080610aa88385611aef565b9050670de0b6b3a764000081610a7f565b6000806000836001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610afc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b209190611b1f565b9250925092509193909250565b60008060008312610b3f576001610b43565b6000195b9050610b5f610b5a85610b5586610c7d565b610e44565b610c67565b610b699082611aef565b949350505050565b6000428360a0015111610bfb576000610b8985610ab9565b50509050610bf383826001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bcf573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053d9190611990565b915050610543565b6000428460a00151610c0d9190611a14565b90506000610c2085610100015183610d71565b9050610c34670de0b6b3a764000082610a59565b9695505050505050565b600080610c4a836107be565b90506000610c5c826101000151610c67565b9050610b6981610e63565b60006001600160ff1b03821115610a9757600080fd5b6000808213610a9757610c8f82611b6c565b6103f5565b6000610c9f82610c67565b610cb1610b5a6201518061016d6119e7565b8460800151610cc09190611aef565b610cca9190611b88565b9050600081136103f557604051630e520c3b60e11b8152600481018290526024016103b1565b600080610cfd8684610d71565b9050670de0b6b3a7640000811215610d2b5760405163329e322960e21b8152600481018290526024016103b1565b6000610d41610d3a878a6119bf565b8990610a59565b90506000610d4e82610df1565b9050610d5a8187610a59565b610d649084611a27565b9998505050505050505050565b600080610d836201518061016d6119e7565b610d8d84866119e7565b610d979190611bb6565b9050610b69610da582610c67565b610e63565b600081831215610de75760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016103b1565b6105438284611a27565b6000670de0b6b3a76400008203610e1b5760405163a9c8b14d60e01b815260040160405180910390fd5b6000610e39610e3284670de0b6b3a7640000611a27565b8490610a59565b905061054381611278565b6000670de0b6b3a7640000610e5984846119e7565b6105439190611bb6565b6000680238fd42c5cf03ffff198212158015610e88575068070c1cc73b00c800008213155b610ec75760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016103b1565b6000821215610eff57610edc82600003610e63565b6a0c097ce7bc90715b34b9f160241b81610ef857610ef86119fe565b0592915050565b60006806f05b59d3b20000008312610f3d57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b610f73565b6803782dace9d90000008312610f6f57506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380610f73565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac620000008412610fc35768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412610fff576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261103957682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611073576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac620000084126110ac57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126110e55768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b1880000841261111e576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126111575768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60008082136112b95760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016103b1565b670c7d713b49da0000821380156112d75750670f43fc2c04ee000082125b156112fb57670de0b6b3a76400006112ee83611309565b81610ef857610ef86119fe565b6103f582611428565b919050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff198501028161134a5761134a6119fe565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a764000082121561146957611460826a0c097ce7bc90715b34b9f160241b8161145a5761145a6119fe565b05611428565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126114b45772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126114eb576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312611533576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a700831261156e576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf85083126115a557693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126115dc57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126116115768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261163c57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312611671576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f177578893793783126116a6576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126116da576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac831261170e576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281611737576117376119fe565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461183557600080fd5b50565b803561130481611820565b6000806040838503121561185657600080fd5b823561186181611820565b946020939093013593505050565b60405161012081016001600160401b03811182821017156118a057634e487b7160e01b600052604160045260246000fd5b60405290565b6000808284036101408112156118bb57600080fd5b83356118c681611820565b9250610120601f1982018113156118dc57600080fd5b6118e461186f565b915060208501358252604085013560208301526060850135604083015261190d60808601611838565b606083015260a0850135608083015260c085013560a083015260e085013560c08301526101008086013560e084015281860135818401525050809150509250929050565b60006020828403121561196357600080fd5b813561054381611820565b60006020828403121561198057600080fd5b8151801515811461054357600080fd5b6000602082840312156119a257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156119df576119df6119a9565b505092915050565b80820281158282048414176103f5576103f56119a9565b634e487b7160e01b600052601260045260246000fd5b818103818111156103f5576103f56119a9565b8181036000831280158383131683831282161715611a4757611a476119a9565b5092915050565b6001600160a01b0391909116815260200190565b805161130481611820565b60006101208284031215611a8057600080fd5b611a8861186f565b825181526020830151602082015260408301516040820152611aac60608401611a62565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b80820260008212600160ff1b84141615611b0b57611b0b6119a9565b81810583148215176103f5576103f56119a9565b600080600060608486031215611b3457600080fd5b8351611b3f81611820565b6020850151909350611b5081611820565b6040850151909250611b6181611820565b809150509250925092565b6000600160ff1b8201611b8157611b816119a9565b5060000390565b600082611b9757611b976119fe565b600160ff1b821460001984141615611bb157611bb16119a9565b500590565b600082611bc557611bc56119fe565b50049056fea264697066735822122000254ccfefbe47eadb51690a04493cd1c46637b9b1a23864a58f23530403749f64736f6c63430008170033",
|
|
406
|
+
"deployedBytecode": "0x608060405234801561001057600080fd5b506004361061008e5760003560e01c80630ac6aa69146100935780630f8cb321146100b95780635dc9bdbe146100cc57806362576930146100df578063955ee4e7146100f2578063a34560c614610105578063bcc454e214610118578063d1b087c91461012b578063e8a89c761461013e578063f2344deb146101f8575b600080fd5b6100a66100a1366004611843565b61020b565b6040519081526020015b60405180910390f35b6100a66100c7366004611843565b6102a6565b6100a66100da3660046118a6565b6103fb565b6100a66100ed366004611951565b6104bf565b6100a6610100366004611951565b61054a565b6100a6610113366004611843565b6105e7565b6100a6610126366004611951565b610611565b6100a6610139366004611843565b61068f565b61015161014c366004611951565b6106b8565b604080516001600160a01b03978816815295871660208088019190915294871686820152606080870194909452608080870193909352815160a0808801919091529482015160c0808801919091529082015160e080880191909152938201519096166101008087019190915291810151610120860152928301516101408501529382015161016084015281015161018083015291909101516101a08201526101c0016100b0565b6100a6610206366004611951565b610713565b60008061021b846100c785610734565b9050600061022985856102a6565b9050600061023f670de0b6b3a76400008461074d565b90506000610255670de0b6b3a76400008461074d565b905060006102628561077c565b9050600061026f8561077c565b9050600061027d838661074d565b9050600061028b838661074d565b90506102978282610794565b9b9a5050505050505050505050565b6000826001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061030a919061196e565b1561031e5750670de0b6b3a76400006103f5565b81600061032a856107be565b9050600061034261033a87610834565b83904261089b565b9050600061036383600001518360200151846000015185604001518861099c565b905060008413156103cf576000610387836060015183610a5990919063ffffffff16565b9050670de0b6b3a76400008112156103ba5760405163329e322960e21b8152600481018290526024015b60405180910390fd5b6103c381610a88565b955050505050506103f5565b6103ee6103e9836060015183610a9b90919063ffffffff16565b610a88565b9450505050505b92915050565b6000826001600160a01b0316632f13b60c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561043b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061045f919061196e565b156104735750670de0b6b3a76400006103f5565b600061048961048185610834565b84904261089b565b905060006104ab8460000151836020015184600001518560400151600061099c565b90506104b681610a88565b95945050505050565b6000806104cb83610ab9565b50509050610543816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610510573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105349190611990565b61053d85610713565b9061074d565b9392505050565b600080610556836107be565b9050600061056384610834565b90506000428360a0015111610595576020830151610582908390610b2d565b835161058e91906119bf565b90506105cd565b60006105a284844261089b565b90506105ba6105b2878686610b71565b855190610a9b565b81602001516105c991906119bf565b9150505b6104b66103e9846040015183610a5990919063ffffffff16565b6000806105f7846100c785610734565b9050600061060585856102a6565b90506104b68282610794565b60008061061d83610ab9565b50509050610543816001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106869190611990565b61053d8561054a565b6000806106a76106a2856100c786610734565b61077c565b905060006106056106a286866102a6565b60008060008060006106c86117cb565b60008060006106d68a610ab9565b9250925092508198508097508296506106ee8a6107be565b93506106f98a610c3e565b95506107058a856103fb565b945050505091939550919395565b60008061071f836107be565b9050610543838261072f86610834565b610b71565b6000808213610745576000196103f5565b600192915050565b600080610762670de0b6b3a7640000856119e7565b9050828181610773576107736119fe565b04949350505050565b60006103f58261053d670de0b6b3a764000082611a14565b60006105438361053d6107a685610c67565b6107af87610c67565b6107b99190611a27565b610c7d565b6107c66117cb565b60405163794052f360e01b81526001600160a01b0383169063794052f3906107f2903090600401611a4e565b61012060405180830381865afa158015610810573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f59190611a6d565b6040516314ae175360e11b8152600090309063295c2ea69061085a908590600401611a4e565b602060405180830381865afa158015610877573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103f59190611990565b6108c66040518060800160405280600081526020016000815260200160008152602001600081525090565b60a084015182106108ea5760405163b2094b5960e01b815260040160405180910390fd5b6000828560a001516108fc9190611a14565b90506109088582610c94565b8252602085015161091a908590610b2d565b60208301528451158061092f57506020820151155b1561095d578451602083015160405163b1c4aefb60e01b8152600481019290925260248201526044016103b1565b61097b85600001518661010001518460200151856000015185610cf0565b604083015260c085015161098f9082610d71565b6060830152509392505050565b6000806109a98784610daa565b905060006109c16109ba888a6119bf565b8390610a59565b9050670d529ae9e86000008113156109fd57604051637e34684f60e11b815260048101829052670d529ae9e860000060248201526044016103b1565b6000610a0882610df1565b905085610a158289610a59565b610a1f91906119bf565b9350670de0b6b3a7640000841215610a4d5760405163329e322960e21b8152600481018590526024016103b1565b50505095945050505050565b600080610a6e670de0b6b3a764000085611aef565b9050828181610a7f57610a7f6119fe565b05949350505050565b600080821215610a9757600080fd5b5090565b600080610aa88385611aef565b9050670de0b6b3a764000081610a7f565b6000806000836001600160a01b0316632c8ce6bc6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610afc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b209190611b1f565b9250925092509193909250565b60008060008312610b3f576001610b43565b6000195b9050610b5f610b5a85610b5586610c7d565b610e44565b610c67565b610b699082611aef565b949350505050565b6000428360a0015111610bfb576000610b8985610ab9565b50509050610bf383826001600160a01b0316633ba0b9a96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610bcf573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061053d9190611990565b915050610543565b6000428460a00151610c0d9190611a14565b90506000610c2085610100015183610d71565b9050610c34670de0b6b3a764000082610a59565b9695505050505050565b600080610c4a836107be565b90506000610c5c826101000151610c67565b9050610b6981610e63565b60006001600160ff1b03821115610a9757600080fd5b6000808213610a9757610c8f82611b6c565b6103f5565b6000610c9f82610c67565b610cb1610b5a6201518061016d6119e7565b8460800151610cc09190611aef565b610cca9190611b88565b9050600081136103f557604051630e520c3b60e11b8152600481018290526024016103b1565b600080610cfd8684610d71565b9050670de0b6b3a7640000811215610d2b5760405163329e322960e21b8152600481018290526024016103b1565b6000610d41610d3a878a6119bf565b8990610a59565b90506000610d4e82610df1565b9050610d5a8187610a59565b610d649084611a27565b9998505050505050505050565b600080610d836201518061016d6119e7565b610d8d84866119e7565b610d979190611bb6565b9050610b69610da582610c67565b610e63565b600081831215610de75760405162461bcd60e51b81526020600482015260086024820152676e6567617469766560c01b60448201526064016103b1565b6105438284611a27565b6000670de0b6b3a76400008203610e1b5760405163a9c8b14d60e01b815260040160405180910390fd5b6000610e39610e3284670de0b6b3a7640000611a27565b8490610a59565b905061054381611278565b6000670de0b6b3a7640000610e5984846119e7565b6105439190611bb6565b6000680238fd42c5cf03ffff198212158015610e88575068070c1cc73b00c800008213155b610ec75760405162461bcd60e51b815260206004820152601060248201526f125b9d985b1a5908195e1c1bdb995b9d60821b60448201526064016103b1565b6000821215610eff57610edc82600003610e63565b6a0c097ce7bc90715b34b9f160241b81610ef857610ef86119fe565b0592915050565b60006806f05b59d3b20000008312610f3d57506806f05b59d3b1ffffff199091019072195e54c5dd42177f53a27172fa9ec63026282760241b610f73565b6803782dace9d90000008312610f6f57506803782dace9d8ffffff19909101906b1425982cf597cd205cef7380610f73565b5060015b6064929092029168056bc75e2d6310000068ad78ebc5ac620000008412610fc35768ad78ebc5ac61ffffff199093019268056bc75e2d631000006e01855144814a7ff805980ff008400082020590505b6856bc75e2d6310000008412610fff576856bc75e2d630ffffff199093019268056bc75e2d631000006b02df0ab5a80a22c61ab5a70082020590505b682b5e3af16b18800000841261103957682b5e3af16b187fffff199093019268056bc75e2d63100000693f1fce3da636ea5cf85082020590505b6815af1d78b58c4000008412611073576815af1d78b58c3fffff199093019268056bc75e2d63100000690127fa27722cc06cc5e282020590505b680ad78ebc5ac620000084126110ac57680ad78ebc5ac61fffff199093019268056bc75e2d6310000068280e60114edb805d0382020590505b68056bc75e2d6310000084126110e55768056bc75e2d630fffff199093019268056bc75e2d63100000680ebc5fb4174612111082020590505b6802b5e3af16b1880000841261111e576802b5e3af16b187ffff199093019268056bc75e2d631000006808f00f760a4b2db55d82020590505b68015af1d78b58c4000084126111575768015af1d78b58c3ffff199093019268056bc75e2d631000006806f5f177578893793782020590505b68056bc75e2d631000008481019085906002908280020505918201919050600368056bc75e2d631000008783020505918201919050600468056bc75e2d631000008783020505918201919050600568056bc75e2d631000008783020505918201919050600668056bc75e2d631000008783020505918201919050600768056bc75e2d631000008783020505918201919050600868056bc75e2d631000008783020505918201919050600968056bc75e2d631000008783020505918201919050600a68056bc75e2d631000008783020505918201919050600b68056bc75e2d631000008783020505918201919050600c68056bc75e2d631000008783020505918201919050606468056bc75e2d63100000848402058502059695505050505050565b60008082136112b95760405162461bcd60e51b815260206004820152600d60248201526c6f7574206f6620626f756e647360981b60448201526064016103b1565b670c7d713b49da0000821380156112d75750670f43fc2c04ee000082125b156112fb57670de0b6b3a76400006112ee83611309565b81610ef857610ef86119fe565b6103f582611428565b919050565b670de0b6b3a7640000026000806a0c097ce7bc90715b34b9f160241b808401906ec097ce7bc90715b34b9f0fffffffff198501028161134a5761134a6119fe565b05905060006a0c097ce7bc90715b34b9f160241b82800205905081806a0c097ce7bc90715b34b9f160241b81840205915060038205016a0c097ce7bc90715b34b9f160241b82840205915060058205016a0c097ce7bc90715b34b9f160241b82840205915060078205016a0c097ce7bc90715b34b9f160241b82840205915060098205016a0c097ce7bc90715b34b9f160241b828402059150600b8205016a0c097ce7bc90715b34b9f160241b828402059150600d8205016a0c097ce7bc90715b34b9f160241b828402059150600f82050160020295945050505050565b6000670de0b6b3a764000082121561146957611460826a0c097ce7bc90715b34b9f160241b8161145a5761145a6119fe565b05611428565b60000392915050565b6000775803bcc5cb9634ba4cfb2213f784019318ed4dcb6017880f60361b83126114b45772195e54c5dd42177f53a27172fa9ec63026282760241b830592506806f05b59d3b2000000015b6f8bcc0026baae9e45e470190267a230cf60191b83126114eb576b1425982cf597cd205cef7380830592506803782dace9d9000000015b606492830292026e01855144814a7ff805980ff00840008312611533576e01855144814a7ff805980ff008400068056bc75e2d63100000840205925068ad78ebc5ac62000000015b6b02df0ab5a80a22c61ab5a700831261156e576b02df0ab5a80a22c61ab5a70068056bc75e2d6310000084020592506856bc75e2d631000000015b693f1fce3da636ea5cf85083126115a557693f1fce3da636ea5cf85068056bc75e2d631000008402059250682b5e3af16b18800000015b690127fa27722cc06cc5e283126115dc57690127fa27722cc06cc5e268056bc75e2d6310000084020592506815af1d78b58c400000015b68280e60114edb805d0383126116115768280e60114edb805d0368056bc75e2d631000008402059250680ad78ebc5ac6200000015b680ebc5fb41746121110831261163c57680ebc5fb4174612111068056bc75e2d631000009384020592015b6808f00f760a4b2db55d8312611671576808f00f760a4b2db55d68056bc75e2d6310000084020592506802b5e3af16b1880000015b6806f5f177578893793783126116a6576806f5f177578893793768056bc75e2d63100000840205925068015af1d78b58c40000015b6806248f33704b28660383126116da576806248f33704b28660368056bc75e2d63100000840205925067ad78ebc5ac620000015b6805c548670b9510e7ac831261170e576805c548670b9510e7ac68056bc75e2d6310000084020592506756bc75e2d6310000015b600068056bc75e2d63100000840168056bc75e2d631000008086030281611737576117376119fe565b059050600068056bc75e2d63100000828002059050818068056bc75e2d63100000818402059150600382050168056bc75e2d63100000828402059150600582050168056bc75e2d63100000828402059150600782050168056bc75e2d63100000828402059150600982050168056bc75e2d63100000828402059150600b820501600202606485820105979650505050505050565b60405180610120016040528060008152602001600081526020016000815260200160006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b038116811461183557600080fd5b50565b803561130481611820565b6000806040838503121561185657600080fd5b823561186181611820565b946020939093013593505050565b60405161012081016001600160401b03811182821017156118a057634e487b7160e01b600052604160045260246000fd5b60405290565b6000808284036101408112156118bb57600080fd5b83356118c681611820565b9250610120601f1982018113156118dc57600080fd5b6118e461186f565b915060208501358252604085013560208301526060850135604083015261190d60808601611838565b606083015260a0850135608083015260c085013560a083015260e085013560c08301526101008086013560e084015281860135818401525050809150509250929050565b60006020828403121561196357600080fd5b813561054381611820565b60006020828403121561198057600080fd5b8151801515811461054357600080fd5b6000602082840312156119a257600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820182811260008312801582168215821617156119df576119df6119a9565b505092915050565b80820281158282048414176103f5576103f56119a9565b634e487b7160e01b600052601260045260246000fd5b818103818111156103f5576103f56119a9565b8181036000831280158383131683831282161715611a4757611a476119a9565b5092915050565b6001600160a01b0391909116815260200190565b805161130481611820565b60006101208284031215611a8057600080fd5b611a8861186f565b825181526020830151602082015260408301516040820152611aac60608401611a62565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b80820260008212600160ff1b84141615611b0b57611b0b6119a9565b81810583148215176103f5576103f56119a9565b600080600060608486031215611b3457600080fd5b8351611b3f81611820565b6020850151909350611b5081611820565b6040850151909250611b6181611820565b809150509250925092565b6000600160ff1b8201611b8157611b816119a9565b5060000390565b600082611b9757611b976119fe565b600160ff1b821460001984141615611bb157611bb16119a9565b500590565b600082611bc557611bc56119fe565b50049056fea264697066735822122000254ccfefbe47eadb51690a04493cd1c46637b9b1a23864a58f23530403749f64736f6c63430008170033",
|
|
407
407
|
"linkReferences": {},
|
|
408
408
|
"deployedLinkReferences": {}
|
|
409
409
|
}
|
|
@@ -10,7 +10,12 @@ contract PendleERC20WithSupplyCapSY is PendleERC20SY {
|
|
|
10
10
|
|
|
11
11
|
error SupplyCapExceeded(uint256 totalSupply, uint256 supplyCap);
|
|
12
12
|
|
|
13
|
-
constructor(
|
|
13
|
+
constructor(
|
|
14
|
+
string memory _name,
|
|
15
|
+
string memory _symbol,
|
|
16
|
+
address _erc20,
|
|
17
|
+
uint256 _initialSupplyCap
|
|
18
|
+
) PendleERC20SY(_name, _symbol, _erc20) {
|
|
14
19
|
_updateSupplyCap(_initialSupplyCap);
|
|
15
20
|
}
|
|
16
21
|
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "./PendleSwellStakingERC20SY.sol";
|
|
5
|
+
import "../../../../interfaces/Swell/IRswETH.sol";
|
|
6
|
+
|
|
7
|
+
contract PendleSwellRswETHStakingSY is PendleSwellStakingERC20SY {
|
|
8
|
+
using PMath for uint256;
|
|
9
|
+
|
|
10
|
+
address public constant REFERRAL = 0x8119EC16F0573B7dAc7C0CB94EB504FB32456ee1;
|
|
11
|
+
address public constant RSWETH = 0xFAe103DC9cf190eD75350761e95403b7b8aFa6c0;
|
|
12
|
+
|
|
13
|
+
constructor() PendleSwellStakingERC20SY("SY Swell L2 Deposit RswETH", "SY-sw2Rsweth", RSWETH) {}
|
|
14
|
+
|
|
15
|
+
/*///////////////////////////////////////////////////////////////
|
|
16
|
+
EXCHANGE-RATE
|
|
17
|
+
//////////////////////////////////////////////////////////////*/
|
|
18
|
+
function exchangeRate() public view virtual override returns (uint256) {
|
|
19
|
+
return IRswETH(RSWETH).getRate();
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/*///////////////////////////////////////////////////////////////
|
|
23
|
+
ADDITIONAL TOKEN IN FUNCTIONS
|
|
24
|
+
//////////////////////////////////////////////////////////////*/
|
|
25
|
+
|
|
26
|
+
function _getAdditionalTokens() internal view virtual override returns (address[] memory) {
|
|
27
|
+
return ArrayLib.create(NATIVE);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
function _previewToStakeToken(
|
|
31
|
+
address,
|
|
32
|
+
uint256 amountNativeToDeposit
|
|
33
|
+
) internal view virtual override returns (uint256) {
|
|
34
|
+
return amountNativeToDeposit.divDown(IRswETH(RSWETH).getRate());
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function _wrapToStakeToken(address, uint256 amountNativeToDeposit) internal virtual override returns (uint256) {
|
|
38
|
+
uint256 preBalance = _selfBalance(RSWETH);
|
|
39
|
+
IRswETH(RSWETH).depositWithReferral{value: amountNativeToDeposit}(REFERRAL);
|
|
40
|
+
return _selfBalance(RSWETH) - preBalance;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function _canWrapToStakeToken(address token) internal view virtual override returns (bool) {
|
|
44
|
+
return token == NATIVE;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function assetInfo()
|
|
48
|
+
external
|
|
49
|
+
view
|
|
50
|
+
virtual
|
|
51
|
+
override
|
|
52
|
+
returns (AssetType assetType, address assetAddress, uint8 assetDecimals)
|
|
53
|
+
{
|
|
54
|
+
return (AssetType.TOKEN, NATIVE, 18);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity ^0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../../SYBase.sol";
|
|
5
|
+
import "../../../../interfaces/Swell/ISwellSimpleStakingERC20.sol";
|
|
6
|
+
|
|
7
|
+
contract PendleSwellStakingERC20SY is SYBase {
|
|
8
|
+
using ArrayLib for address[];
|
|
9
|
+
|
|
10
|
+
address public constant SWELL_STAKING = 0x38D43a6Cb8DA0E855A42fB6b0733A0498531d774;
|
|
11
|
+
|
|
12
|
+
// solhint-disable immutable-vars-naming
|
|
13
|
+
address public immutable stakeToken;
|
|
14
|
+
|
|
15
|
+
constructor(string memory _name, string memory _symbol, address _stakeToken) SYBase(_name, _symbol, _stakeToken) {
|
|
16
|
+
stakeToken = _stakeToken;
|
|
17
|
+
_safeApproveInf(_stakeToken, SWELL_STAKING);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/*///////////////////////////////////////////////////////////////
|
|
21
|
+
DEPOSIT/REDEEM USING BASE TOKENS
|
|
22
|
+
//////////////////////////////////////////////////////////////*/
|
|
23
|
+
|
|
24
|
+
function _deposit(
|
|
25
|
+
address tokenIn,
|
|
26
|
+
uint256 amountDeposited
|
|
27
|
+
) internal virtual override returns (uint256 /*amountSharesOut*/) {
|
|
28
|
+
if (tokenIn != stakeToken) {
|
|
29
|
+
amountDeposited = _wrapToStakeToken(tokenIn, amountDeposited);
|
|
30
|
+
}
|
|
31
|
+
ISwellSimpleStakingERC20(SWELL_STAKING).deposit(stakeToken, amountDeposited, address(this));
|
|
32
|
+
return amountDeposited;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function _redeem(
|
|
36
|
+
address receiver,
|
|
37
|
+
address /*tokenOut*/,
|
|
38
|
+
uint256 amountSharesToRedeem
|
|
39
|
+
) internal virtual override returns (uint256 /*amountTokenOut*/) {
|
|
40
|
+
ISwellSimpleStakingERC20(SWELL_STAKING).withdraw(stakeToken, amountSharesToRedeem, receiver);
|
|
41
|
+
return amountSharesToRedeem;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/*///////////////////////////////////////////////////////////////
|
|
45
|
+
EXCHANGE-RATE
|
|
46
|
+
//////////////////////////////////////////////////////////////*/
|
|
47
|
+
function exchangeRate() public view virtual override returns (uint256) {
|
|
48
|
+
return PMath.ONE;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/*///////////////////////////////////////////////////////////////
|
|
52
|
+
MISC FUNCTIONS FOR METADATA
|
|
53
|
+
//////////////////////////////////////////////////////////////*/
|
|
54
|
+
|
|
55
|
+
function _previewDeposit(address tokenIn, uint256 amountTokenToDeposit) internal view override returns (uint256) {
|
|
56
|
+
if (tokenIn == stakeToken) {
|
|
57
|
+
return amountTokenToDeposit;
|
|
58
|
+
}
|
|
59
|
+
return _previewToStakeToken(tokenIn, amountTokenToDeposit);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
function _previewRedeem(
|
|
63
|
+
address /*tokenOut*/,
|
|
64
|
+
uint256 amountSharesToRedeem
|
|
65
|
+
) internal pure override returns (uint256 /*amountTokenOut*/) {
|
|
66
|
+
return amountSharesToRedeem;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function getTokensIn() public view virtual override returns (address[] memory) {
|
|
70
|
+
return ArrayLib.create(stakeToken).merge(_getAdditionalTokens());
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
function getTokensOut() public view virtual override returns (address[] memory) {
|
|
74
|
+
return ArrayLib.create(stakeToken);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function isValidTokenIn(address token) public view virtual override returns (bool) {
|
|
78
|
+
return token == stakeToken || _canWrapToStakeToken(token);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function isValidTokenOut(address token) public view virtual override returns (bool) {
|
|
82
|
+
return token == stakeToken;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function assetInfo()
|
|
86
|
+
external
|
|
87
|
+
view
|
|
88
|
+
virtual
|
|
89
|
+
returns (AssetType assetType, address assetAddress, uint8 assetDecimals)
|
|
90
|
+
{
|
|
91
|
+
return (AssetType.TOKEN, stakeToken, IERC20Metadata(stakeToken).decimals());
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/*///////////////////////////////////////////////////////////////
|
|
95
|
+
ADDITIONAL TOKEN IN FUNCTIONS
|
|
96
|
+
//////////////////////////////////////////////////////////////*/
|
|
97
|
+
|
|
98
|
+
function _getAdditionalTokens() internal view virtual returns (address[] memory) {}
|
|
99
|
+
|
|
100
|
+
function _previewToStakeToken(address, uint256) internal view virtual returns (uint256) {
|
|
101
|
+
assert(false);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
function _wrapToStakeToken(address, uint256) internal virtual returns (uint256) {
|
|
105
|
+
assert(false);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
function _canWrapToStakeToken(address) internal view virtual returns (bool) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
|
2
|
+
pragma solidity ^0.8.0;
|
|
3
|
+
|
|
4
|
+
interface ISwellSimpleStakingERC20 {
|
|
5
|
+
/// @notice Struct to hold the supported booleans
|
|
6
|
+
/// @param deposit true if deposit is supported
|
|
7
|
+
/// @param withdraw true if withdraw is supported
|
|
8
|
+
struct Supported {
|
|
9
|
+
bool deposit;
|
|
10
|
+
bool withdraw;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/// @notice Error emitted when the amount is null
|
|
14
|
+
error AMOUNT_NULL();
|
|
15
|
+
|
|
16
|
+
/// @notice Error emitted when the address is null
|
|
17
|
+
error ADDRESS_NULL();
|
|
18
|
+
|
|
19
|
+
/// @notice Error emitted when the balance is insufficient
|
|
20
|
+
error INSUFFICIENT_BALANCE();
|
|
21
|
+
|
|
22
|
+
/// @notice Error emitted when the token is not allowed
|
|
23
|
+
error TOKEN_NOT_ALLOWED(address token);
|
|
24
|
+
|
|
25
|
+
/// @notice Event emitted when a token is added or removed
|
|
26
|
+
/// @param token address of the token
|
|
27
|
+
/// @param supported struct with deposit and withdraw booleans
|
|
28
|
+
event SupportedToken(address indexed token, Supported supported);
|
|
29
|
+
|
|
30
|
+
/// @notice Event emitted when a deposit is made
|
|
31
|
+
/// @param token address of the token
|
|
32
|
+
/// @param staker address of the staker
|
|
33
|
+
/// @param amount amount of the deposit
|
|
34
|
+
event Deposit(address indexed token, address indexed staker, uint256 amount);
|
|
35
|
+
|
|
36
|
+
/// @notice Event emitted when a withdrawal is made
|
|
37
|
+
/// @param token address of the token
|
|
38
|
+
/// @param staker address of the staker
|
|
39
|
+
/// @param amount amount of the withdrawal
|
|
40
|
+
event Withdraw(address indexed token, address indexed staker, uint256 amount);
|
|
41
|
+
|
|
42
|
+
/// @notice Method to deposit tokens
|
|
43
|
+
/// @dev token are transferred from the sender, and the receiver is credited
|
|
44
|
+
/// @param _token address of the token
|
|
45
|
+
/// @param _amount amount to deposit
|
|
46
|
+
/// @param _receiver address of the receiver
|
|
47
|
+
function deposit(address _token, uint256 _amount, address _receiver) external;
|
|
48
|
+
|
|
49
|
+
/// @notice Method to rescue tokens, only callable by the owner
|
|
50
|
+
/// @dev difference between balance and internal balance is transferred to the owner
|
|
51
|
+
/// @param _token address of the token
|
|
52
|
+
function rescueERC20(address _token) external;
|
|
53
|
+
|
|
54
|
+
/// @notice Method to add or remove a token
|
|
55
|
+
/// @dev only callable by the owner
|
|
56
|
+
/// @param _token address of the token
|
|
57
|
+
/// @param _supported struct with deposit and withdraw booleans
|
|
58
|
+
function supportToken(address _token, Supported calldata _supported) external;
|
|
59
|
+
|
|
60
|
+
/// @notice Method to rescue tokens, only callable by the owner
|
|
61
|
+
/// @dev token are transferred to the receiver and sender is credited
|
|
62
|
+
/// @param _token address of the token
|
|
63
|
+
/// @param _amount amount to withdraw
|
|
64
|
+
/// @param _receiver address of the receiver
|
|
65
|
+
function withdraw(address _token, uint256 _amount, address _receiver) external;
|
|
66
|
+
}
|
|
@@ -114,12 +114,20 @@ contract ActionMarketAuxStatic is IPActionMarketAuxStatic {
|
|
|
114
114
|
function getLpToAssetRate(address market) public view returns (uint256) {
|
|
115
115
|
MarketState memory state = _readState(market);
|
|
116
116
|
PYIndex pyIndexCurrent = _pyIndex(market);
|
|
117
|
-
MarketPreCompute memory comp = state.getMarketPreCompute(pyIndexCurrent, block.timestamp);
|
|
118
117
|
|
|
119
|
-
int256 totalHypotheticalAsset
|
|
120
|
-
|
|
118
|
+
int256 totalHypotheticalAsset;
|
|
119
|
+
if (state.expiry <= block.timestamp) {
|
|
120
|
+
// 1 PT = 1 Asset post-expiry
|
|
121
|
+
totalHypotheticalAsset = state.totalPt + pyIndexCurrent.syToAsset(state.totalSy);
|
|
122
|
+
} else {
|
|
123
|
+
MarketPreCompute memory comp = state.getMarketPreCompute(pyIndexCurrent, block.timestamp);
|
|
124
|
+
|
|
125
|
+
totalHypotheticalAsset =
|
|
126
|
+
comp.totalAsset +
|
|
127
|
+
state.totalPt.mulDown(int256(_getPtToAssetRate(market, state, pyIndexCurrent)));
|
|
128
|
+
}
|
|
121
129
|
|
|
122
|
-
return
|
|
130
|
+
return totalHypotheticalAsset.divDown(state.totalLp).Uint();
|
|
123
131
|
}
|
|
124
132
|
|
|
125
133
|
function getPtToAssetRate(address market) public view returns (uint256) {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "SY ezETH",
|
|
3
|
+
"SY": "0x22E12A50e3ca49FB183074235cB1db84Fe4C716D",
|
|
4
|
+
"YT": "0x1623F1A991584A6b69baBbdbffD26E2B46485465",
|
|
5
|
+
"PT": "0x248241244356D18f63d0c16082996839ecB0C7bF",
|
|
6
|
+
"market": "0xcDBD5ff3E03b6828Db9C32e2131A60ABA5137901",
|
|
7
|
+
"expiry": 1727308800,
|
|
8
|
+
"scalarRoot": "7728447732000000000",
|
|
9
|
+
"initAnchor": "1116672357000000000",
|
|
10
|
+
"lnFeeRateRoot": "2995508979000000"
|
|
11
|
+
}
|