6 type WasmTransactionDetails,
8 } from '@proton/andromeda';
10 import { type WalletChainDataByWalletId } from '../../types';
11 import { freeable } from '../utils/wasm';
15 apiWalletAccountThree,
20 import { simpleTransactions } from './transactions';
22 export const getMockedWallet = (mocked?: Partial<WasmWallet>): WasmWallet => {
26 getBalance: vi.fn().mockResolvedValue({ confirmed: 0 } as WasmBalance),
27 getTransactions: vi.fn().mockResolvedValue([]),
28 getTransaction: vi.fn().mockResolvedValue(() => ({}) as WasmTransactionDetails),
29 discoverAccounts: vi.fn().mockResolvedValue([]),
30 getFingerprint: vi.fn(() => ''),
37 export const getMockedWasmAccount = (mocked?: Partial<WasmAccount>): WasmAccount => {
40 hasSyncData: vi.fn().mockReturnValue(true),
41 owns: vi.fn().mockReturnValue(false),
42 getNextReceiveAddress: vi
45 WasmPaymentLink.tryParse('bitcoin:tb1qddqzdcxs9fp0xdd9nfycar58nfcq9s0xpsqf9h', WasmNetwork.Testnet)
47 peekReceiveAddress: vi.fn(),
48 markReceiveAddressesUsedTo: vi.fn().mockReturnValue(0),
49 getBalance: vi.fn().mockResolvedValue({ confirmed: 0 } as WasmBalance),
50 getDerivationPath: vi.fn().mockResolvedValue("84'/1'/1'/0"),
51 getUtxos: vi.fn().mockResolvedValue([]),
52 getTransactions: vi.fn().mockResolvedValue([]),
53 getTransaction: vi.fn().mockResolvedValue({} as WasmTransactionDetails),
54 insertUnconfirmedTransaction: vi.fn(),
56 bumpTransactionsFees: vi.fn(),
58 getAddresses: vi.fn(),
63 const wallet0 = new WasmWallet(WasmNetwork.Testnet, apiWalletsData[0].Wallet.Mnemonic as string);
64 const wallet1 = new WasmWallet(WasmNetwork.Testnet, apiWalletsData[1].Wallet.Mnemonic as string);
65 const wallet2 = new WasmWallet(WasmNetwork.Testnet, apiWalletsData[2].Wallet.Mnemonic as string);
68 * Used to check UI behaviour
70 export const walletChainDataByWalletId: WalletChainDataByWalletId = {
71 [apiWalletsData[0].Wallet.ID]: {
74 [apiWalletAccountOneA.ID]: {
75 account: getMockedWasmAccount({
76 getBalance: vi.fn(async () =>
78 data: { confirmed: 100067, immature: 0, trusted_pending: 0, untrusted_pending: 0 },
81 getTransactions: vi.fn(async () =>
82 freeable({ 0: simpleTransactions.slice(0, 4).map((d) => freeable({ Data: d })) })
84 getUtxos: vi.fn(async () => freeable({ 0: [] })),
87 derivationPath: "84'/1'/0'",
90 [apiWalletAccountOneB.ID]: {
91 account: getMockedWasmAccount({
92 getBalance: vi.fn(async () =>
94 data: { confirmed: 11783999, immature: 0, trusted_pending: 0, untrusted_pending: 0 },
97 getTransactions: vi.fn(async () =>
98 freeable({ 0: simpleTransactions.slice(4, 8).map((d) => freeable({ Data: d })) })
100 getUtxos: vi.fn(async () => freeable({ 0: [] })),
103 derivationPath: "84'/1'/0'",
108 [apiWalletsData[1].Wallet.ID]: {
111 [apiWalletAccountTwoA.ID]: {
112 account: getMockedWasmAccount({
113 getBalance: vi.fn(async () =>
115 data: { confirmed: 8287263, immature: 0, trusted_pending: 0, untrusted_pending: 0 },
118 getTransactions: vi.fn(async () =>
119 freeable({ 0: simpleTransactions.slice(8, 12).map((d) => freeable({ Data: d })) })
121 getUtxos: vi.fn(async () => freeable({ 0: [] })),
124 derivationPath: "84'/1'/0'",
127 [apiWalletAccountTwoB.ID]: {
128 account: getMockedWasmAccount({
129 getBalance: vi.fn(async () =>
131 data: { confirmed: 97536, immature: 0, trusted_pending: 0, untrusted_pending: 0 },
134 getTransactions: vi.fn(async () =>
135 freeable({ 0: simpleTransactions.slice(12, 16).map((d) => freeable({ Data: d })) })
137 getUtxos: vi.fn(async () => freeable({ 0: [] })),
140 derivationPath: "84'/1'/0'",
145 [apiWalletsData[2].Wallet.ID]: {
148 [apiWalletAccountThree.ID]: {
149 account: getMockedWasmAccount({
150 getBalance: vi.fn(async () =>
152 data: { confirmed: 2612374, immature: 0, trusted_pending: 0, untrusted_pending: 0 },
155 getTransactions: vi.fn(async () =>
156 freeable({ 0: simpleTransactions.slice(16, 20).map((d) => freeable({ Data: d })) })
158 getUtxos: vi.fn(async () => freeable({ 0: [] })),
161 derivationPath: "84'/1'/0'",
169 * Used to check hook behaviour
171 export const mockedWalletChainDataByWalletId: WalletChainDataByWalletId = {
172 [apiWalletsData[0].Wallet.ID]: {
173 wallet: getMockedWallet({
174 getBalance: vi.fn(async () =>
176 data: { confirmed: 100067 + 11783999, immature: 0, trusted_pending: 0, untrusted_pending: 0 },
179 getTransactions: vi.fn(async () =>
180 freeable({ 0: simpleTransactions.slice(0, 8).map((d) => freeable({ Data: d })) })
184 [apiWalletAccountOneA.ID]: {
185 account: getMockedWasmAccount({
186 getBalance: vi.fn(async () =>
192 untrusted_pending: 0,
196 getTransactions: vi.fn(async () =>
197 freeable({ 0: simpleTransactions.slice(0, 4).map((d) => freeable({ Data: d })) })
199 getUtxos: vi.fn(async () => freeable({ 0: [] })),
202 derivationPath: "84'/1'/0'",
205 [apiWalletAccountOneB.ID]: {
206 account: getMockedWasmAccount({
207 getBalance: vi.fn(async () =>
209 data: { confirmed: 11783999, immature: 0, trusted_pending: 0, untrusted_pending: 0 },
212 getTransactions: vi.fn(async () =>
213 freeable({ 0: simpleTransactions.slice(4, 8).map((d) => freeable({ Data: d })) })
215 getUtxos: vi.fn(async () => freeable({ 0: [] })),
218 derivationPath: "84'/1'/0'",
223 [apiWalletsData[1].Wallet.ID]: {
224 wallet: getMockedWallet({
225 getBalance: vi.fn(async () =>
227 data: { confirmed: 8287263 + 97536, immature: 0, trusted_pending: 0, untrusted_pending: 0 },
230 getTransactions: vi.fn(async () =>
231 freeable({ 0: simpleTransactions.slice(8, 16).map((d) => freeable({ Data: d })) })
235 [apiWalletAccountTwoA.ID]: {
236 account: getMockedWasmAccount({
237 getBalance: vi.fn(async () =>
239 data: { confirmed: 8287263, immature: 0, trusted_pending: 0, untrusted_pending: 0 },
242 getTransactions: vi.fn(async () =>
243 freeable({ 0: simpleTransactions.slice(8, 12).map((d) => freeable({ Data: d })) })
245 getUtxos: vi.fn(async () => freeable({ 0: [] })),
248 derivationPath: "84'/1'/0'",
251 [apiWalletAccountTwoB.ID]: {
252 account: getMockedWasmAccount({
253 getBalance: vi.fn(async () =>
255 data: { confirmed: 97536, immature: 0, trusted_pending: 0, untrusted_pending: 0 },
258 getTransactions: vi.fn(async () =>
259 freeable({ 0: simpleTransactions.slice(12, 16).map((d) => freeable({ Data: d })) })
261 getUtxos: vi.fn(async () => freeable({ 0: [] })),
264 derivationPath: "84'/1'/0'",
269 [apiWalletsData[2].Wallet.ID]: {
270 wallet: getMockedWallet({
271 getBalance: vi.fn(async () =>
273 data: { confirmed: 2612374, immature: 0, trusted_pending: 0, untrusted_pending: 0 },
276 getTransactions: vi.fn(async () =>
277 freeable({ 0: simpleTransactions.slice(16, 20).map((d) => freeable({ Data: d })) })
281 [apiWalletAccountThree.ID]: {
282 account: getMockedWasmAccount({
283 getBalance: vi.fn(async () =>
285 data: { confirmed: 2612374, immature: 0, trusted_pending: 0, untrusted_pending: 0 },
288 getTransactions: vi.fn(async () =>
289 freeable({ 0: simpleTransactions.slice(16, 20).map((d) => freeable({ Data: d })) })
291 getUtxos: vi.fn(async () => freeable({ 0: [] })),
294 derivationPath: "84'/1'/0'",