@alephium/powfi-sdk 0.0.1-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (146) hide show
  1. package/README.md +4 -0
  2. package/clmm/artifacts/BitmapWord.ral.json +125 -0
  3. package/clmm/artifacts/BitmapWordDeployer.ral.json +31 -0
  4. package/clmm/artifacts/CreateConfig.ral.json +37 -0
  5. package/clmm/artifacts/CreateLiquidPool.ral.json +55 -0
  6. package/clmm/artifacts/DexAccount.ral.json +110 -0
  7. package/clmm/artifacts/LiquidityAmountsTest.ral.json +161 -0
  8. package/clmm/artifacts/LiquidityManagmentTest.ral.json +384 -0
  9. package/clmm/artifacts/Pool.ral.json +1530 -0
  10. package/clmm/artifacts/PoolConfig.ral.json +31 -0
  11. package/clmm/artifacts/PoolFactory.ral.json +300 -0
  12. package/clmm/artifacts/PoolRouterDemo.ral.json +49 -0
  13. package/clmm/artifacts/PoolUser.ral.json +89 -0
  14. package/clmm/artifacts/Position.ral.json +183 -0
  15. package/clmm/artifacts/PositionManager.ral.json +416 -0
  16. package/clmm/artifacts/SwapWithoutAccount.ral.json +46 -0
  17. package/clmm/artifacts/TestToken.ral.json +68 -0
  18. package/clmm/artifacts/Tick.ral.json +161 -0
  19. package/clmm/artifacts/TickBitmapTest.ral.json +220 -0
  20. package/clmm/artifacts/constants.ral.json +81 -0
  21. package/clmm/artifacts/structs.ral.json +335 -0
  22. package/clmm/artifacts/ts/BitmapWord.ts +337 -0
  23. package/clmm/artifacts/ts/BitmapWordDeployer.ts +164 -0
  24. package/clmm/artifacts/ts/DexAccount.ts +330 -0
  25. package/clmm/artifacts/ts/LiquidityAmountsTest.ts +464 -0
  26. package/clmm/artifacts/ts/LiquidityManagmentTest.ts +859 -0
  27. package/clmm/artifacts/ts/Pool.ts +2535 -0
  28. package/clmm/artifacts/ts/PoolConfig.ts +179 -0
  29. package/clmm/artifacts/ts/PoolFactory.ts +640 -0
  30. package/clmm/artifacts/ts/PoolUser.ts +237 -0
  31. package/clmm/artifacts/ts/Position.ts +440 -0
  32. package/clmm/artifacts/ts/PositionManager.ts +929 -0
  33. package/clmm/artifacts/ts/TestToken.ts +277 -0
  34. package/clmm/artifacts/ts/Tick.ts +351 -0
  35. package/clmm/artifacts/ts/TickBitmapTest.ts +512 -0
  36. package/clmm/artifacts/ts/constants.ts +17 -0
  37. package/clmm/artifacts/ts/contracts.ts +26 -0
  38. package/clmm/artifacts/ts/deployments.ts +160 -0
  39. package/clmm/artifacts/ts/index.ts +20 -0
  40. package/clmm/artifacts/ts/scripts.ts +76 -0
  41. package/clmm/artifacts/ts/types.ts +105 -0
  42. package/clmm/deployments/.deployments.devnet.json +350 -0
  43. package/clmm/deployments/.deployments.testnet.json +350 -0
  44. package/cpmm/artifacts/dex/DexAccount.ral.json +110 -0
  45. package/cpmm/artifacts/dex/Router.ral.json +361 -0
  46. package/cpmm/artifacts/dex/TokenPair.ral.json +512 -0
  47. package/cpmm/artifacts/dex/TokenPairFactory.ral.json +297 -0
  48. package/cpmm/artifacts/examples/ExampleOracleSimple.ral.json +192 -0
  49. package/cpmm/artifacts/examples/FeeCollectorFactoryImpl.ral.json +185 -0
  50. package/cpmm/artifacts/examples/FeeCollectorPerTokenPairImpl.ral.json +216 -0
  51. package/cpmm/artifacts/examples/FullMathTest.ral.json +123 -0
  52. package/cpmm/artifacts/scripts/AddLiquidity.ral.json +46 -0
  53. package/cpmm/artifacts/scripts/Burn.ral.json +31 -0
  54. package/cpmm/artifacts/scripts/CollectFee.ral.json +25 -0
  55. package/cpmm/artifacts/scripts/CreatePair.ral.json +37 -0
  56. package/cpmm/artifacts/scripts/CreatePairAndAddLiquidity.ral.json +43 -0
  57. package/cpmm/artifacts/scripts/EnableFeeCollector.ral.json +28 -0
  58. package/cpmm/artifacts/scripts/Mint.ral.json +34 -0
  59. package/cpmm/artifacts/scripts/RemoveLiquidity.ral.json +43 -0
  60. package/cpmm/artifacts/scripts/SetFeeCollectorFactory.ral.json +28 -0
  61. package/cpmm/artifacts/scripts/Swap.ral.json +46 -0
  62. package/cpmm/artifacts/scripts/SwapMaxIn.ral.json +46 -0
  63. package/cpmm/artifacts/scripts/SwapMinOut.ral.json +46 -0
  64. package/cpmm/artifacts/test/GetToken.ral.json +31 -0
  65. package/cpmm/artifacts/test/MathTest.ral.json +49 -0
  66. package/cpmm/artifacts/test/TestToken.ral.json +87 -0
  67. package/cpmm/artifacts/ts/DexAccount.ts +329 -0
  68. package/cpmm/artifacts/ts/ExampleOracleSimple.ts +383 -0
  69. package/cpmm/artifacts/ts/FeeCollectorFactoryImpl.ts +227 -0
  70. package/cpmm/artifacts/ts/FeeCollectorPerTokenPairImpl.ts +327 -0
  71. package/cpmm/artifacts/ts/FullMathTest.ts +251 -0
  72. package/cpmm/artifacts/ts/MathTest.ts +183 -0
  73. package/cpmm/artifacts/ts/Router.ts +554 -0
  74. package/cpmm/artifacts/ts/TestToken.ts +312 -0
  75. package/cpmm/artifacts/ts/TokenPair.ts +947 -0
  76. package/cpmm/artifacts/ts/TokenPairFactory.ts +501 -0
  77. package/cpmm/artifacts/ts/contracts.ts +26 -0
  78. package/cpmm/artifacts/ts/deployments.ts +109 -0
  79. package/cpmm/artifacts/ts/index.ts +16 -0
  80. package/cpmm/artifacts/ts/scripts.ts +142 -0
  81. package/cpmm/deployments/.deployments.devnet.json +77 -0
  82. package/cpmm/deployments/.deployments.testnet.json +79 -0
  83. package/lib/index.d.mts +8800 -0
  84. package/lib/index.d.ts +8800 -0
  85. package/lib/index.js +21769 -0
  86. package/lib/index.js.map +1 -0
  87. package/lib/index.mjs +22118 -0
  88. package/lib/index.mjs.map +1 -0
  89. package/package.json +80 -0
  90. package/src/clmm/clmm.ts +607 -0
  91. package/src/clmm/constants.ts +7 -0
  92. package/src/clmm/index.ts +6 -0
  93. package/src/clmm/liquidity.ts +163 -0
  94. package/src/clmm/pool.ts +154 -0
  95. package/src/clmm/tick.ts +335 -0
  96. package/src/clmm/types.ts +155 -0
  97. package/src/common/constants.ts +1 -0
  98. package/src/common/error.ts +46 -0
  99. package/src/common/index.ts +7 -0
  100. package/src/common/logger.ts +82 -0
  101. package/src/common/math.ts +88 -0
  102. package/src/common/numeric.ts +64 -0
  103. package/src/common/types.ts +49 -0
  104. package/src/common/utils.ts +3 -0
  105. package/src/cpmm/constants.ts +2 -0
  106. package/src/cpmm/cpmm.ts +631 -0
  107. package/src/cpmm/index.ts +3 -0
  108. package/src/cpmm/types.ts +113 -0
  109. package/src/index.ts +25 -0
  110. package/src/moduleBase.ts +64 -0
  111. package/src/staking/index.ts +4 -0
  112. package/src/staking/settings.ts +38 -0
  113. package/src/staking/staking.ts +277 -0
  114. package/src/staking/types.ts +15 -0
  115. package/src/staking/utils.ts +25 -0
  116. package/src/token/index.ts +1 -0
  117. package/src/token/token.ts +163 -0
  118. package/src/zeta.ts +105 -0
  119. package/staking/artifacts/AlphStakeAndLock.ral.json +31 -0
  120. package/staking/artifacts/AlphUnstakeVault.ral.json +151 -0
  121. package/staking/artifacts/XAlphStakeVault.ral.json +559 -0
  122. package/staking/artifacts/XAlphToken.ral.json +404 -0
  123. package/staking/artifacts/XAlphUnlockAndStartUnstake.ral.json +31 -0
  124. package/staking/artifacts/examples/GovernanceDemo.ral.json +282 -0
  125. package/staking/artifacts/examples/RewardSharingVault.ral.json +253 -0
  126. package/staking/artifacts/structs.ral.json +47 -0
  127. package/staking/artifacts/ts/AlphUnstakeVault.ts +354 -0
  128. package/staking/artifacts/ts/FullMathTest.ts +175 -0
  129. package/staking/artifacts/ts/GovernanceDemo.ts +726 -0
  130. package/staking/artifacts/ts/RewardSharingVault.ts +559 -0
  131. package/staking/artifacts/ts/TestDynamicArrayByteVec32.ts +431 -0
  132. package/staking/artifacts/ts/TestDynamicSortedArrayForU256.ts +516 -0
  133. package/staking/artifacts/ts/TestMerkleProof.ts +343 -0
  134. package/staking/artifacts/ts/XAlphStakeVault.ts +1120 -0
  135. package/staking/artifacts/ts/XAlphToken.ts +835 -0
  136. package/staking/artifacts/ts/contracts.ts +26 -0
  137. package/staking/artifacts/ts/deployments.ts +109 -0
  138. package/staking/artifacts/ts/index.ts +15 -0
  139. package/staking/artifacts/ts/scripts.ts +35 -0
  140. package/staking/artifacts/ts/types.ts +19 -0
  141. package/staking/artifacts/utils/FullMathTest.ral.json +57 -0
  142. package/staking/artifacts/utils/TestDynamicArrayByteVec32.ral.json +165 -0
  143. package/staking/artifacts/utils/TestDynamicSortedArrayForU256.ral.json +189 -0
  144. package/staking/artifacts/utils/TestMerkleProof.ral.json +134 -0
  145. package/staking/deployments/.deployments.devnet.json +77 -0
  146. package/staking/deployments/.deployments.testnet.json +78 -0
