@pendle/core-v2 4.4.6 → 4.5.0-beta-2
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 +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC20WithSupplyCapSY.sol/PendleERC20WithSupplyCapSY.json +1073 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Tensorplex/PendleStTAOSY.sol/PendleStTAOSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Tensorplex/PendleStTAOSY.sol/PendleStTAOSY.json +2 -2
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.json +149 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.json +134 -72
- package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.dbg.json +1 -1
- package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
- package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
- 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/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -28
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -124
- package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.json +3 -51
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -50
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +4 -0
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +149 -0
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -76
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -92
- package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +4 -0
- package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +35 -0
- package/build/artifacts/contracts/router/RouterStorage.sol/RouterStorage.dbg.json +4 -0
- package/build/artifacts/contracts/router/RouterStorage.sol/RouterStorage.json +10 -0
- package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
- package/contracts/core/StandardizedYield/implementations/PendleERC20WithSupplyCapSY.sol +55 -0
- package/contracts/core/StandardizedYield/implementations/Tensorplex/PendleStTAOSY.sol +1 -1
- package/contracts/interfaces/IPActionStorageStatic.sol +1 -0
- package/contracts/interfaces/IPActionStorageV4.sol +25 -0
- package/contracts/interfaces/IPAllActionV3.sol +2 -2
- package/contracts/interfaces/IPMiniDiamond.sol +1 -0
- package/contracts/limit/LimitRouterBase.sol +48 -25
- package/contracts/router/ActionAddRemoveLiqV3.sol +12 -12
- package/contracts/router/ActionCallbackV3.sol +14 -13
- package/contracts/router/ActionMiscV3.sol +1 -3
- package/contracts/router/ActionStorageV4.sol +64 -0
- package/contracts/router/ActionSwapYTV3.sol +3 -3
- package/contracts/router/PendleRouterV4.sol +23 -0
- package/contracts/router/RouterStorage.sol +19 -0
- package/contracts/router/base/ActionBase.sol +5 -7
- package/contracts/router/base/MarketApproxLib.sol +18 -16
- package/deployments/1-core.json +1 -1
- package/deployments/1-markets/ENA-AUG2024.json +13 -0
- package/deployments/1-markets/EZETH-DEC2024.json +11 -0
- package/deployments/1-markets/SUSDE-JUL2024.json +13 -0
- package/deployments/1-markets/WEETH-DEC2024.json +13 -0
- package/deployments/10-core.json +1 -1
- package/deployments/42161-core.json +1 -1
- package/deployments/5000-core.json +1 -1
- package/deployments/56-core.json +1 -1
- package/deployments/56-markets/EZETH-BSC-SEP2024.json +13 -0
- package/package.json +1 -1
- package/typechain-types/ActionCallbackV3.ts +5 -5
- package/typechain-types/ActionStorageV4.ts +293 -0
- package/typechain-types/IPActionStorageV4.ts +293 -0
- package/typechain-types/IPAllActionV3.ts +208 -109
- package/typechain-types/PendleERC20WithSupplyCapSY.ts +1332 -0
- package/typechain-types/PendleRouterV4.ts +57 -0
- package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -123
- package/typechain-types/factories/ActionCallbackV3__factory.ts +2 -50
- package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -27
- package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMiscV3__factory.ts +1 -49
- package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionStorageV4__factory.ts +202 -0
- package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -75
- package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -91
- package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
- package/typechain-types/factories/IPActionStorageV4__factory.ts +164 -0
- package/typechain-types/factories/IPAllActionV3__factory.ts +134 -72
- package/typechain-types/factories/PendleERC20WithSupplyCapSY__factory.ts +1157 -0
- package/typechain-types/factories/PendleLimitRouter__factory.ts +1 -1
- package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterV4__factory.ts +96 -0
- package/typechain-types/factories/PendleStTAOSY__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +31 -58
- package/typechain-types/index.ts +8 -14
- package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.json +0 -93
- package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.json +0 -87
- package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +0 -1002
- package/build/artifacts/contracts/router/PendleRouterHelper.sol/RouterV2InterfaceForRouterHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/PendleRouterHelper.sol/RouterV2InterfaceForRouterHelper.json +0 -466
- package/build/artifacts/contracts/router/PendleRouterV3.sol/PendleRouterV3.dbg.json +0 -4
- package/build/artifacts/contracts/router/PendleRouterV3.sol/PendleRouterV3.json +0 -179
- package/contracts/interfaces/IDiamondCut.sol +0 -32
- package/contracts/interfaces/IDiamondLoupe.sol +0 -38
- package/contracts/router/PendleRouterHelper.sol +0 -305
- package/contracts/router/PendleRouterV3.sol +0 -235
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"_format": "hh-sol-artifact-1",
|
|
3
|
-
"contractName": "PendleRouterV3",
|
|
4
|
-
"sourceName": "contracts/router/PendleRouterV3.sol",
|
|
5
|
-
"abi": [
|
|
6
|
-
{
|
|
7
|
-
"inputs": [
|
|
8
|
-
{
|
|
9
|
-
"internalType": "address",
|
|
10
|
-
"name": "_ACTION_ADD_REMOVE_LIQ",
|
|
11
|
-
"type": "address"
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"internalType": "address",
|
|
15
|
-
"name": "_ACTION_SWAP_PT",
|
|
16
|
-
"type": "address"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"internalType": "address",
|
|
20
|
-
"name": "_ACTION_SWAP_YT",
|
|
21
|
-
"type": "address"
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"internalType": "address",
|
|
25
|
-
"name": "_ACTION_MISC",
|
|
26
|
-
"type": "address"
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
"internalType": "address",
|
|
30
|
-
"name": "_ACTION_CALLBACK",
|
|
31
|
-
"type": "address"
|
|
32
|
-
}
|
|
33
|
-
],
|
|
34
|
-
"stateMutability": "nonpayable",
|
|
35
|
-
"type": "constructor"
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"inputs": [
|
|
39
|
-
{
|
|
40
|
-
"internalType": "bytes4",
|
|
41
|
-
"name": "selector",
|
|
42
|
-
"type": "bytes4"
|
|
43
|
-
}
|
|
44
|
-
],
|
|
45
|
-
"name": "RouterInvalidAction",
|
|
46
|
-
"type": "error"
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
"anonymous": false,
|
|
50
|
-
"inputs": [
|
|
51
|
-
{
|
|
52
|
-
"components": [
|
|
53
|
-
{
|
|
54
|
-
"internalType": "address",
|
|
55
|
-
"name": "facetAddress",
|
|
56
|
-
"type": "address"
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
"internalType": "enum IDiamondCut.FacetCutAction",
|
|
60
|
-
"name": "action",
|
|
61
|
-
"type": "uint8"
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
"internalType": "bytes4[]",
|
|
65
|
-
"name": "functionSelectors",
|
|
66
|
-
"type": "bytes4[]"
|
|
67
|
-
}
|
|
68
|
-
],
|
|
69
|
-
"indexed": false,
|
|
70
|
-
"internalType": "struct IDiamondCut.FacetCut[]",
|
|
71
|
-
"name": "_diamondCut",
|
|
72
|
-
"type": "tuple[]"
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
"indexed": false,
|
|
76
|
-
"internalType": "address",
|
|
77
|
-
"name": "_init",
|
|
78
|
-
"type": "address"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"indexed": false,
|
|
82
|
-
"internalType": "bytes",
|
|
83
|
-
"name": "_calldata",
|
|
84
|
-
"type": "bytes"
|
|
85
|
-
}
|
|
86
|
-
],
|
|
87
|
-
"name": "DiamondCut",
|
|
88
|
-
"type": "event"
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
"stateMutability": "payable",
|
|
92
|
-
"type": "fallback"
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
"inputs": [
|
|
96
|
-
{
|
|
97
|
-
"internalType": "bytes4",
|
|
98
|
-
"name": "sig",
|
|
99
|
-
"type": "bytes4"
|
|
100
|
-
}
|
|
101
|
-
],
|
|
102
|
-
"name": "facetAddress",
|
|
103
|
-
"outputs": [
|
|
104
|
-
{
|
|
105
|
-
"internalType": "address",
|
|
106
|
-
"name": "",
|
|
107
|
-
"type": "address"
|
|
108
|
-
}
|
|
109
|
-
],
|
|
110
|
-
"stateMutability": "view",
|
|
111
|
-
"type": "function"
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
"inputs": [],
|
|
115
|
-
"name": "facetAddresses",
|
|
116
|
-
"outputs": [
|
|
117
|
-
{
|
|
118
|
-
"internalType": "address[]",
|
|
119
|
-
"name": "",
|
|
120
|
-
"type": "address[]"
|
|
121
|
-
}
|
|
122
|
-
],
|
|
123
|
-
"stateMutability": "view",
|
|
124
|
-
"type": "function"
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
"inputs": [
|
|
128
|
-
{
|
|
129
|
-
"internalType": "address",
|
|
130
|
-
"name": "facet",
|
|
131
|
-
"type": "address"
|
|
132
|
-
}
|
|
133
|
-
],
|
|
134
|
-
"name": "facetFunctionSelectors",
|
|
135
|
-
"outputs": [
|
|
136
|
-
{
|
|
137
|
-
"internalType": "bytes4[]",
|
|
138
|
-
"name": "res",
|
|
139
|
-
"type": "bytes4[]"
|
|
140
|
-
}
|
|
141
|
-
],
|
|
142
|
-
"stateMutability": "view",
|
|
143
|
-
"type": "function"
|
|
144
|
-
},
|
|
145
|
-
{
|
|
146
|
-
"inputs": [],
|
|
147
|
-
"name": "facets",
|
|
148
|
-
"outputs": [
|
|
149
|
-
{
|
|
150
|
-
"components": [
|
|
151
|
-
{
|
|
152
|
-
"internalType": "address",
|
|
153
|
-
"name": "facetAddress",
|
|
154
|
-
"type": "address"
|
|
155
|
-
},
|
|
156
|
-
{
|
|
157
|
-
"internalType": "bytes4[]",
|
|
158
|
-
"name": "functionSelectors",
|
|
159
|
-
"type": "bytes4[]"
|
|
160
|
-
}
|
|
161
|
-
],
|
|
162
|
-
"internalType": "struct IDiamondLoupe.Facet[]",
|
|
163
|
-
"name": "facets_",
|
|
164
|
-
"type": "tuple[]"
|
|
165
|
-
}
|
|
166
|
-
],
|
|
167
|
-
"stateMutability": "view",
|
|
168
|
-
"type": "function"
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
"stateMutability": "payable",
|
|
172
|
-
"type": "receive"
|
|
173
|
-
}
|
|
174
|
-
],
|
|
175
|
-
"bytecode": "0x610120604052346200090b576200250f60a08138039182620000218162000971565b9384928339810103126200090b576200003a8162000997565b90620000496020820162000997565b620000576040830162000997565b906200007460806200006c6060860162000997565b940162000997565b9360805260a05260c05260e052610100526200008f62000910565b6006815260c036602083013730620000a782620009c4565b526080516001600160a01b0316620000bf82620009e8565b5260c0516001600160a01b0316620000d782620009f9565b5260a0516001600160a01b0316620000ef8262000a0a565b52610100516001600160a01b0316620001088262000a1b565b5260e0516001600160a01b0316620001208262000a2c565b528051620001386200013282620009ac565b62000971565b81815291601f196200014a83620009ac565b0160005b818110620008d257505060005b8281106200041657838051620001756200013282620009ac565b918183526200018482620009ac565b601f190160005b818110620003c057505060005b8281106200035c5783604051606081016060825282518091526080820190602060808260051b8501019401916000905b828210620002ab577f8faa70878671ccd212d20771b795c50af8fd3ff6cf27f4bde57e5d4de0aeb67385602088600082840152600083820391826040860152520190a1604051611a51908162000abe823960805181818161063e015281816107e1015281816112320152611300015260a05181818161069a01528181610835015281816112da0152611430015260c05181818161066c0152818161080b0152818161125801526114df015260e0518181816106f6015281816108880152818161132601526113ab0152610100518181816106c80152818161085f01526119500152f35b848603607f19018152835180516001600160a01b0316875260208101519496939492939192606083019160038210156200034657604060809160209384870152015193606060408201528451809452019201906000905b8082106200032257505050602080600192970192019201909291620001c8565b82516001600160e01b03191684526020938401939092019160019091019062000302565b634e487b7160e01b600052602160045260246000fd5b6001906001600160a01b0362000373828562000aa8565b51511662000382828762000aa8565b51526000602062000394838862000aa8565b5101526020620003a5828562000aa8565b5101516040620003b6838862000aa8565b5101520162000198565b6040516060810191906001600160401b0383118184101762000400576020926040526000815260008382015260606040820152828288010152016200018b565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b036200042a828462000aa8565b511662000438828662000aa8565b51526001600160a01b036200044e828462000aa8565b511690606030831462000863575b6080516001600160a01b0316831462000753575b60c0516001600160a01b03168314620006bc575b60a0516001600160a01b031683146200064d575b610100516001600160a01b03168314620005ed575b60e0516001936001600160a01b0390911614620004dd575b6020620004d3838862000aa8565b510152016200015b565b50620004e862000950565b600c815261018036602083013780630d4318d960e11b6200050982620009c4565b52632d8f9d8d60e01b6200051d82620009e8565b526317038ee360e11b6200053182620009f9565b5263339748cb60e01b620005458262000a0a565b526319cd2ab960e11b620005598262000a1b565b526323f8ef1160e11b6200056d8262000a2c565b5263174f841760e21b620005818262000a3d565b5263307e423360e11b620005958262000a4e565b5263544f5d2560e11b620005a98262000a60565b5263bd61951d60e01b620005bd8262000a72565b5263d0f4238560e01b620005d18262000a84565b52631efc6ebd60e31b90620005e69062000a96565b52620004c5565b5060405160608101926001600160401b0384118285101762000400576001936040526002825260403660208401378163eb3a7d4760e01b6200062f82620009c4565b52637d241f3960e11b906200064490620009e8565b529250620004ad565b506200065862000930565b60048152608036602083013780630a94245f60e21b6200067882620009c4565b52633346d3a360e01b6200068c82620009e8565b52631652a23360e21b620006a082620009f9565b5263640fc23d60e11b90620006b59062000a0a565b5262000498565b50620006c762000910565b6006815260c0366020830137806305eb532760e01b620006e782620009c4565b5263448b9b9560e01b620006fb82620009e8565b52637b8b4b9560e01b6200070f82620009f9565b526340626ab360e11b620007238262000a0a565b5263190c351360e31b620007378262000a1b565b526376a4483f60e11b906200074c9062000a2c565b5262000484565b506200075e62000950565b600c81526101803660208301378063092ccd6360e11b6200077f82620009c4565b526313ab670360e11b6200079382620009e8565b52633dbe1c5560e01b620007a782620009f9565b52634e39026760e01b620007bb8262000a0a565b526358bda47560e01b620007cf8262000a1b565b52630306d04360e51b620007e38262000a2c565b526335bbd64f60e11b620007f78262000a3d565b52634221c25560e11b6200080b8262000a4e565b52634bf713cf60e11b6200081f8262000a60565b5263b00f09d760e01b620008338262000a72565b5263b7d75b8b60e01b620008478262000a84565b5263344ed3f760e21b906200085c9062000a96565b5262000470565b506200086e62000930565b600481526080366020830137806314bbdacb60e21b6200088e82620009c4565b52637a0ed62760e01b620008a282620009e8565b526356fe50af60e11b620008b682620009f9565b526366ffd66360e11b90620008cb9062000a0a565b526200045c565b6040805190810191906001600160401b03831181841017620004005760209260405260008152606083820152828288010152016200014e565b600080fd5b6040519060e082016001600160401b038111838210176200040057604052565b6040519060a082016001600160401b038111838210176200040057604052565b604051906101a082016001600160401b038111838210176200040057604052565b6040519190601f01601f191682016001600160401b038111838210176200040057604052565b51906001600160a01b03821682036200090b57565b6001600160401b038111620004005760051b60200190565b805115620009d25760200190565b634e487b7160e01b600052603260045260246000fd5b805160011015620009d25760400190565b805160021015620009d25760600190565b805160031015620009d25760800190565b805160041015620009d25760a00190565b805160051015620009d25760c00190565b805160061015620009d25760e00190565b805160071015620009d2576101000190565b805160081015620009d2576101200190565b805160091015620009d2576101400190565b8051600a1015620009d2576101600190565b8051600b1015620009d2576101800190565b8051821015620009d25760209160051b01019056fe60806040526004361015610015575b366119d157005b6000803560e01c90816352ef6b2c14610058575080637a0ed62714610053578063adfca15e1461004e5763cdffacc60361000e5761039f565b610330565b6101ee565b346100ea57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ea5761008e6105fd565b906040519182916020808401906020855283518092526020604086019401925b8281106100bd57505050500390f35b835173ffffffffffffffffffffffffffffffffffffffff16855286955093810193928101926001016100ae565b80fd5b90815180825260208080930193019160005b82811061010d575050505090565b83517fffffffff0000000000000000000000000000000000000000000000000000000016855293810193928101926001016100ff565b6020808201908083528351809252604092604081018260408560051b8401019601946000925b85841061017a575050505050505090565b9091929394959685806101dd837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0866001960301885286838d5173ffffffffffffffffffffffffffffffffffffffff8151168452015191818582015201906100ed565b990194019401929594939190610169565b3461032b576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ea576102266105fd565b80519061023a610235836104db565b610497565b928284527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610268846104db565b01815b81811061030b5750505b82811061028e576040518061028a8682610143565b0390f35b806102e16102bb6102a1600194866105e9565b5173ffffffffffffffffffffffffffffffffffffffff1690565b6102c583886105e9565b519073ffffffffffffffffffffffffffffffffffffffff169052565b6102f66102f16102a183866105e9565b6107b9565b602061030283886105e9565b51015201610275565b602090610316610452565b8481528260608183015282890101520161026b565b600080fd5b3461032b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032b5760043573ffffffffffffffffffffffffffffffffffffffff8116810361032b5761038b61028a916107b9565b6040519182916020835260208301906100ed565b3461032b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032b576004357fffffffff000000000000000000000000000000000000000000000000000000008116810361032b576104056020916110b4565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051906040820182811067ffffffffffffffff82111761047257604052565b610423565b6040519060e0820182811067ffffffffffffffff82111761047257604052565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff82111761047257604052565b67ffffffffffffffff81116104725760051b60200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051600110156105325760400190565b6104f3565b8051600210156105325760600190565b8051600310156105325760800190565b8051600410156105325760a00190565b8051600510156105325760c00190565b8051156105325760200190565b8051600610156105325760e00190565b805160071015610532576101000190565b805160081015610532576101200190565b805160091015610532576101400190565b8051600a1015610532576101600190565b8051600b1015610532576101800190565b80518210156105325760209160051b010190565b610605610477565b600681526020810160c03682378151156105325730905261062581610522565b73ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016905261066982610537565b817f000000000000000000000000000000000000000000000000000000000000000016905261069782610547565b817f00000000000000000000000000000000000000000000000000000000000000001690526106c582610557565b817f00000000000000000000000000000000000000000000000000000000000000001690526106f382610567565b907f000000000000000000000000000000000000000000000000000000000000000016905290565b6040519060a0820182811067ffffffffffffffff82111761047257604052600482526080366020840137565b604051906101a0820182811067ffffffffffffffff82111761047257604052600c8252610180366020840137565b61077d610477565b600681529060c0366020840137565b604051906060820182811067ffffffffffffffff8211176104725760405260028252604082602036910137565b9060609173ffffffffffffffffffffffffffffffffffffffff80911690308214610fe0575b807f0000000000000000000000000000000000000000000000000000000000000000168214610d84575b807f0000000000000000000000000000000000000000000000000000000000000000168214610c4e575b807f0000000000000000000000000000000000000000000000000000000000000000168214610b7a575b807f0000000000000000000000000000000000000000000000000000000000000000168214610b08575b7f000000000000000000000000000000000000000000000000000000000000000016146108af57565b90506108b9610747565b906108eb6108c683610577565b7f1a8631b2000000000000000000000000000000000000000000000000000000009052565b61091c6108f783610522565b7f2d8f9d8d000000000000000000000000000000000000000000000000000000009052565b61094d61092883610537565b7f2e071dc6000000000000000000000000000000000000000000000000000000009052565b61097e61095983610547565b7f339748cb000000000000000000000000000000000000000000000000000000009052565b6109af61098a83610557565b7f339a5572000000000000000000000000000000000000000000000000000000009052565b6109e06109bb83610567565b7f47f1de22000000000000000000000000000000000000000000000000000000009052565b610a116109ec83610584565b7f5d3e105c000000000000000000000000000000000000000000000000000000009052565b610a42610a1d83610594565b7f60fc8466000000000000000000000000000000000000000000000000000000009052565b610a73610a4e836105a5565b7fa89eba4a000000000000000000000000000000000000000000000000000000009052565b610aa4610a7f836105b6565b7fbd61951d000000000000000000000000000000000000000000000000000000009052565b610ad5610ab0836105c7565b7fd0f42385000000000000000000000000000000000000000000000000000000009052565b610b06610ae1836105d8565b7ff7e375e8000000000000000000000000000000000000000000000000000000009052565b565b9250610b1261078c565b92610b44610b1f85610577565b7feb3a7d47000000000000000000000000000000000000000000000000000000009052565b610b75610b5085610522565b7ffa483e72000000000000000000000000000000000000000000000000000000009052565b610886565b9250610b8461071b565b92610bb6610b9185610577565b7f2a50917c000000000000000000000000000000000000000000000000000000009052565b610be7610bc285610522565b7f3346d3a3000000000000000000000000000000000000000000000000000000009052565b610c18610bf385610537565b7f594a88cc000000000000000000000000000000000000000000000000000000009052565b610c49610c2485610547565b7fc81f847a000000000000000000000000000000000000000000000000000000009052565b61085c565b9250610c58610775565b92610c8a610c6585610577565b7f05eb5327000000000000000000000000000000000000000000000000000000009052565b610cbb610c9685610522565b7f448b9b95000000000000000000000000000000000000000000000000000000009052565b610cec610cc785610537565b7f7b8b4b95000000000000000000000000000000000000000000000000000000009052565b610d1d610cf885610547565b7f80c4d566000000000000000000000000000000000000000000000000000000009052565b610d4e610d2985610557565b7fc861a898000000000000000000000000000000000000000000000000000000009052565b610d7f610d5a85610567565b7fed48907e000000000000000000000000000000000000000000000000000000009052565b610832565b9250610d8e610747565b92610dc0610d9b85610577565b7f12599ac6000000000000000000000000000000000000000000000000000000009052565b610df1610dcc85610522565b7f2756ce06000000000000000000000000000000000000000000000000000000009052565b610e22610dfd85610537565b7f3dbe1c55000000000000000000000000000000000000000000000000000000009052565b610e53610e2e85610547565b7f4e390267000000000000000000000000000000000000000000000000000000009052565b610e84610e5f85610557565b7f58bda475000000000000000000000000000000000000000000000000000000009052565b610eb5610e9085610567565b7f60da0860000000000000000000000000000000000000000000000000000000009052565b610ee6610ec185610584565b7f6b77ac9e000000000000000000000000000000000000000000000000000000009052565b610f17610ef285610594565b7f844384aa000000000000000000000000000000000000000000000000000000009052565b610f48610f23856105a5565b7f97ee279e000000000000000000000000000000000000000000000000000000009052565b610f79610f54856105b6565b7fb00f09d7000000000000000000000000000000000000000000000000000000009052565b610faa610f85856105c7565b7fb7d75b8b000000000000000000000000000000000000000000000000000000009052565b610fdb610fb6856105d8565b7fd13b4fdc000000000000000000000000000000000000000000000000000000009052565b610808565b9250610fea61071b565b9261101c610ff785610577565b7f52ef6b2c000000000000000000000000000000000000000000000000000000009052565b61104d61102885610522565b7f7a0ed627000000000000000000000000000000000000000000000000000000009052565b61107e61105985610537565b7fadfca15e000000000000000000000000000000000000000000000000000000009052565b6110af61108a85610547565b7fcdffacc6000000000000000000000000000000000000000000000000000000009052565b6107de565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f6b77ac9e000000000000000000000000000000000000000000000000000000008082101561162657507f3dbe1c55000000000000000000000000000000000000000000000000000000008082101561145257507f2d8f9d8d000000000000000000000000000000000000000000000000000000008082101561134857507f1a8631b2000000000000000000000000000000000000000000000000000000008082101561127a57507f05eb5327000000000000000000000000000000000000000000000000000000008114611254577f12599ac6000000000000000000000000000000000000000000000000000000001461122f5761122b91505b6040517fd5acfbc20000000000000000000000000000000000000000000000000000000081527fffffffff0000000000000000000000000000000000000000000000000000000090911660048201529081906024820190565b0390fd5b507f000000000000000000000000000000000000000000000000000000000000000090565b50507f000000000000000000000000000000000000000000000000000000000000000090565b8114611322577f2756ce060000000000000000000000000000000000000000000000000000000081146112fc577f2a50917c00000000000000000000000000000000000000000000000000000000146112d75761122b91506111d2565b507f000000000000000000000000000000000000000000000000000000000000000090565b50507f000000000000000000000000000000000000000000000000000000000000000090565b50507f000000000000000000000000000000000000000000000000000000000000000090565b7f3346d3a300000000000000000000000000000000000000000000000000000000808310156113cd57508114611322577f2e071dc600000000000000000000000000000000000000000000000000000000146113a85761122b91506111d2565b507f000000000000000000000000000000000000000000000000000000000000000090565b9050811461142c577f339748cb000000000000000000000000000000000000000000000000000000008114611322577f339a557200000000000000000000000000000000000000000000000000000000146113a85761122b91506111d2565b50507f000000000000000000000000000000000000000000000000000000000000000090565b7f58bda475000000000000000000000000000000000000000000000000000000008083101561156557507f47f1de220000000000000000000000000000000000000000000000000000000080831015611501575081146112fc577f448b9b9500000000000000000000000000000000000000000000000000000000146114dc5761122b91506111d2565b507f000000000000000000000000000000000000000000000000000000000000000090565b90508114611322577f4e3902670000000000000000000000000000000000000000000000000000000081146112fc577f52ef6b2c00000000000000000000000000000000000000000000000000000000146115605761122b91506111d2565b503090565b90507f5d3e105c00000000000000000000000000000000000000000000000000000000808310156115c7575081146112fc577f594a88cc00000000000000000000000000000000000000000000000000000000146112d75761122b91506111d2565b90508114611322577f60da08600000000000000000000000000000000000000000000000000000000081146112fc577f60fc846600000000000000000000000000000000000000000000000000000000146113a85761122b91506111d2565b7fbd61951d000000000000000000000000000000000000000000000000000000008083101561180057507f97ee279e000000000000000000000000000000000000000000000000000000008083101561173957507f7b8b4b9500000000000000000000000000000000000000000000000000000000808310156116da575081146112fc577f7a0ed62700000000000000000000000000000000000000000000000000000000146115605761122b91506111d2565b90508114611254577f80c4d566000000000000000000000000000000000000000000000000000000008114611254577f844384aa000000000000000000000000000000000000000000000000000000001461122f5761122b91506111d2565b90507fadfca15e000000000000000000000000000000000000000000000000000000008083101561179b575081146112fc577fa89eba4a00000000000000000000000000000000000000000000000000000000146113a85761122b91506111d2565b905081146117fa577fb00f09d70000000000000000000000000000000000000000000000000000000081146112fc577fb7d75b8b000000000000000000000000000000000000000000000000000000001461122f5761122b91506111d2565b50503090565b90507fd13b4fdc00000000000000000000000000000000000000000000000000000000808310156118eb57507fc861a898000000000000000000000000000000000000000000000000000000008083101561188c57508114611322577fc81f847a00000000000000000000000000000000000000000000000000000000146112d75761122b91506111d2565b90508114611254577fcdffacc60000000000000000000000000000000000000000000000000000000081146117fa577fd0f4238500000000000000000000000000000000000000000000000000000000146113a85761122b91506111d2565b90507fed48907e0000000000000000000000000000000000000000000000000000000080831015611972575081146112fc577feb3a7d47000000000000000000000000000000000000000000000000000000001461194d5761122b91506111d2565b507f000000000000000000000000000000000000000000000000000000000000000090565b90508114611254577ff7e375e8000000000000000000000000000000000000000000000000000000008114611322577ffa483e72000000000000000000000000000000000000000000000000000000001461194d5761122b91506111d2565b60008080611a017fffffffff000000000000000000000000000000000000000000000000000000008235166110b4565b368280378136915af43d82803e15611a17573d90f35b3d90fdfea264697066735822122024a63634ee2a5aeb74d00c540fcb3079e310437322ac9e2f56d3cc8359cd8a3a64736f6c63430008170033",
|
|
176
|
-
"deployedBytecode": "0x60806040526004361015610015575b366119d157005b6000803560e01c90816352ef6b2c14610058575080637a0ed62714610053578063adfca15e1461004e5763cdffacc60361000e5761039f565b610330565b6101ee565b346100ea57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ea5761008e6105fd565b906040519182916020808401906020855283518092526020604086019401925b8281106100bd57505050500390f35b835173ffffffffffffffffffffffffffffffffffffffff16855286955093810193928101926001016100ae565b80fd5b90815180825260208080930193019160005b82811061010d575050505090565b83517fffffffff0000000000000000000000000000000000000000000000000000000016855293810193928101926001016100ff565b6020808201908083528351809252604092604081018260408560051b8401019601946000925b85841061017a575050505050505090565b9091929394959685806101dd837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0866001960301885286838d5173ffffffffffffffffffffffffffffffffffffffff8151168452015191818582015201906100ed565b990194019401929594939190610169565b3461032b576000807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100ea576102266105fd565b80519061023a610235836104db565b610497565b928284527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0610268846104db565b01815b81811061030b5750505b82811061028e576040518061028a8682610143565b0390f35b806102e16102bb6102a1600194866105e9565b5173ffffffffffffffffffffffffffffffffffffffff1690565b6102c583886105e9565b519073ffffffffffffffffffffffffffffffffffffffff169052565b6102f66102f16102a183866105e9565b6107b9565b602061030283886105e9565b51015201610275565b602090610316610452565b8481528260608183015282890101520161026b565b600080fd5b3461032b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032b5760043573ffffffffffffffffffffffffffffffffffffffff8116810361032b5761038b61028a916107b9565b6040519182916020835260208301906100ed565b3461032b5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261032b576004357fffffffff000000000000000000000000000000000000000000000000000000008116810361032b576104056020916110b4565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051906040820182811067ffffffffffffffff82111761047257604052565b610423565b6040519060e0820182811067ffffffffffffffff82111761047257604052565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f604051930116820182811067ffffffffffffffff82111761047257604052565b67ffffffffffffffff81116104725760051b60200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051600110156105325760400190565b6104f3565b8051600210156105325760600190565b8051600310156105325760800190565b8051600410156105325760a00190565b8051600510156105325760c00190565b8051156105325760200190565b8051600610156105325760e00190565b805160071015610532576101000190565b805160081015610532576101200190565b805160091015610532576101400190565b8051600a1015610532576101600190565b8051600b1015610532576101800190565b80518210156105325760209160051b010190565b610605610477565b600681526020810160c03682378151156105325730905261062581610522565b73ffffffffffffffffffffffffffffffffffffffff90817f000000000000000000000000000000000000000000000000000000000000000016905261066982610537565b817f000000000000000000000000000000000000000000000000000000000000000016905261069782610547565b817f00000000000000000000000000000000000000000000000000000000000000001690526106c582610557565b817f00000000000000000000000000000000000000000000000000000000000000001690526106f382610567565b907f000000000000000000000000000000000000000000000000000000000000000016905290565b6040519060a0820182811067ffffffffffffffff82111761047257604052600482526080366020840137565b604051906101a0820182811067ffffffffffffffff82111761047257604052600c8252610180366020840137565b61077d610477565b600681529060c0366020840137565b604051906060820182811067ffffffffffffffff8211176104725760405260028252604082602036910137565b9060609173ffffffffffffffffffffffffffffffffffffffff80911690308214610fe0575b807f0000000000000000000000000000000000000000000000000000000000000000168214610d84575b807f0000000000000000000000000000000000000000000000000000000000000000168214610c4e575b807f0000000000000000000000000000000000000000000000000000000000000000168214610b7a575b807f0000000000000000000000000000000000000000000000000000000000000000168214610b08575b7f000000000000000000000000000000000000000000000000000000000000000016146108af57565b90506108b9610747565b906108eb6108c683610577565b7f1a8631b2000000000000000000000000000000000000000000000000000000009052565b61091c6108f783610522565b7f2d8f9d8d000000000000000000000000000000000000000000000000000000009052565b61094d61092883610537565b7f2e071dc6000000000000000000000000000000000000000000000000000000009052565b61097e61095983610547565b7f339748cb000000000000000000000000000000000000000000000000000000009052565b6109af61098a83610557565b7f339a5572000000000000000000000000000000000000000000000000000000009052565b6109e06109bb83610567565b7f47f1de22000000000000000000000000000000000000000000000000000000009052565b610a116109ec83610584565b7f5d3e105c000000000000000000000000000000000000000000000000000000009052565b610a42610a1d83610594565b7f60fc8466000000000000000000000000000000000000000000000000000000009052565b610a73610a4e836105a5565b7fa89eba4a000000000000000000000000000000000000000000000000000000009052565b610aa4610a7f836105b6565b7fbd61951d000000000000000000000000000000000000000000000000000000009052565b610ad5610ab0836105c7565b7fd0f42385000000000000000000000000000000000000000000000000000000009052565b610b06610ae1836105d8565b7ff7e375e8000000000000000000000000000000000000000000000000000000009052565b565b9250610b1261078c565b92610b44610b1f85610577565b7feb3a7d47000000000000000000000000000000000000000000000000000000009052565b610b75610b5085610522565b7ffa483e72000000000000000000000000000000000000000000000000000000009052565b610886565b9250610b8461071b565b92610bb6610b9185610577565b7f2a50917c000000000000000000000000000000000000000000000000000000009052565b610be7610bc285610522565b7f3346d3a3000000000000000000000000000000000000000000000000000000009052565b610c18610bf385610537565b7f594a88cc000000000000000000000000000000000000000000000000000000009052565b610c49610c2485610547565b7fc81f847a000000000000000000000000000000000000000000000000000000009052565b61085c565b9250610c58610775565b92610c8a610c6585610577565b7f05eb5327000000000000000000000000000000000000000000000000000000009052565b610cbb610c9685610522565b7f448b9b95000000000000000000000000000000000000000000000000000000009052565b610cec610cc785610537565b7f7b8b4b95000000000000000000000000000000000000000000000000000000009052565b610d1d610cf885610547565b7f80c4d566000000000000000000000000000000000000000000000000000000009052565b610d4e610d2985610557565b7fc861a898000000000000000000000000000000000000000000000000000000009052565b610d7f610d5a85610567565b7fed48907e000000000000000000000000000000000000000000000000000000009052565b610832565b9250610d8e610747565b92610dc0610d9b85610577565b7f12599ac6000000000000000000000000000000000000000000000000000000009052565b610df1610dcc85610522565b7f2756ce06000000000000000000000000000000000000000000000000000000009052565b610e22610dfd85610537565b7f3dbe1c55000000000000000000000000000000000000000000000000000000009052565b610e53610e2e85610547565b7f4e390267000000000000000000000000000000000000000000000000000000009052565b610e84610e5f85610557565b7f58bda475000000000000000000000000000000000000000000000000000000009052565b610eb5610e9085610567565b7f60da0860000000000000000000000000000000000000000000000000000000009052565b610ee6610ec185610584565b7f6b77ac9e000000000000000000000000000000000000000000000000000000009052565b610f17610ef285610594565b7f844384aa000000000000000000000000000000000000000000000000000000009052565b610f48610f23856105a5565b7f97ee279e000000000000000000000000000000000000000000000000000000009052565b610f79610f54856105b6565b7fb00f09d7000000000000000000000000000000000000000000000000000000009052565b610faa610f85856105c7565b7fb7d75b8b000000000000000000000000000000000000000000000000000000009052565b610fdb610fb6856105d8565b7fd13b4fdc000000000000000000000000000000000000000000000000000000009052565b610808565b9250610fea61071b565b9261101c610ff785610577565b7f52ef6b2c000000000000000000000000000000000000000000000000000000009052565b61104d61102885610522565b7f7a0ed627000000000000000000000000000000000000000000000000000000009052565b61107e61105985610537565b7fadfca15e000000000000000000000000000000000000000000000000000000009052565b6110af61108a85610547565b7fcdffacc6000000000000000000000000000000000000000000000000000000009052565b6107de565b7fffffffff0000000000000000000000000000000000000000000000000000000081167f6b77ac9e000000000000000000000000000000000000000000000000000000008082101561162657507f3dbe1c55000000000000000000000000000000000000000000000000000000008082101561145257507f2d8f9d8d000000000000000000000000000000000000000000000000000000008082101561134857507f1a8631b2000000000000000000000000000000000000000000000000000000008082101561127a57507f05eb5327000000000000000000000000000000000000000000000000000000008114611254577f12599ac6000000000000000000000000000000000000000000000000000000001461122f5761122b91505b6040517fd5acfbc20000000000000000000000000000000000000000000000000000000081527fffffffff0000000000000000000000000000000000000000000000000000000090911660048201529081906024820190565b0390fd5b507f000000000000000000000000000000000000000000000000000000000000000090565b50507f000000000000000000000000000000000000000000000000000000000000000090565b8114611322577f2756ce060000000000000000000000000000000000000000000000000000000081146112fc577f2a50917c00000000000000000000000000000000000000000000000000000000146112d75761122b91506111d2565b507f000000000000000000000000000000000000000000000000000000000000000090565b50507f000000000000000000000000000000000000000000000000000000000000000090565b50507f000000000000000000000000000000000000000000000000000000000000000090565b7f3346d3a300000000000000000000000000000000000000000000000000000000808310156113cd57508114611322577f2e071dc600000000000000000000000000000000000000000000000000000000146113a85761122b91506111d2565b507f000000000000000000000000000000000000000000000000000000000000000090565b9050811461142c577f339748cb000000000000000000000000000000000000000000000000000000008114611322577f339a557200000000000000000000000000000000000000000000000000000000146113a85761122b91506111d2565b50507f000000000000000000000000000000000000000000000000000000000000000090565b7f58bda475000000000000000000000000000000000000000000000000000000008083101561156557507f47f1de220000000000000000000000000000000000000000000000000000000080831015611501575081146112fc577f448b9b9500000000000000000000000000000000000000000000000000000000146114dc5761122b91506111d2565b507f000000000000000000000000000000000000000000000000000000000000000090565b90508114611322577f4e3902670000000000000000000000000000000000000000000000000000000081146112fc577f52ef6b2c00000000000000000000000000000000000000000000000000000000146115605761122b91506111d2565b503090565b90507f5d3e105c00000000000000000000000000000000000000000000000000000000808310156115c7575081146112fc577f594a88cc00000000000000000000000000000000000000000000000000000000146112d75761122b91506111d2565b90508114611322577f60da08600000000000000000000000000000000000000000000000000000000081146112fc577f60fc846600000000000000000000000000000000000000000000000000000000146113a85761122b91506111d2565b7fbd61951d000000000000000000000000000000000000000000000000000000008083101561180057507f97ee279e000000000000000000000000000000000000000000000000000000008083101561173957507f7b8b4b9500000000000000000000000000000000000000000000000000000000808310156116da575081146112fc577f7a0ed62700000000000000000000000000000000000000000000000000000000146115605761122b91506111d2565b90508114611254577f80c4d566000000000000000000000000000000000000000000000000000000008114611254577f844384aa000000000000000000000000000000000000000000000000000000001461122f5761122b91506111d2565b90507fadfca15e000000000000000000000000000000000000000000000000000000008083101561179b575081146112fc577fa89eba4a00000000000000000000000000000000000000000000000000000000146113a85761122b91506111d2565b905081146117fa577fb00f09d70000000000000000000000000000000000000000000000000000000081146112fc577fb7d75b8b000000000000000000000000000000000000000000000000000000001461122f5761122b91506111d2565b50503090565b90507fd13b4fdc00000000000000000000000000000000000000000000000000000000808310156118eb57507fc861a898000000000000000000000000000000000000000000000000000000008083101561188c57508114611322577fc81f847a00000000000000000000000000000000000000000000000000000000146112d75761122b91506111d2565b90508114611254577fcdffacc60000000000000000000000000000000000000000000000000000000081146117fa577fd0f4238500000000000000000000000000000000000000000000000000000000146113a85761122b91506111d2565b90507fed48907e0000000000000000000000000000000000000000000000000000000080831015611972575081146112fc577feb3a7d47000000000000000000000000000000000000000000000000000000001461194d5761122b91506111d2565b507f000000000000000000000000000000000000000000000000000000000000000090565b90508114611254577ff7e375e8000000000000000000000000000000000000000000000000000000008114611322577ffa483e72000000000000000000000000000000000000000000000000000000001461194d5761122b91506111d2565b60008080611a017fffffffff000000000000000000000000000000000000000000000000000000008235166110b4565b368280378136915af43d82803e15611a17573d90f35b3d90fdfea264697066735822122024a63634ee2a5aeb74d00c540fcb3079e310437322ac9e2f56d3cc8359cd8a3a64736f6c63430008170033",
|
|
177
|
-
"linkReferences": {},
|
|
178
|
-
"deployedLinkReferences": {}
|
|
179
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: MIT
|
|
2
|
-
pragma solidity ^0.8.0;
|
|
3
|
-
|
|
4
|
-
/******************************************************************************\
|
|
5
|
-
* Author: Nick Mudge <nick@perfectabstractions.com> (https://twitter.com/mudgen)
|
|
6
|
-
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
|
|
7
|
-
/******************************************************************************/
|
|
8
|
-
|
|
9
|
-
interface IDiamondCut {
|
|
10
|
-
enum FacetCutAction {
|
|
11
|
-
Add,
|
|
12
|
-
Replace,
|
|
13
|
-
Remove
|
|
14
|
-
}
|
|
15
|
-
// Add=0, Replace=1, Remove=2
|
|
16
|
-
|
|
17
|
-
struct FacetCut {
|
|
18
|
-
address facetAddress;
|
|
19
|
-
FacetCutAction action;
|
|
20
|
-
bytes4[] functionSelectors;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/// @notice Add/replace/remove any number of functions and optionally execute
|
|
24
|
-
/// a function with delegatecall
|
|
25
|
-
/// @param _diamondCut Contains the facet addresses and function selectors
|
|
26
|
-
/// @param _init The address of the contract or facet to execute _calldata
|
|
27
|
-
/// @param _calldata A function call, including function selector and arguments
|
|
28
|
-
/// _calldata is executed with delegatecall on _init
|
|
29
|
-
function diamondCut(FacetCut[] calldata _diamondCut, address _init, bytes calldata _calldata) external;
|
|
30
|
-
|
|
31
|
-
event DiamondCut(FacetCut[] _diamondCut, address _init, bytes _calldata);
|
|
32
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: MIT
|
|
2
|
-
pragma solidity ^0.8.0;
|
|
3
|
-
|
|
4
|
-
/******************************************************************************\
|
|
5
|
-
* Author: Nick Mudge <nick@perfectabstractions.com> (https://twitter.com/mudgen)
|
|
6
|
-
* EIP-2535 Diamonds: https://eips.ethereum.org/EIPS/eip-2535
|
|
7
|
-
/******************************************************************************/
|
|
8
|
-
|
|
9
|
-
// A loupe is a small magnifying glass used to look at diamonds.
|
|
10
|
-
// These functions look at diamonds
|
|
11
|
-
interface IDiamondLoupe {
|
|
12
|
-
/// These functions are expected to be called frequently
|
|
13
|
-
/// by tools.
|
|
14
|
-
|
|
15
|
-
struct Facet {
|
|
16
|
-
address facetAddress;
|
|
17
|
-
bytes4[] functionSelectors;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/// @notice Gets all facet addresses and their four byte function selectors.
|
|
21
|
-
/// @return facets_ Facet
|
|
22
|
-
function facets() external view returns (Facet[] memory facets_);
|
|
23
|
-
|
|
24
|
-
/// @notice Gets all the function selectors supported by a specific facet.
|
|
25
|
-
/// @param _facet The facet address.
|
|
26
|
-
/// @return facetFunctionSelectors_
|
|
27
|
-
function facetFunctionSelectors(address _facet) external view returns (bytes4[] memory facetFunctionSelectors_);
|
|
28
|
-
|
|
29
|
-
/// @notice Get all the facet addresses used by a diamond.
|
|
30
|
-
/// @return facetAddresses_
|
|
31
|
-
function facetAddresses() external view returns (address[] memory facetAddresses_);
|
|
32
|
-
|
|
33
|
-
/// @notice Gets the facet that supports the given selector.
|
|
34
|
-
/// @dev If facet is not found return address(0).
|
|
35
|
-
/// @param _functionSelector The function selector.
|
|
36
|
-
/// @return facetAddress_ The facet address.
|
|
37
|
-
function facetAddress(bytes4 _functionSelector) external view returns (address facetAddress_);
|
|
38
|
-
}
|
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity ^0.8.17;
|
|
3
|
-
|
|
4
|
-
import "../interfaces/IPMarket.sol";
|
|
5
|
-
import "../interfaces/IPRouterHelper.sol";
|
|
6
|
-
import "./base/MarketApproxLib.sol";
|
|
7
|
-
import "../interfaces/IAddressProvider.sol";
|
|
8
|
-
import "../core/libraries/TokenHelper.sol";
|
|
9
|
-
|
|
10
|
-
contract PendleRouterHelper is TokenHelper, IPRouterHelper {
|
|
11
|
-
RouterV2InterfaceForRouterHelper public immutable ROUTER;
|
|
12
|
-
address public immutable WETH;
|
|
13
|
-
|
|
14
|
-
constructor(address _ROUTER, IAddressProvider provider) {
|
|
15
|
-
ROUTER = RouterV2InterfaceForRouterHelper(_ROUTER);
|
|
16
|
-
WETH = _getWETHAddress(provider, 1);
|
|
17
|
-
_safeApproveInf(WETH, address(ROUTER));
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function _getWETHAddress(IAddressProvider provider, uint256 providerId) internal view returns (address) {
|
|
21
|
-
return provider.get(providerId);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
receive() external payable {}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* @dev all the parameters for this function should be generated in the same way as they are
|
|
28
|
-
* generated for the main Router, except that input.tokenIn & swapData should be generated
|
|
29
|
-
* for tokenIn == WETH instead of ETH
|
|
30
|
-
*/
|
|
31
|
-
function addLiquiditySingleTokenKeepYtWithEth(
|
|
32
|
-
address receiver,
|
|
33
|
-
address market,
|
|
34
|
-
uint256 minLpOut,
|
|
35
|
-
uint256 minYtOut,
|
|
36
|
-
TokenInput calldata input
|
|
37
|
-
) external payable returns (uint256 netLpOut, uint256 netYtOut) {
|
|
38
|
-
require(input.tokenIn == WETH);
|
|
39
|
-
|
|
40
|
-
_transferIn(NATIVE, msg.sender, input.netTokenIn);
|
|
41
|
-
|
|
42
|
-
_wrap_unwrap_ETH(NATIVE, WETH, input.netTokenIn);
|
|
43
|
-
(netLpOut, netYtOut) = ROUTER.addLiquiditySingleTokenKeepYt(receiver, market, minLpOut, minYtOut, input);
|
|
44
|
-
|
|
45
|
-
emit AddLiquiditySingleTokenKeepYt(
|
|
46
|
-
msg.sender,
|
|
47
|
-
market,
|
|
48
|
-
NATIVE,
|
|
49
|
-
msg.sender,
|
|
50
|
-
input.netTokenIn,
|
|
51
|
-
netLpOut,
|
|
52
|
-
netYtOut
|
|
53
|
-
);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
function transferLiquidityDifferentSyNormal(
|
|
57
|
-
RemoveLiquiditySingleTokenStruct calldata fromMarket,
|
|
58
|
-
AddLiquiditySingleTokenStruct calldata toMarket
|
|
59
|
-
) external returns (uint256 netLpOut, uint256 netTokenZapIn, uint256 netSyFeeOfRemove, uint256 netSyFeeOfAdd) {
|
|
60
|
-
(netTokenZapIn, netSyFeeOfRemove) = removeLiquiditySingleToken(fromMarket);
|
|
61
|
-
(netLpOut, netSyFeeOfAdd) = _addLiquiditySingleToken(toMarket, fromMarket.output.tokenOut, netTokenZapIn);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
function transferLiquidityDifferentSyKeepYt(
|
|
65
|
-
RemoveLiquiditySingleTokenStruct calldata fromMarket,
|
|
66
|
-
AddLiquiditySingleTokenKeepYtStruct calldata toMarket
|
|
67
|
-
) external returns (uint256 netLpOut, uint256 netYtOut, uint256 netTokenZapIn, uint256 netSyFeeOfRemove) {
|
|
68
|
-
(netTokenZapIn, netSyFeeOfRemove) = removeLiquiditySingleToken(fromMarket);
|
|
69
|
-
(netLpOut, netYtOut) = _addLiquiditySingleTokenKeepYt(toMarket, fromMarket.output.tokenOut, netTokenZapIn);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
function transferLiquiditySameSyNormal(
|
|
73
|
-
RemoveLiquiditySingleSyStruct calldata fromMarket,
|
|
74
|
-
AddLiquiditySingleSyStruct calldata toMarket
|
|
75
|
-
) external returns (uint256 netLpOut, uint256 netSyZapIn, uint256 netSyFeeOfRemove, uint256 netSyFeeOfAdd) {
|
|
76
|
-
(netSyZapIn, netSyFeeOfRemove) = removeLiquiditySingleSy(fromMarket);
|
|
77
|
-
(netLpOut, netSyFeeOfAdd) = _addLiquiditySingleSy(toMarket, netSyZapIn);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
function transferLiquiditySameSyKeepYt(
|
|
81
|
-
RemoveLiquiditySingleSyStruct calldata fromMarket,
|
|
82
|
-
AddLiquiditySingleSyKeepYtStruct calldata toMarket
|
|
83
|
-
) external returns (uint256 netLpOut, uint256 netYtOut, uint256 netSyZapIn, uint256 netSyFeeOfRemove) {
|
|
84
|
-
(netSyZapIn, netSyFeeOfRemove) = removeLiquiditySingleSy(fromMarket);
|
|
85
|
-
(netLpOut, netYtOut) = _addLiquiditySingleSyKeepYt(toMarket, netSyZapIn);
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
function removeLiquiditySingleToken(
|
|
89
|
-
RemoveLiquiditySingleTokenStruct calldata fromMarket
|
|
90
|
-
) public returns (uint256 netTokenOut, uint256 netSyFee) {
|
|
91
|
-
_transferFrom(IERC20(fromMarket.market), msg.sender, address(this), fromMarket.netLpToRemove);
|
|
92
|
-
|
|
93
|
-
_safeApproveInf(fromMarket.market, address(ROUTER));
|
|
94
|
-
|
|
95
|
-
(netTokenOut, netSyFee) = ROUTER.removeLiquiditySingleToken(
|
|
96
|
-
address(this),
|
|
97
|
-
fromMarket.market,
|
|
98
|
-
fromMarket.netLpToRemove,
|
|
99
|
-
fromMarket.output
|
|
100
|
-
);
|
|
101
|
-
|
|
102
|
-
if (fromMarket.doRedeemRewards) {
|
|
103
|
-
IPMarket(fromMarket.market).redeemRewards(msg.sender);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
emit RemoveLiquiditySingleToken(
|
|
107
|
-
msg.sender,
|
|
108
|
-
fromMarket.market,
|
|
109
|
-
fromMarket.output.tokenOut,
|
|
110
|
-
msg.sender,
|
|
111
|
-
fromMarket.netLpToRemove,
|
|
112
|
-
netTokenOut
|
|
113
|
-
);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
function removeLiquiditySingleSy(
|
|
117
|
-
RemoveLiquiditySingleSyStruct calldata fromMarket
|
|
118
|
-
) public returns (uint256 netSyOut, uint256 netSyFee) {
|
|
119
|
-
_transferFrom(IERC20(fromMarket.market), msg.sender, address(this), fromMarket.netLpToRemove);
|
|
120
|
-
|
|
121
|
-
_safeApproveInf(fromMarket.market, address(ROUTER));
|
|
122
|
-
|
|
123
|
-
(netSyOut, netSyFee) = ROUTER.removeLiquiditySingleSy(
|
|
124
|
-
address(this),
|
|
125
|
-
fromMarket.market,
|
|
126
|
-
fromMarket.netLpToRemove,
|
|
127
|
-
0
|
|
128
|
-
);
|
|
129
|
-
|
|
130
|
-
if (fromMarket.doRedeemRewards) {
|
|
131
|
-
IPMarket(fromMarket.market).redeemRewards(msg.sender);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
emit RemoveLiquiditySingleSy(msg.sender, fromMarket.market, msg.sender, fromMarket.netLpToRemove, netSyOut);
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
function _addLiquiditySingleToken(
|
|
138
|
-
AddLiquiditySingleTokenStruct calldata toMarket,
|
|
139
|
-
address tokenToZapIn,
|
|
140
|
-
uint256 actualNetTokenIn
|
|
141
|
-
) internal returns (uint256 netLpOut, uint256 netSyFee) {
|
|
142
|
-
uint256 netNativeToAttach;
|
|
143
|
-
if (tokenToZapIn == NATIVE) {
|
|
144
|
-
netNativeToAttach = actualNetTokenIn;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
_safeApproveInf(tokenToZapIn, address(ROUTER));
|
|
148
|
-
|
|
149
|
-
(netLpOut, netSyFee) = ROUTER.addLiquiditySingleToken{value: netNativeToAttach}(
|
|
150
|
-
msg.sender,
|
|
151
|
-
toMarket.market,
|
|
152
|
-
toMarket.minLpOut,
|
|
153
|
-
_scaleApproxParams(toMarket.guessPtReceivedFromSy, toMarket.guessNetTokenIn, actualNetTokenIn),
|
|
154
|
-
_newTokenInputStruct(tokenToZapIn, actualNetTokenIn)
|
|
155
|
-
);
|
|
156
|
-
|
|
157
|
-
emit AddLiquiditySingleToken(msg.sender, toMarket.market, tokenToZapIn, msg.sender, actualNetTokenIn, netLpOut);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
function _addLiquiditySingleSy(
|
|
161
|
-
AddLiquiditySingleSyStruct calldata toMarket,
|
|
162
|
-
uint256 actualNetSyIn
|
|
163
|
-
) internal returns (uint256 netLpOut, uint256 netSyFee) {
|
|
164
|
-
(IStandardizedYield SY, , ) = IPMarket(toMarket.market).readTokens();
|
|
165
|
-
|
|
166
|
-
_safeApproveInf(address(SY), address(ROUTER));
|
|
167
|
-
|
|
168
|
-
(netLpOut, netSyFee) = ROUTER.addLiquiditySingleSy(
|
|
169
|
-
msg.sender,
|
|
170
|
-
toMarket.market,
|
|
171
|
-
actualNetSyIn,
|
|
172
|
-
toMarket.minLpOut,
|
|
173
|
-
_scaleApproxParams(toMarket.guessPtReceivedFromSy, toMarket.guessNetSyIn, actualNetSyIn)
|
|
174
|
-
);
|
|
175
|
-
|
|
176
|
-
emit AddLiquiditySingleSy(msg.sender, toMarket.market, msg.sender, actualNetSyIn, netLpOut);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
function _addLiquiditySingleTokenKeepYt(
|
|
180
|
-
AddLiquiditySingleTokenKeepYtStruct calldata toMarket,
|
|
181
|
-
address tokenToZapIn,
|
|
182
|
-
uint256 actualNetTokenIn
|
|
183
|
-
) internal returns (uint256 netLpOut, uint256 netYtOut) {
|
|
184
|
-
if (tokenToZapIn == NATIVE) {
|
|
185
|
-
tokenToZapIn = WETH;
|
|
186
|
-
_wrap_unwrap_ETH(NATIVE, WETH, actualNetTokenIn);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
_safeApproveInf(tokenToZapIn, address(ROUTER));
|
|
190
|
-
|
|
191
|
-
(netLpOut, netYtOut) = ROUTER.addLiquiditySingleTokenKeepYt(
|
|
192
|
-
msg.sender,
|
|
193
|
-
toMarket.market,
|
|
194
|
-
toMarket.minLpOut,
|
|
195
|
-
toMarket.minYtOut,
|
|
196
|
-
_newTokenInputStruct(tokenToZapIn, actualNetTokenIn)
|
|
197
|
-
);
|
|
198
|
-
|
|
199
|
-
emit AddLiquiditySingleTokenKeepYt(
|
|
200
|
-
msg.sender,
|
|
201
|
-
toMarket.market,
|
|
202
|
-
tokenToZapIn,
|
|
203
|
-
msg.sender,
|
|
204
|
-
actualNetTokenIn,
|
|
205
|
-
netLpOut,
|
|
206
|
-
netYtOut
|
|
207
|
-
);
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
function _addLiquiditySingleSyKeepYt(
|
|
211
|
-
AddLiquiditySingleSyKeepYtStruct calldata toMarket,
|
|
212
|
-
uint256 actualNetSyIn
|
|
213
|
-
) internal returns (uint256 netLpOut, uint256 netYtOut) {
|
|
214
|
-
(IStandardizedYield SY, , ) = IPMarket(toMarket.market).readTokens();
|
|
215
|
-
|
|
216
|
-
_safeApproveInf(address(SY), address(ROUTER));
|
|
217
|
-
|
|
218
|
-
(netLpOut, netYtOut) = ROUTER.addLiquiditySingleSyKeepYt(
|
|
219
|
-
msg.sender,
|
|
220
|
-
toMarket.market,
|
|
221
|
-
actualNetSyIn,
|
|
222
|
-
toMarket.minLpOut,
|
|
223
|
-
toMarket.minYtOut
|
|
224
|
-
);
|
|
225
|
-
|
|
226
|
-
emit AddLiquiditySingleSyKeepYt(msg.sender, toMarket.market, msg.sender, actualNetSyIn, netLpOut, netYtOut);
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
// ============ struct helpers ============
|
|
230
|
-
|
|
231
|
-
function _newTokenInputStruct(address tokenIn, uint256 netTokenIn) internal pure returns (TokenInput memory res) {
|
|
232
|
-
res.tokenIn = res.tokenMintSy = tokenIn;
|
|
233
|
-
res.netTokenIn = netTokenIn;
|
|
234
|
-
return res;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
/// @dev either SY or Token here is good since token->sy conversion is almost linearly proportional
|
|
238
|
-
function _scaleApproxParams(
|
|
239
|
-
ApproxParams calldata params,
|
|
240
|
-
uint256 guessNetTokenIn,
|
|
241
|
-
uint256 actualNetTokenIn
|
|
242
|
-
) internal pure returns (ApproxParams memory) {
|
|
243
|
-
if (params.guessOffchain == 0) {
|
|
244
|
-
require(params.guessMin == 0 && params.guessMax == type(uint256).max, "invalid guess");
|
|
245
|
-
return params;
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
return
|
|
249
|
-
ApproxParams({
|
|
250
|
-
guessMin: (params.guessMin * actualNetTokenIn) / guessNetTokenIn,
|
|
251
|
-
guessMax: (params.guessMax * actualNetTokenIn) / guessNetTokenIn,
|
|
252
|
-
guessOffchain: (params.guessOffchain * actualNetTokenIn) / guessNetTokenIn,
|
|
253
|
-
maxIteration: params.maxIteration,
|
|
254
|
-
eps: params.eps
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
interface RouterV2InterfaceForRouterHelper {
|
|
260
|
-
function addLiquiditySingleSy(
|
|
261
|
-
address receiver,
|
|
262
|
-
address market,
|
|
263
|
-
uint256 netSyIn,
|
|
264
|
-
uint256 minLpOut,
|
|
265
|
-
ApproxParams calldata guessPtReceivedFromSy
|
|
266
|
-
) external returns (uint256 netLpOut, uint256 netSyFee);
|
|
267
|
-
|
|
268
|
-
function addLiquiditySingleToken(
|
|
269
|
-
address receiver,
|
|
270
|
-
address market,
|
|
271
|
-
uint256 minLpOut,
|
|
272
|
-
ApproxParams calldata guessPtReceivedFromSy,
|
|
273
|
-
TokenInput calldata input
|
|
274
|
-
) external payable returns (uint256 netLpOut, uint256 netSyFee);
|
|
275
|
-
|
|
276
|
-
function addLiquiditySingleSyKeepYt(
|
|
277
|
-
address receiver,
|
|
278
|
-
address market,
|
|
279
|
-
uint256 netSyIn,
|
|
280
|
-
uint256 minLpOut,
|
|
281
|
-
uint256 minYtOut
|
|
282
|
-
) external returns (uint256 netLpOut, uint256 netYtOut);
|
|
283
|
-
|
|
284
|
-
function addLiquiditySingleTokenKeepYt(
|
|
285
|
-
address receiver,
|
|
286
|
-
address market,
|
|
287
|
-
uint256 minLpOut,
|
|
288
|
-
uint256 minYtOut,
|
|
289
|
-
TokenInput calldata input
|
|
290
|
-
) external returns (uint256 netLpOut, uint256 netYtOut);
|
|
291
|
-
|
|
292
|
-
function removeLiquiditySingleSy(
|
|
293
|
-
address receiver,
|
|
294
|
-
address market,
|
|
295
|
-
uint256 netLpToRemove,
|
|
296
|
-
uint256 minSyOut
|
|
297
|
-
) external returns (uint256 netSyOut, uint256 netSyFee);
|
|
298
|
-
|
|
299
|
-
function removeLiquiditySingleToken(
|
|
300
|
-
address receiver,
|
|
301
|
-
address market,
|
|
302
|
-
uint256 netLpToRemove,
|
|
303
|
-
TokenOutput calldata output
|
|
304
|
-
) external returns (uint256 netTokenOut, uint256 netSyFee);
|
|
305
|
-
}
|