@alephium/powfi-sdk 0.0.1-rc.2 → 0.0.1-rc.21
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 +97 -1
- package/clmm/artifacts/BitmapWord.ral.json +1 -1
- package/clmm/artifacts/BitmapWordDeployer.ral.json +1 -1
- package/clmm/artifacts/CreateConfig.ral.json +1 -1
- package/clmm/artifacts/CreateLiquidPool.ral.json +1 -1
- package/clmm/artifacts/DexAccount.ral.json +1 -1
- package/clmm/artifacts/LiquidityAmountsTest.ral.json +1 -1
- package/clmm/artifacts/LiquidityManagmentTest.ral.json +1 -1
- package/clmm/artifacts/Pool.ral.json +14 -5
- package/clmm/artifacts/PoolConfig.ral.json +1 -1
- package/clmm/artifacts/PoolFactory.ral.json +1 -1
- package/clmm/artifacts/PoolRouterDemo.ral.json +2 -2
- package/clmm/artifacts/PoolUser.ral.json +1 -1
- package/clmm/artifacts/Position.ral.json +18 -4
- package/clmm/artifacts/PositionManager.ral.json +1 -1
- package/clmm/artifacts/SwapWithoutAccount.ral.json +2 -2
- package/clmm/artifacts/TestToken.ral.json +1 -1
- package/clmm/artifacts/Tick.ral.json +1 -1
- package/clmm/artifacts/TickBitmapTest.ral.json +1 -1
- package/clmm/artifacts/ts/Pool.ts +14 -2
- package/clmm/artifacts/ts/Position.ts +37 -3
- package/cpmm/artifacts/scripts/CreatePairAndAddLiquidity.ral.json +6 -3
- package/cpmm/artifacts/ts/scripts.ts +1 -0
- package/lib/index.d.mts +242 -119
- package/lib/index.d.ts +242 -119
- package/lib/index.js +627 -329
- package/lib/index.js.map +1 -1
- package/lib/index.mjs +628 -329
- package/lib/index.mjs.map +1 -1
- package/package.json +9 -8
- package/src/clmm/clmm.ts +70 -47
- package/src/clmm/liquidity.ts +1 -1
- package/src/clmm/pool.ts +15 -17
- package/src/clmm/tick.ts +21 -33
- package/src/clmm/types.ts +12 -12
- package/src/common/error.ts +7 -7
- package/src/common/types.ts +1 -1
- package/src/cpmm/cpmm.ts +135 -103
- package/src/cpmm/types.ts +48 -42
- package/src/index.ts +1 -1
- package/src/moduleBase.ts +3 -3
- package/src/{zeta.ts → powfi.ts} +5 -5
- package/src/staking/staking.ts +31 -24
- package/src/token/token.ts +2 -2
- package/staking/artifacts/AlphUnstakeVault.ral.json +13 -3
- package/staking/artifacts/XAlphStakeVault.ral.json +1 -1
- package/staking/artifacts/XAlphToken.ral.json +139 -6
- package/staking/artifacts/XAlphUnlockAndStartUnstake.ral.json +2 -2
- package/staking/artifacts/examples/GovernanceDemo.ral.json +1 -1
- package/staking/artifacts/examples/RewardSharingVault.ral.json +1 -1
- package/staking/artifacts/ts/AlphUnstakeVault.ts +40 -1
- package/staking/artifacts/ts/XAlphToken.ts +209 -8
- package/staking/artifacts/ts/scripts.ts +0 -10
- package/staking/artifacts/utils/FullMathTest.ral.json +1 -1
- package/staking/artifacts/utils/TestDynamicArrayByteVec32.ral.json +1 -1
- package/staking/artifacts/utils/TestDynamicSortedArrayForU256.ral.json +1 -1
- package/staking/artifacts/utils/TestMerkleProof.ral.json +1 -1
- package/staking/deployments/.deployments.devnet.json +45 -44
- package/staking/deployments/.deployments.testnet.json +23 -23
- package/staking/artifacts/AlphStakeAndLock.ral.json +0 -31
package/src/{zeta.ts → powfi.ts}
RENAMED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import type { SignerProvider, Account } from '@alephium/web3';
|
|
2
2
|
import { NodeProvider, ExplorerProvider, web3 } from '@alephium/web3';
|
|
3
3
|
import { CpmmModule } from './cpmm/cpmm';
|
|
4
|
-
import type { Network,
|
|
4
|
+
import type { Network, PowfiLoadParams } from './common/types';
|
|
5
5
|
import { defaultNetworks } from './common/types';
|
|
6
6
|
import { ClmmModule } from './clmm/clmm';
|
|
7
7
|
import { TokenModule } from './token/token';
|
|
8
8
|
import { StakingModule } from './staking/staking';
|
|
9
9
|
|
|
10
|
-
export class
|
|
10
|
+
export class Powfi {
|
|
11
11
|
public cpmm: CpmmModule;
|
|
12
12
|
public clmm: ClmmModule;
|
|
13
13
|
public token: TokenModule;
|
|
@@ -20,7 +20,7 @@ export class Zeta {
|
|
|
20
20
|
private _account?: Account;
|
|
21
21
|
private _network: Network;
|
|
22
22
|
|
|
23
|
-
constructor(params:
|
|
23
|
+
constructor(params: PowfiLoadParams) {
|
|
24
24
|
const network = defaultNetworks.find((n) => n.id === params.networkId);
|
|
25
25
|
if (!network) {
|
|
26
26
|
throw new Error(`Network ${params.networkId} not found`);
|
|
@@ -42,8 +42,8 @@ export class Zeta {
|
|
|
42
42
|
this.staking = new StakingModule(this);
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
static load(config:
|
|
46
|
-
return new
|
|
45
|
+
static load(config: PowfiLoadParams): Powfi {
|
|
46
|
+
return new Powfi(config);
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
public set signer(signer: SignerProvider) {
|
package/src/staking/staking.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ExecuteScriptResult, HexString } from '@alephium/web3';
|
|
2
2
|
import {
|
|
3
|
+
DUST_AMOUNT,
|
|
3
4
|
MINIMAL_CONTRACT_DEPOSIT,
|
|
4
5
|
addressFromContractId,
|
|
5
6
|
addressToBytes,
|
|
@@ -20,7 +21,6 @@ import type {
|
|
|
20
21
|
XAlphTokenTypes,
|
|
21
22
|
} from 'staking/artifacts/ts';
|
|
22
23
|
import {
|
|
23
|
-
AlphStakeAndLock,
|
|
24
24
|
AlphUnstakeVault,
|
|
25
25
|
GovernanceDemo,
|
|
26
26
|
RewardSharingVault,
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
} from 'staking/artifacts/ts';
|
|
31
31
|
import { loadDeployments } from 'staking/artifacts/ts/deployments';
|
|
32
32
|
import ModuleBase from '../moduleBase';
|
|
33
|
-
import type {
|
|
33
|
+
import type { Powfi } from '../powfi';
|
|
34
34
|
import type { StakeVaultUserInfo, StakingConfig } from './types';
|
|
35
35
|
import { decodeContractIdList, decodeU256List } from './utils';
|
|
36
36
|
import type { StakingSettings } from './settings';
|
|
@@ -41,7 +41,7 @@ export class StakingModule extends ModuleBase {
|
|
|
41
41
|
private xAlphTokenContract: XAlphTokenInstance;
|
|
42
42
|
private stakeVaultContract: XAlphStakeVaultInstance;
|
|
43
43
|
|
|
44
|
-
constructor(scope:
|
|
44
|
+
constructor(scope: Powfi) {
|
|
45
45
|
super({ scope, moduleName: 'StakingModule' });
|
|
46
46
|
|
|
47
47
|
this.config = this.loadStakingConfig();
|
|
@@ -119,6 +119,16 @@ export class StakingModule extends ModuleBase {
|
|
|
119
119
|
});
|
|
120
120
|
}
|
|
121
121
|
|
|
122
|
+
async cancelUnstake(
|
|
123
|
+
vaultIndex: bigint,
|
|
124
|
+
): Promise<XAlphTokenTypes.SignExecuteMethodResult<'cancelUnstake'>> {
|
|
125
|
+
return this.xAlphTokenContract.transact.cancelUnstake({
|
|
126
|
+
signer: this.scope.signer,
|
|
127
|
+
args: { vaultIndex },
|
|
128
|
+
attoAlphAmount: DUST_AMOUNT
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
|
|
122
132
|
async stakeXAlph(amount: bigint): Promise<XAlphStakeVaultTypes.SignExecuteMethodResult<'stake'>> {
|
|
123
133
|
this.ensurePositiveAmount(amount, 'Stake amount');
|
|
124
134
|
return this.stakeVaultContract.transact.stake({
|
|
@@ -140,18 +150,6 @@ export class StakingModule extends ModuleBase {
|
|
|
140
150
|
});
|
|
141
151
|
}
|
|
142
152
|
|
|
143
|
-
async stakeAndLockAlph(amount: bigint): Promise<ExecuteScriptResult> {
|
|
144
|
-
return AlphStakeAndLock.execute({
|
|
145
|
-
signer: this.scope.signer,
|
|
146
|
-
initialFields: {
|
|
147
|
-
xAlphToken: this.xAlphTokenContract.contractId,
|
|
148
|
-
xAlphStakeVault: this.stakeVaultContract.contractId,
|
|
149
|
-
amount,
|
|
150
|
-
},
|
|
151
|
-
attoAlphAmount: amount + MINIMAL_CONTRACT_DEPOSIT,
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
|
|
155
153
|
async unlockAndStartUnstake(amount: bigint): Promise<ExecuteScriptResult> {
|
|
156
154
|
return XAlphUnlockAndStartUnstake.execute({
|
|
157
155
|
signer: this.scope.signer,
|
|
@@ -179,7 +177,8 @@ export class StakingModule extends ModuleBase {
|
|
|
179
177
|
userAddress: string,
|
|
180
178
|
vaultIndex: bigint,
|
|
181
179
|
): Promise<AlphUnstakeVaultTypes.State> {
|
|
182
|
-
|
|
180
|
+
const stakerAddress = this.getStakerAddress(userAddress);
|
|
181
|
+
return this.getAlphUnstakeVault(stakerAddress, vaultIndex).fetchState();
|
|
183
182
|
}
|
|
184
183
|
|
|
185
184
|
async connectToDapp(
|
|
@@ -204,10 +203,7 @@ export class StakingModule extends ModuleBase {
|
|
|
204
203
|
}
|
|
205
204
|
|
|
206
205
|
async getUserStakeVaultInfo(address: string): Promise<StakeVaultUserInfo> {
|
|
207
|
-
|
|
208
|
-
if (isGrouplessAddressWithoutGroupIndex(address)) {
|
|
209
|
-
stakerAddress = `${address}:${this.stakeVaultContract.groupIndex}`;
|
|
210
|
-
}
|
|
206
|
+
const stakerAddress = this.getStakerAddress(address);
|
|
211
207
|
const result = await this.stakeVaultContract.view.getUserStakingInfo({
|
|
212
208
|
args: { user: stakerAddress },
|
|
213
209
|
});
|
|
@@ -218,25 +214,29 @@ export class StakingModule extends ModuleBase {
|
|
|
218
214
|
}
|
|
219
215
|
|
|
220
216
|
async isUserStaking(address: string): Promise<boolean> {
|
|
221
|
-
const
|
|
217
|
+
const stakerAddress = this.getStakerAddress(address);
|
|
218
|
+
const result = await this.stakeVaultContract.view.isStaking({ args: { user: stakerAddress } });
|
|
222
219
|
return result.returns;
|
|
223
220
|
}
|
|
224
221
|
|
|
225
222
|
async getUserWeight(address: string): Promise<bigint> {
|
|
226
|
-
const
|
|
223
|
+
const stakerAddress = this.getStakerAddress(address);
|
|
224
|
+
const result = await this.stakeVaultContract.view.getWeight({ args: { user: stakerAddress } });
|
|
227
225
|
return result.returns;
|
|
228
226
|
}
|
|
229
227
|
|
|
230
228
|
async getActiveUnstakeVaultIndexes(address: string): Promise<bigint[]> {
|
|
229
|
+
const stakerAddress = this.getStakerAddress(address);
|
|
231
230
|
const result = await this.xAlphTokenContract.view.getActiveUnstakeVaultIndexes({
|
|
232
|
-
args: { caller:
|
|
231
|
+
args: { caller: stakerAddress },
|
|
233
232
|
});
|
|
234
233
|
return decodeU256List(result.returns);
|
|
235
234
|
}
|
|
236
235
|
|
|
237
236
|
async getClaimableAmount(address: string, vaultIndex: bigint): Promise<bigint> {
|
|
237
|
+
const stakerAddress = this.getStakerAddress(address);
|
|
238
238
|
const result = await this.xAlphTokenContract.view.getClaimableAmount({
|
|
239
|
-
args: { user:
|
|
239
|
+
args: { user: stakerAddress, vaultIndex },
|
|
240
240
|
});
|
|
241
241
|
return result.returns;
|
|
242
242
|
}
|
|
@@ -274,4 +274,11 @@ export class StakingModule extends ModuleBase {
|
|
|
274
274
|
throw new Error(`${label} must be greater than zero`);
|
|
275
275
|
}
|
|
276
276
|
}
|
|
277
|
+
|
|
278
|
+
private getStakerAddress(address: string): string {
|
|
279
|
+
if (isGrouplessAddressWithoutGroupIndex(address)) {
|
|
280
|
+
return `${address}:${this.stakeVaultContract.groupIndex}`;
|
|
281
|
+
}
|
|
282
|
+
return address;
|
|
283
|
+
}
|
|
277
284
|
}
|
package/src/token/token.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { TokenInfo } from '@alephium/token-list';
|
|
2
2
|
import ModuleBase from '../moduleBase';
|
|
3
|
-
import type {
|
|
3
|
+
import type { Powfi } from '../powfi';
|
|
4
4
|
import { TokenListFetchError } from '../common/error';
|
|
5
5
|
|
|
6
6
|
interface TokenCache {
|
|
@@ -17,7 +17,7 @@ export class TokenModule extends ModuleBase {
|
|
|
17
17
|
private readonly cacheTimeMs: number;
|
|
18
18
|
|
|
19
19
|
constructor(
|
|
20
|
-
scope:
|
|
20
|
+
scope: Powfi,
|
|
21
21
|
private readonly cacheTimeDays: number = 1,
|
|
22
22
|
) {
|
|
23
23
|
super({ scope, moduleName: 'TokenModule' });
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "v4.
|
|
2
|
+
"version": "v4.3.1",
|
|
3
3
|
"name": "AlphUnstakeVault",
|
|
4
|
-
"bytecode": "
|
|
5
|
-
"codeHash": "
|
|
4
|
+
"bytecode": "060640ea40f84138417241ac41c60000030901409216020c3013415e7b160016010c0d3687170316001601371704160316043616031604314c020d4a010c36170516050c2f4c04160416022d02160216053313415f7b160016011602871706160516061604334c020d4a010c361705160416063617040c1602361602381707160216072d1702160416072d17040c16073616072d0d351707160416051607373917040f1602370e3a170816080e16021608373637170816080e16021608373637170816080e16021608373637170816080e16021608373637170816080e16021608373637170816080e160216083736371708160416083702010000000103d3f10c9d97ce020201000003014020d3223281b2ce040c3313167b5617001600ce033413177b1600ce032b1701ce0217021601ce04314c0516021601ce04000017021602a0002b0201020102011fd30e00e856b417011601ce0077457a4b04181601ce014513147b160000023213157bce011600a8a00016002aa100a000ce022f0201020004021ed34a517d1bb417001600ce00774513147b00021701ce02a0002b1702160216012b170316030c334c04ce00771603a8160116030201020001000bd38e18691cb417001600ce00774513147bce01b0",
|
|
5
|
+
"codeHash": "a065f4a88edfe06c09d65e3c11154fe9d5a5b1cdc42b36adf1a3485ff8a51394",
|
|
6
6
|
"fieldsSig": {
|
|
7
7
|
"names": [
|
|
8
8
|
"xalphToken",
|
|
@@ -85,6 +85,16 @@
|
|
|
85
85
|
"Bool"
|
|
86
86
|
]
|
|
87
87
|
},
|
|
88
|
+
{
|
|
89
|
+
"name": "cancelAndReturn",
|
|
90
|
+
"paramNames": [],
|
|
91
|
+
"paramTypes": [],
|
|
92
|
+
"paramIsMutable": [],
|
|
93
|
+
"returnTypes": [
|
|
94
|
+
"U256",
|
|
95
|
+
"U256"
|
|
96
|
+
]
|
|
97
|
+
},
|
|
88
98
|
{
|
|
89
99
|
"name": "destroy",
|
|
90
100
|
"paramNames": [],
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "v4.
|
|
2
|
+
"version": "v4.3.1",
|
|
3
3
|
"name": "XAlphStakeVault",
|
|
4
4
|
"bytecode": "05174028407340af40cc40fc411a41284136414f41a341c341cd41db42234241431043f0448b451145604577458e45a7010002030112d3545eacd4160116000005311342277b160113202c170216001602160213202a620201000204014028d3083a358916004313202e0c2f1342267b16014313202f1342287b1600000517020c170316031602314c0e1600160300001601414c0316033f0216030d2a17034a2e0b0201000203011fd3694941c216004313202e0c2f1342267b16014313202f1342287b160016010001170216020b244c031600024a05160016023d00040201000202010dd354ad273416004313202e0c2f1342267b160016014402010002030118d34b2e25b7160116000005311342277b160113202c170216000c1602621600160213202a16004362440201000101010ed30041471116004313202e0c2f1342267b16004313202d02010000000103d3676c3c33140002010000000103d393f264e8a0000200000101000c16004313202f136afb7b1600a10005a000b45f0000020601402e16014313202f136afa7b160117021600431703160313202e0c2f136af97b0c170416041603314c1016001604160413202a62170516051602000a1702160413202a17044a2c160271a000712f02000002020110160071160171314c051600160144000b4a041601160044000b0200000101010316004f02010000000103d3b299f80ace000201000102021ed3f87904e4140a5f5f6d61705f5f305f5f16004744cbc5194c040c0006024a110c0d0d140a5f5f6d61705f5f305f5f16004744cb1701160101010d0d0d1601010102010001010108d32b875d11140a5f5f6d61705f5f305f5f16004744cbc5020101010800405fd3d63c543cb4170116014813412d7b16000c331341307b1601ce001600ac140a5f5f6d61705f5f305f5f16014744cbc54c40370c0d0d140a5f5f6d61705f5f305f5f16014744cb1707160701010d0d0d1607010117031702160216002a0c0e0c140a5f5f6d61705f5f305f5f16014744cb01021603000517040c170516051604314c0f1603160500001706160116000e0c1606d4926b380b16050d2a17054a2d4a09ca140a5f5f6d61705f5f305f5f16014744b116000006d20102a00116002aa10106160116005f0102010900406bd310bd129fb4170116014813412d7b140a5f5f6d61705f5f305f5f16014744cbc513412e7b16000c331341317b0c0d0d140a5f5f6d61705f5f305f5f16014744cb1708160801010d0d0d1608010117031702160216003413412f7b160216002b17041603000517050c170616061605314c0f1603160600001707160116000e0c1607d465b06cae16060d2a17064a2d16040c2f4c0aca0d0c140a5f5f6d61705f5f305f5f16014744cb01034a0a16040c0e0c140a5f5f6d61705f5f305f5f16014744cb01021601ce001600aba00116002ba10107160116005f01000206004045d3c5f91cb4b4170216024813412d7b1601160000161341357b140a5f5f6d61705f5f305f5f16024744cbc513412e7b0c0d0d140a5f5f6d61705f5f305f5f16024744cb1705160501010d0d0d160501011704170316040005ce01311341327b1604160000010b241341337b160216030e0c1600d4926b380b1604160000030d0e0c140a5f5f6d61705f5f305f5f16024744cb01020100010500403ad3b6398887b4170116014813412d7b140a5f5f6d61705f5f305f5f16014744cbc513412e7b0c0d0d140a5f5f6d61705f5f305f5f16014744cb1704160401010d0d0d16040101170317021603160000010b251341347b160116020e0c1600d465b06cae1603160000020d0e0c140a5f5f6d61705f5f305f5f16014744cb010201000101011fd3e5725392140a5f5f6d61705f5f305f5f16004744cbc5197a4b0418a0010c2f4c020c020c0d0d140a5f5f6d61705f5f305f5f16004744cb010113c40de0b6b3a76400002ca0012d02010001010008d3e5bf78dcb4a0024513412c7b16000008010001010008d34f58efe6b4a0024513412c7b1600a102010002030109d3af1ed9dd1601b9170216001602000b000902",
|
|
5
5
|
"codeHash": "06a6db7355978ed027d5a0d36573bf54cef4a67d503b270b8ede5870b3117c7b",
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "v4.
|
|
2
|
+
"version": "v4.3.1",
|
|
3
3
|
"name": "XAlphToken",
|
|
4
|
-
"bytecode": "
|
|
5
|
-
"codeHash": "
|
|
4
|
+
"bytecode": "0a1509121b40244051407a40ac40ca4117414741654173425d426b42c643b243e0441a443c44c54593010000000102ce0002010000000102ce0102010000000102ce0202010000000102a00102010002040115d3cee9319416011600000a311342277b160113202c170216001602160213202a62170316037102010002030114d33cd5e72916004313202e0c2f1342267b16004313202d1702160016010c1602000802010002030119d32cabd28216004313202e0c2f1342267b160016010005170216020b244c031600024a05160016023d00090201000202010ed31bc25d3416004313202e0c2f1342267b160016016b44020000040601402a16021603344c020b02160216032a0e2d17041600160400041705160516012f4c0316043f0216051601314c091600160116040d2a16030008024a061600160116021604000802010002030118d34b2e25b716011600000a311342277b160113202c170216000c1602621600160213202a16004362440201000101010ed30041471116004313202e0c2f1342267b16004313202d02010000000103d3676c3c331400020000030901409216020c3013415e7b160016010c0d3687170316001601371704160316043616031604314c020d4a010c36170516050c2f4c04160416022d02160216053313415f7b160016011602871706160516061604334c020d4a010c361705160416063617040c1602361602381707160216072d1702160416072d17040c16073616072d0d351707160416051607373917040f1602370e3a170816080e16021608373637170816080e16021608373637170816080e16021608373637170816080e16021608373637170816080e16021608373637170816080e160216083736371708160416083702010000000103d38719c92ea0000201010103014032d38bbc9beeb41701160148130a7b16000c33130e7ba0010c2f4c0216004a041600a001a000000c170216020c33130f7b1601b11602ab16011600a9a00016002aa100a00116022aa101051601160016026016020201010107014078d33538a49fb41701160148130a7bce050c33130c7b16000c33130e7b1600a000a001000c170216020c3313107ba0020d2aa102140a5f5f6d61705f5f305f5f16014744cbc54c1d0c0d0d140a5f5f6d61705f5f305f5f16014744cb010117031603000ace0431130b7b1603a00200070c0e0c140a5f5f6d61705f5f305f5f16014744cb01024a09ca140a5f5f6d61705f5f305f5f16014744b1a0026bd201011601b11600acb11601160256ce051305640c13016417051704b21602a2160147a0024044ce0316041605c11706a00016022ba100a00116002ba1010616011600160260160602010701020018d3fe1110a1b4170116000c33130e7ba0010c3313117b16011600a9a00016002aa10008160116005f010001010115d38072397d140a5f5f6d61705f5f305f5f16004744cbc5194c021400020c0d0d140a5f5f6d61705f5f305f5f16004744cb010102010002030111d3fd3d3af616004716014044cb17021602c5130d7b0c0d160201020201000206004040d38bb32147b4170216024716004044cb170316010c33130e7b16010d0d16030103170416044c40290c0d0d140a5f5f6d61705f5f305f5f16024744cb01011600000617051605430c2f4c0a16020d0c140a5f5f6d61705f5f305f5f16024744cb01034a0a16050c0e0c140a5f5f6d61705f5f305f5f16024744cb01020c0c160301050102010701406bd30bdc6a97b41701160148130a7b16014716004044cb17021602c5130d7b0c0e16020104170417030c0c160201050c170516040c334c1ca0010c2f4c0216044a041604a001a000000c170516050c33130f7b1601b11605aba00016042aa100a00116052aa1010c0d0d140a5f5f6d61705f5f305f5f16014744cb01011600000617061606430c2f4c0a16010d0c140a5f5f6d61705f5f305f5f16014744cb01034a0a16060c0e0c140a5f5f6d61705f5f305f5f16014744cb010207160116051603160461160502",
|
|
5
|
+
"codeHash": "3329d0319da90857686a9e618c3fa8197226ed9be58b7371314b3247d9fd8e1c",
|
|
6
6
|
"fieldsSig": {
|
|
7
7
|
"names": [
|
|
8
8
|
"symbol",
|
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
"unstakeVaultTemplateId",
|
|
12
12
|
"maxActiveUnstakeRequestsPerUser",
|
|
13
13
|
"unstakeDuration",
|
|
14
|
-
"
|
|
14
|
+
"totalDepositedAlph",
|
|
15
|
+
"totalXAlphSupply",
|
|
15
16
|
"lastUnstakeVaultIndex",
|
|
16
17
|
"__stdInterfaceId"
|
|
17
18
|
],
|
|
@@ -24,6 +25,7 @@
|
|
|
24
25
|
"U256",
|
|
25
26
|
"U256",
|
|
26
27
|
"U256",
|
|
28
|
+
"U256",
|
|
27
29
|
"ByteVec"
|
|
28
30
|
],
|
|
29
31
|
"isMutable": [
|
|
@@ -35,6 +37,7 @@
|
|
|
35
37
|
false,
|
|
36
38
|
true,
|
|
37
39
|
true,
|
|
40
|
+
true,
|
|
38
41
|
false
|
|
39
42
|
]
|
|
40
43
|
},
|
|
@@ -43,10 +46,12 @@
|
|
|
43
46
|
"name": "Staked",
|
|
44
47
|
"fieldNames": [
|
|
45
48
|
"to",
|
|
46
|
-
"
|
|
49
|
+
"alphAmount",
|
|
50
|
+
"xAlphAmount"
|
|
47
51
|
],
|
|
48
52
|
"fieldTypes": [
|
|
49
53
|
"Address",
|
|
54
|
+
"U256",
|
|
50
55
|
"U256"
|
|
51
56
|
]
|
|
52
57
|
},
|
|
@@ -54,6 +59,34 @@
|
|
|
54
59
|
"name": "UnstakeScheduled",
|
|
55
60
|
"fieldNames": [
|
|
56
61
|
"to",
|
|
62
|
+
"xAlphAmount",
|
|
63
|
+
"alphAmount"
|
|
64
|
+
],
|
|
65
|
+
"fieldTypes": [
|
|
66
|
+
"Address",
|
|
67
|
+
"U256",
|
|
68
|
+
"U256"
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "UnstakeCancelled",
|
|
73
|
+
"fieldNames": [
|
|
74
|
+
"to",
|
|
75
|
+
"xAlphAmount",
|
|
76
|
+
"claimedAlphAmount",
|
|
77
|
+
"restakedAlphAmount"
|
|
78
|
+
],
|
|
79
|
+
"fieldTypes": [
|
|
80
|
+
"Address",
|
|
81
|
+
"U256",
|
|
82
|
+
"U256",
|
|
83
|
+
"U256"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"name": "RewardDeposited",
|
|
88
|
+
"fieldNames": [
|
|
89
|
+
"from",
|
|
57
90
|
"amount"
|
|
58
91
|
],
|
|
59
92
|
"fieldTypes": [
|
|
@@ -237,6 +270,36 @@
|
|
|
237
270
|
"ByteVec"
|
|
238
271
|
]
|
|
239
272
|
},
|
|
273
|
+
{
|
|
274
|
+
"name": "mulDiv",
|
|
275
|
+
"paramNames": [
|
|
276
|
+
"a",
|
|
277
|
+
"b",
|
|
278
|
+
"denominator"
|
|
279
|
+
],
|
|
280
|
+
"paramTypes": [
|
|
281
|
+
"U256",
|
|
282
|
+
"U256",
|
|
283
|
+
"U256"
|
|
284
|
+
],
|
|
285
|
+
"paramIsMutable": [
|
|
286
|
+
false,
|
|
287
|
+
false,
|
|
288
|
+
true
|
|
289
|
+
],
|
|
290
|
+
"returnTypes": [
|
|
291
|
+
"U256"
|
|
292
|
+
]
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
"name": "getTotalDepositedAlph",
|
|
296
|
+
"paramNames": [],
|
|
297
|
+
"paramTypes": [],
|
|
298
|
+
"paramIsMutable": [],
|
|
299
|
+
"returnTypes": [
|
|
300
|
+
"U256"
|
|
301
|
+
]
|
|
302
|
+
},
|
|
240
303
|
{
|
|
241
304
|
"name": "stake",
|
|
242
305
|
"paramNames": [
|
|
@@ -248,7 +311,9 @@
|
|
|
248
311
|
"paramIsMutable": [
|
|
249
312
|
false
|
|
250
313
|
],
|
|
251
|
-
"returnTypes": [
|
|
314
|
+
"returnTypes": [
|
|
315
|
+
"U256"
|
|
316
|
+
]
|
|
252
317
|
},
|
|
253
318
|
{
|
|
254
319
|
"name": "startUnstake",
|
|
@@ -265,6 +330,19 @@
|
|
|
265
330
|
"ByteVec"
|
|
266
331
|
]
|
|
267
332
|
},
|
|
333
|
+
{
|
|
334
|
+
"name": "depositReward",
|
|
335
|
+
"paramNames": [
|
|
336
|
+
"amount"
|
|
337
|
+
],
|
|
338
|
+
"paramTypes": [
|
|
339
|
+
"U256"
|
|
340
|
+
],
|
|
341
|
+
"paramIsMutable": [
|
|
342
|
+
false
|
|
343
|
+
],
|
|
344
|
+
"returnTypes": []
|
|
345
|
+
},
|
|
268
346
|
{
|
|
269
347
|
"name": "getActiveUnstakeVaultIndexes",
|
|
270
348
|
"paramNames": [
|
|
@@ -313,6 +391,21 @@
|
|
|
313
391
|
false
|
|
314
392
|
],
|
|
315
393
|
"returnTypes": []
|
|
394
|
+
},
|
|
395
|
+
{
|
|
396
|
+
"name": "cancelUnstake",
|
|
397
|
+
"paramNames": [
|
|
398
|
+
"vaultIndex"
|
|
399
|
+
],
|
|
400
|
+
"paramTypes": [
|
|
401
|
+
"U256"
|
|
402
|
+
],
|
|
403
|
+
"paramIsMutable": [
|
|
404
|
+
false
|
|
405
|
+
],
|
|
406
|
+
"returnTypes": [
|
|
407
|
+
"U256"
|
|
408
|
+
]
|
|
316
409
|
}
|
|
317
410
|
],
|
|
318
411
|
"constants": [
|
|
@@ -351,6 +444,25 @@
|
|
|
351
444
|
}
|
|
352
445
|
]
|
|
353
446
|
},
|
|
447
|
+
{
|
|
448
|
+
"name": "FullMathError",
|
|
449
|
+
"fields": [
|
|
450
|
+
{
|
|
451
|
+
"name": "DivByZero",
|
|
452
|
+
"value": {
|
|
453
|
+
"type": "U256",
|
|
454
|
+
"value": "350"
|
|
455
|
+
}
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
"name": "MulDivOverflow",
|
|
459
|
+
"value": {
|
|
460
|
+
"type": "U256",
|
|
461
|
+
"value": "351"
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
]
|
|
465
|
+
},
|
|
354
466
|
{
|
|
355
467
|
"name": "ErrorCodes",
|
|
356
468
|
"fields": [
|
|
@@ -388,6 +500,27 @@
|
|
|
388
500
|
"type": "U256",
|
|
389
501
|
"value": "14"
|
|
390
502
|
}
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
"name": "ZeroXAlphOutput",
|
|
506
|
+
"value": {
|
|
507
|
+
"type": "U256",
|
|
508
|
+
"value": "15"
|
|
509
|
+
}
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
"name": "ZeroAlphOutput",
|
|
513
|
+
"value": {
|
|
514
|
+
"type": "U256",
|
|
515
|
+
"value": "16"
|
|
516
|
+
}
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
"name": "NoStakers",
|
|
520
|
+
"value": {
|
|
521
|
+
"type": "U256",
|
|
522
|
+
"value": "17"
|
|
523
|
+
}
|
|
391
524
|
}
|
|
392
525
|
]
|
|
393
526
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "v4.
|
|
2
|
+
"version": "v4.3.1",
|
|
3
3
|
"name": "XAlphUnlockAndStartUnstake",
|
|
4
|
-
"bytecodeTemplate": "01010300020016b41700{2}0d0c{1}01100c0d{1}010c170116001601{2}a3{2}0d0d{0}
|
|
4
|
+
"bytecodeTemplate": "01010300020016b41700{2}0d0c{1}01100c0d{1}010c170116001601{2}a3{2}0d0d{0}010f18",
|
|
5
5
|
"fieldsSig": {
|
|
6
6
|
"names": [
|
|
7
7
|
"xAlphToken",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "v4.
|
|
2
|
+
"version": "v4.3.1",
|
|
3
3
|
"name": "GovernanceDemo",
|
|
4
4
|
"bytecode": "090c40c9419741f54217422b426c42a642b44382438d439843a801000206004058d3926b380bb417021602ce00774513087b140a5f5f6d61705f5f305f5f16004744cbc54c403f0c0d0d140a5f5f6d61705f5f305f5f16004744cb1705160501010d0d0d1605010117041703000b7a4c041816030c304c180c0d0d140a5f5f6d61705f5f315f5f16034044cb010116012a0c0e0c140a5f5f6d61705f5f315f5f16034044cb0102a00016012aa100160416012a0d0e0c140a5f5f6d61705f5f305f5f16004744cb01024a09ca140a5f5f6d61705f5f305f5f16004744b10c1601d201020100020700405ed365b06caeb417021602ce00774513087b140a5f5f6d61705f5f305f5f16004744cbc50d7b0c0d0d140a5f5f6d61705f5f305f5f16004744cb1706160601010d0d0d1606010117041703160416012b170516050d0e0c140a5f5f6d61705f5f305f5f16004744cb0102000b7a4c041816030c304c180c0d0d140a5f5f6d61705f5f315f5f16034044cb010116012b0c0e0c140a5f5f6d61705f5f315f5f16034044cb0102a00016012ba10016050c2f4c09ca0d0c140a5f5f6d61705f5f305f5f16004744cb010301000002004033d3ecf99ab7b4ce054513077b000919107b000a19117b56a101ce01ce02ce03ce041017000c170116011600314c14ca140a5f5f6d61705f5f315f5f16017a10314d0d2acf4044b10cd2010116010d2a17014a2805a0015e010000000012d33919f580b4ce054513077b00090f7b000a19117b56a10207a0025e010000000406d3068539face01ce02ce03ce040201000102021ad344a25325140a5f5f6d61705f5f305f5f16004744cbc50d7b0c0d0d140a5f5f6d61705f5f305f5f16004744cb1701160101010d0d0d1601010102010001010116d32e30a67700090f7b140a5f5f6d61705f5f315f5f16004044cbc50e7b0c0d0d140a5f5f6d61705f5f315f5f16004044cb010102010000000103d33cfd4f9ea000020100010300405cd376a80ea2b417011601480c7b00090f7b000a19117b140a5f5f6d61705f5f315f5f16004044cbc50e7b140a5f5f6d61705f5f305f5f16014744cbc50d7b0c0d0d140a5f5f6d61705f5f305f5f16014744cb01010c2f13067b0d0d0d140a5f5f6d61705f5f305f5f16014744cb01011702a00016022aa1000c0d0d140a5f5f6d61705f5f315f5f16004044cb010116022a0c0e0c140a5f5f6d61705f5f315f5f16004044cb010216000c0e0c140a5f5f6d61705f5f305f5f16014744cb01020616011600160260000000000104a0010c3002000000000104a0020c300200000000010700097a4c0318000a1902",
|
|
5
5
|
"codeHash": "1d77f89642f8b3bd6364388e7b9b8ad9d58815365d4e7a02a932fe65ab913078",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "v4.
|
|
2
|
+
"version": "v4.3.1",
|
|
3
3
|
"name": "RewardSharingVault",
|
|
4
4
|
"bytecode": "040740b74152423c4277428942c0431e01000208004054d3926b380bb417021602ce00774513287b140a5f5f6d61705f5f305f5f16004744cbc54c40270c0d0d140a5f5f6d61705f5f305f5f16004744cb01011703160116032a16000d0ece00010d1707170616062f132b7b16000005160316012a0c0e0c140a5f5f6d61705f5f305f5f16004744cb01024a15160116000d0ece00010d1705170416042f132b7bca140a5f5f6d61705f5f305f5f16004744b11601a001d20102a00016012aa10005160016015f01000205004046d365b06caeb417021602ce00774513287b140a5f5f6d61705f5f305f5f16004744cbc513297b0c0d0d140a5f5f6d61705f5f305f5f16004744cb010117031601160332132c7b160316012b17041600000516040c2f4c0aca0d0c140a5f5f6d61705f5f305f5f16004744cb01034a0a16040c0e0c140a5f5f6d61705f5f305f5f16004744cb0102a00016012ba10006160016015f0000030901409216020c3013415e7b160016010c0d3687170316001601371704160316043616031604314c020d4a010c36170516050c2f4c04160416022d02160216053313415f7b160016011602871706160516061604334c020d4a010c361705160416063617040c1602361602381707160216072d1702160416072d17040c16073616072d0d351707160416051607373917040f1602370e3a170816080e16021608373637170816080e16021608373637170816080e16021608373637170816080e16021608373637170816080e16021608373637170816080e160216083736371708160416083702010101030019d3fe1110a1a0000c33132a7bb417011601ce011600ac160013c40de0b6b3a7640000a00000021702a00116022aa10107160116005f010300010005d3a28b71d5b417001600000500020102001916000006170116010c334c081600ce011601ab08160016015fa0010d0e0c140a5f5f6d61705f5f305f5f16004744cb010201000105014024d31191a066140a5f5f6d61705f5f305f5f16004744cbc513297b0c0d0d140a5f5f6d61705f5f305f5f16004744cb1704160401010d0d0d1604010117021701a00116022b17031601160313c40de0b6b3a7640000000202",
|
|
5
5
|
"codeHash": "8beaa8b570543344d4352cf8534bbc7df4591b4ecda97cfc3c30bc28dca5adb9",
|
|
@@ -67,6 +67,10 @@ export namespace AlphUnstakeVaultTypes {
|
|
|
67
67
|
params: CallContractParams<{ amount: bigint }>;
|
|
68
68
|
result: CallContractResult<boolean>;
|
|
69
69
|
};
|
|
70
|
+
cancelAndReturn: {
|
|
71
|
+
params: Omit<CallContractParams<{}>, "args">;
|
|
72
|
+
result: CallContractResult<[bigint, bigint]>;
|
|
73
|
+
};
|
|
70
74
|
destroy: {
|
|
71
75
|
params: Omit<CallContractParams<{}>, "args">;
|
|
72
76
|
result: CallContractResult<null>;
|
|
@@ -109,6 +113,10 @@ export namespace AlphUnstakeVaultTypes {
|
|
|
109
113
|
params: SignExecuteContractMethodParams<{ amount: bigint }>;
|
|
110
114
|
result: SignExecuteScriptTxResult;
|
|
111
115
|
};
|
|
116
|
+
cancelAndReturn: {
|
|
117
|
+
params: Omit<SignExecuteContractMethodParams<{}>, "args">;
|
|
118
|
+
result: SignExecuteScriptTxResult;
|
|
119
|
+
};
|
|
112
120
|
destroy: {
|
|
113
121
|
params: Omit<SignExecuteContractMethodParams<{}>, "args">;
|
|
114
122
|
result: SignExecuteScriptTxResult;
|
|
@@ -189,6 +197,14 @@ class Factory extends ContractFactory<
|
|
|
189
197
|
): Promise<TestContractResultWithoutMaps<boolean>> => {
|
|
190
198
|
return testMethod(this, "claim", params, getContractByCodeHash);
|
|
191
199
|
},
|
|
200
|
+
cancelAndReturn: async (
|
|
201
|
+
params: Omit<
|
|
202
|
+
TestContractParamsWithoutMaps<AlphUnstakeVaultTypes.Fields, never>,
|
|
203
|
+
"args"
|
|
204
|
+
>
|
|
205
|
+
): Promise<TestContractResultWithoutMaps<[bigint, bigint]>> => {
|
|
206
|
+
return testMethod(this, "cancelAndReturn", params, getContractByCodeHash);
|
|
207
|
+
},
|
|
192
208
|
destroy: async (
|
|
193
209
|
params: Omit<
|
|
194
210
|
TestContractParamsWithoutMaps<AlphUnstakeVaultTypes.Fields, never>,
|
|
@@ -213,7 +229,7 @@ export const AlphUnstakeVault = new Factory(
|
|
|
213
229
|
Contract.fromJson(
|
|
214
230
|
AlphUnstakeVaultContractJson,
|
|
215
231
|
"",
|
|
216
|
-
"
|
|
232
|
+
"a065f4a88edfe06c09d65e3c11154fe9d5a5b1cdc42b36adf1a3485ff8a51394",
|
|
217
233
|
types.AllStructs
|
|
218
234
|
)
|
|
219
235
|
);
|
|
@@ -278,6 +294,17 @@ export class AlphUnstakeVaultInstance extends ContractInstance {
|
|
|
278
294
|
getContractByCodeHash
|
|
279
295
|
);
|
|
280
296
|
},
|
|
297
|
+
cancelAndReturn: async (
|
|
298
|
+
params?: AlphUnstakeVaultTypes.CallMethodParams<"cancelAndReturn">
|
|
299
|
+
): Promise<AlphUnstakeVaultTypes.CallMethodResult<"cancelAndReturn">> => {
|
|
300
|
+
return callMethod(
|
|
301
|
+
AlphUnstakeVault,
|
|
302
|
+
this,
|
|
303
|
+
"cancelAndReturn",
|
|
304
|
+
params === undefined ? {} : params,
|
|
305
|
+
getContractByCodeHash
|
|
306
|
+
);
|
|
307
|
+
},
|
|
281
308
|
destroy: async (
|
|
282
309
|
params?: AlphUnstakeVaultTypes.CallMethodParams<"destroy">
|
|
283
310
|
): Promise<AlphUnstakeVaultTypes.CallMethodResult<"destroy">> => {
|
|
@@ -326,6 +353,18 @@ export class AlphUnstakeVaultInstance extends ContractInstance {
|
|
|
326
353
|
): Promise<AlphUnstakeVaultTypes.SignExecuteMethodResult<"claim">> => {
|
|
327
354
|
return signExecuteMethod(AlphUnstakeVault, this, "claim", params);
|
|
328
355
|
},
|
|
356
|
+
cancelAndReturn: async (
|
|
357
|
+
params: AlphUnstakeVaultTypes.SignExecuteMethodParams<"cancelAndReturn">
|
|
358
|
+
): Promise<
|
|
359
|
+
AlphUnstakeVaultTypes.SignExecuteMethodResult<"cancelAndReturn">
|
|
360
|
+
> => {
|
|
361
|
+
return signExecuteMethod(
|
|
362
|
+
AlphUnstakeVault,
|
|
363
|
+
this,
|
|
364
|
+
"cancelAndReturn",
|
|
365
|
+
params
|
|
366
|
+
);
|
|
367
|
+
},
|
|
329
368
|
destroy: async (
|
|
330
369
|
params: AlphUnstakeVaultTypes.SignExecuteMethodParams<"destroy">
|
|
331
370
|
): Promise<AlphUnstakeVaultTypes.SignExecuteMethodResult<"destroy">> => {
|