@whetstone-research/doppler-sdk 1.0.39 → 1.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -108
- package/dist/evm/index.cjs +1446 -916
- package/dist/evm/index.cjs.map +1 -1
- package/dist/evm/index.d.cts +1126 -404
- package/dist/evm/index.d.ts +1126 -404
- package/dist/evm/index.js +1445 -913
- package/dist/evm/index.js.map +1 -1
- package/dist/solana/index.cjs +16 -2
- package/dist/solana/index.cjs.map +1 -1
- package/dist/solana/index.d.cts +5 -2
- package/dist/solana/index.d.ts +5 -2
- package/dist/solana/index.js +16 -3
- package/dist/solana/index.js.map +1 -1
- package/package.json +1 -1
package/dist/evm/index.cjs
CHANGED
|
@@ -8,157 +8,172 @@ var GENERATED_DOPPLER_DEPLOYMENTS = {
|
|
|
8
8
|
"1": {
|
|
9
9
|
Airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA",
|
|
10
10
|
Bundler: "0xf45588E8e0B1df9dB9ae7E20eCE5726AE931357c",
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
11
|
+
DN404Factory: "0x2615cfB676925949312B34069Ee477205e49Ae0A",
|
|
12
|
+
DopplerCreateXDeployer: "0x00000000005caf9bA78B1dFa98C47d9BF76Db8b8",
|
|
13
|
+
DopplerDeployer: "0x95e91A1A24834aeB4e8d253D9247ae1F4E36B085",
|
|
14
|
+
DopplerERC20V1: "0xeDf3f3981E98077591c1B909BCCff0e572bD50f8",
|
|
15
|
+
DopplerERC20V1Factory: "0xf1542Dd2D46394C16372FB00f2c339b53CeF2cE5",
|
|
15
16
|
DopplerHookInitializer: "0xBDF938149ac6a781F94FAa0ed45E6A0e984c6544",
|
|
16
|
-
DopplerHookMigrator: "
|
|
17
|
+
DopplerHookMigrator: "0xb3B7ceE86eF22fe1c3212B48efeBc1AB4B7220C4",
|
|
17
18
|
GovernanceFactory: "0x9F309D79BEe3E8b2f56FaCF74b7195Df176c8F61",
|
|
18
19
|
LaunchpadGovernanceFactory: "0x2A8DA67F277442cFF7Dc2143e52Fdd0cBF5A8175",
|
|
19
|
-
LockableUniswapV3Initializer: "
|
|
20
|
+
LockableUniswapV3Initializer: "0xD09dEd1867d885fcDB41ADC957165D04aE917683",
|
|
20
21
|
NoOpGovernanceFactory: "0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638",
|
|
21
22
|
NoOpMigrator: "0x233A71A7bB928b1357A1Ebf454298320989Ca5B5",
|
|
22
|
-
Quoter: "
|
|
23
|
-
RehypeDopplerHookInitializer: "
|
|
24
|
-
|
|
25
|
-
StreamableFeesLockerV2: "0xcE3212e6536F33cD6fbFEE265224131353Ca3D47",
|
|
23
|
+
Quoter: "0x0a4070Fd5FDac83E576ed6Bba30BE8db10B2299E",
|
|
24
|
+
RehypeDopplerHookInitializer: "0xe2AEbc987592593b667ec29178D0A83929Db78b6",
|
|
25
|
+
StreamableFeesLockerV2: "0xA8Bdf3A8e9415C4ec1FF55899c34105E0FD66375",
|
|
26
26
|
TimelockFactory: "0x9fd40af2baAfAF03513f091444e821c0d5b06ea0",
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
UniswapV2Locker: "0xEa7f0777a6FD7BB6Dfff290aE44154c75DAAa5cA",
|
|
28
|
+
UniswapV2MigratorSplit: "0x44E30C4724DB30E4170cBC160D17e1a1aFf2f21F",
|
|
29
|
+
UniswapV4Initializer: "0xFDFD7D27089f306eEF279b5DA6BFe878250cB6bb"
|
|
30
|
+
},
|
|
31
|
+
"56": {
|
|
32
|
+
Airlock: "0x14870A3282bd707b252e3C0f356A68B4c8F6D2ff",
|
|
33
|
+
Bundler: "0x3d1adeD02C8658c8679B3E1432e276FccC90Da43",
|
|
34
|
+
DN404Factory: "0x46Af39801ACA4A3Fe4b6e42ABec7BB5675CfC693",
|
|
35
|
+
DopplerCreateXDeployer: "0x00000000005caf9bA78B1dFa98C47d9BF76Db8b8",
|
|
36
|
+
DopplerDeployer: "0x1507d177085FC9840BB321a60CB397069F952b34",
|
|
37
|
+
DopplerERC20V1: "0xD26E23c3f83CC40a50469abA9E97F905e2b2256c",
|
|
38
|
+
DopplerERC20V1Factory: "0xFB5120a4d3c69BCeBD138986A87fae2fD0DDC893",
|
|
39
|
+
DopplerHookInitializer: "0xF0d631d54c7e1040CCFa1c2ed737973D6A652544",
|
|
40
|
+
DopplerHookMigrator: "0x425C16133940f66824dBd6347610D93e44C360c4",
|
|
41
|
+
DopplerLensQuoter: "0x11c420Bdf1d82831516ad118717F2EA03bF86Ea1",
|
|
42
|
+
GovernanceFactory: "0x42c3B403f82406B72d380404E835eD35E580c03f",
|
|
43
|
+
LaunchpadGovernanceFactory: "0xFDcAAd19744d2C723862fF49e85139cBEf76Ec14",
|
|
44
|
+
LockableUniswapV3Initializer: "0xAfc12583675A5d2F7D1dF8B7765B67fB192C3034",
|
|
45
|
+
NoOpGovernanceFactory: "0x7f604b5A8096b06d2CC305b6a843829Eea9F4ba9",
|
|
46
|
+
NoOpMigrator: "0x95eC4FD6d64Df5299F6dEDaA5dF96E45836c5781",
|
|
47
|
+
Quoter: "0x30fb0c09e2Fc575DfA2BC6eAA9852ddEB21dce1c",
|
|
48
|
+
RehypeDopplerHookInitializer: "0xA7465b9d101cf3B2381D6CD42f2C5E72f9453984",
|
|
49
|
+
StreamableFeesLockerV2: "0x64e811c32eeFBfEe1BEb0fE068A7794Df0119ad9",
|
|
50
|
+
SwapRestrictorDopplerHook: "0xC8B56E57C592f542574EcD4293082dE856d67a58",
|
|
51
|
+
TimelockFactory: "0x7bc626670e2bb5AC23D0c1640B311166ef255C18",
|
|
52
|
+
UniswapV2Locker: "0x7a3Ac7Cb49DDb0D2BDAEe6e892C3B36b8d6a00cA",
|
|
53
|
+
UniswapV2MigratorSplit: "0x873d88786F9Fb3E233b97a5cDf588242B9862A44",
|
|
54
|
+
UniswapV4Initializer: "0x9430C153A5cd86Fa61d8c130f87a3C24Ad07cD43"
|
|
31
55
|
},
|
|
32
56
|
"143": {
|
|
33
57
|
Airlock: "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12",
|
|
34
58
|
Bundler: "0xf45588E8e0B1df9dB9ae7E20eCE5726AE931357c",
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
59
|
+
DN404Factory: "0x2615cfB676925949312B34069Ee477205e49Ae0A",
|
|
60
|
+
DopplerCreateXDeployer: "0x00000000005caf9bA78B1dFa98C47d9BF76Db8b8",
|
|
61
|
+
DopplerDeployer: "0x95e91A1A24834aeB4e8d253D9247ae1F4E36B085",
|
|
62
|
+
DopplerERC20V1: "0xeDf3f3981E98077591c1B909BCCff0e572bD50f8",
|
|
63
|
+
DopplerERC20V1Factory: "0xf1542Dd2D46394C16372FB00f2c339b53CeF2cE5",
|
|
39
64
|
DopplerHookInitializer: "0x56ea13Da5f39863D3B3d54826187306Af7ada544",
|
|
40
|
-
DopplerHookMigrator: "
|
|
65
|
+
DopplerHookMigrator: "0xb3B7ceE86eF22fe1c3212B48efeBc1AB4B7220C4",
|
|
41
66
|
GovernanceFactory: "0xFAafdE6a5b658684cC5eb0C5c2c755B00A246F45",
|
|
42
67
|
LaunchpadGovernanceFactory: "0x5FBe931dc4B923A7abe4c47aD68d5bF9Eda5B76D",
|
|
43
|
-
LockableUniswapV3Initializer: "
|
|
68
|
+
LockableUniswapV3Initializer: "0xD09dEd1867d885fcDB41ADC957165D04aE917683",
|
|
44
69
|
NoOpGovernanceFactory: "0xb4deE32EB70A5E55f3D2d861F49Fb3D79f7a14d9",
|
|
45
70
|
NoOpMigrator: "0x5F3bA43D44375286296Cb85F1EA2EBfa25dde731",
|
|
46
|
-
Quoter: "
|
|
47
|
-
RehypeDopplerHookInitializer: "
|
|
48
|
-
|
|
49
|
-
StreamableFeesLockerV2: "0xcE3212e6536F33cD6fbFEE265224131353Ca3D47",
|
|
71
|
+
Quoter: "0x0a4070Fd5FDac83E576ed6Bba30BE8db10B2299E",
|
|
72
|
+
RehypeDopplerHookInitializer: "0xe2AEbc987592593b667ec29178D0A83929Db78b6",
|
|
73
|
+
StreamableFeesLockerV2: "0xA8Bdf3A8e9415C4ec1FF55899c34105E0FD66375",
|
|
50
74
|
TimelockFactory: "0x44610355465c1F5914C8B8ea0E7c887CC67459b2",
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
UniswapV4Initializer: "0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad"
|
|
75
|
+
UniswapV2Locker: "0xEa7f0777a6FD7BB6Dfff290aE44154c75DAAa5cA",
|
|
76
|
+
UniswapV2MigratorSplit: "0x44E30C4724DB30E4170cBC160D17e1a1aFf2f21F",
|
|
77
|
+
UniswapV4Initializer: "0xFDFD7D27089f306eEF279b5DA6BFe878250cB6bb"
|
|
55
78
|
},
|
|
56
79
|
"4663": {
|
|
57
80
|
Airlock: "0xeb7C034704eF8Dcd2D32324c1545f62fB4aD0862",
|
|
58
81
|
Bundler: "0xf45588E8e0B1df9dB9ae7E20eCE5726AE931357c",
|
|
59
|
-
DN404Factory: "
|
|
60
|
-
DopplerCreateXDeployer: "
|
|
61
|
-
DopplerDeployer: "
|
|
62
|
-
DopplerERC20V1: "
|
|
63
|
-
DopplerERC20V1Factory: "
|
|
82
|
+
DN404Factory: "0x2615cfB676925949312B34069Ee477205e49Ae0A",
|
|
83
|
+
DopplerCreateXDeployer: "0x00000000005caf9bA78B1dFa98C47d9BF76Db8b8",
|
|
84
|
+
DopplerDeployer: "0x95e91A1A24834aeB4e8d253D9247ae1F4E36B085",
|
|
85
|
+
DopplerERC20V1: "0xeDf3f3981E98077591c1B909BCCff0e572bD50f8",
|
|
86
|
+
DopplerERC20V1Factory: "0xf1542Dd2D46394C16372FB00f2c339b53CeF2cE5",
|
|
64
87
|
DopplerHookInitializer: "0x4e3468951D49f2EEa976eD0D6e75fFCb44a9a544",
|
|
65
|
-
DopplerHookMigrator: "
|
|
88
|
+
DopplerHookMigrator: "0xb3B7ceE86eF22fe1c3212B48efeBc1AB4B7220C4",
|
|
66
89
|
DopplerLensQuoter: "0xf4c22465532f64777FfcD7770831AEca38F35c04",
|
|
67
90
|
GovernanceFactory: "0xDeb0447DAE3EB177c4dbA8bBCCCa25c8F273B7ef",
|
|
68
91
|
LaunchpadGovernanceFactory: "0xdb036746D65DD52126b1915f1AdF555e6C5237Cf",
|
|
69
|
-
LockableUniswapV3Initializer: "
|
|
92
|
+
LockableUniswapV3Initializer: "0xD09dEd1867d885fcDB41ADC957165D04aE917683",
|
|
70
93
|
NoOpGovernanceFactory: "0x85f37f74Ef2478A770318bc810177a9835911aD7",
|
|
71
94
|
NoOpMigrator: "0xba2F330EDb16cD8056f5988d8CE19BbC63475A0e",
|
|
72
|
-
Quoter: "
|
|
73
|
-
RehypeDopplerHookInitializer: "
|
|
74
|
-
|
|
75
|
-
StreamableFeesLockerV2: "0x7B6147AC3F615bdb764e7EbD5f517dac1AD163B8",
|
|
95
|
+
Quoter: "0x0a4070Fd5FDac83E576ed6Bba30BE8db10B2299E",
|
|
96
|
+
RehypeDopplerHookInitializer: "0xe2AEbc987592593b667ec29178D0A83929Db78b6",
|
|
97
|
+
StreamableFeesLockerV2: "0xA8Bdf3A8e9415C4ec1FF55899c34105E0FD66375",
|
|
76
98
|
SwapRestrictorDopplerHook: "0xC16c826F75338A5Ea626f94f8992191B4ce5abA2",
|
|
77
99
|
TimelockFactory: "0x6076fdDFCaC0dD980e0350dfF5239feC3f86C578",
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
UniswapV4Initializer: "0x6cce158B6D1747617fc218592B4D60B239B957ea"
|
|
100
|
+
UniswapV2Locker: "0xEa7f0777a6FD7BB6Dfff290aE44154c75DAAa5cA",
|
|
101
|
+
UniswapV2MigratorSplit: "0x44E30C4724DB30E4170cBC160D17e1a1aFf2f21F",
|
|
102
|
+
UniswapV4Initializer: "0xFDFD7D27089f306eEF279b5DA6BFe878250cB6bb"
|
|
82
103
|
},
|
|
83
104
|
"8453": {
|
|
84
105
|
Airlock: "0x660eAaEdEBc968f8f3694354FA8EC0b4c5Ba8D12",
|
|
85
106
|
Bundler: "0xf45588E8e0B1df9dB9ae7E20eCE5726AE931357c",
|
|
86
|
-
DN404Factory: "
|
|
87
|
-
DopplerCreateXDeployer: "
|
|
88
|
-
DopplerDeployer: "
|
|
89
|
-
DopplerERC20V1: "
|
|
90
|
-
DopplerERC20V1Factory: "
|
|
107
|
+
DN404Factory: "0x2615cfB676925949312B34069Ee477205e49Ae0A",
|
|
108
|
+
DopplerCreateXDeployer: "0x00000000005caf9bA78B1dFa98C47d9BF76Db8b8",
|
|
109
|
+
DopplerDeployer: "0x95e91A1A24834aeB4e8d253D9247ae1F4E36B085",
|
|
110
|
+
DopplerERC20V1: "0xeDf3f3981E98077591c1B909BCCff0e572bD50f8",
|
|
111
|
+
DopplerERC20V1Factory: "0xf1542Dd2D46394C16372FB00f2c339b53CeF2cE5",
|
|
91
112
|
DopplerHookInitializer: "0xBDF938149ac6a781F94FAa0ed45E6A0e984c6544",
|
|
92
|
-
DopplerHookMigrator: "
|
|
113
|
+
DopplerHookMigrator: "0xb3B7ceE86eF22fe1c3212B48efeBc1AB4B7220C4",
|
|
93
114
|
DopplerLensQuoter: "0x43d0D97EC9241A8F05A264f94B82A1d2E600f2B3",
|
|
94
115
|
GovernanceFactory: "0xa82c66b6ddEb92089015C3565E05B5c9750b2d4B",
|
|
95
116
|
LaunchpadGovernanceFactory: "0x40Bcb4dDA3BcF7dba30C5d10c31EE2791ed9ddCa",
|
|
96
|
-
LockableUniswapV3Initializer: "
|
|
117
|
+
LockableUniswapV3Initializer: "0xD09dEd1867d885fcDB41ADC957165D04aE917683",
|
|
97
118
|
NoOpGovernanceFactory: "0xe7dfbd5b0A2C3B4464653A9beCdc489229eF090E",
|
|
98
119
|
NoOpMigrator: "0x6ddfED58D238Ca3195E49d8ac3d4cEa6386E5C33",
|
|
99
|
-
Quoter: "
|
|
100
|
-
RehypeDopplerHookInitializer: "
|
|
101
|
-
|
|
102
|
-
StreamableFeesLockerV2: "0xcE3212e6536F33cD6fbFEE265224131353Ca3D47",
|
|
120
|
+
Quoter: "0x0a4070Fd5FDac83E576ed6Bba30BE8db10B2299E",
|
|
121
|
+
RehypeDopplerHookInitializer: "0xe2AEbc987592593b667ec29178D0A83929Db78b6",
|
|
122
|
+
StreamableFeesLockerV2: "0xA8Bdf3A8e9415C4ec1FF55899c34105E0FD66375",
|
|
103
123
|
TimelockFactory: "0xa636bD5F9179E80e9EdB371Ed90956fA5ebdCB33",
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
UniswapV4Initializer: "0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad"
|
|
124
|
+
UniswapV2Locker: "0xEa7f0777a6FD7BB6Dfff290aE44154c75DAAa5cA",
|
|
125
|
+
UniswapV2MigratorSplit: "0x44E30C4724DB30E4170cBC160D17e1a1aFf2f21F",
|
|
126
|
+
UniswapV4Initializer: "0xFDFD7D27089f306eEF279b5DA6BFe878250cB6bb"
|
|
108
127
|
},
|
|
109
128
|
"42161": {
|
|
110
129
|
Airlock: "0xeb7C034704eF8Dcd2D32324c1545f62fB4aD0862",
|
|
111
130
|
Bundler: "0xf45588E8e0B1df9dB9ae7E20eCE5726AE931357c",
|
|
112
|
-
DN404Factory: "
|
|
113
|
-
DopplerCreateXDeployer: "
|
|
114
|
-
DopplerDeployer: "
|
|
115
|
-
DopplerERC20V1: "
|
|
116
|
-
DopplerERC20V1Factory: "
|
|
131
|
+
DN404Factory: "0x2615cfB676925949312B34069Ee477205e49Ae0A",
|
|
132
|
+
DopplerCreateXDeployer: "0x00000000005caf9bA78B1dFa98C47d9BF76Db8b8",
|
|
133
|
+
DopplerDeployer: "0x95e91A1A24834aeB4e8d253D9247ae1F4E36B085",
|
|
134
|
+
DopplerERC20V1: "0xeDf3f3981E98077591c1B909BCCff0e572bD50f8",
|
|
135
|
+
DopplerERC20V1Factory: "0xf1542Dd2D46394C16372FB00f2c339b53CeF2cE5",
|
|
117
136
|
DopplerHookInitializer: "0xAa7f809BB3752f715fA2e418230667C382A56544",
|
|
118
|
-
DopplerHookMigrator: "
|
|
137
|
+
DopplerHookMigrator: "0xb3B7ceE86eF22fe1c3212B48efeBc1AB4B7220C4",
|
|
119
138
|
DopplerLensQuoter: "0xf4c22465532f64777FfcD7770831AEca38F35c04",
|
|
120
139
|
GovernanceFactory: "0xDeb0447DAE3EB177c4dbA8bBCCCa25c8F273B7ef",
|
|
121
140
|
LaunchpadGovernanceFactory: "0xdb036746D65DD52126b1915f1AdF555e6C5237Cf",
|
|
122
|
-
LockableUniswapV3Initializer: "
|
|
141
|
+
LockableUniswapV3Initializer: "0xD09dEd1867d885fcDB41ADC957165D04aE917683",
|
|
123
142
|
NoOpGovernanceFactory: "0x85f37f74Ef2478A770318bc810177a9835911aD7",
|
|
124
143
|
NoOpMigrator: "0xba2F330EDb16cD8056f5988d8CE19BbC63475A0e",
|
|
125
|
-
Quoter: "
|
|
126
|
-
RehypeDopplerHookInitializer: "
|
|
127
|
-
|
|
128
|
-
StreamableFeesLockerV2: "0xEd822828B6109d16a9D362b8146a35789E0064f5",
|
|
144
|
+
Quoter: "0x0a4070Fd5FDac83E576ed6Bba30BE8db10B2299E",
|
|
145
|
+
RehypeDopplerHookInitializer: "0xe2AEbc987592593b667ec29178D0A83929Db78b6",
|
|
146
|
+
StreamableFeesLockerV2: "0xA8Bdf3A8e9415C4ec1FF55899c34105E0FD66375",
|
|
129
147
|
SwapRestrictorDopplerHook: "0xC16c826F75338A5Ea626f94f8992191B4ce5abA2",
|
|
130
148
|
TimelockFactory: "0x6076fdDFCaC0dD980e0350dfF5239feC3f86C578",
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
UniswapV4Initializer: "0x6cce158B6D1747617fc218592B4D60B239B957ea"
|
|
149
|
+
UniswapV2Locker: "0xEa7f0777a6FD7BB6Dfff290aE44154c75DAAa5cA",
|
|
150
|
+
UniswapV2MigratorSplit: "0x44E30C4724DB30E4170cBC160D17e1a1aFf2f21F",
|
|
151
|
+
UniswapV4Initializer: "0xFDFD7D27089f306eEF279b5DA6BFe878250cB6bb"
|
|
135
152
|
},
|
|
136
153
|
"84532": {
|
|
137
154
|
Airlock: "0x3411306Ce66c9469BFF1535BA955503c4Bde1C6e",
|
|
138
155
|
AirlockMultisigTestnet: "0x0abCf819FD57C9f0141628410fFC273405E44426",
|
|
139
156
|
Bundler: "0xDdDDDd67579B73fDdFf301DB92Fd4A01afD4613a",
|
|
140
|
-
DN404Factory: "
|
|
157
|
+
DN404Factory: "0xbD20597B6376E9056BbA15601e556EEF3eB44F83",
|
|
141
158
|
DopplerCreateXDeployer: "0x0000000000f13Ab5b685F03A412A26719aB6bE60",
|
|
142
|
-
DopplerDeployer: "
|
|
143
|
-
DopplerERC20V1: "
|
|
144
|
-
DopplerERC20V1Factory: "
|
|
159
|
+
DopplerDeployer: "0x1627fcA0e58Ec93a05501186b9C03EAb4ff95980",
|
|
160
|
+
DopplerERC20V1: "0x4f55DcE9D51cC23Ab2B1D1bF83f6e59faf059500",
|
|
161
|
+
DopplerERC20V1Factory: "0x44608064ee36d80AcfeA2423A93c2E4CCe0e8AC4",
|
|
145
162
|
DopplerHookInitializer: "0xBDF938149ac6a781F94FAa0ed45E6A0e984c6544",
|
|
146
|
-
DopplerHookMigrator: "
|
|
163
|
+
DopplerHookMigrator: "0xF472D5790D8D363B7aA48FE196a170F02dB720c4",
|
|
147
164
|
DopplerLensQuoter: "0x4a8d81Db741248a36D9eb3bc6eF648Bf798B47a7",
|
|
148
165
|
GovernanceFactory: "0x9dBFaaDC8c0cB2c34bA698DD9426555336992e20",
|
|
149
166
|
LaunchpadGovernanceFactory: "0x0902e7C7207df8ed6303Aef4382bcab181b5fBFA",
|
|
150
|
-
LockableUniswapV3Initializer: "
|
|
167
|
+
LockableUniswapV3Initializer: "0x6F8874B1A71516B20146552c671B9b8B1c69a93a",
|
|
151
168
|
NoOpGovernanceFactory: "0x7bD798fafC99A3b17E261F8308A8C11B56935ea1",
|
|
152
169
|
NoOpMigrator: "0xF11066abbd329ac4bBA39455340539322C222eb0",
|
|
153
|
-
Quoter: "
|
|
154
|
-
RehypeDopplerHookInitializer: "
|
|
155
|
-
|
|
156
|
-
StreamableFeesLockerV2: "0xcE3212e6536F33cD6fbFEE265224131353Ca3D47",
|
|
170
|
+
Quoter: "0xE0e3FC24605D1a07D41DEf02DB1584d23106d7eb",
|
|
171
|
+
RehypeDopplerHookInitializer: "0xcbAc195F99df4433D7Bf07Df22993f55AF8c9A8e",
|
|
172
|
+
StreamableFeesLockerV2: "0x0a13aE3DbEB8D332987706FE581600D4bc1a98b7",
|
|
157
173
|
TimelockFactory: "0x80F42ECCc91177D39E20f1A88A54D231c1b086a2",
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
UniswapV4Initializer: "0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad"
|
|
174
|
+
UniswapV2Locker: "0x270f7A3e488f26C1129b6EeC55ADbED4945946B7",
|
|
175
|
+
UniswapV2MigratorSplit: "0xEf253DaF7624BC1d76c5b98b24764F79cE2afA6B",
|
|
176
|
+
UniswapV4Initializer: "0x8239d2a4cE4a5EA94DFb489Ab0A13de51d3dEb8D"
|
|
162
177
|
}
|
|
163
178
|
};
|
|
164
179
|
var WAD = 10n ** 18n;
|
|
@@ -205,8 +220,8 @@ var DEFAULT_V3_START_TICK = 175e3;
|
|
|
205
220
|
var DEFAULT_V3_END_TICK = 225e3;
|
|
206
221
|
var DEFAULT_V3_NUM_POSITIONS = 15;
|
|
207
222
|
var DEFAULT_V3_FEE = 1e4;
|
|
208
|
-
var DEFAULT_V3_INITIAL_VOTING_DELAY =
|
|
209
|
-
var DEFAULT_V3_INITIAL_VOTING_PERIOD =
|
|
223
|
+
var DEFAULT_V3_INITIAL_VOTING_DELAY = SECONDS_PER_DAY;
|
|
224
|
+
var DEFAULT_V3_INITIAL_VOTING_PERIOD = 7 * SECONDS_PER_DAY;
|
|
210
225
|
var DEFAULT_V3_INITIAL_PROPOSAL_THRESHOLD = 0n;
|
|
211
226
|
var DEFAULT_V3_VESTING_DURATION = BigInt(SECONDS_PER_YEAR);
|
|
212
227
|
var DEFAULT_V3_INITIAL_SUPPLY = viem.parseEther("1000000000");
|
|
@@ -214,8 +229,8 @@ var DEFAULT_V3_NUM_TOKENS_TO_SELL = viem.parseEther("900000000");
|
|
|
214
229
|
var DEFAULT_V3_YEARLY_MINT_RATE = viem.parseEther("0.02");
|
|
215
230
|
var DEFAULT_V3_PRE_MINT = viem.parseEther("9000000");
|
|
216
231
|
var DEFAULT_V3_MAX_SHARE_TO_BE_SOLD = viem.parseEther("0.35");
|
|
217
|
-
var DEFAULT_V4_INITIAL_VOTING_DELAY =
|
|
218
|
-
var DEFAULT_V4_INITIAL_VOTING_PERIOD =
|
|
232
|
+
var DEFAULT_V4_INITIAL_VOTING_DELAY = SECONDS_PER_DAY;
|
|
233
|
+
var DEFAULT_V4_INITIAL_VOTING_PERIOD = 7 * SECONDS_PER_DAY;
|
|
219
234
|
var DEFAULT_V4_INITIAL_PROPOSAL_THRESHOLD = 0n;
|
|
220
235
|
var DEFAULT_V4_YEARLY_MINT_RATE = viem.parseEther("0.02");
|
|
221
236
|
var OPENING_AUCTION_BPS = 1e4;
|
|
@@ -288,10 +303,10 @@ var FEE_AMOUNT_MASK = 16777215;
|
|
|
288
303
|
// src/evm/addresses.ts
|
|
289
304
|
var CHAIN_IDS = {
|
|
290
305
|
MAINNET: 1,
|
|
291
|
-
ETH_SEPOLIA: 11155111,
|
|
292
306
|
ARBITRUM: 42161,
|
|
293
307
|
BASE: 8453,
|
|
294
308
|
BASE_SEPOLIA: 84532,
|
|
309
|
+
BSC: 56,
|
|
295
310
|
INK: 57073,
|
|
296
311
|
ROBINHOOD: 4663,
|
|
297
312
|
UNICHAIN: 130,
|
|
@@ -320,6 +335,7 @@ var ADDRESSES = {
|
|
|
320
335
|
CHAIN_IDS.MAINNET,
|
|
321
336
|
"DopplerERC20V1"
|
|
322
337
|
),
|
|
338
|
+
doppler404Factory: getGeneratedAddress(CHAIN_IDS.MAINNET, "DN404Factory"),
|
|
323
339
|
v3Initializer: ZERO_ADDRESS,
|
|
324
340
|
v3Quoter: "0x61fFE014bA17989E743c5F6cB21bF9697530B21e",
|
|
325
341
|
lockableV3Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MAINNET].LockableUniswapV3Initializer,
|
|
@@ -341,7 +357,6 @@ var ADDRESSES = {
|
|
|
341
357
|
v4MigratorSplit: "0xa1b06BE4f2fC347d194240D79EDa9F40CCAd9732",
|
|
342
358
|
v4MigratorHook: "0x4053D4fa966cbdCC20Ec62070aC8814De8bEE500",
|
|
343
359
|
dopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MAINNET].DopplerHookMigrator,
|
|
344
|
-
rehypeDopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MAINNET].RehypeDopplerHookMigrator,
|
|
345
360
|
noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MAINNET].NoOpMigrator,
|
|
346
361
|
governanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MAINNET].GovernanceFactory,
|
|
347
362
|
noOpGovernanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MAINNET].NoOpGovernanceFactory,
|
|
@@ -351,7 +366,6 @@ var ADDRESSES = {
|
|
|
351
366
|
CHAIN_IDS.MAINNET,
|
|
352
367
|
"StreamableFeesLockerV2"
|
|
353
368
|
),
|
|
354
|
-
topUpDistributor: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MAINNET].TopUpDistributor,
|
|
355
369
|
universalRouter: "0x66a9893cc07d91d95644aedd05d03f95e1dba8af",
|
|
356
370
|
permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
357
371
|
bundler: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MAINNET].Bundler,
|
|
@@ -361,34 +375,6 @@ var ADDRESSES = {
|
|
|
361
375
|
uniswapV3Factory: "0x1F98431c8aD98523631AE4a59f267346ea31F984",
|
|
362
376
|
uniswapV4Quoter: "0x52f0e24d1c21c8a0cb1e5a5dd6198556bd9e1203"
|
|
363
377
|
},
|
|
364
|
-
[CHAIN_IDS.ETH_SEPOLIA]: {
|
|
365
|
-
airlock: "0xDe3599a2eC440B296373a983C85C365DA55d9dFA",
|
|
366
|
-
tokenFactory: "0xe7Df2A4520C26a2D4Dedb3a7585BFBcd30eABA6e",
|
|
367
|
-
derc20V2Factory: "0x16F5ACB64F4FA17296E942C51d3395aDC318f9e1",
|
|
368
|
-
derc20V2Implementation: "0x4BBfed1c27CDE12eF6638251D81ab4e3be7556b7",
|
|
369
|
-
v3Initializer: ZERO_ADDRESS,
|
|
370
|
-
v3Quoter: ZERO_ADDRESS,
|
|
371
|
-
v4Initializer: "0x53b4c21a6Cb61D64F636ABBfa6E8E90E6558e8ad",
|
|
372
|
-
v4ScheduledMulticurveInitializer: "0xF84378C9F39e0FF267f3101c88773359c5393876",
|
|
373
|
-
dopplerHookInitializer: "0xBDF938149ac6a781F94FAa0ed45E6A0e984c6544",
|
|
374
|
-
rehypeDopplerHookInitializer: "0xBF4195ab0B03e1eB3345dd1e83BeD7650b1ed123",
|
|
375
|
-
rehypeDopplerHook: "0xBF4195ab0B03e1eB3345dd1e83BeD7650b1ed123",
|
|
376
|
-
dopplerLens: ZERO_ADDRESS,
|
|
377
|
-
dopplerDeployer: "0xb35469ee64A87Afd19B31615094fE3962d73e421",
|
|
378
|
-
poolManager: "0xE03A1074c86CFeDd5C142C4F04F1a1536e203543",
|
|
379
|
-
v2Migrator: "0x765875bff87614cE0581ee73B9fa663B71F3DfF2",
|
|
380
|
-
v4Migrator: "0x0820A4D0173C17Ece283f7bDaAF0f8876eB205f5",
|
|
381
|
-
dopplerHookMigrator: "0x1E40b0875DDa35f41E15cFB475403859B8c860c4",
|
|
382
|
-
rehypeDopplerHookMigrator: "0xea95DfdF69B90c65C827070852F7039D6aF6Dd7b",
|
|
383
|
-
noOpMigrator: "0x233A71A7bB928b1357A1Ebf454298320989Ca5B5",
|
|
384
|
-
governanceFactory: ZERO_ADDRESS,
|
|
385
|
-
noOpGovernanceFactory: "0xddAE8B3eD08184682f7Bc32B74d943cEEfEab638",
|
|
386
|
-
streamableFeesLocker: "0xe24FC2F7191e850e2D4514aBb4d39305b1871eC6",
|
|
387
|
-
universalRouter: "0x3A9D48AB9751398BbFa63ad67599Bb04e4BdF98b",
|
|
388
|
-
permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
389
|
-
weth: "0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14",
|
|
390
|
-
uniswapV4Quoter: "0x61b3f2011a92d183c7dbadbda940a7555ccf9227"
|
|
391
|
-
},
|
|
392
378
|
[CHAIN_IDS.ARBITRUM]: {
|
|
393
379
|
airlock: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ARBITRUM].Airlock,
|
|
394
380
|
tokenFactory: ZERO_ADDRESS,
|
|
@@ -419,7 +405,6 @@ var ADDRESSES = {
|
|
|
419
405
|
v2MigratorSplit: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ARBITRUM].UniswapV2MigratorSplit,
|
|
420
406
|
v4Migrator: ZERO_ADDRESS,
|
|
421
407
|
dopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ARBITRUM].DopplerHookMigrator,
|
|
422
|
-
rehypeDopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ARBITRUM].RehypeDopplerHookMigrator,
|
|
423
408
|
noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ARBITRUM].NoOpMigrator,
|
|
424
409
|
governanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ARBITRUM].GovernanceFactory,
|
|
425
410
|
noOpGovernanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ARBITRUM].NoOpGovernanceFactory,
|
|
@@ -429,8 +414,8 @@ var ADDRESSES = {
|
|
|
429
414
|
CHAIN_IDS.ARBITRUM,
|
|
430
415
|
"StreamableFeesLockerV2"
|
|
431
416
|
),
|
|
432
|
-
topUpDistributor: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ARBITRUM].TopUpDistributor,
|
|
433
417
|
universalRouter: "0xA51afAFe0263b40EdaEf0Df8781eA9aa03E381a3",
|
|
418
|
+
univ2Router02: "0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24",
|
|
434
419
|
permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
435
420
|
bundler: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ARBITRUM].Bundler,
|
|
436
421
|
weth: "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
|
|
@@ -438,6 +423,52 @@ var ADDRESSES = {
|
|
|
438
423
|
uniswapV3Factory: "0x1F98431c8aD98523631AE4a59f267346ea31F984",
|
|
439
424
|
uniswapV4Quoter: "0x3972C00f7ed4885e145823eb7C655375d275A1C5"
|
|
440
425
|
},
|
|
426
|
+
[CHAIN_IDS.BSC]: {
|
|
427
|
+
airlock: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BSC].Airlock,
|
|
428
|
+
tokenFactory: ZERO_ADDRESS,
|
|
429
|
+
dopplerERC20V1Factory: getGeneratedAddress(
|
|
430
|
+
CHAIN_IDS.BSC,
|
|
431
|
+
"DopplerERC20V1Factory"
|
|
432
|
+
),
|
|
433
|
+
dopplerERC20V1Implementation: getGeneratedAddress(
|
|
434
|
+
CHAIN_IDS.BSC,
|
|
435
|
+
"DopplerERC20V1"
|
|
436
|
+
),
|
|
437
|
+
doppler404Factory: getGeneratedAddress(CHAIN_IDS.BSC, "DN404Factory"),
|
|
438
|
+
v3Initializer: ZERO_ADDRESS,
|
|
439
|
+
v3Quoter: "0x78D78E420Da98ad378D7799bE8f4AF69033EB077",
|
|
440
|
+
lockableV3Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BSC].LockableUniswapV3Initializer,
|
|
441
|
+
v4Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BSC].UniswapV4Initializer,
|
|
442
|
+
dopplerHookInitializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BSC].DopplerHookInitializer,
|
|
443
|
+
rehypeDopplerHookInitializer: getRehypeDopplerHookInitializerAddress(
|
|
444
|
+
CHAIN_IDS.BSC
|
|
445
|
+
),
|
|
446
|
+
rehypeDopplerHook: getRehypeDopplerHookInitializerAddress(CHAIN_IDS.BSC),
|
|
447
|
+
dopplerLens: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BSC].DopplerLensQuoter,
|
|
448
|
+
dopplerDeployer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BSC].DopplerDeployer,
|
|
449
|
+
poolManager: "0x28e2ea090877bf75740558f6bfb36a5ffee9e9df",
|
|
450
|
+
v2Migrator: ZERO_ADDRESS,
|
|
451
|
+
v2MigratorSplit: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BSC].UniswapV2MigratorSplit,
|
|
452
|
+
v4Migrator: ZERO_ADDRESS,
|
|
453
|
+
dopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BSC].DopplerHookMigrator,
|
|
454
|
+
noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BSC].NoOpMigrator,
|
|
455
|
+
governanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BSC].GovernanceFactory,
|
|
456
|
+
noOpGovernanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BSC].NoOpGovernanceFactory,
|
|
457
|
+
launchpadGovernanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BSC].LaunchpadGovernanceFactory,
|
|
458
|
+
streamableFeesLocker: ZERO_ADDRESS,
|
|
459
|
+
streamableFeesLockerV2: getGeneratedAddress(
|
|
460
|
+
CHAIN_IDS.BSC,
|
|
461
|
+
"StreamableFeesLockerV2"
|
|
462
|
+
),
|
|
463
|
+
universalRouter: "0x1906c1d672b88cd1b9ac7593301ca990f94eae07",
|
|
464
|
+
univ2Router02: "0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24",
|
|
465
|
+
permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
466
|
+
bundler: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BSC].Bundler,
|
|
467
|
+
weth: "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c",
|
|
468
|
+
uniswapV2Factory: "0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6",
|
|
469
|
+
uniswapV3Factory: "0xdB1d10011AD0Ff90774D0C6Bb92e5C5c8b4461F7",
|
|
470
|
+
uniswapV4Quoter: "0x9f75dd27d6664c475b90e105573e550ff69437b0"
|
|
471
|
+
},
|
|
441
472
|
[CHAIN_IDS.BASE]: {
|
|
442
473
|
airlock: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].Airlock,
|
|
443
474
|
tokenFactory: "0xf0B5141dD9096254B2ca624dff26024f46087229",
|
|
@@ -479,7 +510,6 @@ var ADDRESSES = {
|
|
|
479
510
|
v4MigratorSplit: "0xa1b06BE4f2fC347d194240D79EDa9F40CCAd9732",
|
|
480
511
|
v4MigratorHook: "0xD6FECFF347c6203A41874e8D77dE669B54e7A500",
|
|
481
512
|
dopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].DopplerHookMigrator,
|
|
482
|
-
rehypeDopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].RehypeDopplerHookMigrator,
|
|
483
513
|
noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].NoOpMigrator,
|
|
484
514
|
governanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].GovernanceFactory,
|
|
485
515
|
noOpGovernanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].NoOpGovernanceFactory,
|
|
@@ -489,7 +519,6 @@ var ADDRESSES = {
|
|
|
489
519
|
CHAIN_IDS.BASE,
|
|
490
520
|
"StreamableFeesLockerV2"
|
|
491
521
|
),
|
|
492
|
-
topUpDistributor: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE].TopUpDistributor,
|
|
493
522
|
universalRouter: "0x6ff5693b99212da76ad316178a184ab56d299b43",
|
|
494
523
|
univ2Router02: "0x4752ba5dbc23f44d87826276bf6fd6b1c372ad24",
|
|
495
524
|
uniswapV2Factory: "0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6",
|
|
@@ -540,7 +569,6 @@ var ADDRESSES = {
|
|
|
540
569
|
v4Migrator: "0xEEe0eCCb54398ce371CAACBCEf076d3Ed597DDb3",
|
|
541
570
|
v4MigratorSplit: "0xa1b06BE4f2fC347d194240D79EDa9F40CCAd9732",
|
|
542
571
|
dopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].DopplerHookMigrator,
|
|
543
|
-
rehypeDopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].RehypeDopplerHookMigrator,
|
|
544
572
|
v4MigratorHook: "0x127cAAAd598Ffa97577940b0a5c3b6150019E500",
|
|
545
573
|
noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].NoOpMigrator,
|
|
546
574
|
governanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].GovernanceFactory,
|
|
@@ -551,7 +579,6 @@ var ADDRESSES = {
|
|
|
551
579
|
CHAIN_IDS.BASE_SEPOLIA,
|
|
552
580
|
"StreamableFeesLockerV2"
|
|
553
581
|
),
|
|
554
|
-
topUpDistributor: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.BASE_SEPOLIA].TopUpDistributor,
|
|
555
582
|
universalRouter: "0x492E6456D9528771018DeB9E87ef7750EF184104",
|
|
556
583
|
univ2Router02: "0x1689E7B1F10000AE47eBfE339a4f69dECd19F602",
|
|
557
584
|
uniswapV2Factory: "0x7Ae58f10f7849cA6F5fB71b7f45CB416c9204b1e",
|
|
@@ -621,7 +648,6 @@ var ADDRESSES = {
|
|
|
621
648
|
v2MigratorSplit: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ROBINHOOD].UniswapV2MigratorSplit,
|
|
622
649
|
v4Migrator: ZERO_ADDRESS,
|
|
623
650
|
dopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ROBINHOOD].DopplerHookMigrator,
|
|
624
|
-
rehypeDopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ROBINHOOD].RehypeDopplerHookMigrator,
|
|
625
651
|
noOpMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ROBINHOOD].NoOpMigrator,
|
|
626
652
|
governanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ROBINHOOD].GovernanceFactory,
|
|
627
653
|
noOpGovernanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ROBINHOOD].NoOpGovernanceFactory,
|
|
@@ -631,8 +657,8 @@ var ADDRESSES = {
|
|
|
631
657
|
CHAIN_IDS.ROBINHOOD,
|
|
632
658
|
"StreamableFeesLockerV2"
|
|
633
659
|
),
|
|
634
|
-
topUpDistributor: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ROBINHOOD].TopUpDistributor,
|
|
635
660
|
universalRouter: "0x8876789976decbfcbbbe364623c63652db8c0904",
|
|
661
|
+
univ2Router02: "0x89e5db8b5aa49aa85ac63f691524311aeb649eba",
|
|
636
662
|
permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
637
663
|
bundler: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.ROBINHOOD].Bundler,
|
|
638
664
|
weth: "0x0bd7d308f8e1639fab988df18a8011f41eacad73",
|
|
@@ -745,6 +771,10 @@ var ADDRESSES = {
|
|
|
745
771
|
CHAIN_IDS.MONAD_MAINNET,
|
|
746
772
|
"DopplerERC20V1"
|
|
747
773
|
),
|
|
774
|
+
doppler404Factory: getGeneratedAddress(
|
|
775
|
+
CHAIN_IDS.MONAD_MAINNET,
|
|
776
|
+
"DN404Factory"
|
|
777
|
+
),
|
|
748
778
|
v3Initializer: ZERO_ADDRESS,
|
|
749
779
|
v3Quoter: "0x661E93cca42AfacB172121EF892830cA3b70F08d",
|
|
750
780
|
lockableV3Initializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].LockableUniswapV3Initializer,
|
|
@@ -761,7 +791,6 @@ var ADDRESSES = {
|
|
|
761
791
|
governanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].GovernanceFactory,
|
|
762
792
|
noOpGovernanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].NoOpGovernanceFactory,
|
|
763
793
|
launchpadGovernanceFactory: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].LaunchpadGovernanceFactory,
|
|
764
|
-
topUpDistributor: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].TopUpDistributor,
|
|
765
794
|
v4ScheduledMulticurveInitializer: "0xCe3099B2F07029b086E5e92a1573C5f5A3071783",
|
|
766
795
|
dopplerHookInitializer: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].DopplerHookInitializer,
|
|
767
796
|
rehypeDopplerHookInitializer: getRehypeDopplerHookInitializerAddress(
|
|
@@ -781,9 +810,9 @@ var ADDRESSES = {
|
|
|
781
810
|
permit2: "0x000000000022D473030F116dDEE9F6B43aC78BA3",
|
|
782
811
|
bundler: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].Bundler,
|
|
783
812
|
dopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].DopplerHookMigrator,
|
|
784
|
-
rehypeDopplerHookMigrator: GENERATED_DOPPLER_DEPLOYMENTS[CHAIN_IDS.MONAD_MAINNET].RehypeDopplerHookMigrator,
|
|
785
813
|
weth: "0x3bd359c1119da7da1d913d1c4d2b7c461115433a",
|
|
786
814
|
// INFO: this is wmon, but we treat it as weth because mon is native
|
|
815
|
+
uniswapV3Factory: "0x204faca1764b154221e35c0d20abb3c525710498",
|
|
787
816
|
uniswapV4Quoter: "0xa222dd357a9076d1091ed6aa2e16c9742dd26891"
|
|
788
817
|
}
|
|
789
818
|
};
|
|
@@ -1377,10 +1406,10 @@ var dopplerDN404Abi = [
|
|
|
1377
1406
|
];
|
|
1378
1407
|
|
|
1379
1408
|
// src/evm/abis/bytecodes/doppler.ts
|
|
1380
|
-
var doppler_default = "0x60a06040523461057b57604051601f615c0338819003918201601f19168301916001600160401b0383118484101761057f578084926101c09460405283398101031261057b5780516001600160a01b038116810361057b5760208201516040830151906060840151608085015160a08601519061007e60c088016105b3565b9161008b60e089016105b3565b91610100890151946100a06101208b016105b3565b976101408b0151978815988915810361057b576101608d01516101808e01516001600160a01b0381169e919d91908f0361057b576101a001519062ffffff821680920361057b576080525f6101a06100f6610593565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201525f6101a0610154610593565b6001815260016020820152600160408201528260608201528260808201528260a0820152600160c0820152600160e082015260016101008201528261012082015282610140820152826101608201528261018082015201526120003016151560011480159061056a575b8015610559575b801561054c575b801561053f575b8015610532575b8015610522575b8015610512575b8015610502575b80156104f6575b80156104ea575b80156104de575b80156104d2575b80156104c6575b6104b35762ffffff1960165416176016558442116104a4578660020b8860020b91818303610463575b5050508484101561045457838503858111610440578a60020b5f811380159061042b575b61041c578915610408578982066103f9578c156103eb57600f8d116103eb578484116103dc5761029861029d928b81046017558b6105c1565b610658565b628000008110156103cf5762ffffff19601854169062ffffff1617601855600d55600e55600f5560105560115562ffffff6012549160181b65ffffff0000001692169065ffffffffffff1916171760125560135562ffffff63ff000000601454921560181b1692169063ffffffff1916171760145560155560018060a01b0319600c541617600c5560405161552f90816106d48239608051818181601c01528181610205015281816102a80152818161045c0152818161050c0152818161098701528181610a1e01528181610af501528181610b9201528181610c5a01528181610e8301528181610f3a0152818161103d015281816110b201528181611d2c01528181611de40152818161217801528181613b8301528181613c4d01528181613fe9015281816140f40152614be40152f35b6335278d125f526004601cfd5b638cc99b7b60e01b5f5260045ffd5b6287e39960e61b5f5260045ffd5b6388ac089760e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6312469eb560e11b5f5260045ffd5b5061043a81610298848d6105c1565b1561025f565b634e487b7160e01b5f52601160045260245ffd5b63536a71af60e01b5f5260045ffd5b8061049b575b610483578a9182610491575b5050610483575f808061023b565b6264847d60e41b5f5260045ffd5b1390505f80610475565b50808212610469565b632ca4094f60e21b5f5260045ffd5b630732d7b560e51b5f523060045260245ffd5b50600130161515610212565b5060023016151561020b565b50600430161515610204565b506008301615156101fd565b506010301615156101f6565b50602030161515600114156101ef565b50604030161515600114156101e8565b50608030161515600114156101e1565b50610100301615156101da565b50610200301615156101d3565b50610400301615156101cc565b5061080030161515600114156101c5565b5061100030161515600114156101be565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b604051906101c082016001600160401b0381118382101761057f57604052565b51908160020b820361057b57565b90670de0b6b3a76400008202905f19670de0b6b3a764000084099282808510940393808503948584111561057b571461065157670de0b6b3a764000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b808202905f1983820990828083109203918083039283670de0b6b3a7640000111561057b57146106c2577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac1066993670de0b6b3a7640000910990828211900360ee1b910360121c170290565b5050670de0b6b3a76400009150049056fe608080604052600436101561005b575b50361561001a575f80fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57005b6393c866c160e01b5f5260045ffd5b5f905f3560e01c908163182148ef146111155750806318cb1700146110f357806321d0ee701461109f578063259982e51461102a578063392e53cd1461100857806339518b5e14610feb578063514ea4bf14610f96578063575e24b414610ee357806357d775f814610ec65780636c2bbe7e14610e705780636c47a6c314610e535780636fe7e6eb14610c19578063897479cb14610bfb57806390ebab0a14610bdd57806391dd734614610b5e5780639ce110d714610b355780639f063efc14610ade578063a4dee15514610ab9578063b137392914610a98578063b356603014610a74578063b47b2fb1146109c6578063b6a8b0fa14610970578063c19d93fb14610921578063c4e833ce146107b6578063c70dfb4f14610795578063ce5494bb146104cb578063d0c52e21146104a9578063d65b4cb91461048b578063dc4c90d314610446578063dc98354e14610276578063dcf93f3214610250578063e1b4af69146101ee5763ee4644300361000f57346101eb57806003193601126101eb576020600d54604051908152f35b80fd5b50346101eb57600490610200366112dc565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303925061024491505057630a85dc2960e01b8152fd5b63570c108560e11b8152fd5b50346101eb57806003193601126101eb57602060ff60145460181c166040519015158152f35b50346101eb5760e03660031901126101eb5761029061116b565b5060a03660231901126101eb576102a561128e565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104375760085460ff81166104295760ff19166001176008556001600160a01b03602435908116908181036104255750600980546001600160a01b0319169190911790556044356001600160a01b038116908181036104255750600a80546001600160a01b03191691909117905560643562ffffff8116810361042157600a5461035a612061565b60b81b62ffffff60b81b169162ffffff60a01b9060a01b169065ffffffffffff60a01b19161717600a5560a43560018060a01b03811680910361042157600b80546001600160a01b031916919091179055601e6103b5612061565b60020b136104125760145460020b6103cb612061565b60020b9081156103fe570760020b6103ef57604051636e4c1aa760e11b8152602090f35b6312469eb560e11b8152600490fd5b634e487b7160e01b83526012600452602483fd5b63013840ad60e51b8152600490fd5b5080fd5b8280fd5b62dc149f60e41b8252600482fd5b63570c108560e11b8152600490fd5b50346101eb57806003193601126101eb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101eb57806003193601126101eb576020600f54604051908152f35b50346101eb57806003193601126101eb5760ff60209154166040519015158152f35b50346101eb5760203660031901126101eb576104e561116b565b600c546001600160a01b031633036107865760ff825460081c161580610765575b610756577f000000000000000000000000000000000000000000000000000000000000000061059d8361057561058360405161054181611333565b610549611f3d565b815260018060a01b03871660208201528360408201526001606082015260405192839160208301611f8a565b03601f1981018352826113b4565b604051809381926348c8949160e01b8352600483016112b2565b0381836001600160a01b0387165af190811561074b57916105d785926105e2959460e09791610729575b50602080825183010191016114d8565b600695919554613282565b9161064160018060a01b0360095416926106306105fe856145cf565b948761061f8761061760018060a01b03600a54166145cf565b9a8b94614611565b600a546001600160a01b0316614611565b60a061063a611f3d565b2090614754565b5050600954600a5492976001600160a01b039182169791909316946106879250610678906001600160801b03608086901d16611472565b926001600160801b0316611472565b906001600160801b0381111561071a57506001600160801b03915b506001600160801b0381111561070b57506001600160801b03935b604080516001600160a01b0397909716875260208701919091526001600160801b03608085811d821692880192909252918216606087015285019190915290811660a08401521660c0820152f35b6001600160801b0316936106bd565b6001600160801b0316916106a2565b61074591503d8086833e61073d81836113b4565b810190611fcb565b5f6105c7565b6040513d86823e3d90fd5b63051a2a5560e51b8252600482fd5b50600454600e5411158061077a575b15610506565b50601154421015610774565b638341a67960e01b8252600482fd5b50346101eb57806003193601126101eb57602060125460020b604051908152f35b50346101eb57806003193601126101eb576020816101c0926101a06040516107dd81611362565b82815282858201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201528060405161083b81611362565b60018152838101600181526040820160018152606083018481526080840185815260a0850186815260c08601906001825260e087019260018452610100880194600186526101208901968a88526101408a01988b8a526101a06101608c019b8d8d5261018081019d8e52019c8d526040519d8e916001835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b50346101eb57806003193601126101eb5760c064ffffffffff600154166002546003546004546005549160065493604051958652602086015260408501526060840152608083015260a0820152f35b50346101eb57600490610982366112dc565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330392506102449150505763567d91d160e01b8152fd5b50346101eb576101603660031901126101eb576109e161116b565b5060a03660231901126101eb5760603660c31901126101eb57610144356001600160401b03811161042157610a1a903690600401611195565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610437576040610a5a610124356140d7565b82516001600160e01b03199092168252600f0b6020820152f35b50346101eb57806003193601126101eb57602060125460181c60020b604051908152f35b50346101eb57806003193601126101eb57602060145460020b604051908152f35b50346101eb57806003193601126101eb5760ff6020915460081c166040519015158152f35b50346101eb57600490610af036611225565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330393506102449250505057630a85dc2960e01b8152fd5b50346101eb57806003193601126101eb57600c546040516001600160a01b039091168152602090f35b50346101eb5760203660031901126101eb576004356001600160401b03811161042157610b8f903690600401611195565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361043757610bd9610bcd848461168f565b604051918291826112b2565b0390f35b50346101eb57806003193601126101eb576020601554604051908152f35b50346101eb57806003193601126101eb576020600e54604051908152f35b5034610e4057610100366003190112610e4057610c3461116b565b60a0366023190112610e4057610c4861128e565b5060e435908160020b809203610e40577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169133839003610e445762ffffff6016541691833b15610e4057604051635275965160e01b815292602435906001600160a01b038216808303610e40576004860152604435946001600160a01b038616808703610e4057602482015260643562ffffff8116808203610e40576044830152608435918260020b808403610e4057606482015260a435936001600160a01b038516808603610e4057608483015260a48201525f8160c481838d5af18015610e3557610e07575b509488979461057594610da6948a9994610dc29960405196610d5a88611333565b60405194610d678661137e565b85526020850152604084015260608301526080820152835260018060a01b03166020830152604082015285606082015260405192839160208301611f8a565b6040519485809481936348c8949160e01b8352600483016112b2565b03925af18015610dfc57610de3575b604051636fe7e6eb60e01b8152602090f35b610df6913d8091833e61073d81836113b4565b5f610dd1565b6040513d84823e3d90fd5b610da69399509461057594610e245f610dc299949a959b986113b4565b5f9a94509450949791969095610d39565b6040513d5f823e3d90fd5b5f80fd5b63570c108560e11b5f5260045ffd5b34610e40575f366003190112610e40576020601154604051908152f35b34610e4057610e7e36611225565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039350610e449250505057630a85dc2960e01b5f5260045ffd5b34610e40575f366003190112610e40576020601354604051908152f35b34610e4057610140366003190112610e4057610efd61116b565b5060a0366023190112610e405760603660c3190112610e4057610124356001600160401b038111610e4057610f36903690600401611195565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610e4457606062ffffff610f766120bd565b906040939293519363ffffffff60e01b1684526020840152166040820152f35b34610e40576020366003190112610e40576004355f526007602052608060405f205460ff604051918060020b83528060181c60020b6020840152600180851b038160301c16604084015260b01c166060820152f35b34610e40575f366003190112610e40576020601054604051908152f35b34610e40575f366003190112610e4057602060ff600854166040519015158152f35b34610e4057611038366111c2565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039050610e4457306001600160a01b03909116036110905760405163259982e560e01b8152602090f35b636d1ed89b60e01b5f5260045ffd5b34610e40576110ad366111c2565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039150610e44905057630a85dc2960e01b5f5260045ffd5b34610e40575f366003190112610e4057602062ffffff60165416604051908152f35b34610e40575f366003190112610e4057600954600a54600b546001600160a01b039283168452818316602085015260a082811c62ffffff16604086015260b89290921c60020b6060850152909116608083015290f35b600435906001600160a01b0382168203610e4057565b35906001600160a01b0382168203610e4057565b9181601f84011215610e40578235916001600160401b038311610e405760208381860195010111610e4057565b90610160600319830112610e40576004356001600160a01b0381168103610e40579160a0602319820112610e4057602491608060c319830112610e405760c49161014435906001600160401b038211610e405761122191600401611195565b9091565b906101a0600319830112610e40576004356001600160a01b0381168103610e40579160a0602319820112610e4057602491608060c319830112610e405760c4916101443591610164359161018435906001600160401b038211610e405761122191600401611195565b60c435906001600160a01b0382168203610e4057565b35908160020b8203610e4057565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b610120600319820112610e40576004356001600160a01b0381168103610e40579160a0602319830112610e405760249160c4359160e4359161010435906001600160401b038211610e405761122191600401611195565b608081019081106001600160401b0382111761134e57604052565b634e487b7160e01b5f52604160045260245ffd5b6101c081019081106001600160401b0382111761134e57604052565b60a081019081106001600160401b0382111761134e57604052565b606081019081106001600160401b0382111761134e57604052565b601f909101601f19168101906001600160401b0382119082101761134e57604052565b359062ffffff82168203610e4057565b91908260a0910312610e40576040516113ff8161137e565b608061144b81839561141081611181565b855261141e60208201611181565b602086015261142f604082016113d7565b6040860152611440606082016112a4565b606086015201611181565b910152565b600201908160021161145e57565b634e487b7160e01b5f52601160045260245ffd5b9190820180921161145e57565b9060405161148c81611333565b9154600281810b8452601882901c900b6020840152603081901c6001600160801b0316604084015260b01c60ff166060830152565b600f0b60016001607f1b0319811461145e575f0390565b9190826040910312610e40576020825192015190565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b9061016092611542836060936114ee565b805160020b60a0840152602081015160020b60c0840152604081015160e084015201516101008201526101406101208201525f6101408201520190565b6001600160a01b03918216815291166020820152604081019190915260600190565b9190820391821161145e57565b6001600160401b03811161134e5760051b60200190565b906115cf826115ae565b6115dc60405191826113b4565b82815280926115ed601f19916115ae565b01905f5b8281106115fd57505050565b60209060405161160c81611333565b5f81525f838201525f60408201525f6060820152828285010152016115f1565b8051156116395760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156116395760400190565b80518210156116395760209160051b010190565b9081549060181b65ffffff000000169065ffffff0000001916179055565b919082015f61010084830312610e40576116b5604051926116af84611333565b856113e7565b938483526116c560a08201611181565b80602085015260e06116d960c084016112a4565b92836040870152013580151594858203610e40576060015260018060a01b03169060020b92611c4e5750600164ffffffffff1981541617600155606084019261173c845160020b61173761172c85614ef6565b60125460020b61209f565b614f2e565b6014549060ff8260181c165f14611c3b5761175a9160020b9061209f565b945b61176584613378565b61176e85613378565b956040519561177c87611399565b808752602087018181526118d8604089019a888c526118d0600d54956117a06136a5565b956118088c6118036117fa6117db6117d26117c96117c46117bf61480d565b614ea2565b6136c3565b60135490614e80565b60105490614ebe565b6117f46117eb60105480936115a1565b916011546115a1565b90615033565b600d5490615113565b6136d4565b8c929083811315611c2c5761186b9293508981115f14611c275750885b928d60185460020b835160020b8082135f14611c1f5750905b50818a5260145460181c60ff1615611c105761185f9150895160020b61209f565b905b5160020b90614f2e565b60020b60208701525b855160020b966020870197885160020b14155f14611c055760ff60145460181c166118c5836118a68a5160020b613378565b8b516001600160801b039491906118bf9060020b613378565b91614fcc565b1660408801526115a1565b90848861374b565b996118eb6118e68c51611450565b6115c5565b985160020b915160020b9060018060801b03905116906040519261190e84611333565b8352602083015260408201526001606082015261192a8861162c565b526119348761162c565b50805160020b915160020b90604060018060801b0391015116906040519261195b84611333565b835260208301526040820152600260608201526119778661164d565b526119818561164d565b50835b8751811015611a3457611997818961165d565b515160020b60206119a8838b61165d565b51015160020b6001600160801b0360406119c2858d61165d565b51015116836003019182600311611a2057611a1992600195949260ff92604051946119ec86611333565b855260208501526040840152166060820152611a0783611450565b90611a12828b61165d565b528861165d565b5001611984565b634e487b7160e01b89526011600452602489fd5b50611a429293969585613a82565b611a4b8261162c565b516001855260076020526040852090805162ffffff198354169062ffffff16178255611a7e602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b16179055611ac58261164d565b516002855260076020526040852090805162ffffff198354169062ffffff16178255611af8602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b16179055835b8351811015611be557611b53611b4d82611450565b8461165d565b518160030180600311611bd1579060019291875260076020526040872090805162ffffff198354169062ffffff16178255611b95602082015160020b83611671565b604081015190825490606060ff60b01b91015160b01b16918560301b8660b01b039060301b16908560301b8660b81b0319161717905501611b38565b634e487b7160e01b87526011600452602487fd5b509291505060405190611bf96020836113b4565b81525f36602083013790565b8b60408801526115a1565b611c199161335b565b90611861565b90509061183e565b611825565b50508087526020870152611874565b611c489160020b9061335b565b9461175c565b925f9250829160015b6015546003018060031161145e57811015611ddc57805f526007602052611c8060405f2061147f565b60408101516001600160801b031680611c9e575b5050600101611c57565b611d279160409160ff6014999598995460181c1691825f14611dce57805160020b925b15611db95760ff6060611ce3611cde602085015160020b95613263565b6114c1565b9201511691845193611cf485611333565b60020b845260020b6020840152600f0b838301526060820152815180938192632d35e7ed60e11b83528c60048401611531565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610e3557600192611d7e925f905f92611d86575b50611d789192613282565b96613282565b93905f611c94565b611d789250611dac915060403d8111611db2575b611da481836113b4565b8101906114d8565b91611d6d565b503d611d9a565b60ff6060611ce3611cde845160020b95613263565b602081015160020b92611cc1565b5091929390947f000000000000000000000000000000000000000000000000000000000000000091611e1860018060a01b0383511630856132c4565b926020830192611e3260018060a01b0385511630846132c4565b945f8113611ed6575b5050848413611e6a575b5050505050604051916020830152604082015260408152611e676060826113b4565b90565b91516001600160a01b039283169216823b15611ed25791611ea6939185809460405196879586948593630b0d9c0960e01b85526004850161157f565b03925af18015610dfc57611ebd575b808080611e45565b611ec88280926113b4565b6101eb5780611eb5565b8480fd5b90516001600160a01b0383811692911690823b15610e4057611f1392855f809460405196879586948593630b0d9c0960e01b85526004850161157f565b03925af18015610e3557611f28575b80611e3b565b611f359195505f906113b4565b5f935f611f22565b60405190611f4a8261137e565b6009546001600160a01b039081168352600a54808216602085015260a081901c62ffffff16604085015260b81c60020b6060840152600b54166080830152565b91909160e06060610100830194611fa28482516114ee565b60208101516001600160a01b031660a0850152604081015160020b60c085015201511515910152565b602081830312610e40578051906001600160401b038211610e40570181601f82011215610e40578051906001600160401b03821161134e576040519261201b601f8401601f1916602001856113b4565b82845260208383010111610e4057815f9260208093018386015e8301015290565b600f91820b910b019060016001607f1b0319821260016001607f1b0383131761145e57565b6084358060020b8103610e405790565b60020b627fffff19811461145e575f0390565b60020b60010190627fffff8213627fffff1983121761145e57565b9060020b9060020b0190627fffff198212627fffff83131761145e57565b5f80549160ff8360081c16613254576010544210613245576120dd61480d565b64ffffffffff600154161015613234575f9260115442101580613229575b612e7e575b509060ff5f5416155f14612e105761211661480d565b9060015461212b64ffffffffff8216846115a1565b64ffffffffff1990911664ffffffffff84161760015560035460025f526007602052946121645f8051602061550383398151915261147f565b9461219c60a06121753660246113e7565b207f0000000000000000000000000000000000000000000000000000000000000000614754565b505050946121a986614841565b608435978860020b90818a14159283610e40578a6121c691614f2e565b905f916121d68d600554906136d4565b5f198a0194908a861161145e575f8f966121f26121f791613a72565b614fac565b80971115911280612e09575b15612cac575050506122249192505160020b9161221e615332565b90614ebe565b955b60018111612c165750612262908a60055561225c670de0b6b3a764000061224f89600254614ebe565b9880612c0d575b05614ef6565b9061209f565b90612c09578761227191614f2e565b9061228d8861173761172c670de0b6b3a76400005f9905614ef6565b9760145460ff8160181c165f14612bf6576122ab9060020b8a61209f565b955b8960ff60145460181c16809b811580612be6575b15612baa57505050612ba6576122d7908361209f565b945b6122e283613378565b986122ec87613378565b908b15612b9d5715612aea5760016123058c8c84615420565b91818060a01b038c1690828060a01b0316038060ff1d9081011891818060801b031661233183826150ca565b928260601b9109151516015b975b60155461234e6118e682611450565b9060018a52600760205261236460408b2061147f565b61236d8361162c565b526123778261162c565b5060028a52600760205261238d60408b2061147f565b6123968361164d565b526123a08261164d565b50895b818110612aa25750506123c1906123bb3660246113e7565b90614afa565b5060145460181c60ff1699908a156129fc576044356001600160a01b03811681036129f857612402906123f3906145cf565b6001600160801b038316611472565b6006549061241a906001600160801b038316906115a1565b916024356001600160a01b03811681036129f4579e6118e69f936124728e969461245d8c9561244b89879a506145cf565b9060801d6001600160801b0316611472565b60809190911d6001600160801b0316906115a1565b9e5b61247f3660246113e7565b906124886136a5565b958361299457505050505060020b80825260208201528260408201525b604081018051909c6125ab916125a391612591916001600160801b031615612985575b6124d33660246113e7565b906124fa6124df6136a5565b976118036117fa6117db6117d26117c96117c46117bf61480d565b88808213156129715750818111156129685750612555815b928d606060185460020b920191825160020b8082135f146129605750905b60020b90818b5260ff60145460181c165f14611c105761185f91508a5160020b61209f565b60020b60208801525b865160020b976020880198895160020b14155f14612956575060ff60145460181c166118c5836118a68a5160020b613378565b878561259e3660246113e7565b61374b565b9e8f51611450565b9b6020825160020b92015160020b9060018060801b0390511690604051926125d284611333565b835260208301526040820152600160608201526125ee8c61162c565b526125f88b61162c565b50805160020b915160020b90604060018060801b0391015116906040519261261f84611333565b8352602083015260408201526002606082015261263b8a61164d565b526126458961164d565b50875b8b518110156126f9578b602061266d83612662818561165d565b515160020b9361165d565b51015160020b8d60406126878560018060801b039361165d565b510151168360030191826003116126e5579260ff6126de938f9360019796604051946126b286611333565b8552602085015260408401521660608201526126d76126d085611450565b809361165d565b528c61165d565b5001612648565b634e487b7160e01b8d52601160045260248dfd5b50612719919293949596999a979a6127123660246113e7565b918a613a82565b6127228761162c565b5160018a52600760205260408a2090805162ffffff198354169062ffffff16178255612755602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b1617905561279c8761164d565b5160028a52600760205260408a2090805162ffffff198354169062ffffff161782556127cf602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b16179055885b6015548110156128fc578651811061285957806003018060031161284557906001918b5260076020528a60408120555b0161280f565b634e487b7160e01b8b52601160045260248bfd5b61286b61286582611450565b8961165d565b5181600301806003116128e85790600192918c52600760205260408c2090805162ffffff198354169062ffffff161782556128ad602082015160020b83611671565b604081015190825490606060ff60b01b91015160b01b16918560301b8660b01b039060301b16908560301b8660b81b0319161717905561283f565b634e487b7160e01b8c52601160045260248cfd5b5090919295507f223157ec47d7bd04fa3ed10c0a8adb38faf97b51ec856a777425a2e39253bd739450608093966040519360020b845260020b602084015260020b60408301526060820152a15b6315d7892d60e21b929190565b60408801526115a1565b905090612530565b61255590612512565b9250508b60020b808852602088015261255e565b602085015160020b85526124c8565b838111156129ad5750506129a89450614ca4565b6124a5565b92509350506129e991508c60020b84528960020b60208501526129cf8d613378565b6001600160801b0393906129e28c613378565b9115614fcc565b1660408201526124a5565b8c80fd5b8a80fd5b6024356001600160a01b03811681036129f857612a2f90612a1c906145cf565b608083901d6001600160801b0316611472565b60065490612a4b90608083901d6001600160801b0316906115a1565b916044356001600160a01b03811681036129f4579e6118e69f93612a9c8e9694612a8b8c95612a7c89879a506145cf565b906001600160801b0316611472565b6001600160801b03909116906115a1565b9e612474565b80600301806003116128e857906001918c526007602052612ae360408d20612ad2612acc84611450565b9161147f565b612adc828861165d565b528561165d565b50016123a3565b612af58b8b836153dd565b8a826001600160a01b0380831690821611612b92575b506001600160a01b038316918215612b865760601b600160601b600160e01b0316926001600160a01b03828116929190910316612b4982828661527d565b938215612b725709612b63575b808206151591040161233d565b906001019081612b56575b8880fd5b634e487b7160e01b8c52601260045260248cfd5b62bfc9218b526004601cfd5b8c935090505f612b0b565b5050869761233f565b8680fd5b91989392509081612bd5575b50612bc2575b506122d9565b612bce9196508361335b565b945f612bbc565b905060020b8460020b13155f612bb6565b508060020b8760020b12156122c1565b612c039060020b8a61335b565b956122ad565b8580fd5b89600255612256565b612c1f906136ec565b5f198101818111611a20576121f2612c3691613a72565b808c10612c44575b50612226565b612c59612c52989298615332565b918d615033565b670de0b6b3a76400000390670de0b6b3a76400008211612c9857612c8a612c919392670de0b6b3a764000092614e80565b0590614ebe565b955f612c3e565b634e487b7160e01b8a52601160045260248afd5b9192909115612d0957505083612b6e578a612cc691614f2e565b91612cd2612c52615332565b670de0b6b3a76400000390670de0b6b3a76400008211612c9857612c8a612d039392670de0b6b3a764000092614e80565b95612226565b93509350975050612d2f60125460020b670de0b6b3a76400006002540560020b9061209f565b60185460020b5f9381135f14612dfe57905b6014549260ff8460181c1692835f14612deb57612d61915160020b61209f565b915b829985610e4057612db394612d7b8e612dab96614f2e565b938315612dd857612d8f9160020b9061209f565b915b15612dc3578160020b8160020b135f14612dbc575061335b565b60020b614e5c565b955f9695612226565b905061335b565b8160020b8160020b125f14612dbc575061335b565b612de59160020b9061335b565b91612d91565b612df8915160020b61335b565b91612d63565b505f92508990612d41565b5080612203565b915060ff60145460181c168080612e67575b8115612e47575b50612e38576240000090612949565b63016ccb0760e01b5f5260045ffd5b90501580612e56575b5f612e29565b5060c4358015158114612e50575f80fd5b905060c43580159081158103610e40575090612e22565b600454600e54111561321a5760019060ff1916175f557fe8775e4a58023f399765c3455b45eebcc45ad6b99607a1163f02e1318430970c5f80a1612ed3612ecb60a06121753660246113e7565b505050614841565b601554612ee26118e682611450565b60015f52600760205290612f025f805160206154e383398151915261147f565b612f0b8361162c565b52612f158261162c565b5060025f526007602052612f355f8051602061550383398151915261147f565b612f3e8361164d565b52612f488261164d565b505f5b8181106131e9575050612f63906123bb3660246113e7565b5060145460181c60ff1690811561319e576044356001600160a01b0381168103610e4057612fce918491612fb8906001600160801b0390612fa3906145cf565b16600f0b60018060801b0392600f0b9061203c565b165b60035490612fc93660246113e7565b614ca4565b90604080519290612fdf81856113b4565b60018452601f19015f5b81811061316f575050805160020b6020820191825160020b90604060018060801b0391015116906040519261301d84611333565b835260208301526040820152600160608201526130398461162c565b526130438361162c565b505160020b901561314657608435928360020b8403610e405761308061307a613075613093948761309898509061209f565b613378565b91613378565b9061308c3660246113e7565b9184613a82565b61162c565b5160015f52600760205260405f2090805162ffffff198354169062ffffff161782556130cb602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b161790555f5b6015546001810180911161145e5781101561313f578061312c600192611450565b5f5260076020525f60408120550161310b565b505f612100565b608435928360020b8403610e405761308061307a6130756130939461225c886130989950612071565b60209060405161317e81611333565b5f81525f838201525f60408201525f606082015282828801015201612fe9565b6024356001600160a01b0381168103610e4057612fce9184916131e3906001600160801b03906131cd906145cf565b6001600160801b039360801d9116600f0b61203c565b16612fba565b80600301908160031161145e576001915f52600760205261321360405f20612ad2612acc84611450565b5001612f4b565b631ed9bcf960e01b5f5260045ffd5b5060ff8116156120fb565b6315d7892d60e21b92505f91508190565b630fc95b4360e01b5f5260045ffd5b636fce6c3960e01b5f5260045ffd5b6001607f1b81101561327557600f0b90565b6335278d125f526004601cfd5b6132a5906132978360801d8260801d01614ed9565b92600f0b90600f0b01614ed9565b60018060801b03169060801b1790565b90816020910312610e40575190565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa908115610e35575f91613311575090565b90506020813d602011613338575b8161332c602093836113b4565b81010312610e40575190565b3d915061331f565b60020b5f190190627fffff198212627fffff83131761145e57565b600291820b910b0390627fffff198212627fffff83131761145e57565b60020b908160ff1d82810118620d89e881116136925763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b189160028116613676575b6004811661365a575b6008811661363e575b60108116613622575b60208116613606575b604081166135ea575b608081166135ce575b61010081166135b2575b6102008116613596575b610400811661357a575b610800811661355e575b6110008116613542575b6120008116613526575b614000811661350a575b61800081166134ee575b6201000081166134d2575b6202000081166134b7575b62040000811661349c575b6208000016613483575b5f1261347b575b0160201c90565b5f1904613474565b6b048a170391f7dc42444e8fa290910260801c9061346d565b6d2216e584f5fa1ea926041bedfe9890920260801c91613463565b916e5d6af8dedb81196699c329225ee6040260801c91613458565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c9161344d565b916f31be135f97d08fd981231505542fcfa60260801c91613442565b916f70d869a156d2a1b890bb3df62baf32f70260801c91613438565b916fa9f746462d870fdf8a65dc1f90e061e50260801c9161342e565b916fd097f3bdfd2022b8845ad8f792aa58250260801c91613424565b916fe7159475a2c29b7443b29c7fa6e889d90260801c9161341a565b916ff3392b0822b70005940c7a398e4b70f30260801c91613410565b916ff987a7253ac413176f2b074cf7815e540260801c91613406565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c916133fc565b916ffe5dee046a99a2a811c461f1969c30530260801c916133f2565b916fff2ea16466c96a3843ec78b326b528610260801c916133e9565b916fff973b41fa98c081472e6896dfb254c00260801c916133e0565b916fffcb9843d60f6159c9db58835c9266440260801c916133d7565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c916133ce565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c916133c5565b916ffff97272373d413259a46990580e213a0260801c916133bc565b826345c3193d60e11b5f5260045260245ffd5b604051906136b282611399565b5f6040838281528260208201520152565b905f19820191821360011661145e57565b81810392915f13801582851316918412161761145e57565b801561145e575f190190565b60020b9060020b90811561371a57627fffff1981145f1983141661145e570590565b634e487b7160e01b5f52601260045260245ffd5b8181029291811591840414171561145e57565b811561371a570490565b9291909161375761480d565b613764601354809261372e565b906137726010548093611472565b9060115492838311613a46575b61378761480d565b6001810180911161145e576137a49261379f9161372e565b611472565b91808311613a3e575b50808214613a01576137e06137cf6137e6936117f46117eb60105480936115a1565b916117f46117eb60105480936115a1565b906115a1565b936015549384805b6139c0575b5061380a6020613814920194855160020b9061335b565b8560020b906136f8565b918461384b60ff60145460181c1694855f1461398657606085015160020b90818160020b125f1461397f57505b97600d5490615113565b9180613857838561372e565b1161396f575050925b5160020b9461386e856115ae565b9561387c60405197886113b4565b858752601f1961388b876115ae565b015f5b8181106139585750505f905b8682106138ab575050505050505090565b6138b5828961165d565b519060020b905260016138e76138d9846138cf858c61165d565b515160020b61209f565b606086015160020b90614f2e565b9160206138f4828b61165d565b51018360020b9052613939878a613932602061392786613921613917828761165d565b515160020b613378565b9461165d565b51015160020b613378565b9089614fcc565b6040613945838c61165d565b510190838060801b03169052019061389a565b6020906139636136a5565b82828c0101520161388e565b6139799250613741565b92613860565b9050613841565b60608501613997815160020b612071565b60020b8260020b125f146139ad57505b976117fa565b6139bb91505160020b612071565b6139a7565b945f19860186811161145e576139d590615001565b6139de87615001565b036139fb576139ef6139f5916136ec565b956136ec565b806137ee565b946137f3565b505050505050604051613a156020826113b4565b5f81525f805b818110613a2757505090565b602090613a326136a5565b82828601015201613a1b565b91505f6137ad565b83925061377f565b805115158252602080820151908301526040908101516001600160a01b0316910152565b600160ff1b811461145e575f0390565b9392916001600160a01b039182169116818103613f83575b50505f915f5b8451811015613c0d576001600160801b036040613abd838861165d565b51015116613ace575b600101613aa0565b613b7e90604060ff60145460181c16805f14613bf557613aee838961165d565b515160020b905b15613be1576020613b06848a61165d565b51015160020b5b613b2c6001600160801b0384613b23878d61165d565b51015116613263565b60ff6060613b3a878d61165d565b5101511691845193613b4b85611333565b60020b845260020b6020840152600f0b838301526060820152815180948192632d35e7ed60e11b83528860048401611531565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610e3557600192613bc4575b509050613ac6565b613bdb9060403d8111611db257611da481836113b4565b50613bbc565b613beb838961165d565b515160020b613b0d565b6020613c01848a61165d565b51015160020b90613af5565b509190928051905f19820191821161145e57602091613c2b9161165d565b5101516018549060181b65ffffff000000169065ffffff0000001916176018557f0000000000000000000000000000000000000000000000000000000000000000613c8060018060a01b0385511630836132c4565b906020850194613c9a60018060a01b0387511630846132c4565b925f8113613f1c575b848413613ea7575b848112613db4575b5050828212613cc4575b5050509050565b84516001600160a01b039081169591169190823b15613db05760405195632961046560e21b87526004870152838660248183875af195861561074b57849596613d93575b505160209291613d2d916001600160a01b0316908390613d2790613a72565b91614611565b600460405180958193630476982d60e21b83525af1908115613d875750613d58575b80808392613cbd565b613d799060203d602011613d80575b613d7181836113b4565b8101906132b5565b505f613d4f565b503d613d67565b604051903d90823e3d90fd5b84613da29195929394956113b4565b613db057908392915f613d08565b8380fd5b81516001600160a01b03848116939116833b15612ba65760405190632961046560e21b82526004820152868160248183885af18015613e9c57908791613e87575b505080516001600160a01b031680613e73575b50516001600160a01b0316613e6957613e22602091613a72565b915b600460405180948193630476982d60e21b83525af1801561074b57613e4a575b80613cb3565b613e629060203d602011613d8057613d7181836113b4565b505f613e44565b5060208491613e24565b613e819084613d2785613a72565b5f613e08565b81613e91916113b4565b612c0957855f613df5565b6040513d89823e3d90fd5b86516001600160a01b038481169116813b15612ba65785613ee392889283604051809681958294630b0d9c0960e01b845230906004850161157f565b03925af18015613f1157908691613efc575b5050613cab565b81613f06916113b4565b611ed257845f613ef5565b6040513d88823e3d90fd5b81516001600160a01b03908116908416803b15610e4057825f91613f599383604051809681958294630b0d9c0960e01b845230906004850161157f565b03925af18015610e3557613f6e575b50613ca3565b613f7b9195505f906113b4565b5f935f613f68565b60405191613f9083611399565b81108252600160208301526040820152613fc860405191633cf3645360e21b8352613fbe60048401856114ee565b60a4830190613a4e565b6101206101048201525f610124820152602081610144815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610e355761401c575b80613a9a565b6140349060203d602011613d8057613d7181836113b4565b505f614016565b6101409290916140c391906001600160a01b0361405782611181565b1684526001600160a01b0361406e60208301611181565b16602085015262ffffff614084604083016113d7565b166040850152614096606082016112a4565b60020b60608501526001600160a01b03906140b390608001611181565b16608084015260a0830190613a4e565b6101206101008201525f6101208201520190565b60ff5f54166145c1576141299060a06140f13660246113e7565b207f00000000000000000000000000000000000000000000000000000000000000009061411e8183614754565b949290969150614841565b60145460181c60ff1680156145ae5760185460181c60020b8260020b135b60015f5260076020525f805160206154e38339815191525460020b9082156145a257818460020b12905b156144c05750505050906141ea91602060ff60145460181c16805f146144ac576141a561307560185460181c60020b612084565b604051916141b283611399565b151582526001838301526001600160a01b031660408083019190915251633cf3645360e21b815294859182919060246004840161403b565b03815f6001600160a01b0386165af18015610e3557614479575b61420e9250614754565b50509050925b60c435908115158203610e405762ffffff91610fff9182911561447057165b169116620f42408183020491010360ff60145460181c165f146143c757608082901d5f600f82900b1261438257600354614276916001600160801b031690611472565b6003555b600f82900b5f81126143285750505f805160206154c3833981519152916142ad60609260018060801b03166004546115a1565b6004555b600454600f548110156142e4575b600354906040519260020b835260208301526040820152a163b47b2fb160e01b905f90565b61010061ff00195f5416175f557f628a470bfdde264ef77cd19acfbfca22b3e4413adaf5837ec9fbc0043e35793f602061431c61480d565b604051908152a16142bf565b62ffffff919250614338906114c1565b9116620f42400391620f4240831161145e575f805160206154c38339815191529260609261437a91614372916001600160801b031661518e565b600454611472565b6004556142b1565b61438b906114c1565b62ffffff8216620f42400390620f4240821161145e576143bf916143b7916001600160801b031661518e565b6003546115a1565b60035561427a565b90600f81900b5f811261443357506003546143ec906001600160801b03831690611472565b6003555b60801d905f600f83900b1261442557505f805160206154c38339815191529161437a60609260018060801b03166004546115a1565b9061433862ffffff916114c1565b61443c906114c1565b62ffffff8316620f42400390620f4240821161145e57614468916143b7916001600160801b031661518e565b6003556143f0565b600c1c16614233565b6020833d6020116144a4575b81614492602093836113b4565b81010312610e405761420e9250614204565b3d9150614485565b6141a561307560185460181c60020b613340565b97949392976144d3575b50505050614214565b614534949750906144f0602092825f146145995761307590613340565b604051916144fd83611399565b1582526001838301526001600160a01b031660408083019190915251633cf3645360e21b815294859182919060246004840161403b565b03815f6001600160a01b0386165af18015610e3557614566575b6145589250614754565b50509050925f8080806144ca565b6020833d602011614591575b8161457f602093836113b4565b81010312610e4057614558925061454e565b3d9150614572565b61307590612084565b818460020b1390614171565b60185460181c60020b8260020b12614147565b5063b47b2fb160e01b905f90565b6001600160a01b0316806145e257504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115610e35575f91613311575090565b9091906001600160a01b038116908161469f5750505f80808093855af1156146365750565b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b60205f604481949682604095865198899363a9059cbb60e01b855260018060a01b0316600485015260248401525af13d15601f3d116001855114161716928281528260208201520152156146f05750565b6040516390bfb86560e01b8152600481019190915263a9059cbb60e01b602482015260806044820152601f3d01601f191660a0810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b919060209060405182810191825260066040820152604081526147786060826113b4565b519020604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa918215610e35575f926147d9575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d602011614805575b816147f5602093836113b4565b81010312610e405751905f6147b1565b3d91506147e8565b60105480421061483b5761482461482d91426115a1565b60135490613741565b6001810180911161145e5790565b50600190565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b031611614ada57602081901b600160201b600160c01b0316808015610e4057693627a301d71055774c859160ff8260018060801b031060071b83811c60018060401b031060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c821060031b177b01c1818141808140018080c0814100004181408140c0c100414140c160221b6f8421084210842108cc6318c6db6d54be85831c1c601f161a17169160808310155f14614ace5750607e1982011c5b800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c600160321b90800260cd1c169d600160331b9060cc1c169c600160341b9060cb1c169b600160351b9060ca1c169a600160361b9060c91c1699600160371b9060c81c1698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c1690607f190160401b1717171717171717171717171717026fdb2df09e81959a81455e260799a0632f6f028f6481ab7f045a5af012a19d003aa919820160801d60020b910160801d60020b918282145f14614aaa5750905090565b6001600160a01b0390811690614abf84613378565b1611614ac9575090565b905090565b905081607f031b61491e565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b91905f905f905f5b8551811015614c8d576001600160801b036040614b1f838961165d565b51015116614b30575b600101614b02565b9192614bdf604060ff60145460181c16805f14614c7557614b51868a61165d565b515160020b905b15614c61576020614b69878b61165d565b51015160020b5b8960ff6060614b9b8a6139216001600160801b0389614b8f848961165d565b51015116600f0b6114c1565b5101511691845193614bac85611333565b60020b845260020b6020840152600f0b838301526060820152815180938192632d35e7ed60e11b83528760048401611531565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610e3557600192614c36925f905f92614c3e575b50614c309192613282565b95613282565b929050614b28565b614c309250614c5b915060403d8111611db257611da481836113b4565b91614c25565b614c6b868a61165d565b515160020b614b70565b6020614c81878b61165d565b51015160020b90614b58565b505091909250614c9f82600654613282565b600655565b9093929193614cb16136a5565b9480614e0457505f5b6001600160a01b031680614cde5750505060020b80835260208301525f6040830152565b919250614de991614d9090606090614d829060b56001600160881b03821160071b82811c6001600160481b031060061b1782811c64ffffffffff1060051b1782811c62ffffff1060041b17600181811c9290921b9083901c62010000010260121c80830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c908190048111900360301b6001600160a01b0316614841565b940193845160020b90614f2e565b92614dd1602087019460020b9182865260ff60145460181c1692835f14614df15750614dc690865160020b905160020b9061335b565b60020b808852613378565b93516001600160801b0394906129e29060020b613378565b166040830152565b614dff915160020b9061209f565b614dc6565b8160ff60145460181c165f14614e3d5750600654614e3891614e329160801d6001600160801b0316906115a1565b826152fd565b614cba565b600654614e3892614e57916001600160801b0316906115a1565b6152fd565b90670de0b6b3a7640000820291808305670de0b6b3a7640000149015171561145e57565b81810292915f8212600160ff1b82141661145e57818405149015171561145e57565b9060018201915f60018412911290801582169115161761145e57565b9190915f838201938412911290801582169115161761145e57565b9081600f0b918203614ee757565b6393dafdf160e01b5f5260045ffd5b80628000000160181c15614f11576335278d125f526004601cfd5b60020b90565b9060020b9060020b02908160020b91820361145e57565b9060ff60145460181c165f14614f7a575f8260020b125f14614f6d57614f6881614f63614f5e82611e679661335b565b612084565b6136f8565b614f17565b614f6881611e67936136f8565b5f8260020b125f14614f9357614f6881611e67936136f8565b614f6881614f63614fa782611e679661209f565b613340565b6117fa6117db6117d26117c96117c4611e6795614fc761480d565b614ebe565b90929091908015614ffb575f19810190811161145e57915b15614ff257611e6792615420565b611e67926153dd565b91614fe4565b61501c6150136150259261379f61480d565b6013549061372e565b60105490611472565b601154808211614ac9575090565b90670de0b6b3a76400008202905f19670de0b6b3a7640000840992828085109403938085039485841115610e4057146150c357670de0b6b3a764000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b81810291905f1982820991838084109303928084039384600160601b1115610e40571461510a57600160601b910990828211900360a01b910360601c1790565b50505060601c90565b808202905f1983820990828083109203918083039283670de0b6b3a76400001115610e40571461517d577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac1066993670de0b6b3a7640000910990828211900360ee1b910360121c170290565b5050670de0b6b3a764000091500490565b808202905f1983820990828083109203918083039283620f42401115610e4057146151ee577fde8f6cefed634549b62c77574f722e1ac57e23f24d8fd5cb790fb65668c2613993620f4240910990828211900360fa1b910360061c170290565b5050620f424091500490565b90606082901b905f19600160601b840992828085109403938085039485841115610e4057146150c3578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b91818302915f1981850993838086109503948086039586851115610e4057146152f5579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b90615307916151fa565b6001600160a01b03811161532d57600160a01b811015613275576001600160a01b031690565b505f90565b615378612dab615348612ecb60a0612175611f3d565b60145460181c60ff16156153ac5760125460020b808260020b135f146153a557505b60125460181c60020b61335b565b61538a614824601154601054906115a1565b90811561371a57600160ff1b81145f1983141661145e570590565b905061536a565b60125460020b808260020b125f146153a5575061536a565b6001600160a01b03918216908216039190821161145e57565b611e67926154159290916001600160a01b038083169082161161541a575b6001600160a01b039161540e91906153c4565b16906151fa565b615474565b906153fb565b611e6792615415929091906001600160a01b038082169083161161546e575b6154676154586001600160a01b038381169085166150ca565b926001600160a01b03926153c4565b169161527d565b9061543f565b6001600160801b0381169190820361548857565b60405162461bcd60e51b81526020600482015260126024820152716c6971756964697479206f766572666c6f7760701b6044820152606490fdfe27db09392d7d230eb65a11bd84925fb8da90df8a067ca8a4fc2933b4f637262bb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b828b7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96da164736f6c634300081a000a";
|
|
1409
|
+
var doppler_default = "0x60a06040523461057b57604051601f615c1a38819003918201601f19168301916001600160401b0383118484101761057f578084926101c09460405283398101031261057b5780516001600160a01b038116810361057b5760208201516040830151906060840151608085015160a08601519061007e60c088016105b3565b9161008b60e089016105b3565b91610100890151946100a06101208b016105b3565b976101408b0151978815988915810361057b576101608d01516101808e01516001600160a01b0381169e919d91908f0361057b576101a001519062ffffff821680920361057b576080525f6101a06100f6610593565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201525f6101a0610154610593565b6001815260016020820152600160408201528260608201528260808201528260a0820152600160c0820152600160e082015260016101008201528261012082015282610140820152826101608201528261018082015201526120003016151560011480159061056a575b8015610559575b801561054c575b801561053f575b8015610532575b8015610522575b8015610512575b8015610502575b80156104f6575b80156104ea575b80156104de575b80156104d2575b80156104c6575b6104b35762ffffff1960165416176016558442116104a4578660020b8860020b91818303610463575b5050508484101561045457838503858111610440578a60020b5f811380159061042b575b61041c578915610408578982066103f9578c156103eb57600f8d116103eb578484116103dc5761029861029d928b81046017558b6105c1565b610658565b628000008110156103cf5762ffffff19601854169062ffffff1617601855600d55600e55600f5560105560115562ffffff6012549160181b65ffffff0000001692169065ffffffffffff1916171760125560135562ffffff63ff000000601454921560181b1692169063ffffffff1916171760145560155560018060a01b0319600c541617600c5560405161554690816106d48239608051818181601c01528181610205015281816102a80152818161045c0152818161050c0152818161098701528181610a1e01528181610af501528181610b9201528181610c5a01528181610e8301528181610f3a0152818161103d015281816110b201528181611d2c01528181611de40152818161217801528181613ba601528181613c700152818161400c015281816141170152614c070152f35b6335278d125f526004601cfd5b638cc99b7b60e01b5f5260045ffd5b6287e39960e61b5f5260045ffd5b6388ac089760e01b5f5260045ffd5b634e487b7160e01b5f52601260045260245ffd5b6312469eb560e11b5f5260045ffd5b5061043a81610298848d6105c1565b1561025f565b634e487b7160e01b5f52601160045260245ffd5b63536a71af60e01b5f5260045ffd5b8061049b575b610483578a9182610491575b5050610483575f808061023b565b6264847d60e41b5f5260045ffd5b1390505f80610475565b50808212610469565b632ca4094f60e21b5f5260045ffd5b630732d7b560e51b5f523060045260245ffd5b50600130161515610212565b5060023016151561020b565b50600430161515610204565b506008301615156101fd565b506010301615156101f6565b50602030161515600114156101ef565b50604030161515600114156101e8565b50608030161515600114156101e1565b50610100301615156101da565b50610200301615156101d3565b50610400301615156101cc565b5061080030161515600114156101c5565b5061100030161515600114156101be565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b604051906101c082016001600160401b0381118382101761057f57604052565b51908160020b820361057b57565b90670de0b6b3a76400008202905f19670de0b6b3a764000084099282808510940393808503948584111561057b571461065157670de0b6b3a764000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b808202905f1983820990828083109203918083039283670de0b6b3a7640000111561057b57146106c2577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac1066993670de0b6b3a7640000910990828211900360ee1b910360121c170290565b5050670de0b6b3a76400009150049056fe608080604052600436101561005b575b50361561001a575f80fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361004c57005b6393c866c160e01b5f5260045ffd5b5f905f3560e01c908163182148ef146111155750806318cb1700146110f357806321d0ee701461109f578063259982e51461102a578063392e53cd1461100857806339518b5e14610feb578063514ea4bf14610f96578063575e24b414610ee357806357d775f814610ec65780636c2bbe7e14610e705780636c47a6c314610e535780636fe7e6eb14610c19578063897479cb14610bfb57806390ebab0a14610bdd57806391dd734614610b5e5780639ce110d714610b355780639f063efc14610ade578063a4dee15514610ab9578063b137392914610a98578063b356603014610a74578063b47b2fb1146109c6578063b6a8b0fa14610970578063c19d93fb14610921578063c4e833ce146107b6578063c70dfb4f14610795578063ce5494bb146104cb578063d0c52e21146104a9578063d65b4cb91461048b578063dc4c90d314610446578063dc98354e14610276578063dcf93f3214610250578063e1b4af69146101ee5763ee4644300361000f57346101eb57806003193601126101eb576020600d54604051908152f35b80fd5b50346101eb57600490610200366112dc565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303925061024491505057630a85dc2960e01b8152fd5b63570c108560e11b8152fd5b50346101eb57806003193601126101eb57602060ff60145460181c166040519015158152f35b50346101eb5760e03660031901126101eb5761029061116b565b5060a03660231901126101eb576102a561128e565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036104375760085460ff81166104295760ff19166001176008556001600160a01b03602435908116908181036104255750600980546001600160a01b0319169190911790556044356001600160a01b038116908181036104255750600a80546001600160a01b03191691909117905560643562ffffff8116810361042157600a5461035a612061565b60b81b62ffffff60b81b169162ffffff60a01b9060a01b169065ffffffffffff60a01b19161717600a5560a43560018060a01b03811680910361042157600b80546001600160a01b031916919091179055601e6103b5612061565b60020b136104125760145460020b6103cb612061565b60020b9081156103fe570760020b6103ef57604051636e4c1aa760e11b8152602090f35b6312469eb560e11b8152600490fd5b634e487b7160e01b83526012600452602483fd5b63013840ad60e51b8152600490fd5b5080fd5b8280fd5b62dc149f60e41b8252600482fd5b63570c108560e11b8152600490fd5b50346101eb57806003193601126101eb576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101eb57806003193601126101eb576020600f54604051908152f35b50346101eb57806003193601126101eb5760ff60209154166040519015158152f35b50346101eb5760203660031901126101eb576104e561116b565b600c546001600160a01b031633036107865760ff825460081c161580610765575b610756577f000000000000000000000000000000000000000000000000000000000000000061059d8361057561058360405161054181611333565b610549611f3d565b815260018060a01b03871660208201528360408201526001606082015260405192839160208301611f8a565b03601f1981018352826113b4565b604051809381926348c8949160e01b8352600483016112b2565b0381836001600160a01b0387165af190811561074b57916105d785926105e2959460e09791610729575b50602080825183010191016114d8565b6006959195546132a5565b9161064160018060a01b0360095416926106306105fe856145f2565b948761061f8761061760018060a01b03600a54166145f2565b9a8b94614634565b600a546001600160a01b0316614634565b60a061063a611f3d565b2090614777565b5050600954600a5492976001600160a01b039182169791909316946106879250610678906001600160801b03608086901d16611472565b926001600160801b0316611472565b906001600160801b0381111561071a57506001600160801b03915b506001600160801b0381111561070b57506001600160801b03935b604080516001600160a01b0397909716875260208701919091526001600160801b03608085811d821692880192909252918216606087015285019190915290811660a08401521660c0820152f35b6001600160801b0316936106bd565b6001600160801b0316916106a2565b61074591503d8086833e61073d81836113b4565b810190611fcb565b5f6105c7565b6040513d86823e3d90fd5b63051a2a5560e51b8252600482fd5b50600454600e5411158061077a575b15610506565b50601154421015610774565b638341a67960e01b8252600482fd5b50346101eb57806003193601126101eb57602060125460020b604051908152f35b50346101eb57806003193601126101eb576020816101c0926101a06040516107dd81611362565b82815282858201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201528060405161083b81611362565b60018152838101600181526040820160018152606083018481526080840185815260a0850186815260c08601906001825260e087019260018452610100880194600186526101208901968a88526101408a01988b8a526101a06101608c019b8d8d5261018081019d8e52019c8d526040519d8e916001835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b50346101eb57806003193601126101eb5760c064ffffffffff600154166002546003546004546005549160065493604051958652602086015260408501526060840152608083015260a0820152f35b50346101eb57600490610982366112dc565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330392506102449150505763567d91d160e01b8152fd5b50346101eb576101603660031901126101eb576109e161116b565b5060a03660231901126101eb5760603660c31901126101eb57610144356001600160401b03811161042157610a1a903690600401611195565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610437576040610a5a610124356140fa565b82516001600160e01b03199092168252600f0b6020820152f35b50346101eb57806003193601126101eb57602060125460181c60020b604051908152f35b50346101eb57806003193601126101eb57602060145460020b604051908152f35b50346101eb57806003193601126101eb5760ff6020915460081c166040519015158152f35b50346101eb57600490610af036611225565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330393506102449250505057630a85dc2960e01b8152fd5b50346101eb57806003193601126101eb57600c546040516001600160a01b039091168152602090f35b50346101eb5760203660031901126101eb576004356001600160401b03811161042157610b8f903690600401611195565b917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361043757610bd9610bcd848461168f565b604051918291826112b2565b0390f35b50346101eb57806003193601126101eb576020601554604051908152f35b50346101eb57806003193601126101eb576020600e54604051908152f35b5034610e4057610100366003190112610e4057610c3461116b565b60a0366023190112610e4057610c4861128e565b5060e435908160020b809203610e40577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169133839003610e445762ffffff6016541691833b15610e4057604051635275965160e01b815292602435906001600160a01b038216808303610e40576004860152604435946001600160a01b038616808703610e4057602482015260643562ffffff8116808203610e40576044830152608435918260020b808403610e4057606482015260a435936001600160a01b038516808603610e4057608483015260a48201525f8160c481838d5af18015610e3557610e07575b509488979461057594610da6948a9994610dc29960405196610d5a88611333565b60405194610d678661137e565b85526020850152604084015260608301526080820152835260018060a01b03166020830152604082015285606082015260405192839160208301611f8a565b6040519485809481936348c8949160e01b8352600483016112b2565b03925af18015610dfc57610de3575b604051636fe7e6eb60e01b8152602090f35b610df6913d8091833e61073d81836113b4565b5f610dd1565b6040513d84823e3d90fd5b610da69399509461057594610e245f610dc299949a959b986113b4565b5f9a94509450949791969095610d39565b6040513d5f823e3d90fd5b5f80fd5b63570c108560e11b5f5260045ffd5b34610e40575f366003190112610e40576020601154604051908152f35b34610e4057610e7e36611225565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039350610e449250505057630a85dc2960e01b5f5260045ffd5b34610e40575f366003190112610e40576020601354604051908152f35b34610e4057610140366003190112610e4057610efd61116b565b5060a0366023190112610e405760603660c3190112610e4057610124356001600160401b038111610e4057610f36903690600401611195565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610e4457606062ffffff610f766120bd565b906040939293519363ffffffff60e01b1684526020840152166040820152f35b34610e40576020366003190112610e40576004355f526007602052608060405f205460ff604051918060020b83528060181c60020b6020840152600180851b038160301c16604084015260b01c166060820152f35b34610e40575f366003190112610e40576020601054604051908152f35b34610e40575f366003190112610e4057602060ff600854166040519015158152f35b34610e4057611038366111c2565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039050610e4457306001600160a01b03909116036110905760405163259982e560e01b8152602090f35b636d1ed89b60e01b5f5260045ffd5b34610e40576110ad366111c2565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039150610e44905057630a85dc2960e01b5f5260045ffd5b34610e40575f366003190112610e4057602062ffffff60165416604051908152f35b34610e40575f366003190112610e4057600954600a54600b546001600160a01b039283168452818316602085015260a082811c62ffffff16604086015260b89290921c60020b6060850152909116608083015290f35b600435906001600160a01b0382168203610e4057565b35906001600160a01b0382168203610e4057565b9181601f84011215610e40578235916001600160401b038311610e405760208381860195010111610e4057565b90610160600319830112610e40576004356001600160a01b0381168103610e40579160a0602319820112610e4057602491608060c319830112610e405760c49161014435906001600160401b038211610e405761122191600401611195565b9091565b906101a0600319830112610e40576004356001600160a01b0381168103610e40579160a0602319820112610e4057602491608060c319830112610e405760c4916101443591610164359161018435906001600160401b038211610e405761122191600401611195565b60c435906001600160a01b0382168203610e4057565b35908160020b8203610e4057565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b610120600319820112610e40576004356001600160a01b0381168103610e40579160a0602319830112610e405760249160c4359160e4359161010435906001600160401b038211610e405761122191600401611195565b608081019081106001600160401b0382111761134e57604052565b634e487b7160e01b5f52604160045260245ffd5b6101c081019081106001600160401b0382111761134e57604052565b60a081019081106001600160401b0382111761134e57604052565b606081019081106001600160401b0382111761134e57604052565b601f909101601f19168101906001600160401b0382119082101761134e57604052565b359062ffffff82168203610e4057565b91908260a0910312610e40576040516113ff8161137e565b608061144b81839561141081611181565b855261141e60208201611181565b602086015261142f604082016113d7565b6040860152611440606082016112a4565b606086015201611181565b910152565b600201908160021161145e57565b634e487b7160e01b5f52601160045260245ffd5b9190820180921161145e57565b9060405161148c81611333565b9154600281810b8452601882901c900b6020840152603081901c6001600160801b0316604084015260b01c60ff166060830152565b600f0b60016001607f1b0319811461145e575f0390565b9190826040910312610e40576020825192015190565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b9061016092611542836060936114ee565b805160020b60a0840152602081015160020b60c0840152604081015160e084015201516101008201526101406101208201525f6101408201520190565b6001600160a01b03918216815291166020820152604081019190915260600190565b9190820391821161145e57565b6001600160401b03811161134e5760051b60200190565b906115cf826115ae565b6115dc60405191826113b4565b82815280926115ed601f19916115ae565b01905f5b8281106115fd57505050565b60209060405161160c81611333565b5f81525f838201525f60408201525f6060820152828285010152016115f1565b8051156116395760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156116395760400190565b80518210156116395760209160051b010190565b9081549060181b65ffffff000000169065ffffff0000001916179055565b919082015f61010084830312610e40576116b5604051926116af84611333565b856113e7565b938483526116c560a08201611181565b80602085015260e06116d960c084016112a4565b92836040870152013580151594858203610e40576060015260018060a01b03169060020b92611c4e5750600164ffffffffff1981541617600155606084019261173c845160020b61173761172c85614f19565b60125460020b61209f565b614f51565b6014549060ff8260181c165f14611c3b5761175a9160020b9061209f565b945b6117658461339b565b61176e8561339b565b956040519561177c87611399565b808752602087018181526118d8604089019a888c526118d0600d54956117a06136c8565b956118088c6118036117fa6117db6117d26117c96117c46117bf614830565b614ec5565b6136e6565b60135490614ea3565b60105490614ee1565b6117f46117eb60105480936115a1565b916011546115a1565b90615056565b600d5490615136565b6136f7565b8c929083811315611c2c5761186b9293508981115f14611c275750885b928d60185460020b835160020b8082135f14611c1f5750905b50818a5260145460181c60ff1615611c105761185f9150895160020b61209f565b905b5160020b90614f51565b60020b60208701525b855160020b966020870197885160020b14155f14611c055760ff60145460181c166118c5836118a68a5160020b61339b565b8b516001600160801b039491906118bf9060020b61339b565b91614fef565b1660408801526115a1565b90848861376e565b996118eb6118e68c51611450565b6115c5565b985160020b915160020b9060018060801b03905116906040519261190e84611333565b8352602083015260408201526001606082015261192a8861162c565b526119348761162c565b50805160020b915160020b90604060018060801b0391015116906040519261195b84611333565b835260208301526040820152600260608201526119778661164d565b526119818561164d565b50835b8751811015611a3457611997818961165d565b515160020b60206119a8838b61165d565b51015160020b6001600160801b0360406119c2858d61165d565b51015116836003019182600311611a2057611a1992600195949260ff92604051946119ec86611333565b855260208501526040840152166060820152611a0783611450565b90611a12828b61165d565b528861165d565b5001611984565b634e487b7160e01b89526011600452602489fd5b50611a429293969585613aa5565b611a4b8261162c565b516001855260076020526040852090805162ffffff198354169062ffffff16178255611a7e602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b16179055611ac58261164d565b516002855260076020526040852090805162ffffff198354169062ffffff16178255611af8602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b16179055835b8351811015611be557611b53611b4d82611450565b8461165d565b518160030180600311611bd1579060019291875260076020526040872090805162ffffff198354169062ffffff16178255611b95602082015160020b83611671565b604081015190825490606060ff60b01b91015160b01b16918560301b8660b01b039060301b16908560301b8660b81b0319161717905501611b38565b634e487b7160e01b87526011600452602487fd5b509291505060405190611bf96020836113b4565b81525f36602083013790565b8b60408801526115a1565b611c199161337e565b90611861565b90509061183e565b611825565b50508087526020870152611874565b611c489160020b9061337e565b9461175c565b925f9250829160015b6015546003018060031161145e57811015611ddc57805f526007602052611c8060405f2061147f565b60408101516001600160801b031680611c9e575b5050600101611c57565b611d279160409160ff6014999598995460181c1691825f14611dce57805160020b925b15611db95760ff6060611ce3611cde602085015160020b95613286565b6114c1565b9201511691845193611cf485611333565b60020b845260020b6020840152600f0b838301526060820152815180938192632d35e7ed60e11b83528c60048401611531565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610e3557600192611d7e925f905f92611d86575b50611d7891926132a5565b966132a5565b93905f611c94565b611d789250611dac915060403d8111611db2575b611da481836113b4565b8101906114d8565b91611d6d565b503d611d9a565b60ff6060611ce3611cde845160020b95613286565b602081015160020b92611cc1565b5091929390947f000000000000000000000000000000000000000000000000000000000000000091611e1860018060a01b0383511630856132e7565b926020830192611e3260018060a01b0385511630846132e7565b945f8113611ed6575b5050848413611e6a575b5050505050604051916020830152604082015260408152611e676060826113b4565b90565b91516001600160a01b039283169216823b15611ed25791611ea6939185809460405196879586948593630b0d9c0960e01b85526004850161157f565b03925af18015610dfc57611ebd575b808080611e45565b611ec88280926113b4565b6101eb5780611eb5565b8480fd5b90516001600160a01b0383811692911690823b15610e4057611f1392855f809460405196879586948593630b0d9c0960e01b85526004850161157f565b03925af18015610e3557611f28575b80611e3b565b611f359195505f906113b4565b5f935f611f22565b60405190611f4a8261137e565b6009546001600160a01b039081168352600a54808216602085015260a081901c62ffffff16604085015260b81c60020b6060840152600b54166080830152565b91909160e06060610100830194611fa28482516114ee565b60208101516001600160a01b031660a0850152604081015160020b60c085015201511515910152565b602081830312610e40578051906001600160401b038211610e40570181601f82011215610e40578051906001600160401b03821161134e576040519261201b601f8401601f1916602001856113b4565b82845260208383010111610e4057815f9260208093018386015e8301015290565b600f91820b910b019060016001607f1b0319821260016001607f1b0383131761145e57565b6084358060020b8103610e405790565b60020b627fffff19811461145e575f0390565b60020b60010190627fffff8213627fffff1983121761145e57565b9060020b9060020b0190627fffff198212627fffff83131761145e57565b5f80549160ff8360081c16613277576010544210613268576120dd614830565b64ffffffffff600154161015613257575f926011544210158061324c575b612ea1575b509060ff5f5416155f14612e3357612116614830565b9060015461212b64ffffffffff8216846115a1565b64ffffffffff1990911664ffffffffff84161760015560035460025f526007602052946121645f8051602061552683398151915261147f565b9461219c60a06121753660246113e7565b207f0000000000000000000000000000000000000000000000000000000000000000614777565b505050946121a986614864565b608435978860020b90818a14159283610e40578a6121c691614f51565b905f916121d68d600554906136f7565b5f198a0194908a861161145e575f8f966121f26121f791613a95565b614fcf565b80971115911280612e2c575b15612ccf575050506122249192505160020b9161221e615355565b90614ee1565b955b60018111612c395750612262908a60055561225c670de0b6b3a764000061224f89600254614ee1565b9880612c30575b05614f19565b9061209f565b90612c2c578761227191614f51565b9061228d8861173761172c670de0b6b3a76400005f9905614f19565b9760145460ff8160181c165f14612c19576122ab9060020b8a61209f565b955b8960ff60145460181c16809b811580612c09575b15612bcd57505050612bc9576122d7908361209f565b945b6122e28361339b565b986122ec8761339b565b908b15612bc05715612b0d5760016123058c8c84615443565b91818060a01b038c1690828060a01b0316038060ff1d9081011891818060801b031661233183826150ed565b928260601b9109151516015b975b60155461234e6118e682611450565b9060018a52600760205261236460408b2061147f565b61236d8361162c565b526123778261162c565b5060028a52600760205261238d60408b2061147f565b6123968361164d565b526123a08261164d565b50895b818110612ac55750506123c1906123bb3660246113e7565b90614b1d565b5060145460181c60ff1699908a15612a20576044356001600160a01b0381168103612a1c57612402906123f3906145f2565b6001600160801b038316611472565b6006549061241a906001600160801b038316906115a1565b916024356001600160a01b0381168103612a18579e6118e69f936124728e969461245d8c9561244b89879a506145f2565b9060801d6001600160801b0316611472565b60809190911d6001600160801b0316906115a1565b600d548380821115612a1057612487916115a1565b81811090821802189e61249b3660246113e7565b906124a46136c8565b95836129b057505050505060020b80825260208201528260408201525b604081018051909c6125c7916125bf916125ad916001600160801b0316156129a1575b6124ef3660246113e7565b906125166124fb6136c8565b976118036117fa6117db6117d26117c96117c46117bf614830565b888082131561298d5750818111156129845750612571815b928d606060185460020b920191825160020b8082135f1461297c5750905b60020b90818b5260ff60145460181c165f14611c105761185f91508a5160020b61209f565b60020b60208801525b865160020b976020880198895160020b14155f14612972575060ff60145460181c166118c5836118a68a5160020b61339b565b87856125ba3660246113e7565b61376e565b9e8f51611450565b9b6020825160020b92015160020b9060018060801b0390511690604051926125ee84611333565b8352602083015260408201526001606082015261260a8c61162c565b526126148b61162c565b50805160020b915160020b90604060018060801b0391015116906040519261263b84611333565b835260208301526040820152600260608201526126578a61164d565b526126618961164d565b50875b8b51811015612715578b60206126898361267e818561165d565b515160020b9361165d565b51015160020b8d60406126a38560018060801b039361165d565b51015116836003019182600311612701579260ff6126fa938f9360019796604051946126ce86611333565b8552602085015260408401521660608201526126f36126ec85611450565b809361165d565b528c61165d565b5001612664565b634e487b7160e01b8d52601160045260248dfd5b50612735919293949596999a979a61272e3660246113e7565b918a613aa5565b61273e8761162c565b5160018a52600760205260408a2090805162ffffff198354169062ffffff16178255612771602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b161790556127b88761164d565b5160028a52600760205260408a2090805162ffffff198354169062ffffff161782556127eb602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b16179055885b601554811015612918578651811061287557806003018060031161286157906001918b5260076020528a60408120555b0161282b565b634e487b7160e01b8b52601160045260248bfd5b61288761288182611450565b8961165d565b5181600301806003116129045790600192918c52600760205260408c2090805162ffffff198354169062ffffff161782556128c9602082015160020b83611671565b604081015190825490606060ff60b01b91015160b01b16918560301b8660b01b039060301b16908560301b8660b81b0319161717905561285b565b634e487b7160e01b8c52601160045260248cfd5b5090919295507f223157ec47d7bd04fa3ed10c0a8adb38faf97b51ec856a777425a2e39253bd739450608093966040519360020b845260020b602084015260020b60408301526060820152a15b6315d7892d60e21b929190565b60408801526115a1565b90509061254c565b6125719061252e565b9250508b60020b808852602088015261257a565b602085015160020b85526124e4565b838111156129c95750506129c49450614cc7565b6124c1565b9250935050612a0591508c60020b84528960020b60208501526129eb8d61339b565b6001600160801b0393906129fe8c61339b565b9115614fef565b1660408201526124c1565b505086612487565b8c80fd5b8a80fd5b6024356001600160a01b0381168103612a1c57612a5390612a40906145f2565b608083901d6001600160801b0316611472565b60065490612a6f90608083901d6001600160801b0316906115a1565b916044356001600160a01b0381168103612a18579e6118e69f93612ac08e9694612aaf8c95612aa089879a506145f2565b906001600160801b0316611472565b6001600160801b03909116906115a1565b612472565b806003018060031161290457906001918c526007602052612b0660408d20612af5612aef84611450565b9161147f565b612aff828861165d565b528561165d565b50016123a3565b612b188b8b83615400565b8a826001600160a01b0380831690821611612bb5575b506001600160a01b038316918215612ba95760601b600160601b600160e01b0316926001600160a01b03828116929190910316612b6c8282866152a0565b938215612b955709612b86575b808206151591040161233d565b906001019081612b79575b8880fd5b634e487b7160e01b8c52601260045260248cfd5b62bfc9218b526004601cfd5b8c935090505f612b2e565b5050869761233f565b8680fd5b91989392509081612bf8575b50612be5575b506122d9565b612bf19196508361337e565b945f612bdf565b905060020b8460020b13155f612bd9565b508060020b8760020b12156122c1565b612c269060020b8a61337e565b956122ad565b8580fd5b89600255612256565b612c429061370f565b5f198101818111611a20576121f2612c5991613a95565b808c10612c67575b50612226565b612c7c612c75989298615355565b918d615056565b670de0b6b3a76400000390670de0b6b3a76400008211612cbb57612cad612cb49392670de0b6b3a764000092614ea3565b0590614ee1565b955f612c61565b634e487b7160e01b8a52601160045260248afd5b9192909115612d2c57505083612b91578a612ce991614f51565b91612cf5612c75615355565b670de0b6b3a76400000390670de0b6b3a76400008211612cbb57612cad612d269392670de0b6b3a764000092614ea3565b95612226565b93509350975050612d5260125460020b670de0b6b3a76400006002540560020b9061209f565b60185460020b5f9381135f14612e2157905b6014549260ff8460181c1692835f14612e0e57612d84915160020b61209f565b915b829985610e4057612dd694612d9e8e612dce96614f51565b938315612dfb57612db29160020b9061209f565b915b15612de6578160020b8160020b135f14612ddf575061337e565b60020b614e7f565b955f9695612226565b905061337e565b8160020b8160020b125f14612ddf575061337e565b612e089160020b9061337e565b91612db4565b612e1b915160020b61337e565b91612d86565b505f92508990612d64565b5080612203565b915060ff60145460181c168080612e8a575b8115612e6a575b50612e5b576240000090612965565b63016ccb0760e01b5f5260045ffd5b90501580612e79575b5f612e4c565b5060c4358015158114612e73575f80fd5b905060c43580159081158103610e40575090612e45565b600454600e54111561323d5760019060ff1916175f557fe8775e4a58023f399765c3455b45eebcc45ad6b99607a1163f02e1318430970c5f80a1612ef6612eee60a06121753660246113e7565b505050614864565b601554612f056118e682611450565b60015f52600760205290612f255f8051602061550683398151915261147f565b612f2e8361162c565b52612f388261162c565b5060025f526007602052612f585f8051602061552683398151915261147f565b612f618361164d565b52612f6b8261164d565b505f5b81811061320c575050612f86906123bb3660246113e7565b5060145460181c60ff169081156131c1576044356001600160a01b0381168103610e4057612ff1918491612fdb906001600160801b0390612fc6906145f2565b16600f0b60018060801b0392600f0b9061203c565b165b60035490612fec3660246113e7565b614cc7565b9060408051929061300281856113b4565b60018452601f19015f5b818110613192575050805160020b6020820191825160020b90604060018060801b0391015116906040519261304084611333565b8352602083015260408201526001606082015261305c8461162c565b526130668361162c565b505160020b901561316957608435928360020b8403610e40576130a361309d6130986130b694876130bb98509061209f565b61339b565b9161339b565b906130af3660246113e7565b9184613aa5565b61162c565b5160015f52600760205260405f2090805162ffffff198354169062ffffff161782556130ee602082015160020b83611671565b60408101518254606090920151600160301b600160b81b031990921660309190911b600160301b600160b01b03161760b09190911b60ff60b01b161790555f5b6015546001810180911161145e57811015613162578061314f600192611450565b5f5260076020525f60408120550161312e565b505f612100565b608435928360020b8403610e40576130a361309d6130986130b69461225c886130bb9950612071565b6020906040516131a181611333565b5f81525f838201525f60408201525f60608201528282880101520161300c565b6024356001600160a01b0381168103610e4057612ff1918491613206906001600160801b03906131f0906145f2565b6001600160801b039360801d9116600f0b61203c565b16612fdd565b80600301908160031161145e576001915f52600760205261323660405f20612af5612aef84611450565b5001612f6e565b631ed9bcf960e01b5f5260045ffd5b5060ff8116156120fb565b6315d7892d60e21b92505f91508190565b630fc95b4360e01b5f5260045ffd5b636fce6c3960e01b5f5260045ffd5b6001607f1b81101561329857600f0b90565b6335278d125f526004601cfd5b6132c8906132ba8360801d8260801d01614efc565b92600f0b90600f0b01614efc565b60018060801b03169060801b1790565b90816020910312610e40575190565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa908115610e35575f91613334575090565b90506020813d60201161335b575b8161334f602093836113b4565b81010312610e40575190565b3d9150613342565b60020b5f190190627fffff198212627fffff83131761145e57565b600291820b910b0390627fffff198212627fffff83131761145e57565b60020b908160ff1d82810118620d89e881116136b55763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b189160028116613699575b6004811661367d575b60088116613661575b60108116613645575b60208116613629575b6040811661360d575b608081166135f1575b61010081166135d5575b61020081166135b9575b610400811661359d575b6108008116613581575b6110008116613565575b6120008116613549575b614000811661352d575b6180008116613511575b6201000081166134f5575b6202000081166134da575b6204000081166134bf575b62080000166134a6575b5f1261349e575b0160201c90565b5f1904613497565b6b048a170391f7dc42444e8fa290910260801c90613490565b6d2216e584f5fa1ea926041bedfe9890920260801c91613486565b916e5d6af8dedb81196699c329225ee6040260801c9161347b565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c91613470565b916f31be135f97d08fd981231505542fcfa60260801c91613465565b916f70d869a156d2a1b890bb3df62baf32f70260801c9161345b565b916fa9f746462d870fdf8a65dc1f90e061e50260801c91613451565b916fd097f3bdfd2022b8845ad8f792aa58250260801c91613447565b916fe7159475a2c29b7443b29c7fa6e889d90260801c9161343d565b916ff3392b0822b70005940c7a398e4b70f30260801c91613433565b916ff987a7253ac413176f2b074cf7815e540260801c91613429565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c9161341f565b916ffe5dee046a99a2a811c461f1969c30530260801c91613415565b916fff2ea16466c96a3843ec78b326b528610260801c9161340c565b916fff973b41fa98c081472e6896dfb254c00260801c91613403565b916fffcb9843d60f6159c9db58835c9266440260801c916133fa565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c916133f1565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c916133e8565b916ffff97272373d413259a46990580e213a0260801c916133df565b826345c3193d60e11b5f5260045260245ffd5b604051906136d582611399565b5f6040838281528260208201520152565b905f19820191821360011661145e57565b81810392915f13801582851316918412161761145e57565b801561145e575f190190565b60020b9060020b90811561373d57627fffff1981145f1983141661145e570590565b634e487b7160e01b5f52601260045260245ffd5b8181029291811591840414171561145e57565b811561373d570490565b9291909161377a614830565b6137876013548092613751565b906137956010548093611472565b9060115492838311613a69575b6137aa614830565b6001810180911161145e576137c7926137c291613751565b611472565b91808311613a61575b50808214613a24576138036137f2613809936117f46117eb60105480936115a1565b916117f46117eb60105480936115a1565b906115a1565b936015549384805b6139e3575b5061382d6020613837920194855160020b9061337e565b8560020b9061371b565b918461386e60ff60145460181c1694855f146139a957606085015160020b90818160020b125f146139a257505b97600d5490615136565b918061387a8385613751565b11613992575050925b5160020b94613891856115ae565b9561389f60405197886113b4565b858752601f196138ae876115ae565b015f5b81811061397b5750505f905b8682106138ce575050505050505090565b6138d8828961165d565b519060020b9052600161390a6138fc846138f2858c61165d565b515160020b61209f565b606086015160020b90614f51565b916020613917828b61165d565b51018360020b905261395c878a613955602061394a8661394461393a828761165d565b515160020b61339b565b9461165d565b51015160020b61339b565b9089614fef565b6040613968838c61165d565b510190838060801b0316905201906138bd565b6020906139866136c8565b82828c010152016138b1565b61399c9250613764565b92613883565b9050613864565b606085016139ba815160020b612071565b60020b8260020b125f146139d057505b976117fa565b6139de91505160020b612071565b6139ca565b945f19860186811161145e576139f890615024565b613a0187615024565b03613a1e57613a12613a189161370f565b9561370f565b80613811565b94613816565b505050505050604051613a386020826113b4565b5f81525f805b818110613a4a57505090565b602090613a556136c8565b82828601015201613a3e565b91505f6137d0565b8392506137a2565b805115158252602080820151908301526040908101516001600160a01b0316910152565b600160ff1b811461145e575f0390565b9392916001600160a01b039182169116818103613fa6575b50505f915f5b8451811015613c30576001600160801b036040613ae0838861165d565b51015116613af1575b600101613ac3565b613ba190604060ff60145460181c16805f14613c1857613b11838961165d565b515160020b905b15613c04576020613b29848a61165d565b51015160020b5b613b4f6001600160801b0384613b46878d61165d565b51015116613286565b60ff6060613b5d878d61165d565b5101511691845193613b6e85611333565b60020b845260020b6020840152600f0b838301526060820152815180948192632d35e7ed60e11b83528860048401611531565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610e3557600192613be7575b509050613ae9565b613bfe9060403d8111611db257611da481836113b4565b50613bdf565b613c0e838961165d565b515160020b613b30565b6020613c24848a61165d565b51015160020b90613b18565b509190928051905f19820191821161145e57602091613c4e9161165d565b5101516018549060181b65ffffff000000169065ffffff0000001916176018557f0000000000000000000000000000000000000000000000000000000000000000613ca360018060a01b0385511630836132e7565b906020850194613cbd60018060a01b0387511630846132e7565b925f8113613f3f575b848413613eca575b848112613dd7575b5050828212613ce7575b5050509050565b84516001600160a01b039081169591169190823b15613dd35760405195632961046560e21b87526004870152838660248183875af195861561074b57849596613db6575b505160209291613d50916001600160a01b0316908390613d4a90613a95565b91614634565b600460405180958193630476982d60e21b83525af1908115613daa5750613d7b575b80808392613ce0565b613d9c9060203d602011613da3575b613d9481836113b4565b8101906132d8565b505f613d72565b503d613d8a565b604051903d90823e3d90fd5b84613dc59195929394956113b4565b613dd357908392915f613d2b565b8380fd5b81516001600160a01b03848116939116833b15612bc95760405190632961046560e21b82526004820152868160248183885af18015613ebf57908791613eaa575b505080516001600160a01b031680613e96575b50516001600160a01b0316613e8c57613e45602091613a95565b915b600460405180948193630476982d60e21b83525af1801561074b57613e6d575b80613cd6565b613e859060203d602011613da357613d9481836113b4565b505f613e67565b5060208491613e47565b613ea49084613d4a85613a95565b5f613e2b565b81613eb4916113b4565b612c2c57855f613e18565b6040513d89823e3d90fd5b86516001600160a01b038481169116813b15612bc95785613f0692889283604051809681958294630b0d9c0960e01b845230906004850161157f565b03925af18015613f3457908691613f1f575b5050613cce565b81613f29916113b4565b611ed257845f613f18565b6040513d88823e3d90fd5b81516001600160a01b03908116908416803b15610e4057825f91613f7c9383604051809681958294630b0d9c0960e01b845230906004850161157f565b03925af18015610e3557613f91575b50613cc6565b613f9e9195505f906113b4565b5f935f613f8b565b60405191613fb383611399565b81108252600160208301526040820152613feb60405191633cf3645360e21b8352613fe160048401856114ee565b60a4830190613a71565b6101206101048201525f610124820152602081610144815f60018060a01b037f0000000000000000000000000000000000000000000000000000000000000000165af18015610e355761403f575b80613abd565b6140579060203d602011613da357613d9481836113b4565b505f614039565b6101409290916140e691906001600160a01b0361407a82611181565b1684526001600160a01b0361409160208301611181565b16602085015262ffffff6140a7604083016113d7565b1660408501526140b9606082016112a4565b60020b60608501526001600160a01b03906140d690608001611181565b16608084015260a0830190613a71565b6101206101008201525f6101208201520190565b60ff5f54166145e45761414c9060a06141143660246113e7565b207f0000000000000000000000000000000000000000000000000000000000000000906141418183614777565b949290969150614864565b60145460181c60ff1680156145d15760185460181c60020b8260020b135b60015f5260076020525f805160206155068339815191525460020b9082156145c557818460020b12905b156144e357505050509061420d91602060ff60145460181c16805f146144cf576141c861309860185460181c60020b612084565b604051916141d583611399565b151582526001838301526001600160a01b031660408083019190915251633cf3645360e21b815294859182919060246004840161405e565b03815f6001600160a01b0386165af18015610e355761449c575b6142319250614777565b50509050925b60c435908115158203610e405762ffffff91610fff9182911561449357165b169116620f42408183020491010360ff60145460181c165f146143ea57608082901d5f600f82900b126143a557600354614299916001600160801b031690611472565b6003555b600f82900b5f811261434b5750505f805160206154e6833981519152916142d060609260018060801b03166004546115a1565b6004555b600454600f54811015614307575b600354906040519260020b835260208301526040820152a163b47b2fb160e01b905f90565b61010061ff00195f5416175f557f628a470bfdde264ef77cd19acfbfca22b3e4413adaf5837ec9fbc0043e35793f602061433f614830565b604051908152a16142e2565b62ffffff91925061435b906114c1565b9116620f42400391620f4240831161145e575f805160206154e68339815191529260609261439d91614395916001600160801b03166151b1565b600454611472565b6004556142d4565b6143ae906114c1565b62ffffff8216620f42400390620f4240821161145e576143e2916143da916001600160801b03166151b1565b6003546115a1565b60035561429d565b90600f81900b5f8112614456575060035461440f906001600160801b03831690611472565b6003555b60801d905f600f83900b1261444857505f805160206154e68339815191529161439d60609260018060801b03166004546115a1565b9061435b62ffffff916114c1565b61445f906114c1565b62ffffff8316620f42400390620f4240821161145e5761448b916143da916001600160801b03166151b1565b600355614413565b600c1c16614256565b6020833d6020116144c7575b816144b5602093836113b4565b81010312610e40576142319250614227565b3d91506144a8565b6141c861309860185460181c60020b613363565b97949392976144f6575b50505050614237565b61455794975090614513602092825f146145bc5761309890613363565b6040519161452083611399565b1582526001838301526001600160a01b031660408083019190915251633cf3645360e21b815294859182919060246004840161405e565b03815f6001600160a01b0386165af18015610e3557614589575b61457b9250614777565b50509050925f8080806144ed565b6020833d6020116145b4575b816145a2602093836113b4565b81010312610e405761457b9250614571565b3d9150614595565b61309890612084565b818460020b1390614194565b60185460181c60020b8260020b1261416a565b5063b47b2fb160e01b905f90565b6001600160a01b03168061460557504790565b6020602491604051928380926370a0823160e01b82523060048301525afa908115610e35575f91613334575090565b9091906001600160a01b03811690816146c25750505f80808093855af1156146595750565b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b60205f604481949682604095865198899363a9059cbb60e01b855260018060a01b0316600485015260248401525af13d15601f3d116001855114161716928281528260208201520152156147135750565b6040516390bfb86560e01b8152600481019190915263a9059cbb60e01b602482015260806044820152601f3d01601f191660a0810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b9190602090604051828101918252600660408201526040815261479b6060826113b4565b519020604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa918215610e35575f926147fc575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d602011614828575b81614818602093836113b4565b81010312610e405751905f6147d4565b3d915061480b565b60105480421061485e5761484761485091426115a1565b60135490613764565b6001810180911161145e5790565b50600190565b73fffd8963efd1fc6a506488495d951d51639616826401000276a21982016001600160a01b031611614afd57602081901b600160201b600160c01b0316808015610e4057693627a301d71055774c859160ff8260018060801b031060071b83811c60018060401b031060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c821060031b177b01c1818141808140018080c0814100004181408140c0c100414140c160221b6f8421084210842108cc6318c6db6d54be85831c1c601f161a17169160808310155f14614af15750607e1982011c5b800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c800280607f1c8160ff1c1c80029081607f1c8260ff1c1c80029283607f1c8460ff1c1c80029485607f1c8660ff1c1c80029687607f1c8860ff1c1c80029889607f1c8a60ff1c1c80029a8b607f1c8c60ff1c1c80029c8d80607f1c9060ff1c1c600160321b90800260cd1c169d600160331b9060cc1c169c600160341b9060cb1c169b600160351b9060ca1c169a600160361b9060c91c1699600160371b9060c81c1698600160381b9060c71c1697600160391b9060c61c16966001603a1b9060c51c16956001603b1b9060c41c16946001603c1b9060c31c16936001603d1b9060c21c16926001603e1b9060c11c16916001603f1b9060c01c1690607f190160401b1717171717171717171717171717026fdb2df09e81959a81455e260799a0632f6f028f6481ab7f045a5af012a19d003aa919820160801d60020b910160801d60020b918282145f14614acd5750905090565b6001600160a01b0390811690614ae28461339b565b1611614aec575090565b905090565b905081607f031b614941565b6318521d4960e21b5f9081526001600160a01b0391909116600452602490fd5b91905f905f905f5b8551811015614cb0576001600160801b036040614b42838961165d565b51015116614b53575b600101614b25565b9192614c02604060ff60145460181c16805f14614c9857614b74868a61165d565b515160020b905b15614c84576020614b8c878b61165d565b51015160020b5b8960ff6060614bbe8a6139446001600160801b0389614bb2848961165d565b51015116600f0b6114c1565b5101511691845193614bcf85611333565b60020b845260020b6020840152600f0b838301526060820152815180938192632d35e7ed60e11b83528760048401611531565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1918215610e3557600192614c59925f905f92614c61575b50614c5391926132a5565b956132a5565b929050614b4b565b614c539250614c7e915060403d8111611db257611da481836113b4565b91614c48565b614c8e868a61165d565b515160020b614b93565b6020614ca4878b61165d565b51015160020b90614b7b565b505091909250614cc2826006546132a5565b600655565b9093929193614cd46136c8565b9480614e2757505f5b6001600160a01b031680614d015750505060020b80835260208301525f6040830152565b919250614e0c91614db390606090614da59060b56001600160881b03821160071b82811c6001600160481b031060061b1782811c64ffffffffff1060051b1782811c62ffffff1060041b17600181811c9290921b9083901c62010000010260121c80830401811c80830401811c80830401811c80830401811c80830401811c80830401811c80830401901c908190048111900360301b6001600160a01b0316614864565b940193845160020b90614f51565b92614df4602087019460020b9182865260ff60145460181c1692835f14614e145750614de990865160020b905160020b9061337e565b60020b80885261339b565b93516001600160801b0394906129fe9060020b61339b565b166040830152565b614e22915160020b9061209f565b614de9565b8160ff60145460181c165f14614e605750600654614e5b91614e559160801d6001600160801b0316906115a1565b82615320565b614cdd565b600654614e5b92614e7a916001600160801b0316906115a1565b615320565b90670de0b6b3a7640000820291808305670de0b6b3a7640000149015171561145e57565b81810292915f8212600160ff1b82141661145e57818405149015171561145e57565b9060018201915f60018412911290801582169115161761145e57565b9190915f838201938412911290801582169115161761145e57565b9081600f0b918203614f0a57565b6393dafdf160e01b5f5260045ffd5b80628000000160181c15614f34576335278d125f526004601cfd5b60020b90565b9060020b9060020b02908160020b91820361145e57565b9060ff60145460181c165f14614f9d575f8260020b125f14614f9057614f8b81614f86614f8182611e679661337e565b612084565b61371b565b614f3a565b614f8b81611e679361371b565b5f8260020b125f14614fb657614f8b81611e679361371b565b614f8b81614f86614fca82611e679661209f565b613363565b6117fa6117db6117d26117c96117c4611e6795614fea614830565b614ee1565b9092909190801561501e575f19810190811161145e57915b1561501557611e6792615443565b611e6792615400565b91615007565b61503f615036615048926137c2614830565b60135490613751565b60105490611472565b601154808211614aec575090565b90670de0b6b3a76400008202905f19670de0b6b3a7640000840992828085109403938085039485841115610e4057146150e657670de0b6b3a764000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b81810291905f1982820991838084109303928084039384600160601b1115610e40571461512d57600160601b910990828211900360a01b910360601c1790565b50505060601c90565b808202905f1983820990828083109203918083039283670de0b6b3a76400001115610e4057146151a0577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac1066993670de0b6b3a7640000910990828211900360ee1b910360121c170290565b5050670de0b6b3a764000091500490565b808202905f1983820990828083109203918083039283620f42401115610e405714615211577fde8f6cefed634549b62c77574f722e1ac57e23f24d8fd5cb790fb65668c2613993620f4240910990828211900360fa1b910360061c170290565b5050620f424091500490565b90606082901b905f19600160601b840992828085109403938085039485841115610e4057146150e6578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b91818302915f1981850993838086109503948086039586851115610e405714615318579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b9061532a9161521d565b6001600160a01b03811161535057600160a01b811015613298576001600160a01b031690565b505f90565b61539b612dce61536b612eee60a0612175611f3d565b60145460181c60ff16156153cf5760125460020b808260020b135f146153c857505b60125460181c60020b61337e565b6153ad614847601154601054906115a1565b90811561373d57600160ff1b81145f1983141661145e570590565b905061538d565b60125460020b808260020b125f146153c8575061538d565b6001600160a01b03918216908216039190821161145e57565b611e67926154389290916001600160a01b038083169082161161543d575b6001600160a01b039161543191906153e7565b169061521d565b615497565b9061541e565b611e6792615438929091906001600160a01b0380821690831611615491575b61548a61547b6001600160a01b038381169085166150ed565b926001600160a01b03926153e7565b16916152a0565b90615462565b6001600160801b038116919082036154ab57565b60405162461bcd60e51b81526020600482015260126024820152716c6971756964697479206f766572666c6f7760701b6044820152606490fdfe27db09392d7d230eb65a11bd84925fb8da90df8a067ca8a4fc2933b4f637262bb39221ace053465ec3453ce2b36430bd138b997ecea25c1043da0c366812b828b7c774451310d1be4108bc180d1b52823cb0ee0274a6c0081bcaf94f115fb96d";
|
|
1381
1410
|
|
|
1382
1411
|
// src/evm/abis/bytecodes/dopplerDN404.ts
|
|
1383
|
-
var dopplerDN404_default = "0x60a0604052346104a85761390680380380610019816107f1565b928339810160e0828203126104a85781516001600160401b0381116104a85781610044918401610816565b60208301519091906001600160401b0381116104a85781610066918501610816565b9060408401519161007960608601610867565b9361008660808701610867565b60a08701519093906001600160401b0381116104a85760c0916100aa918901610816565b960151926001600160a01b031680156107de575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a382156107cf578284066107c0578051906001600160401b0382116104eb5760015490600182811c921680156107b6575b60208310146105d05781601f849311610748575b50602090601f83116001146106e2575f926106d7575b50508160011b915f199060031b1c1916176001555b8051906001600160401b0382116104eb5760025490600182811c921680156106cd575b60208310146105d05781601f84931161065f575b50602090601f83116001146105f9575f926105ee575b50508160011b915f199060031b1c1916176002555b83516001600160401b0381116104eb57600354600181811c911680156105e4575b60208210146105d057601f811161056d575b50602094601f821160011461050a579481929394955f926104ff575b50508160011b915f199060031b1c1916176003555b608052604051610d35808201906001600160401b038211838310176104eb576020918391612bd183393381520301905ff080156104e0576080516001600160a01b0391909116906001600160601b035f1990910110156104d35768a20d6e21d0e5255309546001600160a01b03166104c65780156104b957630f4599e55f523360205260205f6024601c82855af160015f511416156104ac57678da5cb5b6cef16e65f5260208060046018305afa601f3d1160205160601b151016610499575b68a20d6e21d0e5255308805463ffffffff60201b191664010000000017905568a20d6e21d0e525530980546001600160a01b03191691909117905580610375575b604051612334908161089d823960805181818161040b01528181610a4f01528181610c1c015281816114860152818161171c015281816119110152611f920152f35b6001600160a01b03821691821561048c57608051820463fffffffe108260601c1761047f5768a20d6e21d0e525530880546001600160a01b031660a084901b6001600160a01b03191690811790915561041292906103d28361087b565b80546001600160a01b031690911790555f90815283907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082a361087b565b906bff00000000000000000000008254918260581c9060015f527fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff821691161560011b1860011760581b16906bff000000000000000000000019161790555f80610333565b63e5cfe9575f526004601cfd5b63ea553b345f526004601cfd5b5f806004601c82855af16102f2575b5f80fd5b63d125259c5f526004601cfd5b6339a84a7b5f526004601cfd5b63ead4d2e45f526004601cfd5b63997c4ef45f526004601cfd5b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b015190505f8061021d565b601f1982169560035f52805f20915f5b8881106105555750836001959697981061053d575b505050811b01600355610232565b01515f1960f88460031b161c191690555f808061052f565b9192602060018192868501518155019401920161051a565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106105c6575b601f0160051c01905b8181106105bb5750610201565b5f81556001016105ae565b90915081906105a5565b634e487b7160e01b5f52602260045260245ffd5b90607f16906101ef565b015190505f806101b9565b60025f9081528281209350601f198516905b818110610647575090846001959493921061062f575b505050811b016002556101ce565b01515f1960f88460031b161c191690555f8080610621565b9293602060018192878601518155019501930161060b565b60025f529091507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f840160051c810191602085106106c3575b90601f859493920160051c01905b8181106106b557506101a3565b5f81558493506001016106a8565b909150819061069a565b91607f169161018f565b015190505f80610157565b60015f9081528281209350601f198516905b8181106107305750908460019594939210610718575b505050811b0160015561016c565b01515f1960f88460031b161c191690555f808061070a565b929360206001819287860151815501950193016106f4565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c810191602085106107ac575b90601f859493920160051c01905b81811061079e5750610141565b5f8155849350600101610791565b9091508190610783565b91607f169161012d565b633eaf92f760e21b5f5260045ffd5b63265f13bd60e21b5f5260045ffd5b631e4fbdf760e01b5f525f60045260245ffd5b6040519190601f01601f191682016001600160401b038111838210176104eb57604052565b81601f820112156104a8578051906001600160401b0382116104eb57610845601f8301601f19166020016107f1565b92828452602083830101116104a857815f9260208093018386015e8301015290565b51906001600160a01b03821682036104a857565b6001600160a01b03165f90815268a20d6e21d0e5255313602052604090209056fe608080604052600436101561075d575b503615610752575f3560e01c63e5eb36c881146103d25763f6916ddd811461038f576362fb246d811461036b57632d8a746e81146103325763c016aa52811461031f5763d10b6e0c811461022f576327ef549581146102145763f5b100ea81146101ef5763e2c7928181146101d45763cb30b46081146100a95763b7a94eb8146100a057633c10b94e5f526004601cfd5b60015f5260205ff35b60206040510160405260606003546100c0816113a1565b6100e4575b50605f601f198201915f6020825180930101526020835201601f191690f35b905060405190608082019160a081016040525f8352600a600435935b5f19019360308282060185530492831561011c57600a90610100565b9250608083601f19810192030181526040519283915f9061013c856113a1565b94600181169081156101b45750600114610173575b61016d9450518092825e015f815203601f1981018352826113d9565b816100c5565b905060035f5260205f20935f5b818110610198575061016d9450830160200190610151565b8554602082890181019190915260019096019587955001610180565b602092935061016d96915060ff1916828601528015150284010190610151565b63ffffffff68a20d6e21d0e52553085460801c165f5260205ff35b63ffffffff6102086004356001600160a01b031661135f565b5460801c165f5260205ff35b6001600160a01b03610227600435612130565b165f5260205ff35b68a20d6e21d0e5255309546001600160a01b03163303610312576001600160a01b036044358116906024359060043581169061028061027b5f19600160201b861086020160011b612055565b6120eb565b5416928381036102ef575b505f82815268a20d6e21d0e525530c60209081526040822080546001600160a01b0319166001600160a01b03851617905568a20d6e21d0e525530d60601b600885901c018054600160ff90961695861b191693151590941b92909217909255918152f35b6102f990846115cd565b5415610305578361028b565b63cfb3b9425f526004601cfd5b63ce5a776b5f526004601cfd5b6001600160a01b03610227600435612107565b6004356001600160a01b0361034682612107565b161561035e576001600160a01b039061022790612107565b63ceea21b65f526004601cfd5b6103856001600160a01b03602435811690600435166115cd565b5415155f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633036103125760243515156103c86001600160a01b03600435811690604435166115cd565b5560015f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633819003610312576001600160a01b0360043581165f818152600560205260409020547f000000000000000000000000000000000000000000000000000000000000000093919260443592916064358216916024351690610448908790611438565b935f925f948661072d575b83156107205715610713576001600160a01b0361048061027b600160201b851085025f190160011b612055565b54168703610706578681036106cd575b5061049a8661135f565b906104a48361135f565b90825460a01c808a116106c0576105a69361055e916104cf908c90036001600160601b031682612169565b83546104ee9060a01c6001600160601b038d8116919091011685612169565b6104f78361229f565b61068f575b600161052b61050a8c611380565b9261052563ffffffff5f1981845460801c160116809261218c565b83612079565b61054d8161053f5f198801851b8501612055565b9463ffffffff8616906120c3565b63ffffffff165f1901811b01612095565b6105a08463ffffffff845460801c169361058163ffffffff60018701168261218c565b61059b61058d83611380565b8663ffffffff8716916120c3565b6121d0565b90612260565b855f52845f8051602061231483398151915260205fa36105c95760015f5260205ff35b5f19820191821161067b5763ffffffff6105e28461135f565b5460801c169182811061060d575b5050505f52600560205260405f20908154039055808080806100a0565b61061684611380565b928210156105f0578181146105f0576001826106628363ffffffff8481966106628a610645886106739d612079565b928161065d610655838795612079565b809b836120c3565b6120c3565b825f19911601811b01911690612095565b8280806105f0565b634e487b7160e01b5f52601160045260245ffd5b610698836121af565b5f83815268a20d6e21d0e525530c6020526040902080546001600160a01b03191690556104fc565b63f4d678b85f526004601cfd5b6106d781886115cd565b54610490576001600160a01b036106ed83612130565b16036106f95787610490565b6359c896be5f526004601cfd5b63a11481005f526004601cfd5b6340739bf05f526004601cfd5b63ea553b345f526004601cfd5b9350935063ffffffff61074760015f198401811b01612055565b169385851093610453565b3461075957005b5f80fd5b5f3560e01c90816306fdde031461126757508063095ea7b3146111c65780630ad9e7bf1461118e57806310aa0ebb1461116957806316f0115b1461114157806318160ddd14611119578063207d0636146110d657806323b872dd14611030578063274e430b146110035780632a6a935d14610f915780632f745c5914610f2a578063313ce56714610f0f5780634ef41efc14610edf5780634f6ccce714610ec157806355f804b314610d685780635b2aa23914610bcb5780636c0360eb14610b3957806370a0823114610b0a578063715018a614610ac65780638902653814610a995780638da5cb5b14610a72578063907af6c014610a3857806395d89b411461095e578063a9059cbb1461092d578063dd62ed3e146108f95763f2fde38b14610887575f61000f565b34610759576020366003190112610759576108a0611333565b6108a8611589565b6001600160a01b031680156108e6575f80546001600160a01b03198116831782556001600160a01b0316905f805160206122f48339815191529080a3005b631e4fbdf760e01b5f525f60045260245ffd5b34610759576040366003190112610759576020610925610917611333565b61091f611349565b90611523565b604051908152f35b3461075957604036600319011261075957610953610949611333565b60243590336115eb565b602060405160018152f35b34610759575f366003190112610759576040515f60025461097e816113a1565b8084529060018116908115610a1457506001146109b6575b6109b2836109a6818503826113d9565b60405191829182611309565b0390f35b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b8082106109fa575090915081016020016109a6610996565b9192600181602092548385880101520191019092916109e2565b60ff191660208086019190915291151560051b840190910191506109a69050610996565b34610759575f3660031901126107595760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610759575f366003190112610759575f546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957610ab1611589565b6004805460ff60a01b1916600160a01b179055005b34610759575f36600319011261075957610ade611589565b5f80546001600160a01b0319811682556001600160a01b03165f805160206122f48339815191528280a3005b34610759576020366003190112610759576020610b2d610b28611333565b61135f565b5460a01c604051908152f35b34610759575f366003190112610759576040515f600354610b59816113a1565b8084529060018116908115610a145750600114610b80576109b2836109a6818503826113d9565b60035f9081525f805160206122d4833981519152939250905b808210610bb1575090915081016020016109a6610996565b919260018160209254838588010152019101909291610b99565b34610759576020366003190112610759576004356001600160401b03811161075957366023820112156107595760048101356001600160401b038111610759573660248260051b84010111610759577f0000000000000000000000000000000000000000000000000000000000000000918282029282840481148315171561067b57335f52600560205260405f205493610c643361135f565b5460a01c610c728287611456565b11610d5957610c84610c8a9286611438565b94611456565b335f52600560205260405f2055610ca03361135f565b9263ffffffff610caf33611380565b945460801c16915f915b84831015610d575760248360051b8301013584811015610d4857818110610d3e578181600193849303610cf2575b5001925b0191610cb9565b8063ffffffff848b61066282610d0b610d389784612079565b610d26818a610d1a8188612079565b9661065d888c836120c3565b888616919086165f1901811b01612095565b88610ce7565b5091600190610ceb565b633277964160e01b5f5260045ffd5b005b6302579b0560e11b5f5260045ffd5b34610759576020366003190112610759576004356001600160401b03811161075957366023820112156107595760048101356001600160401b03811161075957366024828401011161075957610dbc611589565b610dc76003546113a1565b601f8111610e71575b505f601f8211600114610e0c5781925f92610dfe575b50508160011b915f199060031b1c1916176003555f80f35b602492500101358280610de6565b601f1982169260035f5260205f20915f5b858110610e5657508360019510610e3a575b505050811b01600355005b01602401355f19600384901b60f8161c19169055828080610e2f565b90926020600181926024878701013581550194019101610e1d565b60035f525f805160206122d4833981519152601f830160051c81019160208410610eb7575b601f0160051c01905b818110610eac5750610dd0565b5f8155600101610e9f565b9091508190610e96565b34610759576020366003190112610759576020610925600435611463565b34610759575f3660031901126107595768a20d6e21d0e5255309546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957602060405160128152f35b3461075957604036600319011261075957610f43611333565b60243563ffffffff610f548361135f565b5460801c16811015610f8257610f7963ffffffff91610f74602094611380565b612079565b16604051908152f35b6306ed618760e11b5f5260045ffd5b3461075957602036600319011261075957600435801580158092036107595761095391610fbd3361135f565b91825460581c915f52337fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff83169216151860011b186001179061156c565b34610759576020366003190112610759576020611026611021611333565b611410565b6040519015158152f35b3461075957606036600319011261075957611049611333565b611051611349565b6044359061105f33846115af565b926e22d473030f116ddee9f6b43ac78ba33314806110bf575b156110b7575f19935b60018501611095575b5061095393506115eb565b8484116110aa5783610953950390558461108a565b6313be252b5f526004601cfd5b835493611081565b5060046110cb8261135f565b5460581c1615611078565b34610759576020366003190112610759576110ef611333565b6110f7611589565b600480546001600160a81b0319166001600160a01b0392909216919091179055005b34610759575f36600319011261075957602068a20d6e21d0e52553085460a01c604051908152f35b34610759575f366003190112610759576004546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957602060ff60045460a01c166040519015158152f35b34610759576020366003190112610759576001600160a01b036111af611333565b165f526005602052602060405f2054604051908152f35b34610759576040366003190112610759576111df611333565b6001600160a01b03811690602435908190611211906e22d473030f116ddee9f6b43ac78ba38514611245575b336115af565b555f52337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa3602060405160018152f35b6112626112513361135f565b600460ff825460581c16179061156c565b61120b565b34610759575f366003190112610759575f600154611284816113a1565b8084529060018116908115610a1457506001146112ab576109b2836109a6818503826113d9565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106112ef575090915081016020016109a6610996565b9192600181602092548385880101520191019092916112d7565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361075957565b602435906001600160a01b038216820361075957565b6001600160a01b03165f90815268a20d6e21d0e52553136020526040902090565b6001600160a01b03165f90815268a20d6e21d0e52553106020526040902090565b90600182811c921680156113cf575b60208310146113bb57565b634e487b7160e01b5f52602260045260245ffd5b91607f16916113b0565b601f909101601f19168101906001600160401b038211908210176113fc57604052565b634e487b7160e01b5f52604160045260245ffd5b9061141a8261135f565b5460581c9160016002841615159316156114315750565b3b15159150565b8115611442570490565b634e487b7160e01b5f52601260045260245ffd5b9190820180921161067b57565b9068a20d6e21d0e52553085463ffffffff8160801c16831015611514576114ae907f00000000000000000000000000000000000000000000000000000000000000009060a01c611438565b905f925f5b8381106114c957639f6fb6c960e01b5f5260045ffd5b806001018060011161067b5763ffffffff6114e68360011b612055565b166114f5575b506001016114b3565b828692961461150b5750600180910194906114ec565b93505050915090565b639f6fb6c960e01b5f5260045ffd5b906001600160a01b0381166e22d473030f116ddee9f6b43ac78ba314611551575b61154d916115af565b5490565b600461155c8361135f565b5460581c166115445750505f1990565b805460ff60581b191660589290921b60ff60581b16919091179055565b5f546001600160a01b0316330361159c57565b63118cdaa760e01b5f523360045260245ffd5b9060285260145268a20d6e21d0e525530f5f5260485f20905f602852565b9060285260145268a20d6e21d0e525530b5f5260485f20905f602852565b6004549092906001600160a01b03838116908216149081612046575b50612037576001600160a01b038316611fe0575b6001600160a01b03821615610720576116338361135f565b61163c8361135f565b68a20d6e21d0e5255309546001600160a01b031615610713576040519161018083016001600160401b038111848210176113fc576040525f83525f60208401525f60808401525f60a08401525f60c08401525f60e08401525f6101008401525f6101208401525f6101408401525f610160840152805463ffffffff8160801c16604085015263ffffffff835460801c1660608501528060a01c85116106c0576116f560a082901c8690036001600160601b031683612169565b825460a01c8501906117106001600160601b03831685612169565b611745604086015191877f00000000000000000000000000000000000000000000000000000000000000009160a01c03611438565b808203911102845261175686611410565b15611f78575b50611d73565b68a20d6e21d0e52553085463ffffffff60208501518551928382848360801c1601038060808901528360801b9060801b16908360801b191617928368a20d6e21d0e52553085501916040519260c060a085019180835260051b850101604052836040015260c0830183528261016087015260601c166101208501528351611c53575b505060208201516118c9575b5061014081015180611885575b50610160015180611833575b505f9081526001600160a01b0391821692909116905f8051602061231483398151915290602090a3565b600160206040828060a01b0368a20d6e21d0e5255309541693015192603f19840193849163263c69d6835283601f198301525f825160051b6044019260231901915af19151141615610759575f611809565b600160205f9281838060a01b0368a20d6e21d0e5255309541691015190815160051b60840190607f19830195869360631901915af19151141615610759575f6117fd565b9194610160829492015160208360601b9101526118e582611380565b9463ffffffff6118f584866121d0565b1660e086015268a20d6e21d0e5255308549263ffffffff6119397f00000000000000000000000000000000000000000000000000000000000000008660a01c611438565b9460201c16848111908115021761010087015261196e60608701519563ffffffff602089015188018060c08b0152169061218c565b63ffffffff68a20d6e21d0e52553085460401c169760015b15611bf4575b6101208701515f9063ffffffff8b8116911614611a4257611a3d63ffffffff60018c01169a60e0641fffffffe0631fffffff8360031c1668a20d6e21d0e525531160601b01549260051b16161c63ffffffff165b8060081c685106b710e87292a98760611b0160018260ff161b8019825416179055611a1263ffffffff82168a8d6120c3565b611a3263ffffffff60e08c01511663ffffffff60018c019b169083612260565b6101608a01516122bd565b611986565b949798939291906101008801515b63ffffffff611a645f19830160011b612055565b1615611bd0575f19906001810160081c685106b710e87292a98760611b018054196001830160ff1690811c901b8015611b58575b80611aae575b5050508981119081150217611a50565b600180939450811901167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07a1412563212c14164235266736f7425221143267a4524367526767760fc7b2aaaaaaaba69a69a6db6db6db2cb2cb2ce739ce73def7bdeffffffff860260f81c161b60f71c1692831c63d76453e004161a179082685106b710e87292a98760611b03190160081b17910181108a8211175f03175f8080611a9e565b506001909c9895929c9a9794919a9693965b01805419685106b710e87292a98760611b60088e901c0182118117611b925750600190611b6a565b9c9295989c9a9194979a969396808d60081c685106b710e87292a98760611b018311611bbf575b50611a98565b508c1960ff1690811b901c80611bb9565b611a3d909a999691929394959a6001810188811190811502176101008b01526119e0565b60c0870151860361198c57945094925094509468a20d6e21d0e52553085463ffffffff60201b61010084015160201b169163ffffffff60401b9060401b1690600160201b600160601b031916171768a20d6e21d0e5255308555f6117f0565b602060018860609a9699959a989497981b17910152611c7182611380565b94611c9160408801519563ffffffff895188038060a08c0152169061218c565b60015b15611d5a575b5f945f190194611caa8688612079565b63ffffffff8116905f1982018060021c685106b710e87292a98960611b019060c082549160061b1681811c60018060401b0316901b189055611cf1826101608c01516122bd565b600160ff62ffffff8360081c16685106b710e87292a98760611b0192161b198154169055611d1e8161229f565b611d29575b50611c94565b611d32816121af565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611d23565b60a08701518503611c9a57935093509390945f806117e4565b9194604086979294970151948651976020880151898110818b18028a1899888b108b8a18028914611f69578a8918898c10028918908190038a52900360208901526001600160a01b0383811690831614611f47576040805163144027d3818301526001600160a01b03858116606080840191909152908516608083015260a08201528a8918898c1002891860c0820181815260059190911b820160e090810190935260208201529081018152610140890152611e2e83611380565b95611e3883611380565b9763ffffffff611e4885846121d0565b1660e08b015260608a01519a81811090821802188a019560015b15611f01575b878b611eac8163ffffffff808f8f90611ea060e09284611e975f9b5f1960408701510190816040880152612079565b169889916120c3565b01511691169083612260565b6101408c015160208151838152019052611ec58161229f565b611ed0575b50611e62565b611ed9816121af565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611eca565b9960010199868b03611e6857939895509398611f2e92975063ffffffff919650806060870152168361218c565b611f4263ffffffff6040850151168261218c565b611762565b9492978681989593989792971090821802186060840151016060840152611762565b50509492975094509491611762565b611fb7906001600160a01b0388811690881614611fcd575b7f000000000000000000000000000000000000000000000000000000000000000090611438565b606084015180820391110260208401525f61175c565b6040850151855190036060860152611f90565b611fe98361135f565b5460a01c60018060a01b0384165f52600560205260405f205490808211918215612024575b50501561161b576311acc28f60e01b5f5260045ffd5b81039150811161067b5781115f8061200e565b632e13674560e01b5f5260045ffd5b60ff915060a01c16155f611607565b60e08160031c685106b710e87292a98960611b01549160051b161c63ffffffff1690565b60e0908260031c9060601b01549160051b161c63ffffffff1690565b9060e08260031c685106b710e87292a98960611b019260051b1682549182821c1863ffffffff16901b189055565b60e0909291928360031c9060601b019260051b1682549182821c1863ffffffff16901b189055565b63ffffffff165f5268a20d6e21d0e525530a60205260405f2090565b6001600160a01b039061212b9061027b90600160201b8110025f190160011b612055565b541690565b6001600160a01b0361214182612107565b161561035e575f90815268a20d6e21d0e525530c60205260409020546001600160a01b031690565b80546001600160a01b031660a09290921b6001600160a01b031916919091179055565b805463ffffffff60801b191660809290921b63ffffffff60801b16919091179055565b60018160081c68a20d6e21d0e525530d60601b019160ff161b198154169055565b805460601c63ffffffff16929183156121e7575050565b68a20d6e21d0e5255308805463ffffffff19811663ffffffff918216600101918216908117909255835463ffffffff60601b191660609190911b63ffffffff60601b1617909255909250829061223c826120eb565b80546001600160a01b0319166001600160a01b039092169190911790551561075957565b5f1901908160021c685106b710e87292a98960611b019260c084549360061b169163ffffffff169060201b1782821c1860018060401b0316901b189055565b8060081c68a20d6e21d0e525530d60601b01549060ff161c60011690565b9060209082519060081b8284015117815201905256fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef608034607857601f610d3538819003918201601f19168301916001600160401b03831184841017607c57808492602094604052833981010312607857516001600160a01b03811690819003607857683602298b8c10b0123180546001600160a01b031916919091179055604051610ca490816100918239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60808060405260043610156101c5575b5036156101ba575f3560e01c63263c69d681146101405763144027d381146100cf57630f4599e51461004857633c10b94e5f526004601cfd5b683602298b8c10b01231546001600160a01b0316806100ab575b50683602298b8c10b01230546001600160a01b03811661009e576001600160a01b0319163317683602298b8c10b012305560015f908152602090f35b63bf656a465f526004601cfd5b6004356001600160a01b0316036100c2575f610062565b63c59ec47a5f526004601cfd5b683602298b8c10b01230546001600160a01b03163303610133576004356024359060443591602483810193600481013560051b0101925b8381036101165760015f5260205ff35b803582845f80516020610c848339815191525f80a4602001610106565b63363cb3125f526004601cfd5b683602298b8c10b01230546001600160a01b0316330361013357600435602481810191600481013560051b0101905b81810361017f5760015f5260205ff35b8035600881901c6001600160581b03169060018116801560609290921c91820291025f80516020610c848339815191525f80a460200161016f565b346101c157005b5f80fd5b5f3560e01c90816301ffc9a714610aa85750806306fdde0314610a3d578063081812fc146109e6578063095ea7b31461096457806318160ddd1461091857806323b872dd1461090457806324359879146108ad5780632f745c591461083c57806342842e0e146107c95780634f6ccce7146107325780636352211e146107035780636cef16e61461063757806370a08231146105da5780638da5cb5b146105aa57806395d89b411461053f57806397e5311c14610513578063a22cb46514610487578063b88d4fde1461039d578063c87b56dd146103215763e985e9c5146102ad575f61000f565b346101c15760403660031901126101c1576102c6610b1c565b60205f6044601c6102d5610b32565b6102dd610c25565b604080516362fb246d87526001600160a01b039889168852979092169091525afa601f3d1116156103195760405260205f516040519015158152f35b3d5f823e3d90fd5b346101c15760203660031901126101c15760043561033e81610c4f565b505f806024601c61034d610c25565b6040519563cb30b46085526020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b0390f35b60803660031901126101c1576103b1610b1c565b6103b9610b32565b60443591606435916001600160401b0383116101c157366023840112156101c1576004830135926001600160401b0384116101c15736602485830101116101c157610405858385610b82565b813b61040d57005b83602094602460a49360405198899763150b7a028952338a8a015260018060a01b0316604089015260608801526080808801528260a08801520160c086013701905f601c8401915af115610479575b5163757a42ff60e11b0161046c57005b63d1a57ed65f526004601cfd5b3d1561045c573d5f823e3d90fd5b346101c15760403660031901126101c1576104a0610b1c565b6024358015158091036101c15760205f6064601c826104bd610c25565b9660018060a01b0316966040519663f6916ddd8352888752604052336060525af160015f511416156103195750337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206040a3005b346101c1575f3660031901126101c157602061052d610c25565b6040516001600160a01b039091168152f35b346101c1575f3660031901126101c157610557610c25565b5f806024601c604051946395d89b418452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c1575f3660031901126101c157683602298b8c10b01232546040516001600160a01b039091168152602090f35b346101c15760203660031901126101c1576001600160a01b036105fb610b1c565b1660205f6044601c61060b610c25565b6040519563f5b100ea85528552836040525afa601f3d1116156103195760405260205f51604051908152f35b346101c1575f3660031901126101c15761064f610c25565b683602298b8c10b012325460205f6004601c60018060a01b03851695638da5cb5b84525afa9081601f3d1116600c5160601c0291156106ec575b506001600160a01b0316908181036106a7575b602060405160018152f35b683602298b8c10b0123280546001600160a01b031916831790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3808061069c565b60601b6001600160601b0319166101c15782610689565b346101c15760203660031901126101c15760206001600160a01b03610729600435610c4f565b16604051908152f35b346101c15760203660031901126101c157602460206001600160a01b03610757610c25565b1660405192838092634f6ccce760e01b825260043560048301525afa80156107be575f9061078b575b602090604051908152f35b506020813d6020116107b6575b816107a560209383610bee565b810103126101c15760209051610780565b3d9150610798565b6040513d5f823e3d90fd5b6107d236610b48565b916107de838383610b82565b813b6107e657005b60a460209260405194859363150b7a028552338686015260018060a01b0316604085015260608401526080808401525f60a08401525f3681375f601c8401915af115610479575163757a42ff60e11b0161046c57005b346101c15760403660031901126101c157610855610b1c565b60206001600160a01b03610867610c25565b604051632f745c5960e01b81526001600160a01b039094166004850152602480359085015283916044918391165afa80156107be575f9061078b57602090604051908152f35b346101c15760203660031901126101c1576108c6610c25565b60205f6044601c6040519463c016aa5284526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b61091661091036610b48565b91610b82565b005b346101c1575f3660031901126101c157610930610c25565b60205f6044601c6040519463e2c792818452838552836040525afa601f3d1116156103195760405260205f51604051908152f35b60403660031901126101c157610978610b1c565b60243590610984610c25565b9060018060a01b03169060205f6064601c6040519463d10b6e0c8452868552876040523360605234905af1601f3d1116156103195750600c5160601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a4005b346101c15760203660031901126101c1576109ff610c25565b60205f6044601c604051946327ef549584526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b346101c1575f3660031901126101c157610a55610c25565b5f806024601c604051946306fdde038452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c15760203660031901126101c157600435906001600160e01b0319821682036101c15760209160e01c635b5e139f8114906301ffc9a76380ac58cd82149114171715158152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101c157565b602435906001600160a01b03821682036101c157565b60609060031901126101c1576004356001600160a01b03811681036101c157906024356001600160a01b03811681036101c1579060443590565b9060846020610b8f610c25565b6040805163e5eb36c881526001600160a01b03968716848201819052959096169086018190526060860187905233608087015294928391601c83019034905af16001825114161561031957505f80516020610c848339815191525f80a4565b601f909101601f19168101906001600160401b03821190821017610c1157604052565b634e487b7160e01b5f52604160045260245ffd5b683602298b8c10b01230546001600160a01b0316908115610c4257565b635b2a47ae5f526004601cfd5b60205f6044601c610c5e610c25565b60405195632d8a746e85528552836040525afa601f3d111615610319576040525f519056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";
|
|
1412
|
+
var dopplerDN404_default = "0x60a0604052346104a85761394680380380610019816107f1565b928339810160e0828203126104a85781516001600160401b0381116104a85781610044918401610816565b60208301519091906001600160401b0381116104a85781610066918501610816565b9060408401519161007960608601610867565b9361008660808701610867565b60a08701519093906001600160401b0381116104a85760c0916100aa918901610816565b960151926001600160a01b031680156107de575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a382156107cf578284066107c0578051906001600160401b0382116104eb5760015490600182811c921680156107b6575b60208310146105d05781601f849311610748575b50602090601f83116001146106e2575f926106d7575b50508160011b915f199060031b1c1916176001555b8051906001600160401b0382116104eb5760025490600182811c921680156106cd575b60208310146105d05781601f84931161065f575b50602090601f83116001146105f9575f926105ee575b50508160011b915f199060031b1c1916176002555b83516001600160401b0381116104eb57600354600181811c911680156105e4575b60208210146105d057601f811161056d575b50602094601f821160011461050a579481929394955f926104ff575b50508160011b915f199060031b1c1916176003555b608052604051610d35808201906001600160401b038211838310176104eb576020918391612c1183393381520301905ff080156104e0576080516001600160a01b0391909116906001600160601b035f1990910110156104d35768a20d6e21d0e5255309546001600160a01b03166104c65780156104b957630f4599e55f523360205260205f6024601c82855af160015f511416156104ac57678da5cb5b6cef16e65f5260208060046018305afa601f3d1160205160601b151016610499575b68a20d6e21d0e5255308805463ffffffff60201b191664010000000017905568a20d6e21d0e525530980546001600160a01b03191691909117905580610375575b604051612374908161089d823960805181818161042701528181610a8401528181610c51015281816114bb0152818161173a0152818161192f0152611fb00152f35b6001600160a01b03821691821561048c57608051820463fffffffe108260601c1761047f5768a20d6e21d0e525530880546001600160a01b031660a084901b6001600160a01b03191690811790915561041292906103d28361087b565b80546001600160a01b031690911790555f90815283907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082a361087b565b906bff00000000000000000000008254918260581c9060015f527fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff821691161560011b1860011760581b16906bff000000000000000000000019161790555f80610333565b63e5cfe9575f526004601cfd5b63ea553b345f526004601cfd5b5f806004601c82855af16102f2575b5f80fd5b63d125259c5f526004601cfd5b6339a84a7b5f526004601cfd5b63ead4d2e45f526004601cfd5b63997c4ef45f526004601cfd5b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b015190505f8061021d565b601f1982169560035f52805f20915f5b8881106105555750836001959697981061053d575b505050811b01600355610232565b01515f1960f88460031b161c191690555f808061052f565b9192602060018192868501518155019401920161051a565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106105c6575b601f0160051c01905b8181106105bb5750610201565b5f81556001016105ae565b90915081906105a5565b634e487b7160e01b5f52602260045260245ffd5b90607f16906101ef565b015190505f806101b9565b60025f9081528281209350601f198516905b818110610647575090846001959493921061062f575b505050811b016002556101ce565b01515f1960f88460031b161c191690555f8080610621565b9293602060018192878601518155019501930161060b565b60025f529091507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f840160051c810191602085106106c3575b90601f859493920160051c01905b8181106106b557506101a3565b5f81558493506001016106a8565b909150819061069a565b91607f169161018f565b015190505f80610157565b60015f9081528281209350601f198516905b8181106107305750908460019594939210610718575b505050811b0160015561016c565b01515f1960f88460031b161c191690555f808061070a565b929360206001819287860151815501950193016106f4565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c810191602085106107ac575b90601f859493920160051c01905b81811061079e5750610141565b5f8155849350600101610791565b9091508190610783565b91607f169161012d565b633eaf92f760e21b5f5260045ffd5b63265f13bd60e21b5f5260045ffd5b631e4fbdf760e01b5f525f60045260245ffd5b6040519190601f01601f191682016001600160401b038111838210176104eb57604052565b81601f820112156104a8578051906001600160401b0382116104eb57610845601f8301601f19166020016107f1565b92828452602083830101116104a857815f9260208093018386015e8301015290565b51906001600160a01b03821682036104a857565b6001600160a01b03165f90815268a20d6e21d0e5255313602052604090209056fe6080806040526004361015610792575b503615610787575f3560e01c63e5eb36c881146103d25763f6916ddd811461038f576362fb246d811461036b57632d8a746e81146103325763c016aa52811461031f5763d10b6e0c811461022f576327ef549581146102145763f5b100ea81146101ef5763e2c7928181146101d45763cb30b46081146100a95763b7a94eb8146100a057633c10b94e5f526004601cfd5b60015f5260205ff35b60206040510160405260606003546100c0816113d6565b6100e4575b50605f601f198201915f6020825180930101526020835201601f191690f35b905060405190608082019160a081016040525f8352600a600435935b5f19019360308282060185530492831561011c57600a90610100565b9250608083601f19810192030181526040519283915f9061013c856113d6565b94600181169081156101b45750600114610173575b61016d9450518092825e015f815203601f19810183528261140e565b816100c5565b905060035f5260205f20935f5b818110610198575061016d9450830160200190610151565b8554602082890181019190915260019096019587955001610180565b602092935061016d96915060ff1916828601528015150284010190610151565b63ffffffff68a20d6e21d0e52553085460801c165f5260205ff35b63ffffffff6102086004356001600160a01b0316611394565b5460801c165f5260205ff35b6001600160a01b03610227600435612130565b165f5260205ff35b68a20d6e21d0e5255309546001600160a01b03163303610312576001600160a01b036044358116906024359060043581169061028061027b5f19600160201b861086020160011b612055565b6120eb565b5416928381036102ef575b505f82815268a20d6e21d0e525530c60209081526040822080546001600160a01b0319166001600160a01b03851617905568a20d6e21d0e525530d60601b600885901c018054600160ff90961695861b191693151590941b92909217909255918152f35b6102f99084611602565b5415610305578361028b565b63cfb3b9425f526004601cfd5b63ce5a776b5f526004601cfd5b6001600160a01b03610227600435612107565b6004356001600160a01b0361034682612107565b161561035e576001600160a01b039061022790612107565b63ceea21b65f526004601cfd5b6103856001600160a01b0360243581169060043516611602565b5415155f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633036103125760243515156103c86001600160a01b0360043581169060443516611602565b5560015f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633819003610312576001600160a01b0360643581169160043582169160443591906024351661041481612169565b835f52600560205260405f20549461044d7f0000000000000000000000000000000000000000000000000000000000000000809761146d565b935f915f9486610762575b84156107555715610748576001600160a01b0361048561027b600160201b851085025f190160011b612055565b5416870361073b57868103610702575b5061049f86611394565b906104a984611394565b90825460a01c808a116106f5576105ab93610563916104d4908c90036001600160601b0316826121a9565b83546104f39060a01c6001600160601b038d81169190910116856121a9565b6104fc836122df565b6106c4575b600161053061050f8c6113b5565b9261052a63ffffffff5f1981845460801c16011680926121cc565b83612079565b610552816105445f198801851b8501612055565b9463ffffffff8616906120c3565b63ffffffff165f1901811b01612095565b6105a58563ffffffff845460801c169361058663ffffffff6001870116826121cc565b6105a0610592836113b5565b8663ffffffff8716916120c3565b612210565b906122a0565b855f5281855f8051602061235483398151915260205fa36105cf5760015f5260205ff35b5f198301908382116106b05763ffffffff6105e986611394565b5460801c169384808410928361068e575b505050610620575b5050505f52600560205260405f2090815403905580808080806100a0565b610629846113b5565b9282101561060257818114610602576001826106758363ffffffff8481966106758a610658886106869d612079565b9281610670610668838795612079565b809b836120c3565b6120c3565b825f19911601811b01911690612095565b828080610602565b8714801593509091906106a6575b50508684816105fa565b109050838761069c565b634e487b7160e01b5f52601160045260245ffd5b6106cd836121ef565b5f83815268a20d6e21d0e525530c6020526040902080546001600160a01b0319169055610501565b63f4d678b85f526004601cfd5b61070c8188611602565b54610495576001600160a01b0361072283612130565b160361072e5787610495565b6359c896be5f526004601cfd5b63a11481005f526004601cfd5b6340739bf05f526004601cfd5b63ea553b345f526004601cfd5b9250935063ffffffff61077c60015f198401811b01612055565b169385851092610458565b3461078e57005b5f80fd5b5f3560e01c90816306fdde031461129c57508063095ea7b3146111fb5780630ad9e7bf146111c357806310aa0ebb1461119e57806316f0115b1461117657806318160ddd1461114e578063207d06361461110b57806323b872dd14611065578063274e430b146110385780632a6a935d14610fc65780632f745c5914610f5f578063313ce56714610f445780634ef41efc14610f145780634f6ccce714610ef657806355f804b314610d9d5780635b2aa23914610c005780636c0360eb14610b6e57806370a0823114610b3f578063715018a614610afb5780638902653814610ace5780638da5cb5b14610aa7578063907af6c014610a6d57806395d89b4114610993578063a9059cbb14610962578063dd62ed3e1461092e5763f2fde38b146108bc575f61000f565b3461078e57602036600319011261078e576108d5611368565b6108dd6115be565b6001600160a01b0316801561091b575f80546001600160a01b03198116831782556001600160a01b0316905f805160206123348339815191529080a3005b631e4fbdf760e01b5f525f60045260245ffd5b3461078e57604036600319011261078e57602061095a61094c611368565b61095461137e565b90611558565b604051908152f35b3461078e57604036600319011261078e5761098861097e611368565b6024359033611620565b602060405160018152f35b3461078e575f36600319011261078e576040515f6002546109b3816113d6565b8084529060018116908115610a4957506001146109eb575b6109e7836109db8185038261140e565b6040519182918261133e565b0390f35b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b808210610a2f575090915081016020016109db6109cb565b919260018160209254838588010152019101909291610a17565b60ff191660208086019190915291151560051b840190910191506109db90506109cb565b3461078e575f36600319011261078e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461078e575f36600319011261078e575f546040516001600160a01b039091168152602090f35b3461078e575f36600319011261078e57610ae66115be565b6004805460ff60a01b1916600160a01b179055005b3461078e575f36600319011261078e57610b136115be565b5f80546001600160a01b0319811682556001600160a01b03165f805160206123348339815191528280a3005b3461078e57602036600319011261078e576020610b62610b5d611368565b611394565b5460a01c604051908152f35b3461078e575f36600319011261078e576040515f600354610b8e816113d6565b8084529060018116908115610a495750600114610bb5576109e7836109db8185038261140e565b60035f9081525f80516020612314833981519152939250905b808210610be6575090915081016020016109db6109cb565b919260018160209254838588010152019101909291610bce565b3461078e57602036600319011261078e576004356001600160401b03811161078e573660238201121561078e5760048101356001600160401b03811161078e573660248260051b8401011161078e577f000000000000000000000000000000000000000000000000000000000000000091828202928284048114831517156106b057335f52600560205260405f205493610c9933611394565b5460a01c610ca7828761148b565b11610d8e57610cb9610cbf928661146d565b9461148b565b335f52600560205260405f2055610cd533611394565b9263ffffffff610ce4336113b5565b945460801c16915f915b84831015610d8c5760248360051b8301013584811015610d7d57818110610d73578181600193849303610d27575b5001925b0191610cee565b8063ffffffff848b61067582610d40610d6d9784612079565b610d5b818a610d4f8188612079565b96610670888c836120c3565b888616919086165f1901811b01612095565b88610d1c565b5091600190610d20565b633277964160e01b5f5260045ffd5b005b6302579b0560e11b5f5260045ffd5b3461078e57602036600319011261078e576004356001600160401b03811161078e573660238201121561078e5760048101356001600160401b03811161078e57366024828401011161078e57610df16115be565b610dfc6003546113d6565b601f8111610ea6575b505f601f8211600114610e415781925f92610e33575b50508160011b915f199060031b1c1916176003555f80f35b602492500101358280610e1b565b601f1982169260035f5260205f20915f5b858110610e8b57508360019510610e6f575b505050811b01600355005b01602401355f19600384901b60f8161c19169055828080610e64565b90926020600181926024878701013581550194019101610e52565b60035f525f80516020612314833981519152601f830160051c81019160208410610eec575b601f0160051c01905b818110610ee15750610e05565b5f8155600101610ed4565b9091508190610ecb565b3461078e57602036600319011261078e57602061095a600435611498565b3461078e575f36600319011261078e5768a20d6e21d0e5255309546040516001600160a01b039091168152602090f35b3461078e575f36600319011261078e57602060405160128152f35b3461078e57604036600319011261078e57610f78611368565b60243563ffffffff610f8983611394565b5460801c16811015610fb757610fae63ffffffff91610fa96020946113b5565b612079565b16604051908152f35b6306ed618760e11b5f5260045ffd5b3461078e57602036600319011261078e576004358015801580920361078e5761098891610ff233611394565b91825460581c915f52337fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff83169216151860011b18600117906115a1565b3461078e57602036600319011261078e57602061105b611056611368565b611445565b6040519015158152f35b3461078e57606036600319011261078e5761107e611368565b61108661137e565b6044359061109433846115e4565b926e22d473030f116ddee9f6b43ac78ba33314806110f4575b156110ec575f19935b600185016110ca575b506109889350611620565b8484116110df578361098895039055846110bf565b6313be252b5f526004601cfd5b8354936110b6565b50600461110082611394565b5460581c16156110ad565b3461078e57602036600319011261078e57611124611368565b61112c6115be565b600480546001600160a81b0319166001600160a01b0392909216919091179055005b3461078e575f36600319011261078e57602068a20d6e21d0e52553085460a01c604051908152f35b3461078e575f36600319011261078e576004546040516001600160a01b039091168152602090f35b3461078e575f36600319011261078e57602060ff60045460a01c166040519015158152f35b3461078e57602036600319011261078e576001600160a01b036111e4611368565b165f526005602052602060405f2054604051908152f35b3461078e57604036600319011261078e57611214611368565b6001600160a01b03811690602435908190611246906e22d473030f116ddee9f6b43ac78ba3851461127a575b336115e4565b555f52337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa3602060405160018152f35b61129761128633611394565b600460ff825460581c1617906115a1565b611240565b3461078e575f36600319011261078e575f6001546112b9816113d6565b8084529060018116908115610a4957506001146112e0576109e7836109db8185038261140e565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b808210611324575090915081016020016109db6109cb565b91926001816020925483858801015201910190929161130c565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361078e57565b602435906001600160a01b038216820361078e57565b6001600160a01b03165f90815268a20d6e21d0e52553136020526040902090565b6001600160a01b03165f90815268a20d6e21d0e52553106020526040902090565b90600182811c92168015611404575b60208310146113f057565b634e487b7160e01b5f52602260045260245ffd5b91607f16916113e5565b601f909101601f19168101906001600160401b0382119082101761143157604052565b634e487b7160e01b5f52604160045260245ffd5b9061144f82611394565b5460581c9160016002841615159316156114665750565b3b15159150565b8115611477570490565b634e487b7160e01b5f52601260045260245ffd5b919082018092116106b057565b9068a20d6e21d0e52553085463ffffffff8160801c16831015611549576114e3907f00000000000000000000000000000000000000000000000000000000000000009060a01c61146d565b905f925f5b8381106114fe57639f6fb6c960e01b5f5260045ffd5b80600101806001116106b05763ffffffff61151b8360011b612055565b1661152a575b506001016114e8565b8286929614611540575060018091019490611521565b93505050915090565b639f6fb6c960e01b5f5260045ffd5b906001600160a01b0381166e22d473030f116ddee9f6b43ac78ba314611586575b611582916115e4565b5490565b600461159183611394565b5460581c166115795750505f1990565b805460ff60581b191660589290921b60ff60581b16919091179055565b5f546001600160a01b031633036115d157565b63118cdaa760e01b5f523360045260245ffd5b9060285260145268a20d6e21d0e525530f5f5260485f20905f602852565b9060285260145268a20d6e21d0e525530b5f5260485f20905f602852565b9161162a82612169565b6001600160a01b038316611ffe575b6001600160a01b038216156107555761165183611394565b61165a83611394565b68a20d6e21d0e5255309546001600160a01b031615610748576040519161018083016001600160401b03811184821017611431576040525f83525f60208401525f60808401525f60a08401525f60c08401525f60e08401525f6101008401525f6101208401525f6101408401525f610160840152805463ffffffff8160801c16604085015263ffffffff835460801c1660608501528060a01c85116106f55761171360a082901c8690036001600160601b0316836121a9565b825460a01c85019061172e6001600160601b038316856121a9565b611763604086015191877f00000000000000000000000000000000000000000000000000000000000000009160a01c0361146d565b808203911102845261177486611445565b15611f96575b50611d91565b68a20d6e21d0e52553085463ffffffff60208501518551928382848360801c1601038060808901528360801b9060801b16908360801b191617928368a20d6e21d0e52553085501916040519260c060a085019180835260051b850101604052836040015260c0830183528261016087015260601c166101208501528351611c71575b505060208201516118e7575b50610140810151806118a3575b50610160015180611851575b505f9081526001600160a01b0391821692909116905f8051602061235483398151915290602090a3565b600160206040828060a01b0368a20d6e21d0e5255309541693015192603f19840193849163263c69d6835283601f198301525f825160051b6044019260231901915af1915114161561078e575f611827565b600160205f9281838060a01b0368a20d6e21d0e5255309541691015190815160051b60840190607f19830195869360631901915af1915114161561078e575f61181b565b9194610160829492015160208360601b910152611903826113b5565b9463ffffffff6119138486612210565b1660e086015268a20d6e21d0e5255308549263ffffffff6119577f00000000000000000000000000000000000000000000000000000000000000008660a01c61146d565b9460201c16848111908115021761010087015261198c60608701519563ffffffff602089015188018060c08b015216906121cc565b63ffffffff68a20d6e21d0e52553085460401c169760015b15611c12575b6101208701515f9063ffffffff8b8116911614611a6057611a5b63ffffffff60018c01169a60e0641fffffffe0631fffffff8360031c1668a20d6e21d0e525531160601b01549260051b16161c63ffffffff165b8060081c685106b710e87292a98760611b0160018260ff161b8019825416179055611a3063ffffffff82168a8d6120c3565b611a5063ffffffff60e08c01511663ffffffff60018c019b1690836122a0565b6101608a01516122fd565b6119a4565b949798939291906101008801515b63ffffffff611a825f19830160011b612055565b1615611bee575f19906001810160081c685106b710e87292a98760611b018054196001830160ff1690811c901b8015611b76575b80611acc575b5050508981119081150217611a6e565b600180939450811901167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07a1412563212c14164235266736f7425221143267a4524367526767760fc7b2aaaaaaaba69a69a6db6db6db2cb2cb2ce739ce73def7bdeffffffff860260f81c161b60f71c1692831c63d76453e004161a179082685106b710e87292a98760611b03190160081b17910181108a8211175f03175f8080611abc565b506001909c9895929c9a9794919a9693965b01805419685106b710e87292a98760611b60088e901c0182118117611bb05750600190611b88565b9c9295989c9a9194979a969396808d60081c685106b710e87292a98760611b018311611bdd575b50611ab6565b508c1960ff1690811b901c80611bd7565b611a5b909a999691929394959a6001810188811190811502176101008b01526119fe565b60c087015186036119aa57945094925094509468a20d6e21d0e52553085463ffffffff60201b61010084015160201b169163ffffffff60401b9060401b1690600160201b600160601b031916171768a20d6e21d0e5255308555f61180e565b602060018860609a9699959a989497981b17910152611c8f826113b5565b94611caf60408801519563ffffffff895188038060a08c015216906121cc565b60015b15611d78575b5f945f190194611cc88688612079565b63ffffffff8116905f1982018060021c685106b710e87292a98960611b019060c082549160061b1681811c60018060401b0316901b189055611d0f826101608c01516122fd565b600160ff62ffffff8360081c16685106b710e87292a98760611b0192161b198154169055611d3c816122df565b611d47575b50611cb2565b611d50816121ef565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611d41565b60a08701518503611cb857935093509390945f80611802565b9194604086979294970151948651976020880151898110818b18028a1899888b108b8a18028914611f87578a8918898c10028918908190038a52900360208901526001600160a01b0383811690831614611f65576040805163144027d3818301526001600160a01b03858116606080840191909152908516608083015260a08201528a8918898c1002891860c0820181815260059190911b820160e090810190935260208201529081018152610140890152611e4c836113b5565b95611e56836113b5565b9763ffffffff611e668584612210565b1660e08b015260608a01519a81811090821802188a019560015b15611f1f575b878b611eca8163ffffffff808f8f90611ebe60e09284611eb55f9b5f1960408701510190816040880152612079565b169889916120c3565b015116911690836122a0565b6101408c015160208151838152019052611ee3816122df565b611eee575b50611e80565b611ef7816121ef565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611ee8565b9960010199868b03611e8657939895509398611f4c92975063ffffffff91965080606087015216836121cc565b611f6063ffffffff604085015116826121cc565b611780565b9492978681989593989792971090821802186060840151016060840152611780565b50509492975094509491611780565b611fd5906001600160a01b0388811690881614611feb575b7f00000000000000000000000000000000000000000000000000000000000000009061146d565b606084015180820391110260208401525f61177a565b6040850151855190036060860152611fae565b61200783611394565b5460a01c60018060a01b0384165f52600560205260405f205490808211918215612042575b505015611639576311acc28f60e01b5f5260045ffd5b8103915081116106b05781115f8061202c565b60e08160031c685106b710e87292a98960611b01549160051b161c63ffffffff1690565b60e0908260031c9060601b01549160051b161c63ffffffff1690565b9060e08260031c685106b710e87292a98960611b019260051b1682549182821c1863ffffffff16901b189055565b60e0909291928360031c9060601b019260051b1682549182821c1863ffffffff16901b189055565b63ffffffff165f5268a20d6e21d0e525530a60205260405f2090565b6001600160a01b039061212b9061027b90600160201b8110025f190160011b612055565b541690565b6001600160a01b0361214182612107565b161561035e575f90815268a20d6e21d0e525530c60205260409020546001600160a01b031690565b6004546001600160a01b03808216921691909114908161219a575b5061218b57565b632e13674560e01b5f5260045ffd5b60ff915060a01c16155f612184565b80546001600160a01b031660a09290921b6001600160a01b031916919091179055565b805463ffffffff60801b191660809290921b63ffffffff60801b16919091179055565b60018160081c68a20d6e21d0e525530d60601b019160ff161b198154169055565b805460601c63ffffffff1692918315612227575050565b68a20d6e21d0e5255308805463ffffffff19811663ffffffff918216600101918216908117909255835463ffffffff60601b191660609190911b63ffffffff60601b1617909255909250829061227c826120eb565b80546001600160a01b0319166001600160a01b039092169190911790551561078e57565b5f1901908160021c685106b710e87292a98960611b019260c084549360061b169163ffffffff169060201b1782821c1860018060401b0316901b189055565b8060081c68a20d6e21d0e525530d60601b01549060ff161c60011690565b9060209082519060081b8284015117815201905256fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef608034607857601f610d3538819003918201601f19168301916001600160401b03831184841017607c57808492602094604052833981010312607857516001600160a01b03811690819003607857683602298b8c10b0123180546001600160a01b031916919091179055604051610ca490816100918239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60808060405260043610156101c5575b5036156101ba575f3560e01c63263c69d681146101405763144027d381146100cf57630f4599e51461004857633c10b94e5f526004601cfd5b683602298b8c10b01231546001600160a01b0316806100ab575b50683602298b8c10b01230546001600160a01b03811661009e576001600160a01b0319163317683602298b8c10b012305560015f908152602090f35b63bf656a465f526004601cfd5b6004356001600160a01b0316036100c2575f610062565b63c59ec47a5f526004601cfd5b683602298b8c10b01230546001600160a01b03163303610133576004356024359060443591602483810193600481013560051b0101925b8381036101165760015f5260205ff35b803582845f80516020610c848339815191525f80a4602001610106565b63363cb3125f526004601cfd5b683602298b8c10b01230546001600160a01b0316330361013357600435602481810191600481013560051b0101905b81810361017f5760015f5260205ff35b8035600881901c6001600160581b03169060018116801560609290921c91820291025f80516020610c848339815191525f80a460200161016f565b346101c157005b5f80fd5b5f3560e01c90816301ffc9a714610aa85750806306fdde0314610a3d578063081812fc146109e6578063095ea7b31461096457806318160ddd1461091857806323b872dd1461090457806324359879146108ad5780632f745c591461083c57806342842e0e146107c95780634f6ccce7146107325780636352211e146107035780636cef16e61461063757806370a08231146105da5780638da5cb5b146105aa57806395d89b411461053f57806397e5311c14610513578063a22cb46514610487578063b88d4fde1461039d578063c87b56dd146103215763e985e9c5146102ad575f61000f565b346101c15760403660031901126101c1576102c6610b1c565b60205f6044601c6102d5610b32565b6102dd610c25565b604080516362fb246d87526001600160a01b039889168852979092169091525afa601f3d1116156103195760405260205f516040519015158152f35b3d5f823e3d90fd5b346101c15760203660031901126101c15760043561033e81610c4f565b505f806024601c61034d610c25565b6040519563cb30b46085526020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b0390f35b60803660031901126101c1576103b1610b1c565b6103b9610b32565b60443591606435916001600160401b0383116101c157366023840112156101c1576004830135926001600160401b0384116101c15736602485830101116101c157610405858385610b82565b813b61040d57005b83602094602460a49360405198899763150b7a028952338a8a015260018060a01b0316604089015260608801526080808801528260a08801520160c086013701905f601c8401915af115610479575b5163757a42ff60e11b0161046c57005b63d1a57ed65f526004601cfd5b3d1561045c573d5f823e3d90fd5b346101c15760403660031901126101c1576104a0610b1c565b6024358015158091036101c15760205f6064601c826104bd610c25565b9660018060a01b0316966040519663f6916ddd8352888752604052336060525af160015f511416156103195750337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206040a3005b346101c1575f3660031901126101c157602061052d610c25565b6040516001600160a01b039091168152f35b346101c1575f3660031901126101c157610557610c25565b5f806024601c604051946395d89b418452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c1575f3660031901126101c157683602298b8c10b01232546040516001600160a01b039091168152602090f35b346101c15760203660031901126101c1576001600160a01b036105fb610b1c565b1660205f6044601c61060b610c25565b6040519563f5b100ea85528552836040525afa601f3d1116156103195760405260205f51604051908152f35b346101c1575f3660031901126101c15761064f610c25565b683602298b8c10b012325460205f6004601c60018060a01b03851695638da5cb5b84525afa9081601f3d1116600c5160601c0291156106ec575b506001600160a01b0316908181036106a7575b602060405160018152f35b683602298b8c10b0123280546001600160a01b031916831790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3808061069c565b60601b6001600160601b0319166101c15782610689565b346101c15760203660031901126101c15760206001600160a01b03610729600435610c4f565b16604051908152f35b346101c15760203660031901126101c157602460206001600160a01b03610757610c25565b1660405192838092634f6ccce760e01b825260043560048301525afa80156107be575f9061078b575b602090604051908152f35b506020813d6020116107b6575b816107a560209383610bee565b810103126101c15760209051610780565b3d9150610798565b6040513d5f823e3d90fd5b6107d236610b48565b916107de838383610b82565b813b6107e657005b60a460209260405194859363150b7a028552338686015260018060a01b0316604085015260608401526080808401525f60a08401525f3681375f601c8401915af115610479575163757a42ff60e11b0161046c57005b346101c15760403660031901126101c157610855610b1c565b60206001600160a01b03610867610c25565b604051632f745c5960e01b81526001600160a01b039094166004850152602480359085015283916044918391165afa80156107be575f9061078b57602090604051908152f35b346101c15760203660031901126101c1576108c6610c25565b60205f6044601c6040519463c016aa5284526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b61091661091036610b48565b91610b82565b005b346101c1575f3660031901126101c157610930610c25565b60205f6044601c6040519463e2c792818452838552836040525afa601f3d1116156103195760405260205f51604051908152f35b60403660031901126101c157610978610b1c565b60243590610984610c25565b9060018060a01b03169060205f6064601c6040519463d10b6e0c8452868552876040523360605234905af1601f3d1116156103195750600c5160601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a4005b346101c15760203660031901126101c1576109ff610c25565b60205f6044601c604051946327ef549584526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b346101c1575f3660031901126101c157610a55610c25565b5f806024601c604051946306fdde038452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c15760203660031901126101c157600435906001600160e01b0319821682036101c15760209160e01c635b5e139f8114906301ffc9a76380ac58cd82149114171715158152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101c157565b602435906001600160a01b03821682036101c157565b60609060031901126101c1576004356001600160a01b03811681036101c157906024356001600160a01b03811681036101c1579060443590565b9060846020610b8f610c25565b6040805163e5eb36c881526001600160a01b03968716848201819052959096169086018190526060860187905233608087015294928391601c83019034905af16001825114161561031957505f80516020610c848339815191525f80a4565b601f909101601f19168101906001600160401b03821190821017610c1157604052565b634e487b7160e01b5f52604160045260245ffd5b683602298b8c10b01230546001600160a01b0316908115610c4257565b635b2a47ae5f526004601cfd5b60205f6044601c610c5e610c25565b60405195632d8a746e85528552836040525afa601f3d111615610319576040525f519056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";
|
|
1384
1413
|
|
|
1385
1414
|
// src/evm/abis/bytecodes/dopplerDN404BaseSepolia.ts
|
|
1386
1415
|
var dopplerDN404BaseSepolia_default = "0x60a06040523461049b57613a4d80380380610019816107c6565b928339810160e08282031261049b5781516001600160401b03811161049b57816100449184016107eb565b60208301519091906001600160401b03811161049b57816100669185016107eb565b906040840151916100796060860161083c565b936100866080870161083c565b60a08701519093906001600160401b03811161049b5760c0916100aa9189016107eb565b960151926001600160a01b031680156107b3575f80546001600160a01b03198116831782556001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a38051906001600160401b0382116104de5760015490600182811c921680156107a9575b60208310146105c35781601f84931161073b575b50602090601f83116001146106d5575f926106ca575b50508160011b915f199060031b1c1916176001555b8051906001600160401b0382116104de5760025490600182811c921680156106c0575b60208310146105c35781601f849311610652575b50602090601f83116001146105ec575f926105e1575b50508160011b915f199060031b1c1916176002555b83516001600160401b0381116104de57600354600181811c911680156105d7575b60208210146105c357601f8111610560575b50602094601f82116001146104fd579481929394955f926104f2575b50508160011b915f199060031b1c1916176003555b608052604051610d41808201906001600160401b038211838310176104de576020918391612d0c83393381520301905ff080156104d3576080516001600160a01b0391909116906001600160601b035f1990910110156104c65768a20d6e21d0e5255309546001600160a01b03166104b95780156104ac57630f4599e55f523360205260205f6024601c82855af160015f5114161561049f57678da5cb5b6cef16e65f5260208060046018305afa601f3d1160205160601b15101661048c575b68a20d6e21d0e5255308805463ffffffff60201b191664010000000017905568a20d6e21d0e525530980546001600160a01b03191691909117905580610368575b60405161249a9081610872823960805181818161040b01528181610a4f01528181610c47015281816115920152818161184701528181611a3c01526120bd0152f35b6001600160a01b03821691821561047f57608051820463fffffffe108260601c176104725768a20d6e21d0e525530880546001600160a01b031660a084901b6001600160a01b03191690811790915561040592906103c583610850565b80546001600160a01b031690911790555f90815283907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602082a3610850565b906bff00000000000000000000008254918260581c9060015f527fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff821691161560011b1860011760581b16906bff000000000000000000000019161790555f80610326565b63e5cfe9575f526004601cfd5b63ea553b345f526004601cfd5b5f806004601c82855af16102e5575b5f80fd5b63d125259c5f526004601cfd5b6339a84a7b5f526004601cfd5b63ead4d2e45f526004601cfd5b63997c4ef45f526004601cfd5b6040513d5f823e3d90fd5b634e487b7160e01b5f52604160045260245ffd5b015190505f80610210565b601f1982169560035f52805f20915f5b88811061054857508360019596979810610530575b505050811b01600355610225565b01515f1960f88460031b161c191690555f8080610522565b9192602060018192868501518155019401920161050d565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106105b9575b601f0160051c01905b8181106105ae57506101f4565b5f81556001016105a1565b9091508190610598565b634e487b7160e01b5f52602260045260245ffd5b90607f16906101e2565b015190505f806101ac565b60025f9081528281209350601f198516905b81811061063a5750908460019594939210610622575b505050811b016002556101c1565b01515f1960f88460031b161c191690555f8080610614565b929360206001819287860151815501950193016105fe565b60025f529091507f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f840160051c810191602085106106b6575b90601f859493920160051c01905b8181106106a85750610196565b5f815584935060010161069b565b909150819061068d565b91607f1691610182565b015190505f8061014a565b60015f9081528281209350601f198516905b818110610723575090846001959493921061070b575b505050811b0160015561015f565b01515f1960f88460031b161c191690555f80806106fd565b929360206001819287860151815501950193016106e7565b60015f529091507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f840160051c8101916020851061079f575b90601f859493920160051c01905b8181106107915750610134565b5f8155849350600101610784565b9091508190610776565b91607f1691610120565b631e4fbdf760e01b5f525f60045260245ffd5b6040519190601f01601f191682016001600160401b038111838210176104de57604052565b81601f8201121561049b578051906001600160401b0382116104de5761081a601f8301601f19166020016107c6565b928284526020838301011161049b57815f9260208093018386015e8301015290565b51906001600160a01b038216820361049b57565b6001600160a01b03165f90815268a20d6e21d0e5255313602052604090209056fe608080604052600436101561075d575b503615610752575f3560e01c63e5eb36c881146103d25763f6916ddd811461038f576362fb246d811461036b57632d8a746e81146103325763c016aa52811461031f5763d10b6e0c811461022f576327ef549581146102145763f5b100ea81146101ef5763e2c7928181146101d45763cb30b46081146100a95763b7a94eb8146100a057633c10b94e5f526004601cfd5b60015f5260205ff35b60206040510160405260606003546100c0816114af565b6100e4575b50605f601f198201915f6020825180930101526020835201601f191690f35b905060405190608082019160a081016040525f8352600a600435935b5f19019360308282060185530492831561011c57600a90610100565b9250608083601f19810192030181526040519283915f9061013c856114af565b94600181169081156101b45750600114610173575b61016d9450518092825e015f815203601f19810183528261148c565b816100c5565b905060035f5260205f20935f5b818110610198575061016d9450830160200190610151565b8554602082890181019190915260019096019587955001610180565b602092935061016d96915060ff1916828601528015150284010190610151565b63ffffffff68a20d6e21d0e52553085460801c165f5260205ff35b63ffffffff6102086004356001600160a01b031661144a565b5460801c165f5260205ff35b6001600160a01b0361022760043561228a565b165f5260205ff35b68a20d6e21d0e5255309546001600160a01b03163303610312576001600160a01b036044358116906024359060043581169061028061027b5f19600160201b861086020160011b6121af565b612245565b5416928381036102ef575b505f82815268a20d6e21d0e525530c60209081526040822080546001600160a01b0319166001600160a01b03851617905568a20d6e21d0e525530d60601b600885901c018054600160ff90961695861b191693151590941b92909217909255918152f35b6102f990846116f1565b5415610305578361028b565b63cfb3b9425f526004601cfd5b63ce5a776b5f526004601cfd5b6001600160a01b03610227600435612261565b6004356001600160a01b0361034682612261565b161561035e576001600160a01b039061022790612261565b63ceea21b65f526004601cfd5b6103856001600160a01b03602435811690600435166116f1565b5415155f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633036103125760243515156103c86001600160a01b03600435811690604435166116f1565b5560015f5260205ff35b68a20d6e21d0e5255309546001600160a01b031633819003610312576001600160a01b0360043581165f818152600560205260409020547f000000000000000000000000000000000000000000000000000000000000000093919260443592916064358216916024351690610448908790611544565b935f925f948661072d575b83156107205715610713576001600160a01b0361048061027b600160201b851085025f190160011b6121af565b54168703610706578681036106cd575b5061049a8661144a565b906104a48361144a565b90825460a01c808a116106c0576105a69361055e916104cf908c90036001600160601b0316826122c3565b83546104ee9060a01c6001600160601b038d81169190910116856122c3565b6104f7836123f9565b61068f575b600161052b61050a8c61146b565b9261052563ffffffff5f1981845460801c16011680926122e6565b836121d3565b61054d8161053f5f198801851b85016121af565b9463ffffffff86169061221d565b63ffffffff165f1901811b016121ef565b6105a08463ffffffff845460801c169361058163ffffffff6001870116826122e6565b61059b61058d8361146b565b8663ffffffff87169161221d565b61232a565b906123ba565b855f52845f8051602061246e83398151915260205fa36105c95760015f5260205ff35b5f19820191821161067b5763ffffffff6105e28461144a565b5460801c169182811061060d575b5050505f52600560205260405f20908154039055808080806100a0565b6106168461146b565b928210156105f0578181146105f0576001826106628363ffffffff8481966106628a610645886106739d6121d3565b928161065d6106558387956121d3565b809b8361221d565b61221d565b825f19911601811b019116906121ef565b8280806105f0565b634e487b7160e01b5f52601160045260245ffd5b61069883612309565b5f83815268a20d6e21d0e525530c6020526040902080546001600160a01b03191690556104fc565b63f4d678b85f526004601cfd5b6106d781886116f1565b54610490576001600160a01b036106ed8361228a565b16036106f95787610490565b6359c896be5f526004601cfd5b63a11481005f526004601cfd5b6340739bf05f526004601cfd5b63ea553b345f526004601cfd5b9350935063ffffffff61074760015f198401811b016121af565b169385851093610453565b3461075957005b5f80fd5b5f3560e01c90816306fdde031461135257508063095ea7b3146112b15780630ad9e7bf1461127957806310aa0ebb1461125457806316f0115b1461122c57806318160ddd14611204578063207d0636146111c157806323b872dd1461111b578063274e430b146110ee5780632a6a935d1461107c5780632f745c5914610fe3578063313ce56714610fc85780634ef41efc14610f985780634f6ccce714610f7a57806355f804b314610e215780635b2aa23914610bcb5780636c0360eb14610b3957806370a0823114610b0a578063715018a614610ac65780638902653814610a995780638da5cb5b14610a72578063907af6c014610a3857806395d89b411461095e578063a9059cbb1461092d578063dd62ed3e146108f95763f2fde38b14610887575f61000f565b34610759576020366003190112610759576108a061141e565b6108a86116ad565b6001600160a01b031680156108e6575f80546001600160a01b03198116831782556001600160a01b0316905f8051602061244e8339815191529080a3005b631e4fbdf760e01b5f525f60045260245ffd5b3461075957604036600319011261075957602061092561091761141e565b61091f611434565b90611647565b604051908152f35b346107595760403660031901126107595761095361094961141e565b602435903361170f565b602060405160018152f35b34610759575f366003190112610759576040515f60025461097e816114af565b8084529060018116908115610a1457506001146109b6575b6109b2836109a68185038261148c565b604051918291826113f4565b0390f35b60025f9081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b8082106109fa575090915081016020016109a6610996565b9192600181602092548385880101520191019092916109e2565b60ff191660208086019190915291151560051b840190910191506109a69050610996565b34610759575f3660031901126107595760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b34610759575f366003190112610759575f546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957610ab16116ad565b6004805460ff60a01b1916600160a01b179055005b34610759575f36600319011261075957610ade6116ad565b5f80546001600160a01b0319811682556001600160a01b03165f8051602061244e8339815191528280a3005b34610759576020366003190112610759576020610b2d610b2861141e565b61144a565b5460a01c604051908152f35b34610759575f366003190112610759576040515f600354610b59816114af565b8084529060018116908115610a145750600114610b80576109b2836109a68185038261148c565b60035f9081525f8051602061242e833981519152939250905b808210610bb1575090915081016020016109a6610996565b919260018160209254838588010152019101909291610b99565b34610759576020366003190112610759576004356001600160401b0381116107595736602382011215610759576004810135906001600160401b038211610e0d578160051b60405192610c21602083018561148c565b8352602460208401918301019136831161075957602401905b828210610dfd57838051907f00000000000000000000000000000000000000000000000000000000000000008083029280840482149015171561067b57335f52600560205260405f205492610c8e3361144a565b5460a01c610c9c8286611562565b11610db957610cae610cb49285611544565b93611562565b335f52600560205260405f2055610cca3361144a565b9163ffffffff610cd93361146b565b935460801c16905f905b8351821015610db75760208260051b8501015183811015610d7357818110610d69578181600193849303610d1d575b5001915b0190610ce3565b8063ffffffff848a61066282610d36610d6397846121d3565b610d51818a610d4581886121d3565b9661065d888c8361221d565b888616919086165f1901811b016121ef565b87610d12565b5090600190610d16565b60405162461bcd60e51b815260206004820152601c60248201527b546f6b656e20494420696e646578206f7574206f6620626f756e647360201b6044820152606490fd5b005b60405162461bcd60e51b815260206004820152601c60248201527b4e6f7420656e6f7567682062616c616e636520746f20667265657a6560201b6044820152606490fd5b8135815260209182019101610c3a565b634e487b7160e01b5f52604160045260245ffd5b34610759576020366003190112610759576004356001600160401b03811161075957366023820112156107595760048101356001600160401b03811161075957366024828401011161075957610e756116ad565b610e806003546114af565b601f8111610f2a575b505f601f8211600114610ec55781925f92610eb7575b50508160011b915f199060031b1c1916176003555f80f35b602492500101358280610e9f565b601f1982169260035f5260205f20915f5b858110610f0f57508360019510610ef3575b505050811b01600355005b01602401355f19600384901b60f8161c19169055828080610ee8565b90926020600181926024878701013581550194019101610ed6565b60035f525f8051602061242e833981519152601f830160051c81019160208410610f70575b601f0160051c01905b818110610f655750610e89565b5f8155600101610f58565b9091508190610f4f565b3461075957602036600319011261075957602061092560043561156f565b34610759575f3660031901126107595768a20d6e21d0e5255309546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957602060405160128152f35b3461075957604036600319011261075957610ffc61141e565b60243563ffffffff61100d8361144a565b5460801c1681101561103b5761103263ffffffff9161102d60209461146b565b6121d3565b16604051908152f35b60405162461bcd60e51b81526020600482015260196024820152784f776e657220696e646578206f7574206f6620626f756e647360381b6044820152606490fd5b34610759576020366003190112610759576004358015801580920361075957610953916110a83361144a565b91825460581c915f52337fb5a1de456fff688115a4f75380060c23c8532d14ff85f687cc871456d642039360205fa2600260ff83169216151860011b1860011790611690565b3461075957602036600319011261075957602061111161110c61141e565b6114e7565b6040519015158152f35b346107595760603660031901126107595761113461141e565b61113c611434565b6044359061114a33846116d3565b926e22d473030f116ddee9f6b43ac78ba33314806111aa575b156111a2575f19935b60018501611180575b50610953935061170f565b84841161119557836109539503905584611175565b6313be252b5f526004601cfd5b83549361116c565b5060046111b68261144a565b5460581c1615611163565b34610759576020366003190112610759576111da61141e565b6111e26116ad565b600480546001600160a81b0319166001600160a01b0392909216919091179055005b34610759575f36600319011261075957602068a20d6e21d0e52553085460a01c604051908152f35b34610759575f366003190112610759576004546040516001600160a01b039091168152602090f35b34610759575f36600319011261075957602060ff60045460a01c166040519015158152f35b34610759576020366003190112610759576001600160a01b0361129a61141e565b165f526005602052602060405f2054604051908152f35b34610759576040366003190112610759576112ca61141e565b6001600160a01b038116906024359081906112fc906e22d473030f116ddee9f6b43ac78ba38514611330575b336116d3565b555f52337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa3602060405160018152f35b61134d61133c3361144a565b600460ff825460581c161790611690565b6112f6565b34610759575f366003190112610759575f60015461136f816114af565b8084529060018116908115610a145750600114611396576109b2836109a68185038261148c565b60015f9081527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6939250905b8082106113da575090915081016020016109a6610996565b9192600181602092548385880101520191019092916113c2565b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361075957565b602435906001600160a01b038216820361075957565b6001600160a01b03165f90815268a20d6e21d0e52553136020526040902090565b6001600160a01b03165f90815268a20d6e21d0e52553106020526040902090565b601f909101601f19168101906001600160401b03821190821017610e0d57604052565b90600182811c921680156114dd575b60208310146114c957565b634e487b7160e01b5f52602260045260245ffd5b91607f16916114be565b906114f18261144a565b5460581c9160016002841615159316156115085750565b3b15159150565b60609060208152601a602082015279476c6f62616c20696e646578206f7574206f6620626f756e647360301b60408201520190565b811561154e570490565b634e487b7160e01b5f52601260045260245ffd5b9190820180921161067b57565b9068a20d6e21d0e52553085463ffffffff8160801c1683101561162e576115ba907f00000000000000000000000000000000000000000000000000000000000000009060a01c611544565b905f925f5b8381106115e35760405162461bcd60e51b8152806115df6004820161150f565b0390fd5b806001018060011161067b5763ffffffff6116008360011b6121af565b1661160f575b506001016115bf565b8286929614611625575060018091019490611606565b93505050915090565b60405162461bcd60e51b8152806115df6004820161150f565b906001600160a01b0381166e22d473030f116ddee9f6b43ac78ba314611675575b611671916116d3565b5490565b60046116808361144a565b5460581c166116685750505f1990565b805460ff60581b191660589290921b60ff60581b16919091179055565b5f546001600160a01b031633036116c057565b63118cdaa760e01b5f523360045260245ffd5b9060285260145268a20d6e21d0e525530f5f5260485f20905f602852565b9060285260145268a20d6e21d0e525530b5f5260485f20905f602852565b6004549092906001600160a01b038381169082161490816121a0575b50612191576001600160a01b03831615158061215b575b61210b576001600160a01b038216156107205761175e8361144a565b6117678361144a565b68a20d6e21d0e5255309546001600160a01b031615610713576040519161018083016001600160401b03811184821017610e0d576040525f83525f60208401525f60808401525f60a08401525f60c08401525f60e08401525f6101008401525f6101208401525f6101408401525f610160840152805463ffffffff8160801c16604085015263ffffffff835460801c1660608501528060a01c85116106c05761182060a082901c8690036001600160601b0316836122c3565b825460a01c85019061183b6001600160601b038316856122c3565b611870604086015191877f00000000000000000000000000000000000000000000000000000000000000009160a01c03611544565b8082039111028452611881866114e7565b156120a3575b50611e9e565b68a20d6e21d0e52553085463ffffffff60208501518551928382848360801c1601038060808901528360801b9060801b16908360801b191617928368a20d6e21d0e52553085501916040519260c060a085019180835260051b850101604052836040015260c0830183528261016087015260601c166101208501528351611d7e575b505060208201516119f4575b50610140810151806119b0575b5061016001518061195e575b505f9081526001600160a01b0391821692909116905f8051602061246e83398151915290602090a3565b600160206040828060a01b0368a20d6e21d0e5255309541693015192603f19840193849163263c69d6835283601f198301525f825160051b6044019260231901915af19151141615610759575f611934565b600160205f9281838060a01b0368a20d6e21d0e5255309541691015190815160051b60840190607f19830195869360631901915af19151141615610759575f611928565b9194610160829492015160208360601b910152611a108261146b565b9463ffffffff611a20848661232a565b1660e086015268a20d6e21d0e5255308549263ffffffff611a647f00000000000000000000000000000000000000000000000000000000000000008660a01c611544565b9460201c168481119081150217610100870152611a9960608701519563ffffffff602089015188018060c08b015216906122e6565b63ffffffff68a20d6e21d0e52553085460401c169760015b15611d1f575b6101208701515f9063ffffffff8b8116911614611b6d57611b6863ffffffff60018c01169a60e0641fffffffe0631fffffff8360031c1668a20d6e21d0e525531160601b01549260051b16161c63ffffffff165b8060081c685106b710e87292a98760611b0160018260ff161b8019825416179055611b3d63ffffffff82168a8d61221d565b611b5d63ffffffff60e08c01511663ffffffff60018c019b1690836123ba565b6101608a0151612417565b611ab1565b949798939291906101008801515b63ffffffff611b8f5f19830160011b6121af565b1615611cfb575f19906001810160081c685106b710e87292a98760611b018054196001830160ff1690811c901b8015611c83575b80611bd9575b5050508981119081150217611b7b565b600180939450811901167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07a1412563212c14164235266736f7425221143267a4524367526767760fc7b2aaaaaaaba69a69a6db6db6db2cb2cb2ce739ce73def7bdeffffffff860260f81c161b60f71c1692831c63d76453e004161a179082685106b710e87292a98760611b03190160081b17910181108a8211175f03175f8080611bc9565b506001909c9895929c9a9794919a9693965b01805419685106b710e87292a98760611b60088e901c0182118117611cbd5750600190611c95565b9c9295989c9a9194979a969396808d60081c685106b710e87292a98760611b018311611cea575b50611bc3565b508c1960ff1690811b901c80611ce4565b611b68909a999691929394959a6001810188811190811502176101008b0152611b0b565b60c08701518603611ab757945094925094509468a20d6e21d0e52553085463ffffffff60201b61010084015160201b169163ffffffff60401b9060401b1690600160201b600160601b031916171768a20d6e21d0e5255308555f61191b565b602060018860609a9699959a989497981b17910152611d9c8261146b565b94611dbc60408801519563ffffffff895188038060a08c015216906122e6565b60015b15611e85575b5f945f190194611dd586886121d3565b63ffffffff8116905f1982018060021c685106b710e87292a98960611b019060c082549160061b1681811c60018060401b0316901b189055611e1c826101608c0151612417565b600160ff62ffffff8360081c16685106b710e87292a98760611b0192161b198154169055611e49816123f9565b611e54575b50611dbf565b611e5d81612309565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611e4e565b60a08701518503611dc557935093509390945f8061190f565b9194604086979294970151948651976020880151898110818b18028a1899888b108b8a18028914612094578a8918898c10028918908190038a52900360208901526001600160a01b0383811690831614612072576040805163144027d3818301526001600160a01b03858116606080840191909152908516608083015260a08201528a8918898c1002891860c0820181815260059190911b820160e090810190935260208201529081018152610140890152611f598361146b565b95611f638361146b565b9763ffffffff611f73858461232a565b1660e08b015260608a01519a81811090821802188a019560015b1561202c575b878b611fd78163ffffffff808f8f90611fcb60e09284611fc25f9b5f19604087015101908160408801526121d3565b1698899161221d565b015116911690836123ba565b6101408c015160208151838152019052611ff0816123f9565b611ffb575b50611f8d565b61200481612309565b5f90815268a20d6e21d0e525530c6020526040812080546001600160a01b0319169055611ff5565b9960010199868b03611f935793989550939861205992975063ffffffff91965080606087015216836122e6565b61206d63ffffffff604085015116826122e6565b61188d565b949297868198959398979297109082180218606084015101606084015261188d565b5050949297509450949161188d565b6120e2906001600160a01b03888116908816146120f8575b7f000000000000000000000000000000000000000000000000000000000000000090611544565b606084015180820391110260208401525f611887565b60408501518551900360608601526120bb565b60405162461bcd60e51b815260206004820152602260248201527f5472616e73666572206578636565647320617661696c61626c652062616c616e604482015261636560f01b6064820152608490fd5b506121658361144a565b5460a01c81810390811161067b576001600160a01b0384165f9081526005602052604090205411611742565b632e13674560e01b5f5260045ffd5b60ff915060a01c16155f61172b565b60e08160031c685106b710e87292a98960611b01549160051b161c63ffffffff1690565b60e0908260031c9060601b01549160051b161c63ffffffff1690565b9060e08260031c685106b710e87292a98960611b019260051b1682549182821c1863ffffffff16901b189055565b60e0909291928360031c9060601b019260051b1682549182821c1863ffffffff16901b189055565b63ffffffff165f5268a20d6e21d0e525530a60205260405f2090565b6001600160a01b03906122859061027b90600160201b8110025f190160011b6121af565b541690565b6001600160a01b0361229b82612261565b161561035e575f90815268a20d6e21d0e525530c60205260409020546001600160a01b031690565b80546001600160a01b031660a09290921b6001600160a01b031916919091179055565b805463ffffffff60801b191660809290921b63ffffffff60801b16919091179055565b60018160081c68a20d6e21d0e525530d60601b019160ff161b198154169055565b805460601c63ffffffff1692918315612341575050565b68a20d6e21d0e5255308805463ffffffff19811663ffffffff918216600101918216908117909255835463ffffffff60601b191660609190911b63ffffffff60601b1617909255909250829061239682612245565b80546001600160a01b0319166001600160a01b039092169190911790551561075957565b5f1901908160021c685106b710e87292a98960611b019260c084549360061b169163ffffffff169060201b1782821c1860018060401b0316901b189055565b8060081c68a20d6e21d0e525530d60601b01549060ff161c60011690565b9060209082519060081b8284015117815201905256fec2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa164736f6c634300081a000a608034607857601f610d4138819003918201601f19168301916001600160401b03831184841017607c57808492602094604052833981010312607857516001600160a01b03811690819003607857683602298b8c10b0123180546001600160a01b031916919091179055604051610cb090816100918239f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60808060405260043610156101c5575b5036156101ba575f3560e01c63263c69d681146101405763144027d381146100cf57630f4599e51461004857633c10b94e5f526004601cfd5b683602298b8c10b01231546001600160a01b0316806100ab575b50683602298b8c10b01230546001600160a01b03811661009e576001600160a01b0319163317683602298b8c10b012305560015f908152602090f35b63bf656a465f526004601cfd5b6004356001600160a01b0316036100c2575f610062565b63c59ec47a5f526004601cfd5b683602298b8c10b01230546001600160a01b03163303610133576004356024359060443591602483810193600481013560051b0101925b8381036101165760015f5260205ff35b803582845f80516020610c848339815191525f80a4602001610106565b63363cb3125f526004601cfd5b683602298b8c10b01230546001600160a01b0316330361013357600435602481810191600481013560051b0101905b81810361017f5760015f5260205ff35b8035600881901c6001600160581b03169060018116801560609290921c91820291025f80516020610c848339815191525f80a460200161016f565b346101c157005b5f80fd5b5f3560e01c90816301ffc9a714610aa85750806306fdde0314610a3d578063081812fc146109e6578063095ea7b31461096457806318160ddd1461091857806323b872dd1461090457806324359879146108ad5780632f745c591461083c57806342842e0e146107c95780634f6ccce7146107325780636352211e146107035780636cef16e61461063757806370a08231146105da5780638da5cb5b146105aa57806395d89b411461053f57806397e5311c14610513578063a22cb46514610487578063b88d4fde1461039d578063c87b56dd146103215763e985e9c5146102ad575f61000f565b346101c15760403660031901126101c1576102c6610b1c565b60205f6044601c6102d5610b32565b6102dd610c25565b604080516362fb246d87526001600160a01b039889168852979092169091525afa601f3d1116156103195760405260205f516040519015158152f35b3d5f823e3d90fd5b346101c15760203660031901126101c15760043561033e81610c4f565b505f806024601c61034d610c25565b6040519563cb30b46085526020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b0390f35b60803660031901126101c1576103b1610b1c565b6103b9610b32565b60443591606435916001600160401b0383116101c157366023840112156101c1576004830135926001600160401b0384116101c15736602485830101116101c157610405858385610b82565b813b61040d57005b83602094602460a49360405198899763150b7a028952338a8a015260018060a01b0316604089015260608801526080808801528260a08801520160c086013701905f601c8401915af115610479575b5163757a42ff60e11b0161046c57005b63d1a57ed65f526004601cfd5b3d1561045c573d5f823e3d90fd5b346101c15760403660031901126101c1576104a0610b1c565b6024358015158091036101c15760205f6064601c826104bd610c25565b9660018060a01b0316966040519663f6916ddd8352888752604052336060525af160015f511416156103195750337f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160206040a3005b346101c1575f3660031901126101c157602061052d610c25565b6040516001600160a01b039091168152f35b346101c1575f3660031901126101c157610557610c25565b5f806024601c604051946395d89b418452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c1575f3660031901126101c157683602298b8c10b01232546040516001600160a01b039091168152602090f35b346101c15760203660031901126101c1576001600160a01b036105fb610b1c565b1660205f6044601c61060b610c25565b6040519563f5b100ea85528552836040525afa601f3d1116156103195760405260205f51604051908152f35b346101c1575f3660031901126101c15761064f610c25565b683602298b8c10b012325460205f6004601c60018060a01b03851695638da5cb5b84525afa9081601f3d1116600c5160601c0291156106ec575b506001600160a01b0316908181036106a7575b602060405160018152f35b683602298b8c10b0123280546001600160a01b031916831790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3808061069c565b60601b6001600160601b0319166101c15782610689565b346101c15760203660031901126101c15760206001600160a01b03610729600435610c4f565b16604051908152f35b346101c15760203660031901126101c157602460206001600160a01b03610757610c25565b1660405192838092634f6ccce760e01b825260043560048301525afa80156107be575f9061078b575b602090604051908152f35b506020813d6020116107b6575b816107a560209383610bee565b810103126101c15760209051610780565b3d9150610798565b6040513d5f823e3d90fd5b6107d236610b48565b916107de838383610b82565b813b6107e657005b60a460209260405194859363150b7a028552338686015260018060a01b0316604085015260608401526080808401525f60a08401525f3681375f601c8401915af115610479575163757a42ff60e11b0161046c57005b346101c15760403660031901126101c157610855610b1c565b60206001600160a01b03610867610c25565b604051632f745c5960e01b81526001600160a01b039094166004850152602480359085015283916044918391165afa80156107be575f9061078b57602090604051908152f35b346101c15760203660031901126101c1576108c6610c25565b60205f6044601c6040519463c016aa5284526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b61091661091036610b48565b91610b82565b005b346101c1575f3660031901126101c157610930610c25565b60205f6044601c6040519463e2c792818452838552836040525afa601f3d1116156103195760405260205f51604051908152f35b60403660031901126101c157610978610b1c565b60243590610984610c25565b9060018060a01b03169060205f6064601c6040519463d10b6e0c8452868552876040523360605234905af1601f3d1116156103195750600c5160601c7f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9255f80a4005b346101c15760203660031901126101c1576109ff610c25565b60205f6044601c604051946327ef549584526004358552836040525afa601f3d1116156103195760408190525f516001600160a01b03168152602090f35b346101c1575f3660031901126101c157610a55610c25565b5f806024601c604051946306fdde038452836020525afa15610319576103999060205f803e60205f51823e805160205f5101602083013e6040815182015f60208201520160405260405191829182610af2565b346101c15760203660031901126101c157600435906001600160e01b0319821682036101c15760209160e01c635b5e139f8114906301ffc9a76380ac58cd82149114171715158152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036101c157565b602435906001600160a01b03821682036101c157565b60609060031901126101c1576004356001600160a01b03811681036101c157906024356001600160a01b03811681036101c1579060443590565b9060846020610b8f610c25565b6040805163e5eb36c881526001600160a01b03968716848201819052959096169086018190526060860187905233608087015294928391601c83019034905af16001825114161561031957505f80516020610c848339815191525f80a4565b601f909101601f19168101906001600160401b03821190821017610c1157604052565b634e487b7160e01b5f52604160045260245ffd5b683602298b8c10b01230546001600160a01b0316908115610c4257565b635b2a47ae5f526004601cfd5b60205f6044601c610c5e610c25565b60405195632d8a746e85528552836040525afa601f3d111615610319576040525f519056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa164736f6c634300081a000a";
|
|
@@ -1398,19 +1427,6 @@ var derc2080_default = "0x6101c0604052346100ab5761002761001561023e565b9897909796
|
|
|
1398
1427
|
var stateView_default = "0x60a03460b257601f610b8338819003918201601f19168301916001600160401b0383118484101760b65780849260209460405283398101031260b257516001600160a01b038116810360b257608052604051610ab890816100cb823960805181818160e1015281816101b701528181610217015281816102ba0152818161034a015281816103f50152818161045b015281816104a2015281816104e90152818161054c0152818161060701526107170152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80631c7ccb4c146106a357806353e9c1fb146105de5780637c40f1fe1461050d5780638a2bb9e6146104c657806397fd7b421461048b5780639ec538c814610440578063c815641c146103d5578063caedab5414610309578063dacf1d2f14610246578063dc4c90d314610202578063f0928f29146101835763fa6793d51461009d575f80fd5b34610158576020366003190112610158576100b9600435610a1c565b6003810180911161016f57604051631e2eaeaf60e01b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610164575f9061012d575b6040516001600160801b039091168152602090f35b506020813d60201161015c575b81610147602093836107c2565b810103126101585760209051610118565b5f80fd5b3d915061013a565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b346101585761019a610194366107ac565b90610a78565b604051631e2eaeaf60e01b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610164575f9061012d576040516001600160801b039091168152602090f35b34610158575f366003190112610158576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101585760a0366003190112610158576024356001600160a01b03811681036101585761027261079c565b6064358060020b810361015857610305926102de926040519260843560268501526006840152600383015281525f603a600c83012091816040820152816020820152526004357f00000000000000000000000000000000000000000000000000000000000000006108fb565b604080516001600160801b0390941684526020840192909252908201529081906060820190565b0390f35b346101585760403660031901126101585761032d61032561078c565b600435610a42565b604051631e2eaeaf60e01b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610164575f906103a2575b604080516001600160801b038316815260809290921d600f0b602083015290f35b506020813d6020116103cd575b816103bc602093836107c2565b810103126101585760409051610381565b3d91506103af565b3461015857602036600319011261015857608062ffffff806104196004357f000000000000000000000000000000000000000000000000000000000000000061097d565b9294916040519560018060a01b0316865260020b6020860152166040840152166060820152f35b3461015857602036600319011261015857604061047f6004357f0000000000000000000000000000000000000000000000000000000000000000610972565b82519182526020820152f35b34610158576103056102de61049f366107ac565b907f00000000000000000000000000000000000000000000000000000000000000006108fb565b3461015857604036600319011261015857604061047f6104e461078c565b6004357f000000000000000000000000000000000000000000000000000000000000000061087c565b346101585760403660031901126101585761052961032561078c565b604051631afeb18d60e11b81526004810191909152600360248201525f816044817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610164576080915f916105bc575b50602081015190606060408201519101519060405192600180861b0381168452841d600f0b602084015260408301526060820152f35b6105d891503d805f833e6105d081836107c2565b8101906107f9565b82610586565b346101585760603660031901126101585760406004356105fc61078c565b9061060561079c565b7f0000000000000000000000000000000000000000000000000000000000000000906106318383610972565b9061063d86868661087c565b96909361065661064e82898961087c565b98909761097d565b5050905060020b9160020b82125f1461067c575050505003910382519182526020820152f35b95969593949360020b1361069457505003910361047f565b9493929094030392030361047f565b34610158576040366003190112610158576024358060010b809103610158576106cd600435610a1c565b6005810180911161016f5760405190602082019283526040820152604081526106f76060826107c2565b519020604051631e2eaeaf60e01b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610164575f90610759575b602090604051908152f35b506020813d602011610784575b81610773602093836107c2565b81010312610158576020905161074e565b3d9150610766565b602435908160020b820361015857565b604435908160020b820361015857565b6040906003190112610158576004359060243590565b601f909101601f19168101906001600160401b038211908210176107e557604052565b634e487b7160e01b5f52604160045260245ffd5b602081830312610158578051906001600160401b03821161015857019080601f83011215610158578151916001600160401b0383116107e5578260051b906040519361084860208401866107c2565b845260208085019282010192831161015857602001905b82821061086c5750505090565b815181526020918201910161085f565b929161088791610a42565b6001810180911161016f57604051631afeb18d60e11b8152600481019190915260026024820152915f90839060449082906001600160a01b03165afa918215610164575f926108df575b506040602083015192015190565b6108f49192503d805f833e6105d081836107c2565b905f6108d1565b91610907905f92610a78565b604051631afeb18d60e11b815260048101919091526003602482015291829060449082906001600160a01b03165afa908115610164575f91610958575b506020810151916060604083015192015190565b61096c91503d805f833e6105d081836107c2565b5f610944565b919061088790610a1c565b919061098a602091610a1c565b604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa918215610164575f926109e8575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b9091506020813d602011610a14575b81610a04602093836107c2565b810103126101585751905f6109c0565b3d91506109f7565b604051602081019182526006604082015260408152610a3c6060826107c2565b51902090565b610a4b90610a1c565b6004810180911161016f5760405190602082019260020b8352604082015260408152610a3c6060826107c2565b610a8190610a1c565b6006810180911161016f576040519060208201928352604082015260408152610a3c6060826107c256fea164736f6c634300081a000a";
|
|
1399
1428
|
|
|
1400
1429
|
// src/evm/abis/index.ts
|
|
1401
|
-
var topUpDistributorAbi = [
|
|
1402
|
-
{
|
|
1403
|
-
type: "function",
|
|
1404
|
-
name: "topUp",
|
|
1405
|
-
inputs: [
|
|
1406
|
-
{ name: "asset", type: "address", internalType: "address" },
|
|
1407
|
-
{ name: "numeraire", type: "address", internalType: "address" },
|
|
1408
|
-
{ name: "amount", type: "uint256", internalType: "uint256" }
|
|
1409
|
-
],
|
|
1410
|
-
outputs: [],
|
|
1411
|
-
stateMutability: "payable"
|
|
1412
|
-
}
|
|
1413
|
-
];
|
|
1414
1430
|
var airlockAbi = [
|
|
1415
1431
|
{
|
|
1416
1432
|
type: "constructor",
|
|
@@ -2600,6 +2616,25 @@ var dopplerERC20V1Abi = [
|
|
|
2600
2616
|
],
|
|
2601
2617
|
stateMutability: "view"
|
|
2602
2618
|
},
|
|
2619
|
+
{
|
|
2620
|
+
type: "function",
|
|
2621
|
+
name: "getPastTotalSupply",
|
|
2622
|
+
inputs: [
|
|
2623
|
+
{
|
|
2624
|
+
name: "timepoint",
|
|
2625
|
+
type: "uint256",
|
|
2626
|
+
internalType: "uint256"
|
|
2627
|
+
}
|
|
2628
|
+
],
|
|
2629
|
+
outputs: [
|
|
2630
|
+
{
|
|
2631
|
+
name: "",
|
|
2632
|
+
type: "uint256",
|
|
2633
|
+
internalType: "uint256"
|
|
2634
|
+
}
|
|
2635
|
+
],
|
|
2636
|
+
stateMutability: "view"
|
|
2637
|
+
},
|
|
2603
2638
|
{
|
|
2604
2639
|
type: "function",
|
|
2605
2640
|
name: "getPastVotesTotalSupply",
|
|
@@ -3082,6 +3117,25 @@ var dopplerERC20V1Abi = [
|
|
|
3082
3117
|
],
|
|
3083
3118
|
stateMutability: "view"
|
|
3084
3119
|
},
|
|
3120
|
+
{
|
|
3121
|
+
type: "function",
|
|
3122
|
+
name: "totalUnreleasedOf",
|
|
3123
|
+
inputs: [
|
|
3124
|
+
{
|
|
3125
|
+
name: "beneficiary",
|
|
3126
|
+
type: "address",
|
|
3127
|
+
internalType: "address"
|
|
3128
|
+
}
|
|
3129
|
+
],
|
|
3130
|
+
outputs: [
|
|
3131
|
+
{
|
|
3132
|
+
name: "",
|
|
3133
|
+
type: "uint256",
|
|
3134
|
+
internalType: "uint256"
|
|
3135
|
+
}
|
|
3136
|
+
],
|
|
3137
|
+
stateMutability: "view"
|
|
3138
|
+
},
|
|
3085
3139
|
{
|
|
3086
3140
|
type: "function",
|
|
3087
3141
|
name: "totalSupply",
|
|
@@ -5458,27 +5512,7 @@ var streamableFeesLockerAbi = [
|
|
|
5458
5512
|
{ name: "recipient", type: "address", internalType: "address" },
|
|
5459
5513
|
{ name: "startDate", type: "uint32", internalType: "uint32" },
|
|
5460
5514
|
{ name: "lockDuration", type: "uint32", internalType: "uint32" },
|
|
5461
|
-
{ name: "isUnlocked", type: "bool", internalType: "bool" }
|
|
5462
|
-
{
|
|
5463
|
-
name: "beneficiaries",
|
|
5464
|
-
type: "tuple[]",
|
|
5465
|
-
internalType: "struct BeneficiaryData[]",
|
|
5466
|
-
components: [
|
|
5467
|
-
{ name: "beneficiary", type: "address", internalType: "address" },
|
|
5468
|
-
{ name: "shares", type: "uint96", internalType: "uint96" }
|
|
5469
|
-
]
|
|
5470
|
-
},
|
|
5471
|
-
{
|
|
5472
|
-
name: "positions",
|
|
5473
|
-
type: "tuple[]",
|
|
5474
|
-
internalType: "struct Position[]",
|
|
5475
|
-
components: [
|
|
5476
|
-
{ name: "tickLower", type: "int24", internalType: "int24" },
|
|
5477
|
-
{ name: "tickUpper", type: "int24", internalType: "int24" },
|
|
5478
|
-
{ name: "liquidity", type: "uint128", internalType: "uint128" },
|
|
5479
|
-
{ name: "salt", type: "bytes32", internalType: "bytes32" }
|
|
5480
|
-
]
|
|
5481
|
-
}
|
|
5515
|
+
{ name: "isUnlocked", type: "bool", internalType: "bool" }
|
|
5482
5516
|
],
|
|
5483
5517
|
stateMutability: "view"
|
|
5484
5518
|
},
|
|
@@ -5493,10 +5527,154 @@ var streamableFeesLockerV2Abi = [
|
|
|
5493
5527
|
{
|
|
5494
5528
|
type: "function",
|
|
5495
5529
|
name: "approvedMigrators",
|
|
5496
|
-
|
|
5497
|
-
|
|
5498
|
-
|
|
5499
|
-
}
|
|
5530
|
+
inputs: [{ name: "migrator", type: "address", internalType: "address" }],
|
|
5531
|
+
outputs: [{ name: "approved", type: "bool", internalType: "bool" }],
|
|
5532
|
+
stateMutability: "view"
|
|
5533
|
+
},
|
|
5534
|
+
{
|
|
5535
|
+
type: "function",
|
|
5536
|
+
name: "collectFees",
|
|
5537
|
+
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
5538
|
+
outputs: [
|
|
5539
|
+
{ name: "fees0", type: "uint128", internalType: "uint128" },
|
|
5540
|
+
{ name: "fees1", type: "uint128", internalType: "uint128" }
|
|
5541
|
+
],
|
|
5542
|
+
stateMutability: "nonpayable"
|
|
5543
|
+
},
|
|
5544
|
+
{
|
|
5545
|
+
type: "function",
|
|
5546
|
+
name: "getCumulatedFees0",
|
|
5547
|
+
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
5548
|
+
outputs: [
|
|
5549
|
+
{ name: "cumulatedFees0", type: "uint256", internalType: "uint256" }
|
|
5550
|
+
],
|
|
5551
|
+
stateMutability: "view"
|
|
5552
|
+
},
|
|
5553
|
+
{
|
|
5554
|
+
type: "function",
|
|
5555
|
+
name: "getCumulatedFees1",
|
|
5556
|
+
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
5557
|
+
outputs: [
|
|
5558
|
+
{ name: "cumulatedFees1", type: "uint256", internalType: "uint256" }
|
|
5559
|
+
],
|
|
5560
|
+
stateMutability: "view"
|
|
5561
|
+
},
|
|
5562
|
+
{
|
|
5563
|
+
type: "function",
|
|
5564
|
+
name: "getPoolKey",
|
|
5565
|
+
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
5566
|
+
outputs: [
|
|
5567
|
+
{ name: "currency0", type: "address", internalType: "Currency" },
|
|
5568
|
+
{ name: "currency1", type: "address", internalType: "Currency" },
|
|
5569
|
+
{ name: "fee", type: "uint24", internalType: "uint24" },
|
|
5570
|
+
{ name: "tickSpacing", type: "int24", internalType: "int24" },
|
|
5571
|
+
{ name: "hooks", type: "address", internalType: "contract IHooks" }
|
|
5572
|
+
],
|
|
5573
|
+
stateMutability: "view"
|
|
5574
|
+
},
|
|
5575
|
+
{
|
|
5576
|
+
type: "function",
|
|
5577
|
+
name: "getShares",
|
|
5578
|
+
inputs: [
|
|
5579
|
+
{ name: "poolId", type: "bytes32", internalType: "PoolId" },
|
|
5580
|
+
{ name: "beneficiary", type: "address", internalType: "address" }
|
|
5581
|
+
],
|
|
5582
|
+
outputs: [{ name: "shares", type: "uint256", internalType: "uint256" }],
|
|
5583
|
+
stateMutability: "view"
|
|
5584
|
+
},
|
|
5585
|
+
{
|
|
5586
|
+
type: "function",
|
|
5587
|
+
name: "streams",
|
|
5588
|
+
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
5589
|
+
outputs: [
|
|
5590
|
+
{
|
|
5591
|
+
name: "poolKey",
|
|
5592
|
+
type: "tuple",
|
|
5593
|
+
internalType: "struct PoolKey",
|
|
5594
|
+
components: [
|
|
5595
|
+
{ name: "currency0", type: "address", internalType: "Currency" },
|
|
5596
|
+
{ name: "currency1", type: "address", internalType: "Currency" },
|
|
5597
|
+
{ name: "fee", type: "uint24", internalType: "uint24" },
|
|
5598
|
+
{ name: "tickSpacing", type: "int24", internalType: "int24" },
|
|
5599
|
+
{
|
|
5600
|
+
name: "hooks",
|
|
5601
|
+
type: "address",
|
|
5602
|
+
internalType: "contract IHooks"
|
|
5603
|
+
}
|
|
5604
|
+
]
|
|
5605
|
+
},
|
|
5606
|
+
{ name: "recipient", type: "address", internalType: "address" },
|
|
5607
|
+
{ name: "startDate", type: "uint32", internalType: "uint32" },
|
|
5608
|
+
{ name: "lockDuration", type: "uint32", internalType: "uint32" },
|
|
5609
|
+
{ name: "isUnlocked", type: "bool", internalType: "bool" }
|
|
5610
|
+
],
|
|
5611
|
+
stateMutability: "view"
|
|
5612
|
+
},
|
|
5613
|
+
{
|
|
5614
|
+
type: "function",
|
|
5615
|
+
name: "unlock",
|
|
5616
|
+
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
5617
|
+
outputs: [],
|
|
5618
|
+
stateMutability: "nonpayable"
|
|
5619
|
+
},
|
|
5620
|
+
{
|
|
5621
|
+
type: "function",
|
|
5622
|
+
name: "updateBeneficiary",
|
|
5623
|
+
inputs: [
|
|
5624
|
+
{ name: "poolId", type: "bytes32", internalType: "PoolId" },
|
|
5625
|
+
{ name: "newBeneficiary", type: "address", internalType: "address" }
|
|
5626
|
+
],
|
|
5627
|
+
outputs: [],
|
|
5628
|
+
stateMutability: "nonpayable"
|
|
5629
|
+
},
|
|
5630
|
+
{
|
|
5631
|
+
type: "event",
|
|
5632
|
+
name: "Collect",
|
|
5633
|
+
inputs: [
|
|
5634
|
+
{
|
|
5635
|
+
name: "poolId",
|
|
5636
|
+
type: "bytes32",
|
|
5637
|
+
indexed: true,
|
|
5638
|
+
internalType: "PoolId"
|
|
5639
|
+
},
|
|
5640
|
+
{
|
|
5641
|
+
name: "fees0",
|
|
5642
|
+
type: "uint256",
|
|
5643
|
+
indexed: false,
|
|
5644
|
+
internalType: "uint256"
|
|
5645
|
+
},
|
|
5646
|
+
{
|
|
5647
|
+
name: "fees1",
|
|
5648
|
+
type: "uint256",
|
|
5649
|
+
indexed: false,
|
|
5650
|
+
internalType: "uint256"
|
|
5651
|
+
}
|
|
5652
|
+
],
|
|
5653
|
+
anonymous: false
|
|
5654
|
+
},
|
|
5655
|
+
{
|
|
5656
|
+
type: "event",
|
|
5657
|
+
name: "Unlock",
|
|
5658
|
+
inputs: [
|
|
5659
|
+
{
|
|
5660
|
+
name: "poolId",
|
|
5661
|
+
type: "bytes32",
|
|
5662
|
+
indexed: true,
|
|
5663
|
+
internalType: "PoolId"
|
|
5664
|
+
},
|
|
5665
|
+
{
|
|
5666
|
+
name: "recipient",
|
|
5667
|
+
type: "address",
|
|
5668
|
+
indexed: false,
|
|
5669
|
+
internalType: "address"
|
|
5670
|
+
}
|
|
5671
|
+
],
|
|
5672
|
+
anonymous: false
|
|
5673
|
+
},
|
|
5674
|
+
{ type: "error", name: "CallerNotRecipient", inputs: [] },
|
|
5675
|
+
{ type: "error", name: "LockNotExpired", inputs: [] },
|
|
5676
|
+
{ type: "error", name: "StreamAlreadyUnlocked", inputs: [] },
|
|
5677
|
+
{ type: "error", name: "StreamNotFound", inputs: [] }
|
|
5500
5678
|
];
|
|
5501
5679
|
var v4MulticurveMigratorAbi = [
|
|
5502
5680
|
{
|
|
@@ -6117,31 +6295,91 @@ var rehypeDopplerHookInitializerAbi = [
|
|
|
6117
6295
|
},
|
|
6118
6296
|
{
|
|
6119
6297
|
type: "function",
|
|
6120
|
-
name: "
|
|
6298
|
+
name: "getIntegratorFeeShare",
|
|
6121
6299
|
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
6122
|
-
outputs: [
|
|
6123
|
-
{ name: "fees0", type: "uint128", internalType: "uint128" },
|
|
6124
|
-
{ name: "fees1", type: "uint128", internalType: "uint128" },
|
|
6125
|
-
{ name: "beneficiaryFees0", type: "uint128", internalType: "uint128" },
|
|
6126
|
-
{ name: "beneficiaryFees1", type: "uint128", internalType: "uint128" },
|
|
6127
|
-
{ name: "airlockOwnerFees0", type: "uint128", internalType: "uint128" },
|
|
6128
|
-
{ name: "airlockOwnerFees1", type: "uint128", internalType: "uint128" },
|
|
6129
|
-
{ name: "customFee", type: "uint24", internalType: "uint24" }
|
|
6130
|
-
],
|
|
6300
|
+
outputs: [{ name: "", type: "uint24", internalType: "uint24" }],
|
|
6131
6301
|
stateMutability: "view"
|
|
6132
6302
|
},
|
|
6133
6303
|
{
|
|
6134
6304
|
type: "function",
|
|
6135
|
-
name: "
|
|
6305
|
+
name: "getIntegratorRoutingConfig",
|
|
6136
6306
|
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
6137
6307
|
outputs: [
|
|
6138
|
-
{ name: "
|
|
6139
|
-
{
|
|
6140
|
-
|
|
6141
|
-
|
|
6142
|
-
|
|
6143
|
-
|
|
6144
|
-
|
|
6308
|
+
{ name: "integrator", type: "address", internalType: "address" },
|
|
6309
|
+
{
|
|
6310
|
+
name: "assetFeesToNumeraireRatio",
|
|
6311
|
+
type: "uint32",
|
|
6312
|
+
internalType: "uint32"
|
|
6313
|
+
},
|
|
6314
|
+
{
|
|
6315
|
+
name: "numeraireFeesToAssetRatio",
|
|
6316
|
+
type: "uint32",
|
|
6317
|
+
internalType: "uint32"
|
|
6318
|
+
},
|
|
6319
|
+
{ name: "automaticPayout", type: "bool", internalType: "bool" }
|
|
6320
|
+
],
|
|
6321
|
+
stateMutability: "view"
|
|
6322
|
+
},
|
|
6323
|
+
{
|
|
6324
|
+
type: "function",
|
|
6325
|
+
name: "getPendingIntegratorFees",
|
|
6326
|
+
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
6327
|
+
outputs: [
|
|
6328
|
+
{ name: "fees0", type: "uint128", internalType: "uint128" },
|
|
6329
|
+
{ name: "fees1", type: "uint128", internalType: "uint128" }
|
|
6330
|
+
],
|
|
6331
|
+
stateMutability: "view"
|
|
6332
|
+
},
|
|
6333
|
+
{
|
|
6334
|
+
type: "function",
|
|
6335
|
+
name: "getClaimableIntegratorFees",
|
|
6336
|
+
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
6337
|
+
outputs: [
|
|
6338
|
+
{ name: "fees0", type: "uint128", internalType: "uint128" },
|
|
6339
|
+
{ name: "fees1", type: "uint128", internalType: "uint128" }
|
|
6340
|
+
],
|
|
6341
|
+
stateMutability: "view"
|
|
6342
|
+
},
|
|
6343
|
+
{
|
|
6344
|
+
type: "function",
|
|
6345
|
+
name: "claimIntegratorFees",
|
|
6346
|
+
inputs: [
|
|
6347
|
+
{ name: "asset", type: "address", internalType: "address" },
|
|
6348
|
+
{ name: "to", type: "address", internalType: "address" }
|
|
6349
|
+
],
|
|
6350
|
+
outputs: [
|
|
6351
|
+
{ name: "fees0", type: "uint128", internalType: "uint128" },
|
|
6352
|
+
{ name: "fees1", type: "uint128", internalType: "uint128" }
|
|
6353
|
+
],
|
|
6354
|
+
stateMutability: "nonpayable"
|
|
6355
|
+
},
|
|
6356
|
+
{
|
|
6357
|
+
type: "function",
|
|
6358
|
+
name: "getHookFees",
|
|
6359
|
+
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
6360
|
+
outputs: [
|
|
6361
|
+
{ name: "fees0", type: "uint128", internalType: "uint128" },
|
|
6362
|
+
{ name: "fees1", type: "uint128", internalType: "uint128" },
|
|
6363
|
+
{ name: "beneficiaryFees0", type: "uint128", internalType: "uint128" },
|
|
6364
|
+
{ name: "beneficiaryFees1", type: "uint128", internalType: "uint128" },
|
|
6365
|
+
{ name: "airlockOwnerFees0", type: "uint128", internalType: "uint128" },
|
|
6366
|
+
{ name: "airlockOwnerFees1", type: "uint128", internalType: "uint128" },
|
|
6367
|
+
{ name: "customFee", type: "uint24", internalType: "uint24" }
|
|
6368
|
+
],
|
|
6369
|
+
stateMutability: "view"
|
|
6370
|
+
},
|
|
6371
|
+
{
|
|
6372
|
+
type: "function",
|
|
6373
|
+
name: "getPoolInfo",
|
|
6374
|
+
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
6375
|
+
outputs: [
|
|
6376
|
+
{ name: "asset", type: "address", internalType: "address" },
|
|
6377
|
+
{ name: "numeraire", type: "address", internalType: "address" },
|
|
6378
|
+
{ name: "buybackDst", type: "address", internalType: "address" }
|
|
6379
|
+
],
|
|
6380
|
+
stateMutability: "view"
|
|
6381
|
+
},
|
|
6382
|
+
{
|
|
6145
6383
|
type: "function",
|
|
6146
6384
|
name: "getPosition",
|
|
6147
6385
|
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
@@ -6290,6 +6528,170 @@ var rehypeDopplerHookInitializerAbi = [
|
|
|
6290
6528
|
],
|
|
6291
6529
|
anonymous: false
|
|
6292
6530
|
},
|
|
6531
|
+
{
|
|
6532
|
+
type: "event",
|
|
6533
|
+
name: "IntegratorAutomaticPayoutSet",
|
|
6534
|
+
inputs: [
|
|
6535
|
+
{
|
|
6536
|
+
name: "poolId",
|
|
6537
|
+
type: "bytes32",
|
|
6538
|
+
indexed: true,
|
|
6539
|
+
internalType: "PoolId"
|
|
6540
|
+
},
|
|
6541
|
+
{
|
|
6542
|
+
name: "automaticPayout",
|
|
6543
|
+
type: "bool",
|
|
6544
|
+
indexed: false,
|
|
6545
|
+
internalType: "bool"
|
|
6546
|
+
}
|
|
6547
|
+
],
|
|
6548
|
+
anonymous: false
|
|
6549
|
+
},
|
|
6550
|
+
{
|
|
6551
|
+
type: "event",
|
|
6552
|
+
name: "IntegratorConversionRatiosSet",
|
|
6553
|
+
inputs: [
|
|
6554
|
+
{
|
|
6555
|
+
name: "poolId",
|
|
6556
|
+
type: "bytes32",
|
|
6557
|
+
indexed: true,
|
|
6558
|
+
internalType: "PoolId"
|
|
6559
|
+
},
|
|
6560
|
+
{
|
|
6561
|
+
name: "assetFeesToNumeraireRatio",
|
|
6562
|
+
type: "uint32",
|
|
6563
|
+
indexed: false,
|
|
6564
|
+
internalType: "uint32"
|
|
6565
|
+
},
|
|
6566
|
+
{
|
|
6567
|
+
name: "numeraireFeesToAssetRatio",
|
|
6568
|
+
type: "uint32",
|
|
6569
|
+
indexed: false,
|
|
6570
|
+
internalType: "uint32"
|
|
6571
|
+
}
|
|
6572
|
+
],
|
|
6573
|
+
anonymous: false
|
|
6574
|
+
},
|
|
6575
|
+
{
|
|
6576
|
+
type: "event",
|
|
6577
|
+
name: "IntegratorFeeShareSet",
|
|
6578
|
+
inputs: [
|
|
6579
|
+
{
|
|
6580
|
+
name: "poolId",
|
|
6581
|
+
type: "bytes32",
|
|
6582
|
+
indexed: true,
|
|
6583
|
+
internalType: "PoolId"
|
|
6584
|
+
},
|
|
6585
|
+
{
|
|
6586
|
+
name: "feeShare",
|
|
6587
|
+
type: "uint24",
|
|
6588
|
+
indexed: false,
|
|
6589
|
+
internalType: "uint24"
|
|
6590
|
+
}
|
|
6591
|
+
],
|
|
6592
|
+
anonymous: false
|
|
6593
|
+
},
|
|
6594
|
+
{
|
|
6595
|
+
type: "event",
|
|
6596
|
+
name: "IntegratorFeesClaimed",
|
|
6597
|
+
inputs: [
|
|
6598
|
+
{
|
|
6599
|
+
name: "poolId",
|
|
6600
|
+
type: "bytes32",
|
|
6601
|
+
indexed: true,
|
|
6602
|
+
internalType: "PoolId"
|
|
6603
|
+
},
|
|
6604
|
+
{
|
|
6605
|
+
name: "integrator",
|
|
6606
|
+
type: "address",
|
|
6607
|
+
indexed: true,
|
|
6608
|
+
internalType: "address"
|
|
6609
|
+
},
|
|
6610
|
+
{
|
|
6611
|
+
name: "to",
|
|
6612
|
+
type: "address",
|
|
6613
|
+
indexed: true,
|
|
6614
|
+
internalType: "address"
|
|
6615
|
+
},
|
|
6616
|
+
{
|
|
6617
|
+
name: "fees0",
|
|
6618
|
+
type: "uint128",
|
|
6619
|
+
indexed: false,
|
|
6620
|
+
internalType: "uint128"
|
|
6621
|
+
},
|
|
6622
|
+
{
|
|
6623
|
+
name: "fees1",
|
|
6624
|
+
type: "uint128",
|
|
6625
|
+
indexed: false,
|
|
6626
|
+
internalType: "uint128"
|
|
6627
|
+
}
|
|
6628
|
+
],
|
|
6629
|
+
anonymous: false
|
|
6630
|
+
},
|
|
6631
|
+
{
|
|
6632
|
+
type: "event",
|
|
6633
|
+
name: "IntegratorSet",
|
|
6634
|
+
inputs: [
|
|
6635
|
+
{
|
|
6636
|
+
name: "poolId",
|
|
6637
|
+
type: "bytes32",
|
|
6638
|
+
indexed: true,
|
|
6639
|
+
internalType: "PoolId"
|
|
6640
|
+
},
|
|
6641
|
+
{
|
|
6642
|
+
name: "oldIntegrator",
|
|
6643
|
+
type: "address",
|
|
6644
|
+
indexed: true,
|
|
6645
|
+
internalType: "address"
|
|
6646
|
+
},
|
|
6647
|
+
{
|
|
6648
|
+
name: "newIntegrator",
|
|
6649
|
+
type: "address",
|
|
6650
|
+
indexed: true,
|
|
6651
|
+
internalType: "address"
|
|
6652
|
+
}
|
|
6653
|
+
],
|
|
6654
|
+
anonymous: false
|
|
6655
|
+
},
|
|
6656
|
+
{
|
|
6657
|
+
type: "function",
|
|
6658
|
+
name: "setIntegratorConversionRatios",
|
|
6659
|
+
inputs: [
|
|
6660
|
+
{ name: "poolId", type: "bytes32", internalType: "PoolId" },
|
|
6661
|
+
{
|
|
6662
|
+
name: "assetFeesToNumeraireRatio",
|
|
6663
|
+
type: "uint32",
|
|
6664
|
+
internalType: "uint32"
|
|
6665
|
+
},
|
|
6666
|
+
{
|
|
6667
|
+
name: "numeraireFeesToAssetRatio",
|
|
6668
|
+
type: "uint32",
|
|
6669
|
+
internalType: "uint32"
|
|
6670
|
+
}
|
|
6671
|
+
],
|
|
6672
|
+
outputs: [],
|
|
6673
|
+
stateMutability: "nonpayable"
|
|
6674
|
+
},
|
|
6675
|
+
{
|
|
6676
|
+
type: "function",
|
|
6677
|
+
name: "setIntegratorAutomaticPayout",
|
|
6678
|
+
inputs: [
|
|
6679
|
+
{ name: "poolId", type: "bytes32", internalType: "PoolId" },
|
|
6680
|
+
{ name: "automaticPayout", type: "bool", internalType: "bool" }
|
|
6681
|
+
],
|
|
6682
|
+
outputs: [],
|
|
6683
|
+
stateMutability: "nonpayable"
|
|
6684
|
+
},
|
|
6685
|
+
{
|
|
6686
|
+
type: "function",
|
|
6687
|
+
name: "setIntegrator",
|
|
6688
|
+
inputs: [
|
|
6689
|
+
{ name: "poolId", type: "bytes32", internalType: "PoolId" },
|
|
6690
|
+
{ name: "newIntegrator", type: "address", internalType: "address" }
|
|
6691
|
+
],
|
|
6692
|
+
outputs: [],
|
|
6693
|
+
stateMutability: "nonpayable"
|
|
6694
|
+
},
|
|
6293
6695
|
{
|
|
6294
6696
|
type: "function",
|
|
6295
6697
|
name: "setFeeDistribution",
|
|
@@ -6335,6 +6737,10 @@ var rehypeDopplerHookInitializerAbi = [
|
|
|
6335
6737
|
outputs: [],
|
|
6336
6738
|
stateMutability: "nonpayable"
|
|
6337
6739
|
},
|
|
6740
|
+
{ type: "error", name: "InvalidIntegrator", inputs: [] },
|
|
6741
|
+
{ type: "error", name: "InvalidIntegratorClaimDestination", inputs: [] },
|
|
6742
|
+
{ type: "error", name: "InvalidIntegratorConversionRatio", inputs: [] },
|
|
6743
|
+
{ type: "error", name: "SenderNotIntegrator", inputs: [] },
|
|
6338
6744
|
{ type: "error", name: "FeeBeneficiariesNotConfigured", inputs: [] },
|
|
6339
6745
|
{
|
|
6340
6746
|
type: "error",
|
|
@@ -6386,184 +6792,173 @@ var rehypeDopplerHookInitializerAbi = [
|
|
|
6386
6792
|
{ type: "error", name: "UnorderedBeneficiaries", inputs: [] }
|
|
6387
6793
|
];
|
|
6388
6794
|
var rehypeDopplerHookAbi = rehypeDopplerHookInitializerAbi;
|
|
6389
|
-
var
|
|
6795
|
+
var dopplerHookMigratorAbi = [
|
|
6390
6796
|
{
|
|
6391
6797
|
type: "function",
|
|
6392
|
-
name: "
|
|
6393
|
-
inputs: [
|
|
6394
|
-
|
|
6395
|
-
|
|
6396
|
-
},
|
|
6397
|
-
{
|
|
6398
|
-
type: "function",
|
|
6399
|
-
name: "claimAirlockOwnerFees",
|
|
6400
|
-
inputs: [{ name: "asset", type: "address", internalType: "address" }],
|
|
6401
|
-
outputs: [
|
|
6402
|
-
{ name: "fees0", type: "uint128", internalType: "uint128" },
|
|
6403
|
-
{ name: "fees1", type: "uint128", internalType: "uint128" }
|
|
6798
|
+
name: "claimMigrationRefund",
|
|
6799
|
+
inputs: [
|
|
6800
|
+
{ name: "poolId", type: "bytes32", internalType: "PoolId" },
|
|
6801
|
+
{ name: "to", type: "address", internalType: "address" }
|
|
6404
6802
|
],
|
|
6803
|
+
outputs: [],
|
|
6405
6804
|
stateMutability: "nonpayable"
|
|
6406
6805
|
},
|
|
6407
6806
|
{
|
|
6408
6807
|
type: "function",
|
|
6409
|
-
name: "
|
|
6410
|
-
inputs: [
|
|
6411
|
-
|
|
6412
|
-
|
|
6413
|
-
|
|
6414
|
-
{
|
|
6415
|
-
type: "function",
|
|
6416
|
-
name: "getFeeDistributionInfo",
|
|
6417
|
-
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
6808
|
+
name: "getAssetData",
|
|
6809
|
+
inputs: [
|
|
6810
|
+
{ name: "token0", type: "address", internalType: "address" },
|
|
6811
|
+
{ name: "token1", type: "address", internalType: "address" }
|
|
6812
|
+
],
|
|
6418
6813
|
outputs: [
|
|
6814
|
+
{ name: "isToken0", type: "bool", internalType: "bool" },
|
|
6419
6815
|
{
|
|
6420
|
-
name: "
|
|
6421
|
-
type: "
|
|
6422
|
-
internalType: "
|
|
6423
|
-
|
|
6424
|
-
|
|
6425
|
-
|
|
6426
|
-
|
|
6427
|
-
|
|
6428
|
-
|
|
6429
|
-
|
|
6430
|
-
|
|
6431
|
-
|
|
6432
|
-
|
|
6433
|
-
|
|
6434
|
-
{ name: "assetFeesToLpWad", type: "uint256", internalType: "uint256" },
|
|
6435
|
-
{
|
|
6436
|
-
name: "numeraireFeesToAssetBuybackWad",
|
|
6437
|
-
type: "uint256",
|
|
6438
|
-
internalType: "uint256"
|
|
6816
|
+
name: "poolKey",
|
|
6817
|
+
type: "tuple",
|
|
6818
|
+
internalType: "struct PoolKey",
|
|
6819
|
+
components: [
|
|
6820
|
+
{ name: "currency0", type: "address", internalType: "Currency" },
|
|
6821
|
+
{ name: "currency1", type: "address", internalType: "Currency" },
|
|
6822
|
+
{ name: "fee", type: "uint24", internalType: "uint24" },
|
|
6823
|
+
{ name: "tickSpacing", type: "int24", internalType: "int24" },
|
|
6824
|
+
{
|
|
6825
|
+
name: "hooks",
|
|
6826
|
+
type: "address",
|
|
6827
|
+
internalType: "contract IHooks"
|
|
6828
|
+
}
|
|
6829
|
+
]
|
|
6439
6830
|
},
|
|
6831
|
+
{ name: "lockDuration", type: "uint32", internalType: "uint32" },
|
|
6440
6832
|
{
|
|
6441
|
-
name: "
|
|
6442
|
-
type: "
|
|
6443
|
-
internalType: "
|
|
6833
|
+
name: "feeOrInitialDynamicFee",
|
|
6834
|
+
type: "uint24",
|
|
6835
|
+
internalType: "uint24"
|
|
6444
6836
|
},
|
|
6837
|
+
{ name: "useDynamicFee", type: "bool", internalType: "bool" },
|
|
6838
|
+
{ name: "dopplerHook", type: "address", internalType: "address" },
|
|
6445
6839
|
{
|
|
6446
|
-
name: "
|
|
6447
|
-
type: "
|
|
6448
|
-
internalType: "
|
|
6840
|
+
name: "onInitializationCalldata",
|
|
6841
|
+
type: "bytes",
|
|
6842
|
+
internalType: "bytes"
|
|
6449
6843
|
},
|
|
6450
|
-
{
|
|
6451
|
-
name: "numeraireFeesToLpWad",
|
|
6452
|
-
type: "uint256",
|
|
6453
|
-
internalType: "uint256"
|
|
6454
|
-
}
|
|
6455
|
-
],
|
|
6456
|
-
stateMutability: "view"
|
|
6457
|
-
},
|
|
6458
|
-
{
|
|
6459
|
-
type: "function",
|
|
6460
|
-
name: "getFeeRoutingMode",
|
|
6461
|
-
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
6462
|
-
outputs: [{ name: "", type: "uint8", internalType: "enum FeeRoutingMode" }],
|
|
6463
|
-
stateMutability: "view"
|
|
6464
|
-
},
|
|
6465
|
-
{
|
|
6466
|
-
type: "function",
|
|
6467
|
-
name: "getHookFees",
|
|
6468
|
-
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
6469
|
-
outputs: [
|
|
6470
|
-
{ name: "fees0", type: "uint128", internalType: "uint128" },
|
|
6471
|
-
{ name: "fees1", type: "uint128", internalType: "uint128" },
|
|
6472
|
-
{ name: "beneficiaryFees0", type: "uint128", internalType: "uint128" },
|
|
6473
|
-
{ name: "beneficiaryFees1", type: "uint128", internalType: "uint128" },
|
|
6474
|
-
{ name: "airlockOwnerFees0", type: "uint128", internalType: "uint128" },
|
|
6475
|
-
{ name: "airlockOwnerFees1", type: "uint128", internalType: "uint128" },
|
|
6476
|
-
{ name: "customFee", type: "uint24", internalType: "uint24" }
|
|
6844
|
+
{ name: "status", type: "uint8", internalType: "enum PoolStatus" }
|
|
6477
6845
|
],
|
|
6478
6846
|
stateMutability: "view"
|
|
6479
6847
|
},
|
|
6480
6848
|
{
|
|
6481
6849
|
type: "function",
|
|
6482
|
-
name: "
|
|
6850
|
+
name: "getMigrationRefund",
|
|
6483
6851
|
inputs: [{ name: "poolId", type: "bytes32", internalType: "PoolId" }],
|
|
6484
6852
|
outputs: [
|
|
6485
|
-
{ name: "
|
|
6486
|
-
{ name: "
|
|
6487
|
-
{ name: "
|
|
6853
|
+
{ name: "recipient", type: "address", internalType: "address" },
|
|
6854
|
+
{ name: "currency0", type: "address", internalType: "Currency" },
|
|
6855
|
+
{ name: "currency1", type: "address", internalType: "Currency" },
|
|
6856
|
+
{ name: "amount0", type: "uint256", internalType: "uint256" },
|
|
6857
|
+
{ name: "amount1", type: "uint256", internalType: "uint256" }
|
|
6488
6858
|
],
|
|
6489
6859
|
stateMutability: "view"
|
|
6490
6860
|
},
|
|
6491
6861
|
{
|
|
6492
6862
|
type: "function",
|
|
6493
|
-
name: "
|
|
6494
|
-
inputs: [{ name: "
|
|
6863
|
+
name: "getPair",
|
|
6864
|
+
inputs: [{ name: "asset", type: "address", internalType: "address" }],
|
|
6495
6865
|
outputs: [
|
|
6496
|
-
{ name: "
|
|
6497
|
-
{ name: "
|
|
6498
|
-
{ name: "liquidity", type: "uint128", internalType: "uint128" },
|
|
6499
|
-
{ name: "salt", type: "bytes32", internalType: "bytes32" }
|
|
6866
|
+
{ name: "token0", type: "address", internalType: "address" },
|
|
6867
|
+
{ name: "token1", type: "address", internalType: "address" }
|
|
6500
6868
|
],
|
|
6501
6869
|
stateMutability: "view"
|
|
6502
|
-
},
|
|
6503
|
-
{
|
|
6504
|
-
type: "function",
|
|
6505
|
-
name: "
|
|
6506
|
-
inputs: [],
|
|
6507
|
-
outputs: [
|
|
6508
|
-
{ name: "", type: "address", internalType: "contract IPoolManager" }
|
|
6509
|
-
],
|
|
6870
|
+
},
|
|
6871
|
+
{
|
|
6872
|
+
type: "function",
|
|
6873
|
+
name: "getTotalClaimableMigrationRefund",
|
|
6874
|
+
inputs: [{ name: "currency", type: "address", internalType: "Currency" }],
|
|
6875
|
+
outputs: [{ name: "amount", type: "uint256", internalType: "uint256" }],
|
|
6510
6876
|
stateMutability: "view"
|
|
6511
6877
|
},
|
|
6512
6878
|
{
|
|
6513
6879
|
type: "function",
|
|
6514
|
-
name: "
|
|
6880
|
+
name: "locker",
|
|
6515
6881
|
inputs: [],
|
|
6516
|
-
outputs: [
|
|
6882
|
+
outputs: [
|
|
6883
|
+
{
|
|
6884
|
+
name: "",
|
|
6885
|
+
type: "address",
|
|
6886
|
+
internalType: "contract StreamableFeesLockerV2"
|
|
6887
|
+
}
|
|
6888
|
+
],
|
|
6517
6889
|
stateMutability: "view"
|
|
6518
6890
|
},
|
|
6519
6891
|
{
|
|
6520
|
-
type: "
|
|
6521
|
-
name: "
|
|
6892
|
+
type: "event",
|
|
6893
|
+
name: "MigrationRefundClaimed",
|
|
6522
6894
|
inputs: [
|
|
6523
|
-
{ name: "poolId", type: "bytes32", internalType: "PoolId" },
|
|
6524
6895
|
{
|
|
6525
|
-
name: "
|
|
6526
|
-
type: "
|
|
6527
|
-
|
|
6896
|
+
name: "poolId",
|
|
6897
|
+
type: "bytes32",
|
|
6898
|
+
indexed: true,
|
|
6899
|
+
internalType: "PoolId"
|
|
6528
6900
|
},
|
|
6529
6901
|
{
|
|
6530
|
-
name: "
|
|
6531
|
-
type: "
|
|
6532
|
-
|
|
6902
|
+
name: "recipient",
|
|
6903
|
+
type: "address",
|
|
6904
|
+
indexed: true,
|
|
6905
|
+
internalType: "address"
|
|
6533
6906
|
},
|
|
6534
6907
|
{
|
|
6535
|
-
name: "
|
|
6536
|
-
type: "
|
|
6537
|
-
|
|
6908
|
+
name: "to",
|
|
6909
|
+
type: "address",
|
|
6910
|
+
indexed: true,
|
|
6911
|
+
internalType: "address"
|
|
6538
6912
|
},
|
|
6539
|
-
{ name: "assetFeesToLpWad", type: "uint256", internalType: "uint256" },
|
|
6540
6913
|
{
|
|
6541
|
-
name: "
|
|
6914
|
+
name: "amount0",
|
|
6542
6915
|
type: "uint256",
|
|
6916
|
+
indexed: false,
|
|
6543
6917
|
internalType: "uint256"
|
|
6544
6918
|
},
|
|
6545
6919
|
{
|
|
6546
|
-
name: "
|
|
6920
|
+
name: "amount1",
|
|
6547
6921
|
type: "uint256",
|
|
6922
|
+
indexed: false,
|
|
6548
6923
|
internalType: "uint256"
|
|
6924
|
+
}
|
|
6925
|
+
],
|
|
6926
|
+
anonymous: false
|
|
6927
|
+
},
|
|
6928
|
+
{
|
|
6929
|
+
type: "event",
|
|
6930
|
+
name: "MigrationRefundRecorded",
|
|
6931
|
+
inputs: [
|
|
6932
|
+
{
|
|
6933
|
+
name: "poolId",
|
|
6934
|
+
type: "bytes32",
|
|
6935
|
+
indexed: true,
|
|
6936
|
+
internalType: "PoolId"
|
|
6549
6937
|
},
|
|
6550
6938
|
{
|
|
6551
|
-
name: "
|
|
6939
|
+
name: "recipient",
|
|
6940
|
+
type: "address",
|
|
6941
|
+
indexed: true,
|
|
6942
|
+
internalType: "address"
|
|
6943
|
+
},
|
|
6944
|
+
{
|
|
6945
|
+
name: "amount0",
|
|
6552
6946
|
type: "uint256",
|
|
6947
|
+
indexed: false,
|
|
6553
6948
|
internalType: "uint256"
|
|
6554
6949
|
},
|
|
6555
6950
|
{
|
|
6556
|
-
name: "
|
|
6951
|
+
name: "amount1",
|
|
6557
6952
|
type: "uint256",
|
|
6953
|
+
indexed: false,
|
|
6558
6954
|
internalType: "uint256"
|
|
6559
6955
|
}
|
|
6560
6956
|
],
|
|
6561
|
-
|
|
6562
|
-
stateMutability: "nonpayable"
|
|
6957
|
+
anonymous: false
|
|
6563
6958
|
},
|
|
6564
|
-
{ type: "error", name: "
|
|
6565
|
-
{ type: "error", name: "
|
|
6566
|
-
{ type: "error", name: "
|
|
6959
|
+
{ type: "error", name: "CallerNotRefundRecipient", inputs: [] },
|
|
6960
|
+
{ type: "error", name: "InvalidRefundDestination", inputs: [] },
|
|
6961
|
+
{ type: "error", name: "NoMigrationRefund", inputs: [] }
|
|
6567
6962
|
];
|
|
6568
6963
|
|
|
6569
6964
|
// src/evm/utils/tokenAddressMiner.ts
|
|
@@ -7162,10 +7557,10 @@ function isNonEmpty(values) {
|
|
|
7162
7557
|
// src/evm/types.ts
|
|
7163
7558
|
var NO_OP_ENABLED_CHAIN_IDS = [
|
|
7164
7559
|
CHAIN_IDS.MAINNET,
|
|
7165
|
-
CHAIN_IDS.ETH_SEPOLIA,
|
|
7166
7560
|
CHAIN_IDS.ARBITRUM,
|
|
7167
7561
|
CHAIN_IDS.BASE,
|
|
7168
7562
|
CHAIN_IDS.BASE_SEPOLIA,
|
|
7563
|
+
CHAIN_IDS.BSC,
|
|
7169
7564
|
CHAIN_IDS.UNICHAIN,
|
|
7170
7565
|
CHAIN_IDS.UNICHAIN_SEPOLIA,
|
|
7171
7566
|
CHAIN_IDS.ROBINHOOD,
|
|
@@ -7180,6 +7575,7 @@ var LAUNCHPAD_ENABLED_CHAIN_IDS = [
|
|
|
7180
7575
|
CHAIN_IDS.ARBITRUM,
|
|
7181
7576
|
CHAIN_IDS.BASE,
|
|
7182
7577
|
CHAIN_IDS.BASE_SEPOLIA,
|
|
7578
|
+
CHAIN_IDS.BSC,
|
|
7183
7579
|
CHAIN_IDS.ROBINHOOD,
|
|
7184
7580
|
CHAIN_IDS.MONAD_MAINNET
|
|
7185
7581
|
];
|
|
@@ -7266,7 +7662,9 @@ function validateFeeDistributionInfo(feeDistributionInfo) {
|
|
|
7266
7662
|
}
|
|
7267
7663
|
|
|
7268
7664
|
// src/evm/utils/rehypeDopplerHookInitializer.ts
|
|
7269
|
-
|
|
7665
|
+
var MAX_REHYPE_INTEGRATOR_FEE_SHARE = 75e4;
|
|
7666
|
+
var REHYPE_INTEGRATOR_CONVERSION_RATIO_DENOMINATOR = 1e9;
|
|
7667
|
+
function normalizeRehypeDopplerHookInitializerConfig(config, controllerOverride, fallbackIntegrator) {
|
|
7270
7668
|
assertNonZeroAddress(config.hookAddress, "Rehype hookAddress");
|
|
7271
7669
|
if (config.buybackDestination !== void 0 && controllerOverride !== void 0) {
|
|
7272
7670
|
throw new Error(
|
|
@@ -7284,6 +7682,10 @@ function normalizeRehypeDopplerHookInitializerConfig(config, controllerOverride)
|
|
|
7284
7682
|
const feeDistributionInfo = resolveRehypeFeeDistributionInfo(config);
|
|
7285
7683
|
const { startFee, endFee, durationSeconds, startingTime } = normalizeFeeSchedule(config);
|
|
7286
7684
|
const feeRoutingMode = feeBeneficiaries !== void 0 ? normalizeBeneficiaryFeeRoutingMode(config.feeRoutingMode) : normalizeFeeRoutingMode(config.feeRoutingMode);
|
|
7685
|
+
const integratorFeeConfig = config.integratorFeeConfig === void 0 ? void 0 : normalizeIntegratorFeeConfig(
|
|
7686
|
+
config.integratorFeeConfig,
|
|
7687
|
+
fallbackIntegrator
|
|
7688
|
+
);
|
|
7287
7689
|
const common = {
|
|
7288
7690
|
hookAddress: config.hookAddress,
|
|
7289
7691
|
startFee,
|
|
@@ -7291,6 +7693,7 @@ function normalizeRehypeDopplerHookInitializerConfig(config, controllerOverride)
|
|
|
7291
7693
|
durationSeconds,
|
|
7292
7694
|
startingTime,
|
|
7293
7695
|
feeDistributionInfo,
|
|
7696
|
+
...integratorFeeConfig === void 0 ? {} : { integratorFeeConfig },
|
|
7294
7697
|
graduationCalldata: config.graduationCalldata,
|
|
7295
7698
|
graduationMarketCap: config.graduationMarketCap,
|
|
7296
7699
|
numerairePrice: config.numerairePrice,
|
|
@@ -7314,6 +7717,47 @@ function normalizeRehypeDopplerHookInitializerConfig(config, controllerOverride)
|
|
|
7314
7717
|
feeRoutingMode
|
|
7315
7718
|
};
|
|
7316
7719
|
}
|
|
7720
|
+
function normalizeIntegratorFeeConfig(config, fallbackIntegrator) {
|
|
7721
|
+
const integrator = config.integrator ?? fallbackIntegrator;
|
|
7722
|
+
if (integrator === void 0) {
|
|
7723
|
+
throw new Error(
|
|
7724
|
+
"Rehype integratorFeeConfig requires integrator or withIntegrator"
|
|
7725
|
+
);
|
|
7726
|
+
}
|
|
7727
|
+
assertNonZeroAddress(integrator, "Rehype integratorFeeConfig.integrator");
|
|
7728
|
+
if (!Number.isInteger(config.feeShare) || config.feeShare <= 0 || config.feeShare > MAX_REHYPE_INTEGRATOR_FEE_SHARE) {
|
|
7729
|
+
throw new Error(
|
|
7730
|
+
"Rehype integrator feeShare must be an integer between 1 and 750000"
|
|
7731
|
+
);
|
|
7732
|
+
}
|
|
7733
|
+
const assetFeesToNumeraireRatio = config.assetFeesToNumeraireRatio ?? 0;
|
|
7734
|
+
const numeraireFeesToAssetRatio = config.numeraireFeesToAssetRatio ?? 0;
|
|
7735
|
+
assertIntegratorConversionRatio(
|
|
7736
|
+
assetFeesToNumeraireRatio,
|
|
7737
|
+
"Rehype integrator assetFeesToNumeraireRatio"
|
|
7738
|
+
);
|
|
7739
|
+
assertIntegratorConversionRatio(
|
|
7740
|
+
numeraireFeesToAssetRatio,
|
|
7741
|
+
"Rehype integrator numeraireFeesToAssetRatio"
|
|
7742
|
+
);
|
|
7743
|
+
if (config.automaticPayout !== void 0 && typeof config.automaticPayout !== "boolean") {
|
|
7744
|
+
throw new Error("Rehype integrator automaticPayout must be a boolean");
|
|
7745
|
+
}
|
|
7746
|
+
return {
|
|
7747
|
+
integrator,
|
|
7748
|
+
feeShare: config.feeShare,
|
|
7749
|
+
assetFeesToNumeraireRatio,
|
|
7750
|
+
numeraireFeesToAssetRatio,
|
|
7751
|
+
automaticPayout: config.automaticPayout ?? false
|
|
7752
|
+
};
|
|
7753
|
+
}
|
|
7754
|
+
function assertIntegratorConversionRatio(value, label) {
|
|
7755
|
+
if (!Number.isInteger(value) || value < 0 || value > REHYPE_INTEGRATOR_CONVERSION_RATIO_DENOMINATOR) {
|
|
7756
|
+
throw new Error(
|
|
7757
|
+
`${label} must be an integer between 0 and ${REHYPE_INTEGRATOR_CONVERSION_RATIO_DENOMINATOR}`
|
|
7758
|
+
);
|
|
7759
|
+
}
|
|
7760
|
+
}
|
|
7317
7761
|
function assertNonZeroAddress(address, label) {
|
|
7318
7762
|
if (!viem.isAddress(address, { strict: false }) || address.toLowerCase() === ZERO_ADDRESS) {
|
|
7319
7763
|
throw new Error(`${label} must be a non-zero address`);
|
|
@@ -7402,6 +7846,13 @@ function normalizeUint32(value, label) {
|
|
|
7402
7846
|
}
|
|
7403
7847
|
return normalized;
|
|
7404
7848
|
}
|
|
7849
|
+
var DISABLED_REHYPE_INTEGRATOR_CONFIG = {
|
|
7850
|
+
integrator: ZERO_ADDRESS,
|
|
7851
|
+
feeShare: 0,
|
|
7852
|
+
assetFeesToNumeraireRatio: 0,
|
|
7853
|
+
numeraireFeesToAssetRatio: 0,
|
|
7854
|
+
automaticPayout: false
|
|
7855
|
+
};
|
|
7405
7856
|
function encodeRehypeDopplerHookInitializerData(numeraire, config) {
|
|
7406
7857
|
return viem.encodeAbiParameters(rehypeInitializerDataAbi, [
|
|
7407
7858
|
{
|
|
@@ -7413,7 +7864,8 @@ function encodeRehypeDopplerHookInitializerData(numeraire, config) {
|
|
|
7413
7864
|
startingTime: config.startingTime,
|
|
7414
7865
|
feeRoutingMode: config.feeRoutingMode,
|
|
7415
7866
|
feeDistributionInfo: config.feeDistributionInfo,
|
|
7416
|
-
feeBeneficiaries: config.feeBeneficiaries ?? []
|
|
7867
|
+
feeBeneficiaries: config.feeBeneficiaries ?? [],
|
|
7868
|
+
integratorConfig: config.integratorFeeConfig ?? DISABLED_REHYPE_INTEGRATOR_CONFIG
|
|
7417
7869
|
}
|
|
7418
7870
|
]);
|
|
7419
7871
|
}
|
|
@@ -7422,14 +7874,21 @@ var beneficiaryComponents = [
|
|
|
7422
7874
|
{ name: "shares", type: "uint96" }
|
|
7423
7875
|
];
|
|
7424
7876
|
var feeDistributionComponents = [
|
|
7425
|
-
{ name: "assetFeesToAssetBuybackWad", type: "
|
|
7426
|
-
{ name: "assetFeesToNumeraireBuybackWad", type: "
|
|
7427
|
-
{ name: "assetFeesToBeneficiaryWad", type: "
|
|
7428
|
-
{ name: "assetFeesToLpWad", type: "
|
|
7429
|
-
{ name: "numeraireFeesToAssetBuybackWad", type: "
|
|
7430
|
-
{ name: "numeraireFeesToNumeraireBuybackWad", type: "
|
|
7431
|
-
{ name: "numeraireFeesToBeneficiaryWad", type: "
|
|
7432
|
-
{ name: "numeraireFeesToLpWad", type: "
|
|
7877
|
+
{ name: "assetFeesToAssetBuybackWad", type: "uint64" },
|
|
7878
|
+
{ name: "assetFeesToNumeraireBuybackWad", type: "uint64" },
|
|
7879
|
+
{ name: "assetFeesToBeneficiaryWad", type: "uint64" },
|
|
7880
|
+
{ name: "assetFeesToLpWad", type: "uint64" },
|
|
7881
|
+
{ name: "numeraireFeesToAssetBuybackWad", type: "uint64" },
|
|
7882
|
+
{ name: "numeraireFeesToNumeraireBuybackWad", type: "uint64" },
|
|
7883
|
+
{ name: "numeraireFeesToBeneficiaryWad", type: "uint64" },
|
|
7884
|
+
{ name: "numeraireFeesToLpWad", type: "uint64" }
|
|
7885
|
+
];
|
|
7886
|
+
var integratorConfigComponents = [
|
|
7887
|
+
{ name: "integrator", type: "address" },
|
|
7888
|
+
{ name: "feeShare", type: "uint24" },
|
|
7889
|
+
{ name: "assetFeesToNumeraireRatio", type: "uint32" },
|
|
7890
|
+
{ name: "numeraireFeesToAssetRatio", type: "uint32" },
|
|
7891
|
+
{ name: "automaticPayout", type: "bool" }
|
|
7433
7892
|
];
|
|
7434
7893
|
var rehypeInitializerDataAbi = [
|
|
7435
7894
|
{
|
|
@@ -7451,120 +7910,15 @@ var rehypeInitializerDataAbi = [
|
|
|
7451
7910
|
name: "feeBeneficiaries",
|
|
7452
7911
|
type: "tuple[]",
|
|
7453
7912
|
components: beneficiaryComponents
|
|
7454
|
-
}
|
|
7455
|
-
]
|
|
7456
|
-
}
|
|
7457
|
-
];
|
|
7458
|
-
function normalizeRehypeFeeRoutingMode(mode) {
|
|
7459
|
-
if (mode === void 0 || mode === 0 /* DirectBuyback */) {
|
|
7460
|
-
return 0 /* DirectBuyback */;
|
|
7461
|
-
}
|
|
7462
|
-
if (mode === 1 /* RouteToBeneficiaryFees */) {
|
|
7463
|
-
return 1 /* RouteToBeneficiaryFees */;
|
|
7464
|
-
}
|
|
7465
|
-
if (mode === "directBuyback") {
|
|
7466
|
-
return 0 /* DirectBuyback */;
|
|
7467
|
-
}
|
|
7468
|
-
if (mode === "routeToBeneficiaryFees") {
|
|
7469
|
-
return 1 /* RouteToBeneficiaryFees */;
|
|
7470
|
-
}
|
|
7471
|
-
throw new Error(
|
|
7472
|
-
"Rehype feeRoutingMode must be DirectBuyback/directBuyback or RouteToBeneficiaryFees/routeToBeneficiaryFees"
|
|
7473
|
-
);
|
|
7474
|
-
}
|
|
7475
|
-
function resolveRehypeFeeDistributionInfo2(config) {
|
|
7476
|
-
if (config.feeDistributionInfo) {
|
|
7477
|
-
return config.feeDistributionInfo;
|
|
7478
|
-
}
|
|
7479
|
-
const assetBuyback = config.assetBuybackPercentWad;
|
|
7480
|
-
const numeraireBuyback = config.numeraireBuybackPercentWad;
|
|
7481
|
-
const beneficiary = config.beneficiaryPercentWad;
|
|
7482
|
-
const lp = config.lpPercentWad;
|
|
7483
|
-
if (assetBuyback === void 0 || numeraireBuyback === void 0 || beneficiary === void 0 || lp === void 0) {
|
|
7484
|
-
throw new Error(
|
|
7485
|
-
"Rehype feeDistributionInfo is required, or provide all deprecated legacy percentages."
|
|
7486
|
-
);
|
|
7487
|
-
}
|
|
7488
|
-
return {
|
|
7489
|
-
assetFeesToAssetBuybackWad: assetBuyback,
|
|
7490
|
-
assetFeesToNumeraireBuybackWad: numeraireBuyback,
|
|
7491
|
-
assetFeesToBeneficiaryWad: beneficiary,
|
|
7492
|
-
assetFeesToLpWad: lp,
|
|
7493
|
-
numeraireFeesToAssetBuybackWad: assetBuyback,
|
|
7494
|
-
numeraireFeesToNumeraireBuybackWad: numeraireBuyback,
|
|
7495
|
-
numeraireFeesToBeneficiaryWad: beneficiary,
|
|
7496
|
-
numeraireFeesToLpWad: lp
|
|
7497
|
-
};
|
|
7498
|
-
}
|
|
7499
|
-
function validateRehypeFeeDistributionInfo(feeDistributionInfo) {
|
|
7500
|
-
const assetRowTotal = feeDistributionInfo.assetFeesToAssetBuybackWad + feeDistributionInfo.assetFeesToNumeraireBuybackWad + feeDistributionInfo.assetFeesToBeneficiaryWad + feeDistributionInfo.assetFeesToLpWad;
|
|
7501
|
-
if (assetRowTotal !== WAD) {
|
|
7502
|
-
throw new Error(
|
|
7503
|
-
`Rehype asset fee distribution must sum to ${WAD} (100%), but got ${assetRowTotal}`
|
|
7504
|
-
);
|
|
7505
|
-
}
|
|
7506
|
-
const numeraireRowTotal = feeDistributionInfo.numeraireFeesToAssetBuybackWad + feeDistributionInfo.numeraireFeesToNumeraireBuybackWad + feeDistributionInfo.numeraireFeesToBeneficiaryWad + feeDistributionInfo.numeraireFeesToLpWad;
|
|
7507
|
-
if (numeraireRowTotal !== WAD) {
|
|
7508
|
-
throw new Error(
|
|
7509
|
-
`Rehype numeraire fee distribution must sum to ${WAD} (100%), but got ${numeraireRowTotal}`
|
|
7510
|
-
);
|
|
7511
|
-
}
|
|
7512
|
-
}
|
|
7513
|
-
function normalizeRehypeDopplerHookMigratorConfig(config) {
|
|
7514
|
-
if (!Number.isInteger(config.customFee) || config.customFee < 0) {
|
|
7515
|
-
throw new Error("Rehype customFee must be a non-negative integer");
|
|
7516
|
-
}
|
|
7517
|
-
if (config.customFee > 1e6) {
|
|
7518
|
-
throw new Error("Rehype customFee must be <= 1000000 (100%)");
|
|
7519
|
-
}
|
|
7520
|
-
const feeDistributionInfo = resolveRehypeFeeDistributionInfo2(config);
|
|
7521
|
-
validateRehypeFeeDistributionInfo(feeDistributionInfo);
|
|
7522
|
-
return {
|
|
7523
|
-
buybackDestination: config.buybackDestination,
|
|
7524
|
-
customFee: config.customFee,
|
|
7525
|
-
feeRoutingMode: normalizeRehypeFeeRoutingMode(config.feeRoutingMode),
|
|
7526
|
-
feeDistributionInfo
|
|
7527
|
-
};
|
|
7528
|
-
}
|
|
7529
|
-
function encodeRehypeDopplerHookMigratorCalldata(params) {
|
|
7530
|
-
const normalized = normalizeRehypeDopplerHookMigratorConfig(params.config);
|
|
7531
|
-
return viem.encodeAbiParameters(
|
|
7532
|
-
[
|
|
7913
|
+
},
|
|
7533
7914
|
{
|
|
7915
|
+
name: "integratorConfig",
|
|
7534
7916
|
type: "tuple",
|
|
7535
|
-
components:
|
|
7536
|
-
{ name: "numeraire", type: "address" },
|
|
7537
|
-
{ name: "buybackDst", type: "address" },
|
|
7538
|
-
{ name: "customFee", type: "uint24" },
|
|
7539
|
-
{ name: "feeRoutingMode", type: "uint8" },
|
|
7540
|
-
{
|
|
7541
|
-
name: "feeDistributionInfo",
|
|
7542
|
-
type: "tuple",
|
|
7543
|
-
components: [
|
|
7544
|
-
{ name: "assetFeesToAssetBuybackWad", type: "uint256" },
|
|
7545
|
-
{ name: "assetFeesToNumeraireBuybackWad", type: "uint256" },
|
|
7546
|
-
{ name: "assetFeesToBeneficiaryWad", type: "uint256" },
|
|
7547
|
-
{ name: "assetFeesToLpWad", type: "uint256" },
|
|
7548
|
-
{ name: "numeraireFeesToAssetBuybackWad", type: "uint256" },
|
|
7549
|
-
{ name: "numeraireFeesToNumeraireBuybackWad", type: "uint256" },
|
|
7550
|
-
{ name: "numeraireFeesToBeneficiaryWad", type: "uint256" },
|
|
7551
|
-
{ name: "numeraireFeesToLpWad", type: "uint256" }
|
|
7552
|
-
]
|
|
7553
|
-
}
|
|
7554
|
-
]
|
|
7555
|
-
}
|
|
7556
|
-
],
|
|
7557
|
-
[
|
|
7558
|
-
{
|
|
7559
|
-
numeraire: params.numeraire,
|
|
7560
|
-
buybackDst: normalized.buybackDestination,
|
|
7561
|
-
customFee: normalized.customFee,
|
|
7562
|
-
feeRoutingMode: normalized.feeRoutingMode,
|
|
7563
|
-
feeDistributionInfo: normalized.feeDistributionInfo
|
|
7917
|
+
components: integratorConfigComponents
|
|
7564
7918
|
}
|
|
7565
7919
|
]
|
|
7566
|
-
|
|
7567
|
-
|
|
7920
|
+
}
|
|
7921
|
+
];
|
|
7568
7922
|
var AirlockCreateReceiptError = class extends Error {
|
|
7569
7923
|
code;
|
|
7570
7924
|
expected;
|
|
@@ -8516,6 +8870,18 @@ var DopplerFactory = class {
|
|
|
8516
8870
|
schedules,
|
|
8517
8871
|
scheduleIds
|
|
8518
8872
|
});
|
|
8873
|
+
if (balanceLimitEnabled && args.governance.type !== "noOp" && args.governance.type !== "launchpad") {
|
|
8874
|
+
const allocatedTokens = amounts.reduce(
|
|
8875
|
+
(total, amount) => total + amount,
|
|
8876
|
+
0n
|
|
8877
|
+
);
|
|
8878
|
+
const timelockTokens = args.sale.initialSupply - args.sale.numTokensToSell - allocatedTokens;
|
|
8879
|
+
if (timelockTokens > maxBalanceLimit) {
|
|
8880
|
+
throw new Error(
|
|
8881
|
+
`Standard governance would transfer ${timelockTokens} tokens to the governance timelock at creation, exceeding token.maxBalanceLimit (${maxBalanceLimit}). Increase sale.numTokensToSell, add vesting allocations, increase the balance limit, or use no-op or launchpad governance.`
|
|
8882
|
+
);
|
|
8883
|
+
}
|
|
8884
|
+
}
|
|
8519
8885
|
return {
|
|
8520
8886
|
kind: "dopplerERC20V1",
|
|
8521
8887
|
name: args.token.name,
|
|
@@ -8550,125 +8916,61 @@ var DopplerFactory = class {
|
|
|
8550
8916
|
}
|
|
8551
8917
|
return [];
|
|
8552
8918
|
}
|
|
8553
|
-
|
|
8554
|
-
if (
|
|
8555
|
-
|
|
8556
|
-
|
|
8557
|
-
|
|
8558
|
-
|
|
8559
|
-
|
|
8560
|
-
|
|
8561
|
-
|
|
8562
|
-
|
|
8563
|
-
|
|
8564
|
-
|
|
8565
|
-
|
|
8566
|
-
|
|
8567
|
-
|
|
8568
|
-
|
|
8569
|
-
|
|
8570
|
-
|
|
8571
|
-
|
|
8572
|
-
|
|
8573
|
-
|
|
8574
|
-
|
|
8575
|
-
|
|
8576
|
-
return false;
|
|
8577
|
-
}
|
|
8578
|
-
if (args.modules?.governanceFactory) {
|
|
8579
|
-
return false;
|
|
8580
|
-
}
|
|
8581
|
-
const noOpGovernanceFactory = args.addresses.noOpGovernanceFactory;
|
|
8582
|
-
return !noOpGovernanceFactory || args.governanceFactory.toLowerCase() !== noOpGovernanceFactory.toLowerCase();
|
|
8583
|
-
}
|
|
8584
|
-
resolveMigrationLockerBalanceLimitExclusions(migration, addresses) {
|
|
8585
|
-
if ((migration.type === "uniswapV4" || migration.type === "uniswapV4Split") && migration.streamableFees) {
|
|
8586
|
-
return [addresses.streamableFeesLocker];
|
|
8587
|
-
}
|
|
8588
|
-
if (isDopplerHookMigratorConfig(migration)) {
|
|
8589
|
-
return [
|
|
8590
|
-
addresses.streamableFeesLockerV2 ?? addresses.streamableFeesLocker
|
|
8591
|
-
];
|
|
8592
|
-
}
|
|
8593
|
-
return [];
|
|
8594
|
-
}
|
|
8595
|
-
withDopplerERC20V1EncodedBalanceLimitExclusions(tokenFactoryData, exclusions) {
|
|
8596
|
-
const decoded = viem.decodeAbiParameters(
|
|
8597
|
-
[
|
|
8598
|
-
{ type: "string" },
|
|
8599
|
-
{ type: "string" },
|
|
8600
|
-
{
|
|
8601
|
-
type: "tuple[]",
|
|
8602
|
-
components: [
|
|
8603
|
-
{ type: "uint64", name: "cliff" },
|
|
8604
|
-
{ type: "uint64", name: "duration" }
|
|
8605
|
-
]
|
|
8606
|
-
},
|
|
8607
|
-
{ type: "address[]" },
|
|
8608
|
-
{ type: "uint256[]" },
|
|
8609
|
-
{ type: "uint256[]" },
|
|
8610
|
-
{ type: "string" },
|
|
8611
|
-
{ type: "uint256" },
|
|
8612
|
-
{ type: "uint48" },
|
|
8613
|
-
{ type: "address" },
|
|
8614
|
-
{ type: "address[]" }
|
|
8615
|
-
],
|
|
8616
|
-
tokenFactoryData
|
|
8617
|
-
);
|
|
8618
|
-
if (decoded[7] === 0n && decoded[8] === 0) {
|
|
8619
|
-
return tokenFactoryData;
|
|
8620
|
-
}
|
|
8621
|
-
return viem.encodeAbiParameters(
|
|
8622
|
-
[
|
|
8623
|
-
{ type: "string" },
|
|
8624
|
-
{ type: "string" },
|
|
8625
|
-
{
|
|
8626
|
-
type: "tuple[]",
|
|
8627
|
-
components: [
|
|
8628
|
-
{ type: "uint64", name: "cliff" },
|
|
8629
|
-
{ type: "uint64", name: "duration" }
|
|
8630
|
-
]
|
|
8631
|
-
},
|
|
8632
|
-
{ type: "address[]" },
|
|
8633
|
-
{ type: "uint256[]" },
|
|
8634
|
-
{ type: "uint256[]" },
|
|
8635
|
-
{ type: "string" },
|
|
8636
|
-
{ type: "uint256" },
|
|
8637
|
-
{ type: "uint48" },
|
|
8638
|
-
{ type: "address" },
|
|
8639
|
-
{ type: "address[]" }
|
|
8640
|
-
],
|
|
8641
|
-
[
|
|
8642
|
-
decoded[0],
|
|
8643
|
-
decoded[1],
|
|
8644
|
-
decoded[2],
|
|
8645
|
-
decoded[3],
|
|
8646
|
-
decoded[4],
|
|
8647
|
-
decoded[5],
|
|
8648
|
-
decoded[6],
|
|
8649
|
-
decoded[7],
|
|
8650
|
-
decoded[8],
|
|
8651
|
-
decoded[9],
|
|
8652
|
-
this.mergeDopplerERC20V1BalanceLimitExclusions(decoded[10], exclusions)
|
|
8653
|
-
]
|
|
8654
|
-
);
|
|
8919
|
+
governanceDuration(token, seconds) {
|
|
8920
|
+
if (token.type !== "standard") {
|
|
8921
|
+
return seconds;
|
|
8922
|
+
}
|
|
8923
|
+
switch (this.chainId) {
|
|
8924
|
+
case CHAIN_IDS.MAINNET:
|
|
8925
|
+
case CHAIN_IDS.ARBITRUM:
|
|
8926
|
+
return Math.ceil(seconds / 12);
|
|
8927
|
+
case CHAIN_IDS.BASE:
|
|
8928
|
+
case CHAIN_IDS.BASE_SEPOLIA:
|
|
8929
|
+
return Math.ceil(seconds / 2);
|
|
8930
|
+
case CHAIN_IDS.INK:
|
|
8931
|
+
case CHAIN_IDS.UNICHAIN:
|
|
8932
|
+
case CHAIN_IDS.UNICHAIN_SEPOLIA:
|
|
8933
|
+
return seconds;
|
|
8934
|
+
case CHAIN_IDS.MONAD_MAINNET:
|
|
8935
|
+
case CHAIN_IDS.MONAD_TESTNET:
|
|
8936
|
+
return Math.ceil(seconds * 1e3 / 400);
|
|
8937
|
+
default:
|
|
8938
|
+
throw new Error(
|
|
8939
|
+
"Legacy token governance clock cadence is unknown on this chain. Use custom governance with explicit token-clock voting delay and period."
|
|
8940
|
+
);
|
|
8941
|
+
}
|
|
8655
8942
|
}
|
|
8656
|
-
|
|
8657
|
-
if (
|
|
8658
|
-
|
|
8659
|
-
|
|
8660
|
-
|
|
8661
|
-
|
|
8662
|
-
|
|
8663
|
-
return args.createParams;
|
|
8943
|
+
resolveGovernanceFactoryAddress(args) {
|
|
8944
|
+
if (args.governance.type === "noOp") {
|
|
8945
|
+
const resolved2 = args.modules?.governanceFactory ?? args.addresses.noOpGovernanceFactory ?? ZERO_ADDRESS;
|
|
8946
|
+
if (!resolved2 || resolved2 === ZERO_ADDRESS) {
|
|
8947
|
+
throw new Error(args.noOpError);
|
|
8948
|
+
}
|
|
8949
|
+
return resolved2;
|
|
8664
8950
|
}
|
|
8665
|
-
|
|
8666
|
-
|
|
8667
|
-
|
|
8668
|
-
args.
|
|
8669
|
-
|
|
8670
|
-
|
|
8671
|
-
}
|
|
8951
|
+
if (args.governance.type === "launchpad") {
|
|
8952
|
+
const resolved2 = args.modules?.governanceFactory ?? args.addresses.launchpadGovernanceFactory ?? ZERO_ADDRESS;
|
|
8953
|
+
if (!resolved2 || resolved2 === ZERO_ADDRESS) {
|
|
8954
|
+
throw new Error(args.launchpadError);
|
|
8955
|
+
}
|
|
8956
|
+
return resolved2;
|
|
8957
|
+
}
|
|
8958
|
+
const resolved = args.modules?.governanceFactory ?? args.addresses.governanceFactory;
|
|
8959
|
+
if (!resolved || resolved === ZERO_ADDRESS) {
|
|
8960
|
+
throw new Error(args.standardError);
|
|
8961
|
+
}
|
|
8962
|
+
return resolved;
|
|
8963
|
+
}
|
|
8964
|
+
resolveMigrationLockerBalanceLimitExclusions(migration, addresses) {
|
|
8965
|
+
if ((migration.type === "uniswapV4" || migration.type === "uniswapV4Split") && migration.streamableFees) {
|
|
8966
|
+
return [addresses.streamableFeesLocker];
|
|
8967
|
+
}
|
|
8968
|
+
if (isDopplerHookMigratorConfig(migration)) {
|
|
8969
|
+
return [
|
|
8970
|
+
addresses.streamableFeesLockerV2 ?? addresses.streamableFeesLocker
|
|
8971
|
+
];
|
|
8972
|
+
}
|
|
8973
|
+
return [];
|
|
8672
8974
|
}
|
|
8673
8975
|
withDopplerERC20V1BalanceLimitExclusions(tokenFactoryData, exclusions) {
|
|
8674
8976
|
if (!this.isDopplerERC20V1BalanceLimitActive(tokenFactoryData)) {
|
|
@@ -9106,7 +9408,6 @@ var DopplerFactory = class {
|
|
|
9106
9408
|
);
|
|
9107
9409
|
}
|
|
9108
9410
|
const liquidityMigratorData = this.encodeMigrationData(params.migration, {
|
|
9109
|
-
numeraire: params.sale.numeraire,
|
|
9110
9411
|
overrides: params.modules
|
|
9111
9412
|
});
|
|
9112
9413
|
const resolvedTokenFactory = params.modules?.tokenFactory ?? (this.isDoppler404Token(params.token) ? addresses.doppler404Factory : this.isDopplerERC20V1Token(params.token) ? params.modules?.dopplerERC20V1Factory ?? addresses.dopplerERC20V1Factory : this.usesDerc20V2Vesting(params.vesting) ? addresses.derc20V2Factory : addresses.tokenFactory);
|
|
@@ -9165,6 +9466,7 @@ var DopplerFactory = class {
|
|
|
9165
9466
|
sale: params.sale,
|
|
9166
9467
|
vesting: params.vesting,
|
|
9167
9468
|
userAddress: params.userAddress,
|
|
9469
|
+
governance: params.governance,
|
|
9168
9470
|
addresses,
|
|
9169
9471
|
modules: params.modules,
|
|
9170
9472
|
protocolBalanceLimitExclusions: includeProtocolBalanceLimitExclusions ? [
|
|
@@ -9214,8 +9516,14 @@ var DopplerFactory = class {
|
|
|
9214
9516
|
],
|
|
9215
9517
|
[
|
|
9216
9518
|
params.token.name,
|
|
9217
|
-
params.governance.type === "custom" ? params.governance.initialVotingDelay :
|
|
9218
|
-
|
|
9519
|
+
params.governance.type === "custom" ? params.governance.initialVotingDelay : this.governanceDuration(
|
|
9520
|
+
params.token,
|
|
9521
|
+
DEFAULT_V3_INITIAL_VOTING_DELAY
|
|
9522
|
+
),
|
|
9523
|
+
params.governance.type === "custom" ? params.governance.initialVotingPeriod : this.governanceDuration(
|
|
9524
|
+
params.token,
|
|
9525
|
+
DEFAULT_V3_INITIAL_VOTING_PERIOD
|
|
9526
|
+
),
|
|
9219
9527
|
params.governance.type === "custom" ? params.governance.initialProposalThreshold : DEFAULT_V3_INITIAL_PROPOSAL_THRESHOLD
|
|
9220
9528
|
]
|
|
9221
9529
|
);
|
|
@@ -9473,14 +9781,7 @@ var DopplerFactory = class {
|
|
|
9473
9781
|
const isToken0 = BigInt(tokenAddress) < numeraireBigInt;
|
|
9474
9782
|
const wantToken0 = isToken0Expected(params.sale.numeraire);
|
|
9475
9783
|
if (wantToken0 && isToken0 || !wantToken0 && !isToken0) {
|
|
9476
|
-
return
|
|
9477
|
-
createParams,
|
|
9478
|
-
simResult,
|
|
9479
|
-
token: params.token,
|
|
9480
|
-
governance: params.governance,
|
|
9481
|
-
modules: params.modules,
|
|
9482
|
-
addresses
|
|
9483
|
-
});
|
|
9784
|
+
return createParams;
|
|
9484
9785
|
}
|
|
9485
9786
|
attempt += 1n;
|
|
9486
9787
|
const incrementedAccount = viem.toHex(
|
|
@@ -9573,6 +9874,7 @@ var DopplerFactory = class {
|
|
|
9573
9874
|
vesting: params.vesting,
|
|
9574
9875
|
userAddress: params.userAddress,
|
|
9575
9876
|
addresses,
|
|
9877
|
+
governance: params.governance,
|
|
9576
9878
|
modules: params.modules,
|
|
9577
9879
|
protocolBalanceLimitExclusions: includeProtocolBalanceLimitExclusions ? [
|
|
9578
9880
|
poolInitializerAddress,
|
|
@@ -9618,7 +9920,6 @@ var DopplerFactory = class {
|
|
|
9618
9920
|
includeProtocolBalanceLimitExclusions
|
|
9619
9921
|
});
|
|
9620
9922
|
const liquidityMigratorData = this.encodeMigrationData(params.migration, {
|
|
9621
|
-
numeraire: params.sale.numeraire,
|
|
9622
9923
|
overrides: params.modules
|
|
9623
9924
|
});
|
|
9624
9925
|
const governanceFactoryData = (() => {
|
|
@@ -9640,8 +9941,14 @@ var DopplerFactory = class {
|
|
|
9640
9941
|
],
|
|
9641
9942
|
[
|
|
9642
9943
|
params.token.name,
|
|
9643
|
-
params.governance.type === "custom" ? params.governance.initialVotingDelay :
|
|
9644
|
-
|
|
9944
|
+
params.governance.type === "custom" ? params.governance.initialVotingDelay : this.governanceDuration(
|
|
9945
|
+
params.token,
|
|
9946
|
+
DEFAULT_V4_INITIAL_VOTING_DELAY
|
|
9947
|
+
),
|
|
9948
|
+
params.governance.type === "custom" ? params.governance.initialVotingPeriod : this.governanceDuration(
|
|
9949
|
+
params.token,
|
|
9950
|
+
DEFAULT_V4_INITIAL_VOTING_PERIOD
|
|
9951
|
+
),
|
|
9645
9952
|
params.governance.type === "custom" ? params.governance.initialProposalThreshold : DEFAULT_V4_INITIAL_PROPOSAL_THRESHOLD
|
|
9646
9953
|
]
|
|
9647
9954
|
);
|
|
@@ -9779,22 +10086,14 @@ var DopplerFactory = class {
|
|
|
9779
10086
|
tickSpacing: params.pool.tickSpacing,
|
|
9780
10087
|
hooks: hookAddress
|
|
9781
10088
|
});
|
|
9782
|
-
const createParamsWithTimelock = this.withSimulationGovernanceTimelockExclusion({
|
|
9783
|
-
createParams,
|
|
9784
|
-
simResult,
|
|
9785
|
-
token: params.token,
|
|
9786
|
-
governance: params.governance,
|
|
9787
|
-
modules: params.modules,
|
|
9788
|
-
addresses
|
|
9789
|
-
});
|
|
9790
10089
|
return {
|
|
9791
|
-
createParams
|
|
10090
|
+
createParams,
|
|
9792
10091
|
hookAddress,
|
|
9793
10092
|
tokenAddress,
|
|
9794
10093
|
poolId: poolId2,
|
|
9795
10094
|
gasEstimate,
|
|
9796
10095
|
execute: () => this.createDynamicAuction(params, {
|
|
9797
|
-
_createParams:
|
|
10096
|
+
_createParams: createParams
|
|
9798
10097
|
})
|
|
9799
10098
|
};
|
|
9800
10099
|
}
|
|
@@ -9941,6 +10240,7 @@ var DopplerFactory = class {
|
|
|
9941
10240
|
vesting: params.vesting,
|
|
9942
10241
|
userAddress: params.userAddress,
|
|
9943
10242
|
addresses,
|
|
10243
|
+
governance: params.governance,
|
|
9944
10244
|
modules: params.modules,
|
|
9945
10245
|
protocolBalanceLimitExclusions: includeProtocolBalanceLimitExclusions ? [
|
|
9946
10246
|
openingAuctionInitializer,
|
|
@@ -9985,7 +10285,6 @@ var DopplerFactory = class {
|
|
|
9985
10285
|
includeProtocolBalanceLimitExclusions
|
|
9986
10286
|
});
|
|
9987
10287
|
const liquidityMigratorData = this.encodeMigrationData(params.migration, {
|
|
9988
|
-
numeraire: params.sale.numeraire,
|
|
9989
10288
|
overrides: params.modules
|
|
9990
10289
|
});
|
|
9991
10290
|
const governanceFactoryData = (() => {
|
|
@@ -10007,8 +10306,14 @@ var DopplerFactory = class {
|
|
|
10007
10306
|
],
|
|
10008
10307
|
[
|
|
10009
10308
|
params.token.name,
|
|
10010
|
-
params.governance.type === "custom" ? params.governance.initialVotingDelay :
|
|
10011
|
-
|
|
10309
|
+
params.governance.type === "custom" ? params.governance.initialVotingDelay : this.governanceDuration(
|
|
10310
|
+
params.token,
|
|
10311
|
+
DEFAULT_V4_INITIAL_VOTING_DELAY
|
|
10312
|
+
),
|
|
10313
|
+
params.governance.type === "custom" ? params.governance.initialVotingPeriod : this.governanceDuration(
|
|
10314
|
+
params.token,
|
|
10315
|
+
DEFAULT_V4_INITIAL_VOTING_PERIOD
|
|
10316
|
+
),
|
|
10012
10317
|
params.governance.type === "custom" ? params.governance.initialProposalThreshold : DEFAULT_V4_INITIAL_PROPOSAL_THRESHOLD
|
|
10013
10318
|
]
|
|
10014
10319
|
);
|
|
@@ -10067,22 +10372,14 @@ var DopplerFactory = class {
|
|
|
10067
10372
|
if (!simResult || !Array.isArray(simResult) || simResult.length < 2) {
|
|
10068
10373
|
throw new Error("Failed to simulate opening auction create");
|
|
10069
10374
|
}
|
|
10070
|
-
const createParamsWithTimelock = this.withSimulationGovernanceTimelockExclusion({
|
|
10071
|
-
createParams,
|
|
10072
|
-
simResult,
|
|
10073
|
-
token: params.token,
|
|
10074
|
-
governance: params.governance,
|
|
10075
|
-
modules: params.modules,
|
|
10076
|
-
addresses
|
|
10077
|
-
});
|
|
10078
10375
|
return {
|
|
10079
|
-
createParams
|
|
10376
|
+
createParams,
|
|
10080
10377
|
openingAuctionHookAddress: simResult[1],
|
|
10081
10378
|
tokenAddress: simResult[0],
|
|
10082
10379
|
minedSalt,
|
|
10083
10380
|
gasEstimate,
|
|
10084
10381
|
execute: () => this.createOpeningAuction(params, {
|
|
10085
|
-
_createParams:
|
|
10382
|
+
_createParams: createParams,
|
|
10086
10383
|
_minedSalt: minedSalt
|
|
10087
10384
|
})
|
|
10088
10385
|
};
|
|
@@ -10974,11 +11271,6 @@ var DopplerFactory = class {
|
|
|
10974
11271
|
case "dopplerHook":
|
|
10975
11272
|
case "dopplerHookMigrator": {
|
|
10976
11273
|
const dopplerHookMigratorConfig = config;
|
|
10977
|
-
if (dopplerHookMigratorConfig.hook && dopplerHookMigratorConfig.rehype) {
|
|
10978
|
-
throw new Error(
|
|
10979
|
-
"dopplerHookMigrator migration cannot set both hook and rehype config. Use exactly one hook mode."
|
|
10980
|
-
);
|
|
10981
|
-
}
|
|
10982
11274
|
const beneficiaries = sortBeneficiaries(
|
|
10983
11275
|
dopplerHookMigratorConfig.beneficiaries
|
|
10984
11276
|
);
|
|
@@ -10987,24 +11279,6 @@ var DopplerFactory = class {
|
|
|
10987
11279
|
if (dopplerHookMigratorConfig.hook) {
|
|
10988
11280
|
dopplerHookAddress = dopplerHookMigratorConfig.hook.hookAddress;
|
|
10989
11281
|
onInitializationCalldata = dopplerHookMigratorConfig.hook.onInitializationCalldata ?? "0x";
|
|
10990
|
-
} else if (dopplerHookMigratorConfig.rehype) {
|
|
10991
|
-
const addresses = getAddresses(this.chainId);
|
|
10992
|
-
const resolvedRehypeHookAddress = dopplerHookMigratorConfig.rehype.hookAddress ?? options?.overrides?.rehypeDopplerHookMigrator ?? addresses.rehypeDopplerHookMigrator;
|
|
10993
|
-
if (!resolvedRehypeHookAddress) {
|
|
10994
|
-
throw new Error(
|
|
10995
|
-
"RehypeDopplerHookMigrator address not configured on this chain. Provide migration.rehype.hookAddress or override modules.rehypeDopplerHookMigrator."
|
|
10996
|
-
);
|
|
10997
|
-
}
|
|
10998
|
-
if (!options?.numeraire) {
|
|
10999
|
-
throw new Error(
|
|
11000
|
-
"numeraire is required to encode rehype dopplerHookMigrator migration data"
|
|
11001
|
-
);
|
|
11002
|
-
}
|
|
11003
|
-
dopplerHookAddress = resolvedRehypeHookAddress;
|
|
11004
|
-
onInitializationCalldata = encodeRehypeDopplerHookMigratorCalldata({
|
|
11005
|
-
numeraire: options.numeraire,
|
|
11006
|
-
config: dopplerHookMigratorConfig.rehype
|
|
11007
|
-
});
|
|
11008
11282
|
}
|
|
11009
11283
|
const proceedsRecipient = dopplerHookMigratorConfig.proceedsSplit?.recipient ?? ZERO_ADDRESS;
|
|
11010
11284
|
const proceedsShare = dopplerHookMigratorConfig.proceedsSplit?.share ?? 0n;
|
|
@@ -11283,7 +11557,9 @@ var DopplerFactory = class {
|
|
|
11283
11557
|
const useDecayInitializer = initializerMode.type === "decay";
|
|
11284
11558
|
const useDopplerHookInitializer = initializerMode.type === "dopplerHook";
|
|
11285
11559
|
const normalizedRehypeHookConfig = initializerMode.type === "dopplerHook" && initializerMode.hookConfig ? normalizeRehypeDopplerHookInitializerConfig(
|
|
11286
|
-
initializerMode.hookConfig
|
|
11560
|
+
initializerMode.hookConfig,
|
|
11561
|
+
void 0,
|
|
11562
|
+
params.integrator
|
|
11287
11563
|
) : void 0;
|
|
11288
11564
|
const curveComponents = [
|
|
11289
11565
|
{ type: "int24", name: "tickLower" },
|
|
@@ -11505,8 +11781,14 @@ var DopplerFactory = class {
|
|
|
11505
11781
|
],
|
|
11506
11782
|
[
|
|
11507
11783
|
params.token.name,
|
|
11508
|
-
params.governance.type === "custom" ? params.governance.initialVotingDelay :
|
|
11509
|
-
|
|
11784
|
+
params.governance.type === "custom" ? params.governance.initialVotingDelay : this.governanceDuration(
|
|
11785
|
+
params.token,
|
|
11786
|
+
DEFAULT_V4_INITIAL_VOTING_DELAY
|
|
11787
|
+
),
|
|
11788
|
+
params.governance.type === "custom" ? params.governance.initialVotingPeriod : this.governanceDuration(
|
|
11789
|
+
params.token,
|
|
11790
|
+
DEFAULT_V4_INITIAL_VOTING_PERIOD
|
|
11791
|
+
),
|
|
11510
11792
|
params.governance.type === "custom" ? params.governance.initialProposalThreshold : DEFAULT_V4_INITIAL_PROPOSAL_THRESHOLD
|
|
11511
11793
|
]
|
|
11512
11794
|
);
|
|
@@ -11552,7 +11834,6 @@ var DopplerFactory = class {
|
|
|
11552
11834
|
}
|
|
11553
11835
|
} else {
|
|
11554
11836
|
liquidityMigratorData = this.encodeMigrationData(params.migration, {
|
|
11555
|
-
numeraire: params.sale.numeraire,
|
|
11556
11837
|
overrides: params.modules
|
|
11557
11838
|
});
|
|
11558
11839
|
resolvedMigrator = this.getMigratorAddress(
|
|
@@ -11573,6 +11854,7 @@ var DopplerFactory = class {
|
|
|
11573
11854
|
vesting: params.vesting,
|
|
11574
11855
|
userAddress: params.userAddress,
|
|
11575
11856
|
addresses,
|
|
11857
|
+
governance: params.governance,
|
|
11576
11858
|
modules: params.modules,
|
|
11577
11859
|
protocolBalanceLimitExclusions: includeProtocolBalanceLimitExclusions ? [
|
|
11578
11860
|
resolvedInitializer,
|
|
@@ -11691,48 +11973,20 @@ var DopplerFactory = class {
|
|
|
11691
11973
|
const { params, simulationAccount } = args;
|
|
11692
11974
|
const addresses = getAddresses(this.chainId);
|
|
11693
11975
|
const airlock = params.modules?.airlock ?? addresses.airlock;
|
|
11694
|
-
const
|
|
11976
|
+
const createParams = args.createParams ?? this.encodeCreateMulticurveParams(params);
|
|
11695
11977
|
if (!params.devBuy) {
|
|
11696
|
-
const
|
|
11978
|
+
const simulation2 = await this.publicClient.simulateContract({
|
|
11697
11979
|
address: airlock,
|
|
11698
11980
|
abi: airlockAbi,
|
|
11699
11981
|
functionName: "create",
|
|
11700
|
-
args: [{ ...
|
|
11982
|
+
args: [{ ...createParams }],
|
|
11701
11983
|
account: simulationAccount
|
|
11702
11984
|
});
|
|
11703
|
-
const
|
|
11704
|
-
if (!
|
|
11985
|
+
const result2 = simulation2.result;
|
|
11986
|
+
if (!result2 || !Array.isArray(result2) || result2.length < 5) {
|
|
11705
11987
|
throw new Error("Failed to simulate multicurve create");
|
|
11706
11988
|
}
|
|
11707
|
-
|
|
11708
|
-
let request = initialSimulation.request;
|
|
11709
|
-
let result2 = initialResult;
|
|
11710
|
-
if (!args.createParams) {
|
|
11711
|
-
const enrichedCreateParams = this.withSimulationGovernanceTimelockExclusion({
|
|
11712
|
-
createParams: createParams2,
|
|
11713
|
-
simResult: initialResult,
|
|
11714
|
-
token: params.token,
|
|
11715
|
-
governance: params.governance,
|
|
11716
|
-
modules: params.modules,
|
|
11717
|
-
addresses
|
|
11718
|
-
});
|
|
11719
|
-
if (enrichedCreateParams.tokenFactoryData !== createParams2.tokenFactoryData) {
|
|
11720
|
-
createParams2 = enrichedCreateParams;
|
|
11721
|
-
const finalSimulation = await this.publicClient.simulateContract({
|
|
11722
|
-
address: airlock,
|
|
11723
|
-
abi: airlockAbi,
|
|
11724
|
-
functionName: "create",
|
|
11725
|
-
args: [{ ...createParams2 }],
|
|
11726
|
-
account: simulationAccount
|
|
11727
|
-
});
|
|
11728
|
-
const finalResult = finalSimulation.result;
|
|
11729
|
-
if (!finalResult || !Array.isArray(finalResult) || finalResult.length < 5) {
|
|
11730
|
-
throw new Error("Failed to simulate enriched multicurve create");
|
|
11731
|
-
}
|
|
11732
|
-
request = finalSimulation.request;
|
|
11733
|
-
result2 = finalResult;
|
|
11734
|
-
}
|
|
11735
|
-
}
|
|
11989
|
+
const request = simulation2.request;
|
|
11736
11990
|
const tokenAddress = result2[0];
|
|
11737
11991
|
const poolIdentity = await this.computeMulticurvePoolIdentity(
|
|
11738
11992
|
params,
|
|
@@ -11746,45 +12000,18 @@ var DopplerFactory = class {
|
|
|
11746
12000
|
migrationPoolAddress: result2[4],
|
|
11747
12001
|
...poolIdentity
|
|
11748
12002
|
};
|
|
11749
|
-
return { airlock, createParams
|
|
12003
|
+
return { airlock, createParams, prediction: prediction2, request };
|
|
11750
12004
|
}
|
|
11751
12005
|
this.validateMulticurveDevBuy(params.devBuy);
|
|
11752
12006
|
const bundler = this.resolveBundlerAddress(params);
|
|
11753
12007
|
await this.ensureDevBuyInitializerCompatibility({ params, bundler });
|
|
11754
|
-
|
|
11755
|
-
const initialBundleSimulation = await this.publicClient.simulateContract({
|
|
12008
|
+
const simulation = await this.publicClient.simulateContract({
|
|
11756
12009
|
address: bundler,
|
|
11757
12010
|
abi: bundlerAbi,
|
|
11758
12011
|
functionName: "simulateBundle",
|
|
11759
12012
|
args: [{ ...createParams }, params.devBuy.exactAmountIn]
|
|
11760
12013
|
});
|
|
11761
|
-
|
|
11762
|
-
if (!args.createParams) {
|
|
11763
|
-
const enrichedCreateParams = this.withSimulationGovernanceTimelockExclusion({
|
|
11764
|
-
createParams,
|
|
11765
|
-
simResult: [
|
|
11766
|
-
result.asset,
|
|
11767
|
-
result.poolKey.hooks,
|
|
11768
|
-
result.governance,
|
|
11769
|
-
result.timelock,
|
|
11770
|
-
ZERO_ADDRESS
|
|
11771
|
-
],
|
|
11772
|
-
token: params.token,
|
|
11773
|
-
governance: params.governance,
|
|
11774
|
-
modules: params.modules,
|
|
11775
|
-
addresses
|
|
11776
|
-
});
|
|
11777
|
-
if (enrichedCreateParams.tokenFactoryData !== createParams.tokenFactoryData) {
|
|
11778
|
-
createParams = enrichedCreateParams;
|
|
11779
|
-
const finalBundleSimulation = await this.publicClient.simulateContract({
|
|
11780
|
-
address: bundler,
|
|
11781
|
-
abi: bundlerAbi,
|
|
11782
|
-
functionName: "simulateBundle",
|
|
11783
|
-
args: [{ ...createParams }, params.devBuy.exactAmountIn]
|
|
11784
|
-
});
|
|
11785
|
-
result = this.parseBundleSimulation(finalBundleSimulation.result);
|
|
11786
|
-
}
|
|
11787
|
-
}
|
|
12014
|
+
const result = this.parseBundleSimulation(simulation.result);
|
|
11788
12015
|
const currency0 = result.poolKey.currency0.toLowerCase();
|
|
11789
12016
|
const currency1 = result.poolKey.currency1.toLowerCase();
|
|
11790
12017
|
const asset = result.asset.toLowerCase();
|
|
@@ -12478,14 +12705,6 @@ var DopplerFactory = class {
|
|
|
12478
12705
|
"DopplerHook migration lockDuration must fit within uint32"
|
|
12479
12706
|
);
|
|
12480
12707
|
}
|
|
12481
|
-
if (migration.hook && migration.rehype) {
|
|
12482
|
-
throw new Error(
|
|
12483
|
-
"dopplerHookMigrator migration cannot set both hook and rehype config. Use exactly one hook mode."
|
|
12484
|
-
);
|
|
12485
|
-
}
|
|
12486
|
-
if (migration.rehype) {
|
|
12487
|
-
normalizeRehypeDopplerHookMigratorConfig(migration.rehype);
|
|
12488
|
-
}
|
|
12489
12708
|
this.validateProceedsSplitConfig(
|
|
12490
12709
|
migration.proceedsSplit,
|
|
12491
12710
|
"DopplerHook migration"
|
|
@@ -13197,6 +13416,34 @@ var DopplerFactory = class {
|
|
|
13197
13416
|
};
|
|
13198
13417
|
}
|
|
13199
13418
|
};
|
|
13419
|
+
function normalizeAirlockAssetData(rawAssetData, context = "Airlock getAssetData") {
|
|
13420
|
+
const addressField = (name, index) => parseAddress(
|
|
13421
|
+
readContractResultField(rawAssetData, [name], index, context),
|
|
13422
|
+
context,
|
|
13423
|
+
name
|
|
13424
|
+
);
|
|
13425
|
+
return {
|
|
13426
|
+
numeraire: addressField("numeraire", 0),
|
|
13427
|
+
timelock: addressField("timelock", 1),
|
|
13428
|
+
governance: addressField("governance", 2),
|
|
13429
|
+
liquidityMigrator: addressField("liquidityMigrator", 3),
|
|
13430
|
+
poolInitializer: addressField("poolInitializer", 4),
|
|
13431
|
+
poolOrHook: parseAddress(
|
|
13432
|
+
readContractResultField(rawAssetData, ["poolOrHook", "pool"], 5, context),
|
|
13433
|
+
context,
|
|
13434
|
+
"poolOrHook"
|
|
13435
|
+
),
|
|
13436
|
+
migrationPool: addressField("migrationPool", 6),
|
|
13437
|
+
numTokensToSell: parseBigIntField(
|
|
13438
|
+
rawAssetData,
|
|
13439
|
+
"numTokensToSell",
|
|
13440
|
+
7,
|
|
13441
|
+
context
|
|
13442
|
+
),
|
|
13443
|
+
totalSupply: parseBigIntField(rawAssetData, "totalSupply", 8, context),
|
|
13444
|
+
integrator: addressField("integrator", 9)
|
|
13445
|
+
};
|
|
13446
|
+
}
|
|
13200
13447
|
function parseAirlockPoolOrHook(rawAssetData, context = "Airlock getAssetData") {
|
|
13201
13448
|
const rawPoolOrHook = readContractResultField(
|
|
13202
13449
|
rawAssetData,
|
|
@@ -13282,6 +13529,35 @@ function normalizeRehypeFeeSchedule(rawSchedule, context = "Rehype getFeeSchedul
|
|
|
13282
13529
|
)
|
|
13283
13530
|
};
|
|
13284
13531
|
}
|
|
13532
|
+
function normalizeRehypeIntegratorRoutingConfig(rawConfig, context = "Rehype getIntegratorRoutingConfig") {
|
|
13533
|
+
return {
|
|
13534
|
+
integrator: parseAddressField(rawConfig, "integrator", 0, context),
|
|
13535
|
+
assetFeesToNumeraireRatio: parseNumberField(
|
|
13536
|
+
rawConfig,
|
|
13537
|
+
"assetFeesToNumeraireRatio",
|
|
13538
|
+
1,
|
|
13539
|
+
context
|
|
13540
|
+
),
|
|
13541
|
+
numeraireFeesToAssetRatio: parseNumberField(
|
|
13542
|
+
rawConfig,
|
|
13543
|
+
"numeraireFeesToAssetRatio",
|
|
13544
|
+
2,
|
|
13545
|
+
context
|
|
13546
|
+
),
|
|
13547
|
+
automaticPayout: parseBooleanField(
|
|
13548
|
+
rawConfig,
|
|
13549
|
+
"automaticPayout",
|
|
13550
|
+
3,
|
|
13551
|
+
context
|
|
13552
|
+
)
|
|
13553
|
+
};
|
|
13554
|
+
}
|
|
13555
|
+
function normalizeRehypeIntegratorFees(rawFees, context) {
|
|
13556
|
+
return {
|
|
13557
|
+
fees0: parseBigIntField(rawFees, "fees0", 0, context),
|
|
13558
|
+
fees1: parseBigIntField(rawFees, "fees1", 1, context)
|
|
13559
|
+
};
|
|
13560
|
+
}
|
|
13285
13561
|
function normalizeRehypeHookFees(rawFees, context = "Rehype getHookFees") {
|
|
13286
13562
|
return {
|
|
13287
13563
|
fees0: parseBigIntField(rawFees, "fees0", 0, context),
|
|
@@ -13310,14 +13586,6 @@ function normalizeRehypePoolInfo(rawInfo, context = "Rehype getPoolInfo") {
|
|
|
13310
13586
|
buybackDst: parseAddressField(rawInfo, "buybackDst", 2, context)
|
|
13311
13587
|
};
|
|
13312
13588
|
}
|
|
13313
|
-
function normalizeRehypePosition(rawPosition, context = "Rehype getPosition") {
|
|
13314
|
-
return {
|
|
13315
|
-
tickLower: parseNumberField(rawPosition, "tickLower", 0, context),
|
|
13316
|
-
tickUpper: parseNumberField(rawPosition, "tickUpper", 1, context),
|
|
13317
|
-
liquidity: parseBigIntField(rawPosition, "liquidity", 2, context),
|
|
13318
|
-
salt: parseHexField(rawPosition, "salt", 3, context)
|
|
13319
|
-
};
|
|
13320
|
-
}
|
|
13321
13589
|
function parseAddressField(rawResult, fieldName, tupleIndex, context) {
|
|
13322
13590
|
const rawField = readContractResultField(
|
|
13323
13591
|
rawResult,
|
|
@@ -13362,17 +13630,17 @@ function parseNumberField(rawResult, fieldName, tupleIndex, context) {
|
|
|
13362
13630
|
}
|
|
13363
13631
|
return numericField;
|
|
13364
13632
|
}
|
|
13365
|
-
function
|
|
13633
|
+
function parseBooleanField(rawResult, fieldName, tupleIndex, context) {
|
|
13366
13634
|
const rawField = readContractResultField(
|
|
13367
13635
|
rawResult,
|
|
13368
13636
|
[fieldName],
|
|
13369
13637
|
tupleIndex,
|
|
13370
13638
|
context
|
|
13371
13639
|
);
|
|
13372
|
-
if (typeof rawField
|
|
13373
|
-
|
|
13640
|
+
if (typeof rawField !== "boolean") {
|
|
13641
|
+
throw new Error(`${context}: ${fieldName} must be a boolean`);
|
|
13374
13642
|
}
|
|
13375
|
-
|
|
13643
|
+
return rawField;
|
|
13376
13644
|
}
|
|
13377
13645
|
function parseAddress(rawField, context, fieldName) {
|
|
13378
13646
|
if (typeof rawField === "string" && viem.isAddress(rawField, { strict: false })) {
|
|
@@ -13778,9 +14046,25 @@ var ABSENT_POOL_ERROR_ABI = [
|
|
|
13778
14046
|
async function findMulticurveInitializerForPool({
|
|
13779
14047
|
client,
|
|
13780
14048
|
tokenAddress,
|
|
13781
|
-
addresses
|
|
14049
|
+
addresses,
|
|
14050
|
+
recordedInitializer
|
|
13782
14051
|
}) {
|
|
13783
|
-
const
|
|
14052
|
+
const configuredInitializers = getMulticurveInitializerCandidates(addresses);
|
|
14053
|
+
const initializersToTry = recordedInitializer === void 0 ? configuredInitializers : [
|
|
14054
|
+
{
|
|
14055
|
+
address: recordedInitializer,
|
|
14056
|
+
kind: "dopplerHook",
|
|
14057
|
+
probeAlternateLayout: true
|
|
14058
|
+
},
|
|
14059
|
+
{
|
|
14060
|
+
address: recordedInitializer,
|
|
14061
|
+
kind: "standard",
|
|
14062
|
+
probeAlternateLayout: true
|
|
14063
|
+
},
|
|
14064
|
+
...configuredInitializers.filter(
|
|
14065
|
+
({ address }) => address.toLowerCase() !== recordedInitializer.toLowerCase()
|
|
14066
|
+
)
|
|
14067
|
+
];
|
|
13784
14068
|
if (initializersToTry.length === 0) {
|
|
13785
14069
|
throw new Error(
|
|
13786
14070
|
"No V4 multicurve initializer addresses configured for this chain"
|
|
@@ -13800,23 +14084,33 @@ async function findMulticurveInitializerForPool({
|
|
|
13800
14084
|
args: [tokenAddress]
|
|
13801
14085
|
});
|
|
13802
14086
|
} catch (error) {
|
|
13803
|
-
if (!isAbsentPoolReadFailure(error)) {
|
|
14087
|
+
if (!initializer.probeAlternateLayout && !isAbsentPoolReadFailure(error)) {
|
|
13804
14088
|
throw error;
|
|
13805
14089
|
}
|
|
13806
14090
|
const reason = error instanceof Error ? error.message : String(error);
|
|
13807
14091
|
failedInitializers.push(
|
|
13808
|
-
new Error(`${initializerAddress} getState failed: ${reason}`)
|
|
14092
|
+
new Error(`${initializerAddress} ${kind} getState failed: ${reason}`)
|
|
13809
14093
|
);
|
|
13810
14094
|
continue;
|
|
13811
14095
|
}
|
|
13812
|
-
|
|
13813
|
-
|
|
13814
|
-
|
|
13815
|
-
|
|
13816
|
-
|
|
13817
|
-
|
|
13818
|
-
|
|
13819
|
-
|
|
14096
|
+
try {
|
|
14097
|
+
const discoveryResult = parseMulticurveInitializerDiscoveryResult({
|
|
14098
|
+
tokenAddress,
|
|
14099
|
+
initializerAddress,
|
|
14100
|
+
kind,
|
|
14101
|
+
stateData
|
|
14102
|
+
});
|
|
14103
|
+
if (isInitializedMulticurvePoolKey(discoveryResult.state.poolKey)) {
|
|
14104
|
+
return discoveryResult;
|
|
14105
|
+
}
|
|
14106
|
+
} catch (error) {
|
|
14107
|
+
if (!initializer.probeAlternateLayout) {
|
|
14108
|
+
throw error;
|
|
14109
|
+
}
|
|
14110
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
14111
|
+
failedInitializers.push(
|
|
14112
|
+
new Error(`${initializerAddress} ${kind} decode failed: ${reason}`)
|
|
14113
|
+
);
|
|
13820
14114
|
}
|
|
13821
14115
|
}
|
|
13822
14116
|
const notFoundError = new Error(
|
|
@@ -14323,13 +14617,15 @@ var MulticurvePool = class {
|
|
|
14323
14617
|
client;
|
|
14324
14618
|
walletClient;
|
|
14325
14619
|
tokenAddress;
|
|
14620
|
+
recordedInitializer;
|
|
14326
14621
|
get rpc() {
|
|
14327
14622
|
return this.client;
|
|
14328
14623
|
}
|
|
14329
|
-
constructor(client, walletClient, tokenAddress) {
|
|
14624
|
+
constructor(client, walletClient, tokenAddress, recordedInitializer) {
|
|
14330
14625
|
this.client = client;
|
|
14331
14626
|
this.walletClient = walletClient;
|
|
14332
14627
|
this.tokenAddress = tokenAddress;
|
|
14628
|
+
this.recordedInitializer = recordedInitializer;
|
|
14333
14629
|
}
|
|
14334
14630
|
/**
|
|
14335
14631
|
* Get the token address for this pool
|
|
@@ -14362,7 +14658,8 @@ var MulticurvePool = class {
|
|
|
14362
14658
|
return findMulticurveInitializerForPool({
|
|
14363
14659
|
client: this.rpc,
|
|
14364
14660
|
tokenAddress: this.tokenAddress,
|
|
14365
|
-
addresses
|
|
14661
|
+
addresses,
|
|
14662
|
+
recordedInitializer: this.recordedInitializer
|
|
14366
14663
|
});
|
|
14367
14664
|
}
|
|
14368
14665
|
/**
|
|
@@ -14615,12 +14912,11 @@ function getTokenBatchSize(tokenBatchSize) {
|
|
|
14615
14912
|
}
|
|
14616
14913
|
return tokenBatchSize;
|
|
14617
14914
|
}
|
|
14618
|
-
|
|
14619
|
-
// src/evm/entities/auction/RehypeDopplerHookInitializer.ts
|
|
14620
14915
|
var rehypeFeesManagerAbi = [
|
|
14621
14916
|
...feesManagerAbi,
|
|
14622
14917
|
{ type: "error", name: "FeeBeneficiariesNotConfigured", inputs: [] }
|
|
14623
14918
|
];
|
|
14919
|
+
var INTEGRATOR_CONVERSION_RATIO_DENOMINATOR = 1e9;
|
|
14624
14920
|
var RehypeDopplerHookInitializer = class {
|
|
14625
14921
|
client;
|
|
14626
14922
|
walletClient;
|
|
@@ -14782,134 +15078,138 @@ var RehypeDopplerHookInitializer = class {
|
|
|
14782
15078
|
});
|
|
14783
15079
|
return normalizeRehypeFeeSchedule(result);
|
|
14784
15080
|
}
|
|
14785
|
-
async
|
|
15081
|
+
async getIntegratorFeeShare(poolId2) {
|
|
14786
15082
|
const result = await this.rpc.readContract({
|
|
14787
15083
|
address: this.hookAddress,
|
|
14788
15084
|
abi: rehypeDopplerHookInitializerAbi,
|
|
14789
|
-
functionName: "
|
|
15085
|
+
functionName: "getIntegratorFeeShare",
|
|
14790
15086
|
args: [poolId2]
|
|
14791
15087
|
});
|
|
14792
|
-
return
|
|
15088
|
+
return Number(result);
|
|
14793
15089
|
}
|
|
14794
|
-
async
|
|
15090
|
+
async getIntegratorRoutingConfig(poolId2) {
|
|
14795
15091
|
const result = await this.rpc.readContract({
|
|
14796
15092
|
address: this.hookAddress,
|
|
14797
15093
|
abi: rehypeDopplerHookInitializerAbi,
|
|
14798
|
-
functionName: "
|
|
15094
|
+
functionName: "getIntegratorRoutingConfig",
|
|
14799
15095
|
args: [poolId2]
|
|
14800
15096
|
});
|
|
14801
|
-
return
|
|
14802
|
-
}
|
|
14803
|
-
requireWalletClient(message) {
|
|
14804
|
-
if (!this.walletClient) {
|
|
14805
|
-
throw new Error(message);
|
|
14806
|
-
}
|
|
14807
|
-
return this.walletClient;
|
|
14808
|
-
}
|
|
14809
|
-
};
|
|
14810
|
-
|
|
14811
|
-
// src/evm/entities/auction/RehypeDopplerHook.ts
|
|
14812
|
-
var RehypeDopplerHook = RehypeDopplerHookInitializer;
|
|
14813
|
-
|
|
14814
|
-
// src/evm/entities/auction/RehypeDopplerHookMigrator.ts
|
|
14815
|
-
var RehypeDopplerHookMigrator = class {
|
|
14816
|
-
client;
|
|
14817
|
-
walletClient;
|
|
14818
|
-
hookAddress;
|
|
14819
|
-
get rpc() {
|
|
14820
|
-
return this.client;
|
|
15097
|
+
return normalizeRehypeIntegratorRoutingConfig(result);
|
|
14821
15098
|
}
|
|
14822
|
-
|
|
14823
|
-
|
|
14824
|
-
|
|
14825
|
-
|
|
14826
|
-
|
|
14827
|
-
|
|
14828
|
-
|
|
15099
|
+
async getPendingIntegratorFees(poolId2) {
|
|
15100
|
+
const result = await this.rpc.readContract({
|
|
15101
|
+
address: this.hookAddress,
|
|
15102
|
+
abi: rehypeDopplerHookInitializerAbi,
|
|
15103
|
+
functionName: "getPendingIntegratorFees",
|
|
15104
|
+
args: [poolId2]
|
|
15105
|
+
});
|
|
15106
|
+
return normalizeRehypeIntegratorFees(
|
|
15107
|
+
result,
|
|
15108
|
+
"Rehype getPendingIntegratorFees"
|
|
15109
|
+
);
|
|
14829
15110
|
}
|
|
14830
|
-
async
|
|
14831
|
-
|
|
14832
|
-
throw new Error("Wallet client required to collect rehype fees");
|
|
14833
|
-
}
|
|
14834
|
-
const { request, result } = await this.rpc.simulateContract({
|
|
15111
|
+
async getClaimableIntegratorFees(poolId2) {
|
|
15112
|
+
const result = await this.rpc.readContract({
|
|
14835
15113
|
address: this.hookAddress,
|
|
14836
|
-
abi:
|
|
14837
|
-
functionName: "
|
|
14838
|
-
args: [
|
|
14839
|
-
account: this.walletClient.account
|
|
15114
|
+
abi: rehypeDopplerHookInitializerAbi,
|
|
15115
|
+
functionName: "getClaimableIntegratorFees",
|
|
15116
|
+
args: [poolId2]
|
|
14840
15117
|
});
|
|
14841
|
-
|
|
14842
|
-
|
|
14843
|
-
|
|
14844
|
-
|
|
14845
|
-
amount0: decoded.amount0,
|
|
14846
|
-
amount1: decoded.amount1,
|
|
14847
|
-
transactionHash: hash
|
|
14848
|
-
};
|
|
15118
|
+
return normalizeRehypeIntegratorFees(
|
|
15119
|
+
result,
|
|
15120
|
+
"Rehype getClaimableIntegratorFees"
|
|
15121
|
+
);
|
|
14849
15122
|
}
|
|
14850
|
-
async
|
|
14851
|
-
|
|
14852
|
-
|
|
14853
|
-
|
|
14854
|
-
|
|
15123
|
+
async setIntegratorConversionRatios(poolId2, assetFeesToNumeraireRatio, numeraireFeesToAssetRatio) {
|
|
15124
|
+
assertIntegratorConversionRatio2(
|
|
15125
|
+
assetFeesToNumeraireRatio,
|
|
15126
|
+
"assetFeesToNumeraireRatio"
|
|
15127
|
+
);
|
|
15128
|
+
assertIntegratorConversionRatio2(
|
|
15129
|
+
numeraireFeesToAssetRatio,
|
|
15130
|
+
"numeraireFeesToAssetRatio"
|
|
15131
|
+
);
|
|
15132
|
+
const walletClient = this.requireWalletClient(
|
|
15133
|
+
"Wallet client required to set rehype integrator conversion ratios"
|
|
15134
|
+
);
|
|
15135
|
+
const { request } = await this.rpc.simulateContract({
|
|
14855
15136
|
address: this.hookAddress,
|
|
14856
|
-
abi:
|
|
14857
|
-
functionName: "
|
|
14858
|
-
args: [
|
|
14859
|
-
account:
|
|
15137
|
+
abi: rehypeDopplerHookInitializerAbi,
|
|
15138
|
+
functionName: "setIntegratorConversionRatios",
|
|
15139
|
+
args: [poolId2, assetFeesToNumeraireRatio, numeraireFeesToAssetRatio],
|
|
15140
|
+
account: walletClient.account
|
|
14860
15141
|
});
|
|
14861
|
-
const hash = await
|
|
14862
|
-
await this.
|
|
14863
|
-
|
|
14864
|
-
return { fees0, fees1, transactionHash: hash };
|
|
15142
|
+
const hash = await walletClient.writeContract(request);
|
|
15143
|
+
await this.waitForSuccessfulReceipt(hash, "setIntegratorConversionRatios");
|
|
15144
|
+
return { transactionHash: hash };
|
|
14865
15145
|
}
|
|
14866
|
-
async
|
|
14867
|
-
|
|
14868
|
-
|
|
14869
|
-
|
|
15146
|
+
async setIntegratorAutomaticPayout(poolId2, automaticPayout) {
|
|
15147
|
+
const walletClient = this.requireWalletClient(
|
|
15148
|
+
"Wallet client required to set rehype integrator automatic payout"
|
|
15149
|
+
);
|
|
14870
15150
|
const { request } = await this.rpc.simulateContract({
|
|
14871
15151
|
address: this.hookAddress,
|
|
14872
|
-
abi:
|
|
14873
|
-
functionName: "
|
|
14874
|
-
args: [
|
|
14875
|
-
|
|
14876
|
-
feeDistributionInfo.assetFeesToAssetBuybackWad,
|
|
14877
|
-
feeDistributionInfo.assetFeesToNumeraireBuybackWad,
|
|
14878
|
-
feeDistributionInfo.assetFeesToBeneficiaryWad,
|
|
14879
|
-
feeDistributionInfo.assetFeesToLpWad,
|
|
14880
|
-
feeDistributionInfo.numeraireFeesToAssetBuybackWad,
|
|
14881
|
-
feeDistributionInfo.numeraireFeesToNumeraireBuybackWad,
|
|
14882
|
-
feeDistributionInfo.numeraireFeesToBeneficiaryWad,
|
|
14883
|
-
feeDistributionInfo.numeraireFeesToLpWad
|
|
14884
|
-
],
|
|
14885
|
-
account: this.walletClient.account
|
|
15152
|
+
abi: rehypeDopplerHookInitializerAbi,
|
|
15153
|
+
functionName: "setIntegratorAutomaticPayout",
|
|
15154
|
+
args: [poolId2, automaticPayout],
|
|
15155
|
+
account: walletClient.account
|
|
14886
15156
|
});
|
|
14887
|
-
const hash = await
|
|
14888
|
-
await this.
|
|
14889
|
-
return hash;
|
|
15157
|
+
const hash = await walletClient.writeContract(request);
|
|
15158
|
+
await this.waitForSuccessfulReceipt(hash, "setIntegratorAutomaticPayout");
|
|
15159
|
+
return { transactionHash: hash };
|
|
14890
15160
|
}
|
|
14891
|
-
async
|
|
14892
|
-
|
|
15161
|
+
async setIntegrator(poolId2, newIntegrator) {
|
|
15162
|
+
assertNonZeroAddress2(newIntegrator, "Rehype integrator");
|
|
15163
|
+
const walletClient = this.requireWalletClient(
|
|
15164
|
+
"Wallet client required to rotate rehype integrator"
|
|
15165
|
+
);
|
|
15166
|
+
const { request } = await this.rpc.simulateContract({
|
|
14893
15167
|
address: this.hookAddress,
|
|
14894
|
-
abi:
|
|
14895
|
-
functionName: "
|
|
14896
|
-
args: [poolId2]
|
|
15168
|
+
abi: rehypeDopplerHookInitializerAbi,
|
|
15169
|
+
functionName: "setIntegrator",
|
|
15170
|
+
args: [poolId2, newIntegrator],
|
|
15171
|
+
account: walletClient.account
|
|
14897
15172
|
});
|
|
14898
|
-
|
|
15173
|
+
const hash = await walletClient.writeContract(request);
|
|
15174
|
+
await this.waitForSuccessfulReceipt(hash, "setIntegrator");
|
|
15175
|
+
return { transactionHash: hash };
|
|
14899
15176
|
}
|
|
14900
|
-
async
|
|
14901
|
-
|
|
15177
|
+
async claimIntegratorFees(asset, to) {
|
|
15178
|
+
assertNonZeroAddress2(to, "Rehype integrator claim destination");
|
|
15179
|
+
const walletClient = this.requireWalletClient(
|
|
15180
|
+
"Wallet client required to claim rehype integrator fees"
|
|
15181
|
+
);
|
|
15182
|
+
const { request } = await this.rpc.simulateContract({
|
|
14902
15183
|
address: this.hookAddress,
|
|
14903
|
-
abi:
|
|
14904
|
-
functionName: "
|
|
14905
|
-
args: [
|
|
15184
|
+
abi: rehypeDopplerHookInitializerAbi,
|
|
15185
|
+
functionName: "claimIntegratorFees",
|
|
15186
|
+
args: [asset, to],
|
|
15187
|
+
account: walletClient.account
|
|
14906
15188
|
});
|
|
14907
|
-
|
|
15189
|
+
const hash = await walletClient.writeContract(request);
|
|
15190
|
+
const receipt = await this.waitForSuccessfulReceipt(
|
|
15191
|
+
hash,
|
|
15192
|
+
"claimIntegratorFees"
|
|
15193
|
+
);
|
|
15194
|
+
const events = viem.parseEventLogs({
|
|
15195
|
+
abi: rehypeDopplerHookInitializerAbi,
|
|
15196
|
+
eventName: "IntegratorFeesClaimed",
|
|
15197
|
+
logs: receipt.logs.filter(
|
|
15198
|
+
({ address }) => viem.isAddressEqual(address, this.hookAddress)
|
|
15199
|
+
)
|
|
15200
|
+
});
|
|
15201
|
+
if (events.length !== 1) {
|
|
15202
|
+
throw new Error(
|
|
15203
|
+
`Rehype claimIntegratorFees transaction ${hash} emitted ${events.length} IntegratorFeesClaimed events; expected exactly one`
|
|
15204
|
+
);
|
|
15205
|
+
}
|
|
15206
|
+
const { fees0, fees1 } = events[0].args;
|
|
15207
|
+
return { fees0, fees1, transactionHash: hash };
|
|
14908
15208
|
}
|
|
14909
15209
|
async getHookFees(poolId2) {
|
|
14910
15210
|
const result = await this.rpc.readContract({
|
|
14911
15211
|
address: this.hookAddress,
|
|
14912
|
-
abi:
|
|
15212
|
+
abi: rehypeDopplerHookInitializerAbi,
|
|
14913
15213
|
functionName: "getHookFees",
|
|
14914
15214
|
args: [poolId2]
|
|
14915
15215
|
});
|
|
@@ -14918,22 +15218,46 @@ var RehypeDopplerHookMigrator = class {
|
|
|
14918
15218
|
async getPoolInfo(poolId2) {
|
|
14919
15219
|
const result = await this.rpc.readContract({
|
|
14920
15220
|
address: this.hookAddress,
|
|
14921
|
-
abi:
|
|
15221
|
+
abi: rehypeDopplerHookInitializerAbi,
|
|
14922
15222
|
functionName: "getPoolInfo",
|
|
14923
15223
|
args: [poolId2]
|
|
14924
15224
|
});
|
|
14925
15225
|
return normalizeRehypePoolInfo(result);
|
|
14926
15226
|
}
|
|
14927
|
-
async
|
|
14928
|
-
const
|
|
14929
|
-
|
|
14930
|
-
|
|
14931
|
-
functionName: "getPosition",
|
|
14932
|
-
args: [poolId2]
|
|
15227
|
+
async waitForSuccessfulReceipt(hash, operation) {
|
|
15228
|
+
const receipt = await this.rpc.waitForTransactionReceipt({
|
|
15229
|
+
hash,
|
|
15230
|
+
confirmations: 1
|
|
14933
15231
|
});
|
|
14934
|
-
|
|
15232
|
+
if (receipt.status !== "success") {
|
|
15233
|
+
throw new Error(
|
|
15234
|
+
`Rehype ${operation} transaction ${hash} failed with receipt status ${receipt.status}`
|
|
15235
|
+
);
|
|
15236
|
+
}
|
|
15237
|
+
return receipt;
|
|
15238
|
+
}
|
|
15239
|
+
requireWalletClient(message) {
|
|
15240
|
+
if (!this.walletClient) {
|
|
15241
|
+
throw new Error(message);
|
|
15242
|
+
}
|
|
15243
|
+
return this.walletClient;
|
|
14935
15244
|
}
|
|
14936
15245
|
};
|
|
15246
|
+
function assertIntegratorConversionRatio2(value, label) {
|
|
15247
|
+
if (!Number.isInteger(value) || value < 0 || value > INTEGRATOR_CONVERSION_RATIO_DENOMINATOR) {
|
|
15248
|
+
throw new Error(
|
|
15249
|
+
`Rehype ${label} must be an integer between 0 and ${INTEGRATOR_CONVERSION_RATIO_DENOMINATOR}`
|
|
15250
|
+
);
|
|
15251
|
+
}
|
|
15252
|
+
}
|
|
15253
|
+
function assertNonZeroAddress2(address, label) {
|
|
15254
|
+
if (!viem.isAddress(address, { strict: false }) || address.toLowerCase() === ZERO_ADDRESS) {
|
|
15255
|
+
throw new Error(`${label} must be a non-zero address`);
|
|
15256
|
+
}
|
|
15257
|
+
}
|
|
15258
|
+
|
|
15259
|
+
// src/evm/entities/auction/RehypeDopplerHook.ts
|
|
15260
|
+
var RehypeDopplerHook = RehypeDopplerHookInitializer;
|
|
14937
15261
|
var OpeningAuctionPositionManager = class _OpeningAuctionPositionManager {
|
|
14938
15262
|
publicClient;
|
|
14939
15263
|
walletClient;
|
|
@@ -18252,6 +18576,18 @@ var DopplerERC20V1 = class _DopplerERC20V1 {
|
|
|
18252
18576
|
args: [account, timepoint]
|
|
18253
18577
|
});
|
|
18254
18578
|
}
|
|
18579
|
+
/**
|
|
18580
|
+
* Get historical voting-unit supply at a token clock timepoint.
|
|
18581
|
+
* Read CLOCK_MODE to determine whether a deployment uses timestamps or blocks.
|
|
18582
|
+
*/
|
|
18583
|
+
async getPastTotalSupply(timepoint) {
|
|
18584
|
+
return await this.rpc.readContract({
|
|
18585
|
+
address: this.address,
|
|
18586
|
+
abi: dopplerERC20V1Abi,
|
|
18587
|
+
functionName: "getPastTotalSupply",
|
|
18588
|
+
args: [timepoint]
|
|
18589
|
+
});
|
|
18590
|
+
}
|
|
18255
18591
|
async getVotesTotalSupply() {
|
|
18256
18592
|
return await this.rpc.readContract({
|
|
18257
18593
|
address: this.address,
|
|
@@ -18345,6 +18681,15 @@ var DopplerERC20V1 = class _DopplerERC20V1 {
|
|
|
18345
18681
|
functionName: "vestedTotalAmount"
|
|
18346
18682
|
});
|
|
18347
18683
|
}
|
|
18684
|
+
/** Get a beneficiary's vesting allocation that has not been released. */
|
|
18685
|
+
async getTotalUnreleasedOf(beneficiary) {
|
|
18686
|
+
return await this.rpc.readContract({
|
|
18687
|
+
address: this.address,
|
|
18688
|
+
abi: dopplerERC20V1Abi,
|
|
18689
|
+
functionName: "totalUnreleasedOf",
|
|
18690
|
+
args: [beneficiary]
|
|
18691
|
+
});
|
|
18692
|
+
}
|
|
18348
18693
|
async getVestingScheduleCount() {
|
|
18349
18694
|
return await this.rpc.readContract({
|
|
18350
18695
|
address: this.address,
|
|
@@ -18795,61 +19140,6 @@ var Eth = class {
|
|
|
18795
19140
|
});
|
|
18796
19141
|
}
|
|
18797
19142
|
};
|
|
18798
|
-
var TopUpDistributor = class {
|
|
18799
|
-
publicClient;
|
|
18800
|
-
walletClient;
|
|
18801
|
-
topUpDistributorAddress;
|
|
18802
|
-
get rpc() {
|
|
18803
|
-
return this.publicClient;
|
|
18804
|
-
}
|
|
18805
|
-
constructor(publicClient, walletClient, topUpDistributorAddress) {
|
|
18806
|
-
this.publicClient = publicClient;
|
|
18807
|
-
this.walletClient = walletClient;
|
|
18808
|
-
this.topUpDistributorAddress = topUpDistributorAddress;
|
|
18809
|
-
}
|
|
18810
|
-
getAddress() {
|
|
18811
|
-
return this.topUpDistributorAddress;
|
|
18812
|
-
}
|
|
18813
|
-
buildTopUpTransaction(params) {
|
|
18814
|
-
const tx = {
|
|
18815
|
-
to: this.topUpDistributorAddress,
|
|
18816
|
-
data: viem.encodeFunctionData({
|
|
18817
|
-
abi: topUpDistributorAbi,
|
|
18818
|
-
functionName: "topUp",
|
|
18819
|
-
args: [params.asset, params.numeraire, params.amount]
|
|
18820
|
-
})
|
|
18821
|
-
};
|
|
18822
|
-
if (params.numeraire === ZERO_ADDRESS) {
|
|
18823
|
-
return { ...tx, value: params.amount };
|
|
18824
|
-
}
|
|
18825
|
-
return tx;
|
|
18826
|
-
}
|
|
18827
|
-
async simulateTopUp(params, account) {
|
|
18828
|
-
const { request } = await this.rpc.simulateContract({
|
|
18829
|
-
address: this.topUpDistributorAddress,
|
|
18830
|
-
abi: topUpDistributorAbi,
|
|
18831
|
-
functionName: "topUp",
|
|
18832
|
-
args: [params.asset, params.numeraire, params.amount],
|
|
18833
|
-
account: account ?? this.walletClient?.account,
|
|
18834
|
-
...params.numeraire === ZERO_ADDRESS ? { value: params.amount } : {}
|
|
18835
|
-
});
|
|
18836
|
-
return {
|
|
18837
|
-
request
|
|
18838
|
-
};
|
|
18839
|
-
}
|
|
18840
|
-
async topUp(params, options) {
|
|
18841
|
-
if (!this.walletClient) {
|
|
18842
|
-
throw new Error("Wallet client required for write operations");
|
|
18843
|
-
}
|
|
18844
|
-
const { request } = await this.simulateTopUp(
|
|
18845
|
-
params,
|
|
18846
|
-
this.walletClient.account
|
|
18847
|
-
);
|
|
18848
|
-
return await this.walletClient.writeContract(
|
|
18849
|
-
options?.gas ? { ...request, gas: options.gas } : request
|
|
18850
|
-
);
|
|
18851
|
-
}
|
|
18852
|
-
};
|
|
18853
19143
|
|
|
18854
19144
|
// src/evm/entities/Bundler.ts
|
|
18855
19145
|
var Bundler = class {
|
|
@@ -18956,6 +19246,234 @@ var Bundler = class {
|
|
|
18956
19246
|
);
|
|
18957
19247
|
}
|
|
18958
19248
|
};
|
|
19249
|
+
var DopplerHookMigrator = class {
|
|
19250
|
+
client;
|
|
19251
|
+
walletClient;
|
|
19252
|
+
address;
|
|
19253
|
+
get rpc() {
|
|
19254
|
+
return this.client;
|
|
19255
|
+
}
|
|
19256
|
+
constructor(client, walletClient, address) {
|
|
19257
|
+
this.client = client;
|
|
19258
|
+
this.walletClient = walletClient;
|
|
19259
|
+
this.address = address;
|
|
19260
|
+
}
|
|
19261
|
+
getAddress() {
|
|
19262
|
+
return this.address;
|
|
19263
|
+
}
|
|
19264
|
+
async getMigrationRefund(poolId2) {
|
|
19265
|
+
const result = await this.rpc.readContract({
|
|
19266
|
+
address: this.address,
|
|
19267
|
+
abi: dopplerHookMigratorAbi,
|
|
19268
|
+
functionName: "getMigrationRefund",
|
|
19269
|
+
args: [poolId2]
|
|
19270
|
+
});
|
|
19271
|
+
const [recipient, currency0, currency1, amount0, amount1] = result;
|
|
19272
|
+
return {
|
|
19273
|
+
recipient: viem.getAddress(recipient),
|
|
19274
|
+
currency0: viem.getAddress(currency0),
|
|
19275
|
+
currency1: viem.getAddress(currency1),
|
|
19276
|
+
amount0,
|
|
19277
|
+
amount1,
|
|
19278
|
+
exists: amount0 !== 0n || amount1 !== 0n
|
|
19279
|
+
};
|
|
19280
|
+
}
|
|
19281
|
+
async getTotalClaimableMigrationRefund(currency) {
|
|
19282
|
+
return await this.rpc.readContract({
|
|
19283
|
+
address: this.address,
|
|
19284
|
+
abi: dopplerHookMigratorAbi,
|
|
19285
|
+
functionName: "getTotalClaimableMigrationRefund",
|
|
19286
|
+
args: [currency]
|
|
19287
|
+
});
|
|
19288
|
+
}
|
|
19289
|
+
async getLockerAddress() {
|
|
19290
|
+
return viem.getAddress(
|
|
19291
|
+
await this.rpc.readContract({
|
|
19292
|
+
address: this.address,
|
|
19293
|
+
abi: dopplerHookMigratorAbi,
|
|
19294
|
+
functionName: "locker"
|
|
19295
|
+
})
|
|
19296
|
+
);
|
|
19297
|
+
}
|
|
19298
|
+
async getMigrationPoolId(asset) {
|
|
19299
|
+
const pair = await this.rpc.readContract({
|
|
19300
|
+
address: this.address,
|
|
19301
|
+
abi: dopplerHookMigratorAbi,
|
|
19302
|
+
functionName: "getPair",
|
|
19303
|
+
args: [asset]
|
|
19304
|
+
});
|
|
19305
|
+
const [token0, token1] = pair;
|
|
19306
|
+
if (token0 === viem.zeroAddress && token1 === viem.zeroAddress) {
|
|
19307
|
+
throw new Error(`No DopplerHookMigrator pool found for asset ${asset}`);
|
|
19308
|
+
}
|
|
19309
|
+
const assetData = await this.rpc.readContract({
|
|
19310
|
+
address: this.address,
|
|
19311
|
+
abi: dopplerHookMigratorAbi,
|
|
19312
|
+
functionName: "getAssetData",
|
|
19313
|
+
args: [token0, token1]
|
|
19314
|
+
});
|
|
19315
|
+
return computePoolId(normalizePoolKey(assetData[1]));
|
|
19316
|
+
}
|
|
19317
|
+
async claimMigrationRefund(poolId2, to) {
|
|
19318
|
+
if (to === viem.zeroAddress) {
|
|
19319
|
+
throw new Error(
|
|
19320
|
+
"Migration refund destination must not be the zero address"
|
|
19321
|
+
);
|
|
19322
|
+
}
|
|
19323
|
+
const walletClient = this.walletClient;
|
|
19324
|
+
if (!walletClient) {
|
|
19325
|
+
throw new Error("Wallet client required to claim a migration refund");
|
|
19326
|
+
}
|
|
19327
|
+
const { request } = await this.rpc.simulateContract({
|
|
19328
|
+
address: this.address,
|
|
19329
|
+
abi: dopplerHookMigratorAbi,
|
|
19330
|
+
functionName: "claimMigrationRefund",
|
|
19331
|
+
args: [poolId2, to],
|
|
19332
|
+
account: walletClient.account
|
|
19333
|
+
});
|
|
19334
|
+
const hash = await walletClient.writeContract(request);
|
|
19335
|
+
const receipt = await this.rpc.waitForTransactionReceipt({
|
|
19336
|
+
hash,
|
|
19337
|
+
confirmations: 1
|
|
19338
|
+
});
|
|
19339
|
+
if (receipt.status !== "success") {
|
|
19340
|
+
throw new Error(
|
|
19341
|
+
`DopplerHookMigrator claimMigrationRefund transaction ${hash} failed with receipt status ${receipt.status}`
|
|
19342
|
+
);
|
|
19343
|
+
}
|
|
19344
|
+
const events = viem.parseEventLogs({
|
|
19345
|
+
abi: dopplerHookMigratorAbi,
|
|
19346
|
+
eventName: "MigrationRefundClaimed",
|
|
19347
|
+
logs: receipt.logs.filter(
|
|
19348
|
+
({ address }) => viem.isAddressEqual(address, this.address)
|
|
19349
|
+
)
|
|
19350
|
+
}).filter(
|
|
19351
|
+
({ args }) => args.poolId.toLowerCase() === poolId2.toLowerCase() && viem.isAddressEqual(args.to, to)
|
|
19352
|
+
);
|
|
19353
|
+
if (events.length !== 1) {
|
|
19354
|
+
throw new Error(
|
|
19355
|
+
`DopplerHookMigrator claimMigrationRefund transaction ${hash} emitted ${events.length} matching MigrationRefundClaimed events; expected exactly one`
|
|
19356
|
+
);
|
|
19357
|
+
}
|
|
19358
|
+
const { amount0, amount1 } = events[0].args;
|
|
19359
|
+
return { amount0, amount1, transactionHash: hash };
|
|
19360
|
+
}
|
|
19361
|
+
};
|
|
19362
|
+
var StreamableFeesLockerV2 = class {
|
|
19363
|
+
client;
|
|
19364
|
+
walletClient;
|
|
19365
|
+
address;
|
|
19366
|
+
get rpc() {
|
|
19367
|
+
return this.client;
|
|
19368
|
+
}
|
|
19369
|
+
constructor(client, walletClient, address) {
|
|
19370
|
+
this.client = client;
|
|
19371
|
+
this.walletClient = walletClient;
|
|
19372
|
+
this.address = address;
|
|
19373
|
+
}
|
|
19374
|
+
getAddress() {
|
|
19375
|
+
return this.address;
|
|
19376
|
+
}
|
|
19377
|
+
async getStream(poolId2) {
|
|
19378
|
+
const result = await this.rpc.readContract({
|
|
19379
|
+
address: this.address,
|
|
19380
|
+
abi: streamableFeesLockerV2Abi,
|
|
19381
|
+
functionName: "streams",
|
|
19382
|
+
args: [poolId2]
|
|
19383
|
+
});
|
|
19384
|
+
const [poolKey, recipient, startDate, lockDuration, isUnlocked] = result;
|
|
19385
|
+
return {
|
|
19386
|
+
poolKey: normalizePoolKey(poolKey),
|
|
19387
|
+
recipient,
|
|
19388
|
+
startDate,
|
|
19389
|
+
lockDuration,
|
|
19390
|
+
unlockDate: viem.isAddressEqual(recipient, DEAD_ADDRESS) ? 0 : startDate + lockDuration,
|
|
19391
|
+
isUnlocked
|
|
19392
|
+
};
|
|
19393
|
+
}
|
|
19394
|
+
async getBeneficiaryShares(poolId2, beneficiary) {
|
|
19395
|
+
return await this.rpc.readContract({
|
|
19396
|
+
address: this.address,
|
|
19397
|
+
abi: streamableFeesLockerV2Abi,
|
|
19398
|
+
functionName: "getShares",
|
|
19399
|
+
args: [poolId2, beneficiary]
|
|
19400
|
+
});
|
|
19401
|
+
}
|
|
19402
|
+
async getCumulatedFees(poolId2) {
|
|
19403
|
+
const [fees0, fees1] = await Promise.all([
|
|
19404
|
+
this.rpc.readContract({
|
|
19405
|
+
address: this.address,
|
|
19406
|
+
abi: streamableFeesLockerV2Abi,
|
|
19407
|
+
functionName: "getCumulatedFees0",
|
|
19408
|
+
args: [poolId2]
|
|
19409
|
+
}),
|
|
19410
|
+
this.rpc.readContract({
|
|
19411
|
+
address: this.address,
|
|
19412
|
+
abi: streamableFeesLockerV2Abi,
|
|
19413
|
+
functionName: "getCumulatedFees1",
|
|
19414
|
+
args: [poolId2]
|
|
19415
|
+
})
|
|
19416
|
+
]);
|
|
19417
|
+
return { fees0, fees1 };
|
|
19418
|
+
}
|
|
19419
|
+
async collectFees(poolId2) {
|
|
19420
|
+
const walletClient = this.walletClient;
|
|
19421
|
+
if (!walletClient) {
|
|
19422
|
+
throw new Error("Wallet client required to collect streamable fees");
|
|
19423
|
+
}
|
|
19424
|
+
const { request } = await this.rpc.simulateContract({
|
|
19425
|
+
address: this.address,
|
|
19426
|
+
abi: streamableFeesLockerV2Abi,
|
|
19427
|
+
functionName: "collectFees",
|
|
19428
|
+
args: [poolId2],
|
|
19429
|
+
account: walletClient.account
|
|
19430
|
+
});
|
|
19431
|
+
const hash = await walletClient.writeContract(request);
|
|
19432
|
+
const receipt = await this.waitForSuccessfulReceipt(hash, "collectFees");
|
|
19433
|
+
const events = viem.parseEventLogs({
|
|
19434
|
+
abi: streamableFeesLockerV2Abi,
|
|
19435
|
+
eventName: "Collect",
|
|
19436
|
+
logs: receipt.logs.filter(
|
|
19437
|
+
({ address }) => viem.isAddressEqual(address, this.address)
|
|
19438
|
+
)
|
|
19439
|
+
}).filter(({ args }) => args.poolId.toLowerCase() === poolId2.toLowerCase());
|
|
19440
|
+
if (events.length !== 1) {
|
|
19441
|
+
throw new Error(
|
|
19442
|
+
`StreamableFeesLockerV2 collectFees transaction ${hash} emitted ${events.length} matching Collect events; expected exactly one`
|
|
19443
|
+
);
|
|
19444
|
+
}
|
|
19445
|
+
const { fees0, fees1 } = events[0].args;
|
|
19446
|
+
return { fees0, fees1, transactionHash: hash };
|
|
19447
|
+
}
|
|
19448
|
+
async unlock(poolId2) {
|
|
19449
|
+
const walletClient = this.walletClient;
|
|
19450
|
+
if (!walletClient) {
|
|
19451
|
+
throw new Error("Wallet client required to unlock streamable liquidity");
|
|
19452
|
+
}
|
|
19453
|
+
const { request } = await this.rpc.simulateContract({
|
|
19454
|
+
address: this.address,
|
|
19455
|
+
abi: streamableFeesLockerV2Abi,
|
|
19456
|
+
functionName: "unlock",
|
|
19457
|
+
args: [poolId2],
|
|
19458
|
+
account: walletClient.account
|
|
19459
|
+
});
|
|
19460
|
+
const hash = await walletClient.writeContract(request);
|
|
19461
|
+
await this.waitForSuccessfulReceipt(hash, "unlock");
|
|
19462
|
+
return { transactionHash: hash };
|
|
19463
|
+
}
|
|
19464
|
+
async waitForSuccessfulReceipt(hash, operation) {
|
|
19465
|
+
const receipt = await this.rpc.waitForTransactionReceipt({
|
|
19466
|
+
hash,
|
|
19467
|
+
confirmations: 1
|
|
19468
|
+
});
|
|
19469
|
+
if (receipt.status !== "success") {
|
|
19470
|
+
throw new Error(
|
|
19471
|
+
`StreamableFeesLockerV2 ${operation} transaction ${hash} failed with receipt status ${receipt.status}`
|
|
19472
|
+
);
|
|
19473
|
+
}
|
|
19474
|
+
return receipt;
|
|
19475
|
+
}
|
|
19476
|
+
};
|
|
18959
19477
|
|
|
18960
19478
|
// src/evm/builders/StaticAuctionBuilder.ts
|
|
18961
19479
|
var StaticAuctionBuilder = class _StaticAuctionBuilder {
|
|
@@ -19561,9 +20079,6 @@ var DynamicAuctionBuilder = class _DynamicAuctionBuilder {
|
|
|
19561
20079
|
withDopplerHookMigrator(address) {
|
|
19562
20080
|
return this.overrideModule("dopplerHookMigrator", address);
|
|
19563
20081
|
}
|
|
19564
|
-
withRehypeDopplerHookMigrator(address) {
|
|
19565
|
-
return this.overrideModule("rehypeDopplerHookMigrator", address);
|
|
19566
|
-
}
|
|
19567
20082
|
withNoOpMigrator(address) {
|
|
19568
20083
|
return this.overrideModule("noOpMigrator", address);
|
|
19569
20084
|
}
|
|
@@ -19904,15 +20419,15 @@ var MulticurveBuilder = class _MulticurveBuilder {
|
|
|
19904
20419
|
*
|
|
19905
20420
|
* When configured, the hook will be initialized with the pool and will handle:
|
|
19906
20421
|
* - Custom swap fees
|
|
19907
|
-
* -
|
|
19908
|
-
*
|
|
20422
|
+
* - Residual fee distribution to beneficiaries, LPs, and buyback destinations
|
|
20423
|
+
* - An optional, independently routed integrator share of gross hook fees
|
|
19909
20424
|
* IMPORTANT:
|
|
19910
20425
|
* - The hook address must be whitelisted in the DopplerHookInitializer
|
|
19911
20426
|
* - Fee distribution percentages must sum to exactly WAD (1e18 = 100%)
|
|
19912
|
-
*
|
|
20427
|
+
* - integratorFeeConfig.integrator defaults to withIntegrator(address)
|
|
19913
20428
|
* @example
|
|
19914
20429
|
* ```typescript
|
|
19915
|
-
* builder.withRehypeDopplerHookInitializer({
|
|
20430
|
+
* builder.withIntegrator('0x...').withRehypeDopplerHookInitializer({
|
|
19916
20431
|
* hookAddress: '0x...',
|
|
19917
20432
|
* buybackDestination: '0x...',
|
|
19918
20433
|
* startFee: 3000, // 0.3%
|
|
@@ -19928,6 +20443,11 @@ var MulticurveBuilder = class _MulticurveBuilder {
|
|
|
19928
20443
|
* numeraireFeesToBeneficiaryWad: parseEther('0.3'),
|
|
19929
20444
|
* numeraireFeesToLpWad: parseEther('0.3'),
|
|
19930
20445
|
* },
|
|
20446
|
+
* integratorFeeConfig: {
|
|
20447
|
+
* feeShare: 200_000, // 20% of the Rehype hook fee
|
|
20448
|
+
* assetFeesToNumeraireRatio: 500_000_000, // Convert 50%
|
|
20449
|
+
* automaticPayout: false,
|
|
20450
|
+
* },
|
|
19931
20451
|
* })
|
|
19932
20452
|
* ```
|
|
19933
20453
|
*/
|
|
@@ -19943,10 +20463,13 @@ var MulticurveBuilder = class _MulticurveBuilder {
|
|
|
19943
20463
|
"Rehype buybackDestination and withFeeDistributionController are mutually exclusive"
|
|
19944
20464
|
);
|
|
19945
20465
|
}
|
|
19946
|
-
|
|
20466
|
+
const needsInheritedIntegrator = params.integratorFeeConfig !== void 0 && params.integratorFeeConfig.integrator === void 0;
|
|
20467
|
+
const canResolveIntegrator = !needsInheritedIntegrator || this.integrator !== void 0;
|
|
20468
|
+
if ((params.buybackDestination !== void 0 || this.feeDistributionControllerAddress !== void 0) && canResolveIntegrator) {
|
|
19947
20469
|
normalizeRehypeDopplerHookInitializerConfig(
|
|
19948
20470
|
params,
|
|
19949
|
-
this.feeDistributionControllerAddress
|
|
20471
|
+
this.feeDistributionControllerAddress,
|
|
20472
|
+
this.integrator
|
|
19950
20473
|
);
|
|
19951
20474
|
}
|
|
19952
20475
|
this.dopplerHook = params;
|
|
@@ -20285,7 +20808,8 @@ var MulticurveBuilder = class _MulticurveBuilder {
|
|
|
20285
20808
|
if (dopplerHook) {
|
|
20286
20809
|
dopplerHook = normalizeRehypeDopplerHookInitializerConfig(
|
|
20287
20810
|
dopplerHook,
|
|
20288
|
-
this.feeDistributionControllerAddress
|
|
20811
|
+
this.feeDistributionControllerAddress,
|
|
20812
|
+
this.integrator
|
|
20289
20813
|
);
|
|
20290
20814
|
}
|
|
20291
20815
|
if (dopplerHook?.graduationMarketCap !== void 0) {
|
|
@@ -20753,7 +21277,6 @@ var DopplerSDK = class {
|
|
|
20753
21277
|
chainId;
|
|
20754
21278
|
_factory;
|
|
20755
21279
|
_quoter;
|
|
20756
|
-
_topUpDistributor;
|
|
20757
21280
|
_bundler;
|
|
20758
21281
|
constructor(config) {
|
|
20759
21282
|
this.publicClient = config.publicClient;
|
|
@@ -20782,31 +21305,6 @@ var DopplerSDK = class {
|
|
|
20782
21305
|
}
|
|
20783
21306
|
return this._quoter;
|
|
20784
21307
|
}
|
|
20785
|
-
/**
|
|
20786
|
-
* Get the configured TopUpDistributor instance for split-migrator top-ups.
|
|
20787
|
-
*/
|
|
20788
|
-
get topUpDistributor() {
|
|
20789
|
-
if (!this._topUpDistributor) {
|
|
20790
|
-
this._topUpDistributor = this.getTopUpDistributor();
|
|
20791
|
-
}
|
|
20792
|
-
return this._topUpDistributor;
|
|
20793
|
-
}
|
|
20794
|
-
/**
|
|
20795
|
-
* Get a TopUpDistributor instance using the chain default or an explicit override.
|
|
20796
|
-
*/
|
|
20797
|
-
getTopUpDistributor(topUpDistributorAddress) {
|
|
20798
|
-
const resolvedTopUpDistributor = topUpDistributorAddress ?? getAddresses(this.chainId).topUpDistributor;
|
|
20799
|
-
if (!resolvedTopUpDistributor || resolvedTopUpDistributor === ZERO_ADDRESS) {
|
|
20800
|
-
throw new Error(
|
|
20801
|
-
"TopUpDistributor address is not configured on this chain. Pass topUpDistributorAddress to getTopUpDistributor()."
|
|
20802
|
-
);
|
|
20803
|
-
}
|
|
20804
|
-
return new TopUpDistributor(
|
|
20805
|
-
this.publicClient,
|
|
20806
|
-
this.walletClient,
|
|
20807
|
-
resolvedTopUpDistributor
|
|
20808
|
-
);
|
|
20809
|
-
}
|
|
20810
21308
|
/**
|
|
20811
21309
|
* Gets the Bundler client configured for this chain.
|
|
20812
21310
|
*
|
|
@@ -20864,17 +21362,40 @@ var DopplerSDK = class {
|
|
|
20864
21362
|
async getRehypeDopplerHook(hookAddress) {
|
|
20865
21363
|
return this.getRehypeDopplerHookInitializer(hookAddress);
|
|
20866
21364
|
}
|
|
20867
|
-
|
|
20868
|
-
|
|
20869
|
-
|
|
20870
|
-
|
|
20871
|
-
|
|
20872
|
-
|
|
21365
|
+
getDopplerHookMigrator(address) {
|
|
21366
|
+
const resolvedAddress = address ?? getAddresses(this.chainId).dopplerHookMigrator;
|
|
21367
|
+
if (!resolvedAddress || resolvedAddress === ZERO_ADDRESS) {
|
|
21368
|
+
throw new Error(
|
|
21369
|
+
"DopplerHookMigrator address is not configured on this chain. Pass an address to getDopplerHookMigrator()."
|
|
21370
|
+
);
|
|
21371
|
+
}
|
|
21372
|
+
return new DopplerHookMigrator(
|
|
20873
21373
|
this.publicClient,
|
|
20874
21374
|
this.walletClient,
|
|
20875
|
-
|
|
21375
|
+
resolvedAddress
|
|
21376
|
+
);
|
|
21377
|
+
}
|
|
21378
|
+
async getDopplerHookMigratorForAsset(asset) {
|
|
21379
|
+
const assetData = await this.getAirlockAssetData(asset);
|
|
21380
|
+
if (assetData.liquidityMigrator === ZERO_ADDRESS) {
|
|
21381
|
+
throw new Error(`Asset ${asset} has no configured liquidity migrator`);
|
|
21382
|
+
}
|
|
21383
|
+
return this.getDopplerHookMigrator(assetData.liquidityMigrator);
|
|
21384
|
+
}
|
|
21385
|
+
getStreamableFeesLockerV2(address) {
|
|
21386
|
+
if (address === ZERO_ADDRESS) {
|
|
21387
|
+
throw new Error("StreamableFeesLockerV2 address must not be zero");
|
|
21388
|
+
}
|
|
21389
|
+
return new StreamableFeesLockerV2(
|
|
21390
|
+
this.publicClient,
|
|
21391
|
+
this.walletClient,
|
|
21392
|
+
address
|
|
20876
21393
|
);
|
|
20877
21394
|
}
|
|
21395
|
+
async getStreamableFeesLockerForAsset(asset) {
|
|
21396
|
+
const migrator = await this.getDopplerHookMigratorForAsset(asset);
|
|
21397
|
+
return this.getStreamableFeesLockerV2(await migrator.getLockerAddress());
|
|
21398
|
+
}
|
|
20878
21399
|
/**
|
|
20879
21400
|
* Get an OpeningAuction instance for interacting with an opening auction hook.
|
|
20880
21401
|
* @param hookAddress The address of the opening auction hook
|
|
@@ -20943,10 +21464,12 @@ var DopplerSDK = class {
|
|
|
20943
21464
|
* @param tokenAddress The address of the token created by the auction (called "asset" in contracts; V4 pools don't have addresses, so the token is used as the lookup key)
|
|
20944
21465
|
*/
|
|
20945
21466
|
async getMulticurvePool(tokenAddress) {
|
|
21467
|
+
const { poolInitializer } = await this.getAirlockAssetData(tokenAddress);
|
|
20946
21468
|
return new MulticurvePool(
|
|
20947
21469
|
this.publicClient,
|
|
20948
21470
|
this.walletClient,
|
|
20949
|
-
tokenAddress
|
|
21471
|
+
tokenAddress,
|
|
21472
|
+
poolInitializer
|
|
20950
21473
|
);
|
|
20951
21474
|
}
|
|
20952
21475
|
/**
|
|
@@ -21042,6 +21565,15 @@ var DopplerSDK = class {
|
|
|
21042
21565
|
async getAirlockOwner() {
|
|
21043
21566
|
return getAirlockOwner(this.publicClient);
|
|
21044
21567
|
}
|
|
21568
|
+
async getAirlockAssetData(asset) {
|
|
21569
|
+
const result = await this.publicClient.readContract({
|
|
21570
|
+
address: getAddresses(this.chainId).airlock,
|
|
21571
|
+
abi: airlockAbi,
|
|
21572
|
+
functionName: "getAssetData",
|
|
21573
|
+
args: [asset]
|
|
21574
|
+
});
|
|
21575
|
+
return normalizeAirlockAssetData(result);
|
|
21576
|
+
}
|
|
21045
21577
|
/**
|
|
21046
21578
|
* Convenience helper for building the airlock beneficiary entry with the default 5% (0.05e18 WAD shares)
|
|
21047
21579
|
*/
|
|
@@ -21112,6 +21644,7 @@ exports.DopplerDN404BaseSepoliaBytecode = dopplerDN404BaseSepolia_default;
|
|
|
21112
21644
|
exports.DopplerDN404Bytecode = dopplerDN404_default;
|
|
21113
21645
|
exports.DopplerERC20V1 = DopplerERC20V1;
|
|
21114
21646
|
exports.DopplerFactory = DopplerFactory;
|
|
21647
|
+
exports.DopplerHookMigrator = DopplerHookMigrator;
|
|
21115
21648
|
exports.DopplerSDK = DopplerSDK;
|
|
21116
21649
|
exports.DynamicAuction = DynamicAuction;
|
|
21117
21650
|
exports.DynamicAuctionBuilder = DynamicAuctionBuilder;
|
|
@@ -21152,7 +21685,6 @@ exports.Q96 = Q96;
|
|
|
21152
21685
|
exports.Quoter = Quoter;
|
|
21153
21686
|
exports.RehypeDopplerHook = RehypeDopplerHook;
|
|
21154
21687
|
exports.RehypeDopplerHookInitializer = RehypeDopplerHookInitializer;
|
|
21155
|
-
exports.RehypeDopplerHookMigrator = RehypeDopplerHookMigrator;
|
|
21156
21688
|
exports.RehypeFeeRoutingMode = RehypeFeeRoutingMode;
|
|
21157
21689
|
exports.SECONDS_PER_DAY = SECONDS_PER_DAY;
|
|
21158
21690
|
exports.SECONDS_PER_YEAR = SECONDS_PER_YEAR;
|
|
@@ -21160,8 +21692,8 @@ exports.SUPPORTED_CHAIN_IDS = SUPPORTED_CHAIN_IDS;
|
|
|
21160
21692
|
exports.StateViewBytecode = stateView_default;
|
|
21161
21693
|
exports.StaticAuction = StaticAuction;
|
|
21162
21694
|
exports.StaticAuctionBuilder = StaticAuctionBuilder;
|
|
21695
|
+
exports.StreamableFeesLockerV2 = StreamableFeesLockerV2;
|
|
21163
21696
|
exports.TICK_SPACINGS = TICK_SPACINGS;
|
|
21164
|
-
exports.TopUpDistributor = TopUpDistributor;
|
|
21165
21697
|
exports.V3_FEE_TIERS = V3_FEE_TIERS;
|
|
21166
21698
|
exports.V4_MAX_FEE = V4_MAX_FEE;
|
|
21167
21699
|
exports.VALID_FEE_TIERS = VALID_FEE_TIERS;
|
|
@@ -21187,9 +21719,9 @@ exports.dopplerDN404Abi = dopplerDN404Abi;
|
|
|
21187
21719
|
exports.dopplerERC20V1Abi = dopplerERC20V1Abi;
|
|
21188
21720
|
exports.dopplerHookAbi = dopplerHookAbi;
|
|
21189
21721
|
exports.dopplerHookInitializerAbi = dopplerHookInitializerAbi;
|
|
21722
|
+
exports.dopplerHookMigratorAbi = dopplerHookMigratorAbi;
|
|
21190
21723
|
exports.dopplerLensAbi = dopplerLensAbi;
|
|
21191
21724
|
exports.encodeRehypeDopplerHookInitializerData = encodeRehypeDopplerHookInitializerData;
|
|
21192
|
-
exports.encodeRehypeDopplerHookMigratorCalldata = encodeRehypeDopplerHookMigratorCalldata;
|
|
21193
21725
|
exports.estimatePriceAtEpoch = estimatePriceAtEpoch;
|
|
21194
21726
|
exports.estimateSlippage = estimateSlippage;
|
|
21195
21727
|
exports.feeClaimsInitializerAbi = feeClaimsInitializerAbi;
|
|
@@ -21233,7 +21765,6 @@ exports.quoterV2Abi = quoterV2Abi;
|
|
|
21233
21765
|
exports.ratioToTick = ratioToTick;
|
|
21234
21766
|
exports.rehypeDopplerHookAbi = rehypeDopplerHookAbi;
|
|
21235
21767
|
exports.rehypeDopplerHookInitializerAbi = rehypeDopplerHookInitializerAbi;
|
|
21236
|
-
exports.rehypeDopplerHookMigratorAbi = rehypeDopplerHookMigratorAbi;
|
|
21237
21768
|
exports.resolveGasEstimate = resolveGasEstimate;
|
|
21238
21769
|
exports.sortBeneficiaries = sortBeneficiaries;
|
|
21239
21770
|
exports.sqrtPriceX96ToPrice = sqrtPriceX96ToPrice;
|
|
@@ -21242,7 +21773,6 @@ exports.streamableFeesLockerV2Abi = streamableFeesLockerV2Abi;
|
|
|
21242
21773
|
exports.tickToMarketCap = tickToMarketCap;
|
|
21243
21774
|
exports.tickToPrice = tickToPrice;
|
|
21244
21775
|
exports.tokenPriceToRatio = tokenPriceToRatio;
|
|
21245
|
-
exports.topUpDistributorAbi = topUpDistributorAbi;
|
|
21246
21776
|
exports.uniswapV2Router02Abi = uniswapV2Router02Abi;
|
|
21247
21777
|
exports.uniswapV3InitializerAbi = uniswapV3InitializerAbi;
|
|
21248
21778
|
exports.uniswapV3PoolAbi = uniswapV3PoolAbi;
|