@@ -0,0 +1,253 @@
1
+ {
2
+ "version": "v4.2.5",
3
+ "name": "RewardSharingVault",
4
+ "bytecode": "040740b74152423c4277428942c0431e01000208004054d3926b380bb417021602ce00774513287b140a5f5f6d61705f5f305f5f16004744cbc54c40270c0d0d140a5f5f6d61705f5f305f5f16004744cb01011703160116032a16000d0ece00010d1707170616062f132b7b16000005160316012a0c0e0c140a5f5f6d61705f5f305f5f16004744cb01024a15160116000d0ece00010d1705170416042f132b7bca140a5f5f6d61705f5f305f5f16004744b11601a001d20102a00016012aa10005160016015f01000205004046d365b06caeb417021602ce00774513287b140a5f5f6d61705f5f305f5f16004744cbc513297b0c0d0d140a5f5f6d61705f5f305f5f16004744cb010117031601160332132c7b160316012b17041600000516040c2f4c0aca0d0c140a5f5f6d61705f5f305f5f16004744cb01034a0a16040c0e0c140a5f5f6d61705f5f305f5f16004744cb0102a00016012ba10006160016015f0000030901409216020c3013415e7b160016010c0d3687170316001601371704160316043616031604314c020d4a010c36170516050c2f4c04160416022d02160216053313415f7b160016011602871706160516061604334c020d4a010c361705160416063617040c1602361602381707160216072d1702160416072d17040c16073616072d0d351707160416051607373917040f1602370e3a170816080e16021608373637170816080e16021608373637170816080e16021608373637170816080e16021608373637170816080e16021608373637170816080e160216083736371708160416083702010101030019d3fe1110a1a0000c33132a7bb417011601ce011600ac160013c40de0b6b3a7640000a00000021702a00116022aa10107160116005f010300010005d3a28b71d5b417001600000500020102001916000006170116010c334c081600ce011601ab08160016015fa0010d0e0c140a5f5f6d61705f5f305f5f16004744cb010201000105014024d31191a066140a5f5f6d61705f5f305f5f16004744cbc513297b0c0d0d140a5f5f6d61705f5f305f5f16004744cb1704160401010d0d0d1604010117021701a00116022b17031601160313c40de0b6b3a7640000000202",
5
+ "codeHash": "8beaa8b570543344d4352cf8534bbc7df4591b4ecda97cfc3c30bc28dca5adb9",
6
+ "fieldsSig": {
7
+ "names": [
8
+ "stakeVault",
9
+ "rewardTokenId",
10
+ "totalAmountStaked",
11
+ "rewardPerTokenCumulative"
12
+ ],
13
+ "types": [
14
+ "XAlphStakeVault",
15
+ "ByteVec",
16
+ "U256",
17
+ "U256"
18
+ ],
19
+ "isMutable": [
20
+ false,
21
+ false,
22
+ true,
23
+ true
24
+ ]
25
+ },
26
+ "eventsSig": [
27
+ {
28
+ "name": "Staked",
29
+ "fieldNames": [
30
+ "staker",
31
+ "amount"
32
+ ],
33
+ "fieldTypes": [
34
+ "Address",
35
+ "U256"
36
+ ]
37
+ },
38
+ {
39
+ "name": "Unstaked",
40
+ "fieldNames": [
41
+ "staker",
42
+ "amount"
43
+ ],
44
+ "fieldTypes": [
45
+ "Address",
46
+ "U256"
47
+ ]
48
+ },
49
+ {
50
+ "name": "RewardDeposited",
51
+ "fieldNames": [
52
+ "depositor",
53
+ "amount"
54
+ ],
55
+ "fieldTypes": [
56
+ "Address",
57
+ "U256"
58
+ ]
59
+ },
60
+ {
61
+ "name": "RewardClaimed",
62
+ "fieldNames": [
63
+ "staker",
64
+ "amount"
65
+ ],
66
+ "fieldTypes": [
67
+ "Address",
68
+ "U256"
69
+ ]
70
+ }
71
+ ],
72
+ "functions": [
73
+ {
74
+ "name": "onStake",
75
+ "paramNames": [
76
+ "user",
77
+ "newStakedAmount"
78
+ ],
79
+ "paramTypes": [
80
+ "Address",
81
+ "U256"
82
+ ],
83
+ "paramIsMutable": [
84
+ false,
85
+ false
86
+ ],
87
+ "returnTypes": []
88
+ },
89
+ {
90
+ "name": "onUnstake",
91
+ "paramNames": [
92
+ "user",
93
+ "unstakedAmount"
94
+ ],
95
+ "paramTypes": [
96
+ "Address",
97
+ "U256"
98
+ ],
99
+ "paramIsMutable": [
100
+ false,
101
+ false
102
+ ],
103
+ "returnTypes": []
104
+ },
105
+ {
106
+ "name": "mulDiv",
107
+ "paramNames": [
108
+ "a",
109
+ "b",
110
+ "denominator"
111
+ ],
112
+ "paramTypes": [
113
+ "U256",
114
+ "U256",
115
+ "U256"
116
+ ],
117
+ "paramIsMutable": [
118
+ false,
119
+ false,
120
+ true
121
+ ],
122
+ "returnTypes": [
123
+ "U256"
124
+ ]
125
+ },
126
+ {
127
+ "name": "depositReward",
128
+ "paramNames": [
129
+ "amount"
130
+ ],
131
+ "paramTypes": [
132
+ "U256"
133
+ ],
134
+ "paramIsMutable": [
135
+ false
136
+ ],
137
+ "returnTypes": []
138
+ },
139
+ {
140
+ "name": "claimPendingRewards",
141
+ "paramNames": [],
142
+ "paramTypes": [],
143
+ "paramIsMutable": [],
144
+ "returnTypes": []
145
+ },
146
+ {
147
+ "name": "claimUserPendingRewards",
148
+ "paramNames": [
149
+ "user"
150
+ ],
151
+ "paramTypes": [
152
+ "Address"
153
+ ],
154
+ "paramIsMutable": [
155
+ false
156
+ ],
157
+ "returnTypes": []
158
+ },
159
+ {
160
+ "name": "getUserPendingRewards",
161
+ "paramNames": [
162
+ "user"
163
+ ],
164
+ "paramTypes": [
165
+ "Address"
166
+ ],
167
+ "paramIsMutable": [
168
+ false
169
+ ],
170
+ "returnTypes": [
171
+ "U256"
172
+ ]
173
+ }
174
+ ],
175
+ "constants": [
176
+ {
177
+ "name": "SCALING_FACTOR",
178
+ "value": {
179
+ "type": "U256",
180
+ "value": "1000000000000000000"
181
+ }
182
+ }
183
+ ],
184
+ "enums": [
185
+ {
186
+ "name": "FullMathError",
187
+ "fields": [
188
+ {
189
+ "name": "DivByZero",
190
+ "value": {
191
+ "type": "U256",
192
+ "value": "350"
193
+ }
194
+ },
195
+ {
196
+ "name": "MulDivOverflow",
197
+ "value": {
198
+ "type": "U256",
199
+ "value": "351"
200
+ }
201
+ }
202
+ ]
203
+ },
204
+ {
205
+ "name": "ErrorCodes",
206
+ "fields": [
207
+ {
208
+ "name": "StakeVaultCallerOnly",
209
+ "value": {
210
+ "type": "U256",
211
+ "value": "40"
212
+ }
213
+ },
214
+ {
215
+ "name": "NoUserRewardSharingInfo",
216
+ "value": {
217
+ "type": "U256",
218
+ "value": "41"
219
+ }
220
+ },
221
+ {
222
+ "name": "TotalStakedAmountIsZero",
223
+ "value": {
224
+ "type": "U256",
225
+ "value": "42"
226
+ }
227
+ },
228
+ {
229
+ "name": "InvalidStakedAmount",
230
+ "value": {
231
+ "type": "U256",
232
+ "value": "43"
233
+ }
234
+ },
235
+ {
236
+ "name": "InvalidUnstakedAmount",
237
+ "value": {
238
+ "type": "U256",
239
+ "value": "44"
240
+ }
241
+ }
242
+ ]
243
+ }
244
+ ],
245
+ "mapsSig": {
246
+ "names": [
247
+ "userRewardSharingInfo"
248
+ ],
249
+ "types": [
250
+ "Map[Address,UserRewardSharingInfo]"
251
+ ]
252
+ }
253
+ }
@@ -0,0 +1,47 @@
1
+ [
2
+ {
3
+ "name": "VoteInfo",
4
+ "fieldNames": [
5
+ "proposalVoted",
6
+ "amount"
7
+ ],
8
+ "fieldTypes": [
9
+ "U256",
10
+ "U256"
11
+ ],
12
+ "isMutable": [
13
+ true,
14
+ true
15
+ ]
16
+ },
17
+ {
18
+ "name": "UserRewardSharingInfo",
19
+ "fieldNames": [
20
+ "amount",
21
+ "rewardPerToken"
22
+ ],
23
+ "fieldTypes": [
24
+ "U256",
25
+ "U256"
26
+ ],
27
+ "isMutable": [
28
+ true,
29
+ true
30
+ ]
31
+ },
32
+ {
33
+ "name": "UserStakingInfo",
34
+ "fieldNames": [
35
+ "amount",
36
+ "connectedDapps"
37
+ ],
38
+ "fieldTypes": [
39
+ "U256",
40
+ "ByteVec"
41
+ ],
42
+ "isMutable": [
43
+ true,
44
+ true
45
+ ]
46
+ }
47
+ ]
@@ -0,0 +1,354 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import {
6
+ Address,
7
+ Contract,
8
+ ContractState,
9
+ TestContractResult,
10
+ HexString,
11
+ ContractFactory,
12
+ EventSubscribeOptions,
13
+ EventSubscription,
14
+ CallContractParams,
15
+ CallContractResult,
16
+ TestContractParams,
17
+ ContractEvent,
18
+ subscribeContractEvent,
19
+ subscribeContractEvents,
20
+ testMethod,
21
+ callMethod,
22
+ multicallMethods,
23
+ fetchContractState,
24
+ Asset,
25
+ ContractInstance,
26
+ getContractEventsCurrentCount,
27
+ TestContractParamsWithoutMaps,
28
+ TestContractResultWithoutMaps,
29
+ SignExecuteContractMethodParams,
30
+ SignExecuteScriptTxResult,
31
+ signExecuteMethod,
32
+ addStdIdToFields,
33
+ encodeContractFields,
34
+ Narrow,
35
+ } from "@alephium/web3";
36
+ import { default as AlphUnstakeVaultContractJson } from "../AlphUnstakeVault.ral.json";
37
+ import { getContractByCodeHash, registerContract } from "./contracts";
38
+ import * as types from "./types";
39
+
40
+ // Custom types for the contract
41
+ export namespace AlphUnstakeVaultTypes {
42
+ export type Fields = {
43
+ xalphToken: HexString;
44
+ unstakerAddress: Address;
45
+ totalUnstakeAmount: bigint;
46
+ unstakeStartTime: bigint;
47
+ unstakeDuration: bigint;
48
+ withdrawnAmount: bigint;
49
+ };
50
+
51
+ export type State = ContractState<Fields>;
52
+
53
+ export interface CallMethodTable {
54
+ mulDiv: {
55
+ params: CallContractParams<{ a: bigint; b: bigint; denominator: bigint }>;
56
+ result: CallContractResult<bigint>;
57
+ };
58
+ getTotalUnstakeAmount: {
59
+ params: Omit<CallContractParams<{}>, "args">;
60
+ result: CallContractResult<bigint>;
61
+ };
62
+ getClaimableAmount: {
63
+ params: Omit<CallContractParams<{}>, "args">;
64
+ result: CallContractResult<bigint>;
65
+ };
66
+ claim: {
67
+ params: CallContractParams<{ amount: bigint }>;
68
+ result: CallContractResult<boolean>;
69
+ };
70
+ destroy: {
71
+ params: Omit<CallContractParams<{}>, "args">;
72
+ result: CallContractResult<null>;
73
+ };
74
+ }
75
+ export type CallMethodParams<T extends keyof CallMethodTable> =
76
+ CallMethodTable[T]["params"];
77
+ export type CallMethodResult<T extends keyof CallMethodTable> =
78
+ CallMethodTable[T]["result"];
79
+ export type MultiCallParams = Partial<{
80
+ [Name in keyof CallMethodTable]: CallMethodTable[Name]["params"];
81
+ }>;
82
+ export type MultiCallResults<T extends MultiCallParams> = {
83
+ [MaybeName in keyof T]: MaybeName extends keyof CallMethodTable
84
+ ? CallMethodTable[MaybeName]["result"]
85
+ : undefined;
86
+ };
87
+ export type MulticallReturnType<Callss extends MultiCallParams[]> = {
88
+ [index in keyof Callss]: MultiCallResults<Callss[index]>;
89
+ };
90
+
91
+ export interface SignExecuteMethodTable {
92
+ mulDiv: {
93
+ params: SignExecuteContractMethodParams<{
94
+ a: bigint;
95
+ b: bigint;
96
+ denominator: bigint;
97
+ }>;
98
+ result: SignExecuteScriptTxResult;
99
+ };
100
+ getTotalUnstakeAmount: {
101
+ params: Omit<SignExecuteContractMethodParams<{}>, "args">;
102
+ result: SignExecuteScriptTxResult;
103
+ };
104
+ getClaimableAmount: {
105
+ params: Omit<SignExecuteContractMethodParams<{}>, "args">;
106
+ result: SignExecuteScriptTxResult;
107
+ };
108
+ claim: {
109
+ params: SignExecuteContractMethodParams<{ amount: bigint }>;
110
+ result: SignExecuteScriptTxResult;
111
+ };
112
+ destroy: {
113
+ params: Omit<SignExecuteContractMethodParams<{}>, "args">;
114
+ result: SignExecuteScriptTxResult;
115
+ };
116
+ }
117
+ export type SignExecuteMethodParams<T extends keyof SignExecuteMethodTable> =
118
+ SignExecuteMethodTable[T]["params"];
119
+ export type SignExecuteMethodResult<T extends keyof SignExecuteMethodTable> =
120
+ SignExecuteMethodTable[T]["result"];
121
+ }
122
+
123
+ class Factory extends ContractFactory<
124
+ AlphUnstakeVaultInstance,
125
+ AlphUnstakeVaultTypes.Fields
126
+ > {
127
+ encodeFields(fields: AlphUnstakeVaultTypes.Fields) {
128
+ return encodeContractFields(
129
+ addStdIdToFields(this.contract, fields),
130
+ this.contract.fieldsSig,
131
+ types.AllStructs
132
+ );
133
+ }
134
+
135
+ consts = {
136
+ FullMathError: { DivByZero: BigInt("350"), MulDivOverflow: BigInt("351") },
137
+ ErrorCodes: {
138
+ InvalidCaller: BigInt("20"),
139
+ InsufficientClaimableAmount: BigInt("21"),
140
+ InvalidUnstakeDuration: BigInt("22"),
141
+ InvalidTimestamp: BigInt("23"),
142
+ },
143
+ };
144
+
145
+ at(address: string): AlphUnstakeVaultInstance {
146
+ return new AlphUnstakeVaultInstance(address);
147
+ }
148
+
149
+ tests = {
150
+ mulDiv: async (
151
+ params: TestContractParamsWithoutMaps<
152
+ AlphUnstakeVaultTypes.Fields,
153
+ { a: bigint; b: bigint; denominator: bigint }
154
+ >
155
+ ): Promise<TestContractResultWithoutMaps<bigint>> => {
156
+ return testMethod(this, "mulDiv", params, getContractByCodeHash);
157
+ },
158
+ getTotalUnstakeAmount: async (
159
+ params: Omit<
160
+ TestContractParamsWithoutMaps<AlphUnstakeVaultTypes.Fields, never>,
161
+ "args"
162
+ >
163
+ ): Promise<TestContractResultWithoutMaps<bigint>> => {
164
+ return testMethod(
165
+ this,
166
+ "getTotalUnstakeAmount",
167
+ params,
168
+ getContractByCodeHash
169
+ );
170
+ },
171
+ getClaimableAmount: async (
172
+ params: Omit<
173
+ TestContractParamsWithoutMaps<AlphUnstakeVaultTypes.Fields, never>,
174
+ "args"
175
+ >
176
+ ): Promise<TestContractResultWithoutMaps<bigint>> => {
177
+ return testMethod(
178
+ this,
179
+ "getClaimableAmount",
180
+ params,
181
+ getContractByCodeHash
182
+ );
183
+ },
184
+ claim: async (
185
+ params: TestContractParamsWithoutMaps<
186
+ AlphUnstakeVaultTypes.Fields,
187
+ { amount: bigint }
188
+ >
189
+ ): Promise<TestContractResultWithoutMaps<boolean>> => {
190
+ return testMethod(this, "claim", params, getContractByCodeHash);
191
+ },
192
+ destroy: async (
193
+ params: Omit<
194
+ TestContractParamsWithoutMaps<AlphUnstakeVaultTypes.Fields, never>,
195
+ "args"
196
+ >
197
+ ): Promise<TestContractResultWithoutMaps<null>> => {
198
+ return testMethod(this, "destroy", params, getContractByCodeHash);
199
+ },
200
+ };
201
+
202
+ stateForTest(
203
+ initFields: AlphUnstakeVaultTypes.Fields,
204
+ asset?: Asset,
205
+ address?: string
206
+ ) {
207
+ return this.stateForTest_(initFields, asset, address, undefined);
208
+ }
209
+ }
210
+
211
+ // Use this object to test and deploy the contract
212
+ export const AlphUnstakeVault = new Factory(
213
+ Contract.fromJson(
214
+ AlphUnstakeVaultContractJson,
215
+ "",
216
+ "5216c458f360d0f51f5e2109a760814ff97eab76f546adc835eb318c6cbc5256",
217
+ types.AllStructs
218
+ )
219
+ );
220
+ registerContract(AlphUnstakeVault);
221
+
222
+ // Use this class to interact with the blockchain
223
+ export class AlphUnstakeVaultInstance extends ContractInstance {
224
+ constructor(address: Address) {
225
+ super(address);
226
+ }
227
+
228
+ async fetchState(): Promise<AlphUnstakeVaultTypes.State> {
229
+ return fetchContractState(AlphUnstakeVault, this);
230
+ }
231
+
232
+ view = {
233
+ mulDiv: async (
234
+ params: AlphUnstakeVaultTypes.CallMethodParams<"mulDiv">
235
+ ): Promise<AlphUnstakeVaultTypes.CallMethodResult<"mulDiv">> => {
236
+ return callMethod(
237
+ AlphUnstakeVault,
238
+ this,
239
+ "mulDiv",
240
+ params,
241
+ getContractByCodeHash
242
+ );
243
+ },
244
+ getTotalUnstakeAmount: async (
245
+ params?: AlphUnstakeVaultTypes.CallMethodParams<"getTotalUnstakeAmount">
246
+ ): Promise<
247
+ AlphUnstakeVaultTypes.CallMethodResult<"getTotalUnstakeAmount">
248
+ > => {
249
+ return callMethod(
250
+ AlphUnstakeVault,
251
+ this,
252
+ "getTotalUnstakeAmount",
253
+ params === undefined ? {} : params,
254
+ getContractByCodeHash
255
+ );
256
+ },
257
+ getClaimableAmount: async (
258
+ params?: AlphUnstakeVaultTypes.CallMethodParams<"getClaimableAmount">
259
+ ): Promise<
260
+ AlphUnstakeVaultTypes.CallMethodResult<"getClaimableAmount">
261
+ > => {
262
+ return callMethod(
263
+ AlphUnstakeVault,
264
+ this,
265
+ "getClaimableAmount",
266
+ params === undefined ? {} : params,
267
+ getContractByCodeHash
268
+ );
269
+ },
270
+ claim: async (
271
+ params: AlphUnstakeVaultTypes.CallMethodParams<"claim">
272
+ ): Promise<AlphUnstakeVaultTypes.CallMethodResult<"claim">> => {
273
+ return callMethod(
274
+ AlphUnstakeVault,
275
+ this,
276
+ "claim",
277
+ params,
278
+ getContractByCodeHash
279
+ );
280
+ },
281
+ destroy: async (
282
+ params?: AlphUnstakeVaultTypes.CallMethodParams<"destroy">
283
+ ): Promise<AlphUnstakeVaultTypes.CallMethodResult<"destroy">> => {
284
+ return callMethod(
285
+ AlphUnstakeVault,
286
+ this,
287
+ "destroy",
288
+ params === undefined ? {} : params,
289
+ getContractByCodeHash
290
+ );
291
+ },
292
+ };
293
+
294
+ transact = {
295
+ mulDiv: async (
296
+ params: AlphUnstakeVaultTypes.SignExecuteMethodParams<"mulDiv">
297
+ ): Promise<AlphUnstakeVaultTypes.SignExecuteMethodResult<"mulDiv">> => {
298
+ return signExecuteMethod(AlphUnstakeVault, this, "mulDiv", params);
299
+ },
300
+ getTotalUnstakeAmount: async (
301
+ params: AlphUnstakeVaultTypes.SignExecuteMethodParams<"getTotalUnstakeAmount">
302
+ ): Promise<
303
+ AlphUnstakeVaultTypes.SignExecuteMethodResult<"getTotalUnstakeAmount">
304
+ > => {
305
+ return signExecuteMethod(
306
+ AlphUnstakeVault,
307
+ this,
308
+ "getTotalUnstakeAmount",
309
+ params
310
+ );
311
+ },
312
+ getClaimableAmount: async (
313
+ params: AlphUnstakeVaultTypes.SignExecuteMethodParams<"getClaimableAmount">
314
+ ): Promise<
315
+ AlphUnstakeVaultTypes.SignExecuteMethodResult<"getClaimableAmount">
316
+ > => {
317
+ return signExecuteMethod(
318
+ AlphUnstakeVault,
319
+ this,
320
+ "getClaimableAmount",
321
+ params
322
+ );
323
+ },
324
+ claim: async (
325
+ params: AlphUnstakeVaultTypes.SignExecuteMethodParams<"claim">
326
+ ): Promise<AlphUnstakeVaultTypes.SignExecuteMethodResult<"claim">> => {
327
+ return signExecuteMethod(AlphUnstakeVault, this, "claim", params);
328
+ },
329
+ destroy: async (
330
+ params: AlphUnstakeVaultTypes.SignExecuteMethodParams<"destroy">
331
+ ): Promise<AlphUnstakeVaultTypes.SignExecuteMethodResult<"destroy">> => {
332
+ return signExecuteMethod(AlphUnstakeVault, this, "destroy", params);
333
+ },
334
+ };
335
+
336
+ async multicall<Calls extends AlphUnstakeVaultTypes.MultiCallParams>(
337
+ calls: Calls
338
+ ): Promise<AlphUnstakeVaultTypes.MultiCallResults<Calls>>;
339
+ async multicall<Callss extends AlphUnstakeVaultTypes.MultiCallParams[]>(
340
+ callss: Narrow<Callss>
341
+ ): Promise<AlphUnstakeVaultTypes.MulticallReturnType<Callss>>;
342
+ async multicall<
343
+ Callss extends
344
+ | AlphUnstakeVaultTypes.MultiCallParams
345
+ | AlphUnstakeVaultTypes.MultiCallParams[]
346
+ >(callss: Callss): Promise<unknown> {
347
+ return await multicallMethods(
348
+ AlphUnstakeVault,
349
+ this,
350
+ callss,
351
+ getContractByCodeHash
352
+ );
353
+ }
354
+ }