@ledgerhq/coin-tester-solana 1.1.0 → 1.1.1-nightly.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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/coin-tester-solana@1.1.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-tester-modules/coin-tester-solana
2
+ > @ledgerhq/coin-tester-solana@1.1.1-nightly.0 build /home/runner/work/ledger-live/ledger-live/libs/coin-tester-modules/coin-tester-solana
3
3
  > tsc && tsc -m esnext --moduleResolution bundler --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @ledgerhq/coin-tester-solana
2
2
 
3
+ ## 1.1.1-nightly.1
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`4d9aaf5`](https://github.com/LedgerHQ/ledger-live/commit/4d9aaf583060a22cd1343b23d9b5c1ee3c02abb4), [`e9739d1`](https://github.com/LedgerHQ/ledger-live/commit/e9739d19946376dd7a8a5f10471594f267f3a95f)]:
8
+ - @ledgerhq/coin-framework@5.3.0-nightly.1
9
+ - @ledgerhq/types-live@6.73.0-nightly.1
10
+ - @ledgerhq/coin-solana@0.25.1-nightly.1
11
+ - @ledgerhq/coin-tester@0.6.0
12
+ - @ledgerhq/live-signer-solana@0.2.1-nightly.1
13
+
14
+ ## 1.1.1-nightly.0
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies [[`9ceee03`](https://github.com/LedgerHQ/ledger-live/commit/9ceee03c33c41bb035fe64f9303acd36872536b6)]:
19
+ - @ledgerhq/types-live@6.73.0-nightly.0
20
+ - @ledgerhq/coin-framework@5.2.1-nightly.0
21
+ - @ledgerhq/coin-solana@0.25.1-nightly.0
22
+ - @ledgerhq/coin-tester@0.6.0
23
+ - @ledgerhq/live-signer-solana@0.2.1-nightly.0
24
+
3
25
  ## 1.1.0
4
26
 
5
27
  ### Minor Changes
@@ -1,6 +1,10 @@
1
- import { Keypair } from "@solana/web3.js";
1
+ import { Keypair, VoteAccountInfo } from "@solana/web3.js";
2
2
  import { TokenCurrency } from "@ledgerhq/types-cryptoassets";
3
3
  import { SolanaTokenProgram } from "@ledgerhq/coin-solana/types";
4
4
  export declare const PAYER: Keypair;
5
+ export declare const STAKE_ACCOUNT: Keypair;
6
+ export declare let VOTE_ACCOUNT: VoteAccountInfo | null;
5
7
  export declare function createSplAccount(address: string, currency: TokenCurrency, amount: number, program: SolanaTokenProgram): Promise<void>;
8
+ export declare function initVoteAccount(): Promise<void>;
9
+ export declare function initStakeAccount(address: string, amount: number): Promise<void>;
6
10
  //# sourceMappingURL=connection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,OAAO,EAAa,MAAM,iBAAiB,CAAC;AAEjE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAOjE,eAAO,MAAM,KAAK,SAOjB,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kBAAkB,iBAwB5B"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,OAAO,EAGP,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAOjE,eAAO,MAAM,KAAK,SAOjB,CAAC;AACF,eAAO,MAAM,aAAa,SAAqB,CAAC;AAChD,eAAO,IAAI,YAAY,EAAE,eAAe,GAAG,IAAW,CAAC;AAEvD,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,kBAAkB,iBAwB5B;AAED,wBAAsB,eAAe,kBAGpC;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,iBAerE"}
@@ -1,4 +1,4 @@
1
- import { Connection, Keypair, PublicKey } from "@solana/web3.js";
1
+ import { Authorized, Connection, Keypair, PublicKey, StakeProgram, } from "@solana/web3.js";
2
2
  import { createAssociatedTokenAccountIdempotent, mintTo } from "@solana/spl-token";
3
3
  import { getTokenAccountProgramId } from "@ledgerhq/coin-solana/helpers/token";
4
4
  const connection = new Connection("http://localhost:8899", "confirmed");
@@ -11,6 +11,8 @@ export const PAYER = Keypair.fromSecretKey(new Uint8Array([
11
11
  66, 46, 134, 124, 236, 14, 231, 64, 203, 2, 197, 89, 192, 54, 235, 156, 15, 144, 10, 96, 17,
12
12
  207,
13
13
  ]));
14
+ export const STAKE_ACCOUNT = Keypair.generate();
15
+ export let VOTE_ACCOUNT = null;
14
16
  export async function createSplAccount(address, currency, amount, program) {
15
17
  const programId = getTokenAccountProgramId(program);
16
18
  const associatedTokenAddress = await createAssociatedTokenAccountIdempotent(connection, PAYER, new PublicKey(currency.contractAddress), new PublicKey(address), undefined, programId);
@@ -18,4 +20,24 @@ export async function createSplAccount(address, currency, amount, program) {
18
20
  const signature = await mintTo(connection, PAYER, new PublicKey(currency.contractAddress), associatedTokenAddress, PAYER, amount * 10 ** currency.units[0].magnitude, [], undefined, programId);
19
21
  await connection.confirmTransaction({ signature, ...latest });
20
22
  }
23
+ export async function initVoteAccount() {
24
+ const voteAccounts = await connection.getVoteAccounts();
25
+ VOTE_ACCOUNT = voteAccounts.current[0];
26
+ }
27
+ export async function initStakeAccount(address, amount) {
28
+ const authority = new PublicKey(address);
29
+ const transaction = StakeProgram.createAccount({
30
+ fromPubkey: PAYER.publicKey,
31
+ stakePubkey: STAKE_ACCOUNT.publicKey,
32
+ authorized: new Authorized(authority, authority),
33
+ lamports: amount,
34
+ });
35
+ const latest = await connection.getLatestBlockhash();
36
+ transaction.feePayer = PAYER.publicKey;
37
+ transaction.recentBlockhash = latest.blockhash;
38
+ transaction.lastValidBlockHeight = latest.lastValidBlockHeight;
39
+ transaction.sign(PAYER, STAKE_ACCOUNT);
40
+ const signature = await connection.sendRawTransaction(transaction.serialize());
41
+ await connection.confirmTransaction({ signature, ...latest });
42
+ }
21
43
  //# sourceMappingURL=connection.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,sCAAsC,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGnF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qCAAqC,CAAC;AAE/E,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;AACxE,0DAA0D;AAC1D,mEAAmE;AACnE,sDAAsD;AACtD,MAAM,CAAC,MAAM,KAAK,GAAG,OAAO,CAAC,aAAa,CACxC,IAAI,UAAU,CAAC;IACb,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG;IAC/F,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE;IAC9F,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC3F,GAAG;CACJ,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAe,EACf,QAAuB,EACvB,MAAc,EACd,OAA2B;IAE3B,MAAM,SAAS,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,sBAAsB,GAAG,MAAM,sCAAsC,CACzE,UAAU,EACV,KAAK,EACL,IAAI,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EACvC,IAAI,SAAS,CAAC,OAAO,CAAC,EACtB,SAAS,EACT,SAAS,CACV,CAAC;IACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,kBAAkB,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,MAAM,MAAM,CAC5B,UAAU,EACV,KAAK,EACL,IAAI,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,EACvC,sBAAsB,EACtB,KAAK,EACL,MAAM,GAAG,EAAE,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAC1C,EAAE,EACF,SAAS,EACT,SAAS,CACV,CAAC;IACF,MAAM,UAAU,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare const RECIPIENT = "Hj69wRzkrFuf1Nby4yzPEFHdsmQdMoVYjvDKZSLjZFEp";
5
5
  export declare const SOLANA: CryptoCurrency;
6
6
  export declare const SOLANA_USDC: import("@ledgerhq/types-cryptoassets").TokenCurrency;
7
7
  export declare const SOLANA_CWIF: import("@ledgerhq/types-cryptoassets").TokenCurrency;
8
+ export declare const WITHDRAWABLE_AMOUNT = 2000000000;
8
9
  export declare const makeAccount: (address: string, currency: CryptoCurrency, subAccounts?: TokenAccount[]) => SolanaAccount;
9
10
  export declare function initMSW(): void;
10
11
  //# sourceMappingURL=fixtures.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAM5D,eAAO,MAAM,SAAS,iDAAiD,CAAC;AACxE,eAAO,MAAM,MAAM,gBAAkC,CAAC;AACtD,eAAO,MAAM,WAAW,sDAA0E,CAAC;AACnG,eAAO,MAAM,WAAW,sDAA0E,CAAC;AAEnG,eAAO,MAAM,WAAW,GACtB,SAAS,MAAM,EACf,UAAU,cAAc,EACxB,cAAa,YAAY,EAAO,KAC/B,aAqDF,CAAC;AAEF,wBAAgB,OAAO,SAmFtB"}
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAG9D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAM5D,eAAO,MAAM,SAAS,iDAAiD,CAAC;AACxE,eAAO,MAAM,MAAM,gBAAkC,CAAC;AACtD,eAAO,MAAM,WAAW,sDAA0E,CAAC;AACnG,eAAO,MAAM,WAAW,sDAA0E,CAAC;AACnG,eAAO,MAAM,mBAAmB,aAAM,CAAC;AAEvC,eAAO,MAAM,WAAW,GACtB,SAAS,MAAM,EACf,UAAU,cAAc,EACxB,cAAa,YAAY,EAAO,KAC/B,aAqDF,CAAC;AAEF,wBAAgB,OAAO,SAmFtB"}
@@ -9,6 +9,7 @@ export const RECIPIENT = "Hj69wRzkrFuf1Nby4yzPEFHdsmQdMoVYjvDKZSLjZFEp";
9
9
  export const SOLANA = getCryptoCurrencyById("solana");
10
10
  export const SOLANA_USDC = getTokenById("solana/spl/epjfwdd5aufqssqem2qn1xzybapc8g4weggkzwytdt1v");
11
11
  export const SOLANA_CWIF = getTokenById("solana/spl/7atgf8kqo4wjrd5atgx7t1v2zvvykpjbffnevf1icfv1");
12
+ export const WITHDRAWABLE_AMOUNT = 2e9;
12
13
  export const makeAccount = (address, currency, subAccounts = []) => {
13
14
  const id = `js:2:${currency.id}:${address}:solanaSub`;
14
15
  const { derivationMode, xpubOrAddress } = decodeAccountId(id);
@@ -1 +1 @@
1
- {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/fixtures.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/fixtures.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../src/scenarii/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuB,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAwB9F,eAAO,MAAM,cAAc;;;CAAmD,CAAC;AAyK/E,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAyDrE,CAAC"}
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../src/scenarii/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAuB,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAuC9F,eAAO,MAAM,cAAc;;;CAAmD,CAAC;AAmT/E,eAAO,MAAM,cAAc,EAAE,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CA2DrE,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { killSpeculos, spawnSpeculos } from "@ledgerhq/coin-tester/signers/speculos";
2
2
  import resolver from "@ledgerhq/coin-solana/hw-getAddress";
3
3
  import { LegacySignerSolana } from "@ledgerhq/live-signer-solana";
4
- import { RECIPIENT, SOLANA, SOLANA_CWIF, SOLANA_USDC, initMSW, makeAccount } from "../fixtures";
4
+ import { RECIPIENT, SOLANA, SOLANA_CWIF, SOLANA_USDC, WITHDRAWABLE_AMOUNT, initMSW, makeAccount, } from "../fixtures";
5
5
  import solanaCoinConfig from "@ledgerhq/coin-solana/config";
6
6
  import BigNumber from "bignumber.js";
7
7
  import { setEnv } from "@ledgerhq/live-env";
@@ -9,7 +9,7 @@ import { airdrop, killAgave, spawnAgave } from "../agave";
9
9
  import { encodeAccountIdWithTokenAccountAddress } from "@ledgerhq/coin-solana/logic";
10
10
  import { TOKEN_2022_PROGRAM_ID, getAssociatedTokenAddressSync } from "@solana/spl-token";
11
11
  import { PublicKey } from "@solana/web3.js";
12
- import { PAYER, createSplAccount } from "../connection";
12
+ import { PAYER, STAKE_ACCOUNT, VOTE_ACCOUNT, createSplAccount, initStakeAccount, initVoteAccount, } from "../connection";
13
13
  import { getChainAPI } from "@ledgerhq/coin-solana/network/index";
14
14
  import { makeBridges } from "@ledgerhq/coin-solana/bridge/bridge";
15
15
  global.console = require("console");
@@ -18,6 +18,12 @@ jest.setTimeout(100_000);
18
18
  // https://github.com/LedgerHQ/ledger-live/blob/develop/libs/coin-tester/docker-compose.yml
19
19
  export const defaultNanoApp = { firmware: "2.4.2", version: "1.9.1" };
20
20
  function makeScenarioTransactions(address) {
21
+ if (!VOTE_ACCOUNT) {
22
+ throw new Error("Vote account not initialized");
23
+ }
24
+ if (!STAKE_ACCOUNT) {
25
+ throw new Error("Stake account not initialized");
26
+ }
21
27
  const scenarioSendSolTransaction = {
22
28
  name: "Send 1 Sol",
23
29
  amount: new BigNumber(1e9),
@@ -103,6 +109,65 @@ function makeScenarioTransactions(address) {
103
109
  expect(currentAssociatedTokenAccount?.balance).toStrictEqual(previousAssociatedTokenAccount?.balance.minus(latestAssociatedTokenAccountOperation.value));
104
110
  },
105
111
  };
112
+ const scenarioCreateSolStakeAccountTransaction = {
113
+ name: "Create Stake Account 1 Sol",
114
+ amount: new BigNumber(1e9),
115
+ model: {
116
+ kind: "stake.createAccount",
117
+ uiState: { delegate: { voteAccAddress: VOTE_ACCOUNT.votePubkey } },
118
+ },
119
+ expect: (previousAccount, currentAccount) => {
120
+ const [latestOperation] = currentAccount.operations;
121
+ expect(currentAccount.operations.length - previousAccount.operations.length).toEqual(1);
122
+ expect(latestOperation.type).toEqual("DELEGATE");
123
+ expect(latestOperation.value).toStrictEqual(latestOperation.fee);
124
+ expect(latestOperation.senders).toStrictEqual([]);
125
+ expect(latestOperation.recipients).toStrictEqual([]);
126
+ expect(latestOperation.extra).toStrictEqual({
127
+ stake: { address: VOTE_ACCOUNT?.votePubkey, amount: new BigNumber(1e9 + 2287880) }, // amount + rent exempt reserve + fee
128
+ });
129
+ expect(currentAccount.balance).toStrictEqual(previousAccount.balance.minus(latestOperation.value));
130
+ expect(currentAccount.spendableBalance).toStrictEqual(previousAccount.spendableBalance.minus(1e9 + 2297880));
131
+ },
132
+ };
133
+ const scenarioActivateStakeAccount = {
134
+ name: "Activate Stake Account",
135
+ model: {
136
+ kind: "stake.delegate",
137
+ uiState: {
138
+ stakeAccAddr: STAKE_ACCOUNT.publicKey.toBase58(),
139
+ voteAccAddr: VOTE_ACCOUNT.votePubkey,
140
+ },
141
+ },
142
+ expect: (previousAccount, currentAccount) => {
143
+ const [latestOperation] = currentAccount.operations;
144
+ expect(currentAccount.operations.length - previousAccount.operations.length).toEqual(1);
145
+ expect(latestOperation.type).toEqual("DELEGATE");
146
+ expect(latestOperation.value).toStrictEqual(latestOperation.fee);
147
+ expect(latestOperation.senders).toStrictEqual([]);
148
+ expect(latestOperation.recipients).toStrictEqual([]);
149
+ expect(latestOperation.extra).toStrictEqual({
150
+ stake: { address: VOTE_ACCOUNT?.votePubkey, amount: latestOperation.value },
151
+ });
152
+ expect(currentAccount.balance).toStrictEqual(previousAccount.balance.minus(latestOperation.value));
153
+ },
154
+ };
155
+ const scenarioDeactivateStakeAccount = {
156
+ name: "Deactivate Stake Account",
157
+ model: {
158
+ kind: "stake.undelegate",
159
+ uiState: { stakeAccAddr: STAKE_ACCOUNT.publicKey.toBase58() },
160
+ },
161
+ expect: (previousAccount, currentAccount) => {
162
+ const [latestOperation] = currentAccount.operations;
163
+ expect(currentAccount.operations.length - previousAccount.operations.length).toEqual(1);
164
+ expect(latestOperation.type).toEqual("UNDELEGATE");
165
+ expect(latestOperation.value).toStrictEqual(latestOperation.fee);
166
+ expect(latestOperation.senders).toStrictEqual([]);
167
+ expect(latestOperation.recipients).toStrictEqual([]);
168
+ expect(currentAccount.balance).toStrictEqual(previousAccount.balance.minus(latestOperation.value));
169
+ },
170
+ };
106
171
  const scenarioSendAllSolTransaction = {
107
172
  name: "Send All Sol",
108
173
  useAllAmount: true,
@@ -117,13 +182,64 @@ function makeScenarioTransactions(address) {
117
182
  expect(currentAccount.spendableBalance).toStrictEqual(new BigNumber(0));
118
183
  },
119
184
  };
185
+ const scenarioStakeWithdrawTransaction = {
186
+ name: "Withdraw From Stake Account",
187
+ model: {
188
+ kind: "stake.withdraw",
189
+ uiState: {
190
+ stakeAccAddr: STAKE_ACCOUNT.publicKey.toBase58(),
191
+ },
192
+ },
193
+ expect: (previousAccount, currentAccount) => {
194
+ const [latestOperation] = currentAccount.operations;
195
+ expect(currentAccount.operations.length - previousAccount.operations.length).toEqual(1);
196
+ expect(latestOperation.type).toEqual("WITHDRAW_UNBONDED");
197
+ expect(latestOperation.value).toStrictEqual(latestOperation.fee);
198
+ expect(latestOperation.senders).toStrictEqual([]);
199
+ expect(latestOperation.recipients).toStrictEqual([]);
200
+ expect(latestOperation.extra).toStrictEqual({
201
+ stake: {
202
+ address: STAKE_ACCOUNT?.publicKey.toBase58(),
203
+ amount: new BigNumber(WITHDRAWABLE_AMOUNT),
204
+ },
205
+ });
206
+ expect(currentAccount.balance).toStrictEqual(previousAccount.balance.minus(latestOperation.value));
207
+ expect(currentAccount.spendableBalance).toStrictEqual(previousAccount.spendableBalance.plus(WITHDRAWABLE_AMOUNT));
208
+ },
209
+ };
210
+ const scenarioCreateAllSolStakeAccountTransaction = {
211
+ name: "Create Stake Account All Sol",
212
+ useAllAmount: true,
213
+ model: {
214
+ kind: "stake.createAccount",
215
+ uiState: { delegate: { voteAccAddress: VOTE_ACCOUNT.votePubkey } },
216
+ },
217
+ expect: (previousAccount, currentAccount) => {
218
+ const [latestOperation] = currentAccount.operations;
219
+ expect(currentAccount.operations.length - previousAccount.operations.length).toEqual(1);
220
+ expect(latestOperation.type).toEqual("DELEGATE");
221
+ expect(latestOperation.value).toStrictEqual(latestOperation.fee);
222
+ expect(latestOperation.senders).toStrictEqual([]);
223
+ expect(latestOperation.recipients).toStrictEqual([]);
224
+ expect(latestOperation.extra).toMatchObject({
225
+ stake: { address: VOTE_ACCOUNT?.votePubkey },
226
+ });
227
+ expect(currentAccount.balance).toStrictEqual(previousAccount.balance.minus(latestOperation.value));
228
+ expect(currentAccount.spendableBalance).toStrictEqual(new BigNumber(0));
229
+ },
230
+ };
120
231
  return [
121
232
  scenarioSendSolTransaction,
122
233
  scenarioSendUsdcTransaction,
123
234
  scenarioSendAllUsdcTransaction,
124
235
  scenarioSendCwifTransaction,
125
236
  scenarioSendAllCwifTransaction,
237
+ scenarioCreateSolStakeAccountTransaction,
238
+ scenarioActivateStakeAccount,
239
+ scenarioDeactivateStakeAccount,
126
240
  scenarioSendAllSolTransaction,
241
+ scenarioStakeWithdrawTransaction,
242
+ scenarioCreateAllSolStakeAccountTransaction,
127
243
  ];
128
244
  }
129
245
  export const scenarioSolana = {
@@ -164,6 +280,8 @@ export const scenarioSolana = {
164
280
  await airdrop(PAYER.publicKey.toBase58(), 5);
165
281
  await createSplAccount(account.freshAddress, SOLANA_USDC, 5, "spl-token");
166
282
  await createSplAccount(account.freshAddress, SOLANA_CWIF, 5, "spl-token-2022");
283
+ await initVoteAccount();
284
+ await initStakeAccount(account.freshAddress, WITHDRAWABLE_AMOUNT);
167
285
  initMSW();
168
286
  return {
169
287
  account,
@@ -1 +1 @@
1
- {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../src/scenarii/solana.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../../src/scenarii/solana.ts"],"names":[],"mappings":"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"}