@marinade.finance/bankrun-utils 2.3.0

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 ADDED
@@ -0,0 +1,8 @@
1
+ # bankrun-utils
2
+
3
+ [`@marinade.finance/bankrun-utils`](https://www.npmjs.com/package/@marinade.finance/bankrun-utils)
4
+
5
+ Utilities to work with Bankrun Solana testing library
6
+
7
+ * https://github.com/kevinheavey/solana-bankrun
8
+ * https://github.com/kevinheavey/anchor-bankrun
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@marinade.finance/bankrun-utils",
3
+ "version": "2.3.0",
4
+ "description": "Bankrun library utilities",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git@github.com:marinade-finance/marinade-ts-cli.git"
8
+ },
9
+ "publishConfig": {
10
+ "access": "public"
11
+ },
12
+ "keywords": [
13
+ "solana",
14
+ "marinade.finance",
15
+ "blockchain",
16
+ "bankrun"
17
+ ],
18
+ "author": "Marinade Finance",
19
+ "license": "ISC",
20
+ "main": "src/index",
21
+ "files": [
22
+ "src"
23
+ ],
24
+ "devDependencies": {
25
+ "@solana/web3.js": "^1.91.1",
26
+ "@marinade.finance/web3js-common": "2.3.0",
27
+ "solana-bankrun": "^0.2.0",
28
+ "anchor-bankrun": "^0.3.0",
29
+ "class-transformer": "^0.5.1"
30
+ },
31
+ "peerDependencies": {
32
+ "@solana/web3.js": "^1.91.1",
33
+ "@marinade.finance/web3js-common": "2.3.0",
34
+ "solana-bankrun": "^0.2.0",
35
+ "anchor-bankrun": "^0.3.0",
36
+ "class-transformer": "^0.5.1"
37
+ },
38
+ "engines": {
39
+ "node": ">=16.0.0"
40
+ },
41
+ "scripts": {
42
+ "test": "echo \"Error: no test specified, go to project root\" && exit 1"
43
+ }
44
+ }
@@ -0,0 +1,9 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ import { BankrunProvider } from 'anchor-bankrun';
3
+ export declare function assertNotExist(provider: BankrunProvider, account: PublicKey): Promise<void>;
4
+ export declare const MINIMUM_SLOTS_PER_EPOCH = 32;
5
+ export declare function warpToEpoch(provider: BankrunProvider, epoch: number): void;
6
+ export declare function warpToNextEpoch(provider: BankrunProvider): Promise<void>;
7
+ export declare function warpOffsetEpoch(provider: BankrunProvider, plusEpochs: number): Promise<void>;
8
+ export declare function currentEpoch(provider: BankrunProvider): Promise<number>;
9
+ export declare function warpToNextSlot(provider: BankrunProvider): Promise<void>;
package/src/bankrun.js ADDED
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.warpToNextSlot = exports.currentEpoch = exports.warpOffsetEpoch = exports.warpToNextEpoch = exports.warpToEpoch = exports.MINIMUM_SLOTS_PER_EPOCH = exports.assertNotExist = void 0;
4
+ async function assertNotExist(provider, account) {
5
+ const accountInfo = await provider.context.banksClient.getAccount(account);
6
+ expect(accountInfo).toBeNull();
7
+ }
8
+ exports.assertNotExist = assertNotExist;
9
+ // https://github.com/solana-labs/solana/blob/v1.17.7/sdk/program/src/epoch_schedule.rs#L29C1-L29C45
10
+ exports.MINIMUM_SLOTS_PER_EPOCH = 32;
11
+ // https://github.com/solana-labs/solana/blob/v1.17.7/sdk/program/src/epoch_schedule.rs#L167
12
+ function warpToEpoch(provider, epoch) {
13
+ const epochBigInt = BigInt(epoch);
14
+ const { slotsPerEpoch, firstNormalEpoch, firstNormalSlot } = provider.context.genesisConfig.epochSchedule;
15
+ let warpToSlot;
16
+ if (epochBigInt <= firstNormalEpoch) {
17
+ warpToSlot = BigInt((2 ** epoch - 1) * exports.MINIMUM_SLOTS_PER_EPOCH);
18
+ }
19
+ else {
20
+ warpToSlot =
21
+ (epochBigInt - firstNormalEpoch) * slotsPerEpoch + firstNormalSlot;
22
+ }
23
+ provider.context.warpToSlot(warpToSlot);
24
+ }
25
+ exports.warpToEpoch = warpToEpoch;
26
+ async function warpToNextEpoch(provider) {
27
+ await warpOffsetEpoch(provider, 1);
28
+ }
29
+ exports.warpToNextEpoch = warpToNextEpoch;
30
+ async function warpOffsetEpoch(provider, plusEpochs) {
31
+ const nextEpoch = (await currentEpoch(provider)) + plusEpochs;
32
+ warpToEpoch(provider, nextEpoch);
33
+ }
34
+ exports.warpOffsetEpoch = warpOffsetEpoch;
35
+ async function currentEpoch(provider) {
36
+ return Number((await provider.context.banksClient.getClock()).epoch);
37
+ }
38
+ exports.currentEpoch = currentEpoch;
39
+ async function warpToNextSlot(provider) {
40
+ const currentSlot = (await provider.context.banksClient.getClock()).slot;
41
+ provider.context.warpToSlot(currentSlot + BigInt(1));
42
+ }
43
+ exports.warpToNextSlot = warpToNextSlot;
44
+ //# sourceMappingURL=bankrun.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bankrun.js","sourceRoot":"","sources":["../../../../../packages/lib/bankrun-utils/src/bankrun.ts"],"names":[],"mappings":";;;AAGO,KAAK,UAAU,cAAc,CAClC,QAAyB,EACzB,OAAkB;IAElB,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;IAC1E,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAA;AAChC,CAAC;AAND,wCAMC;AAED,oGAAoG;AACvF,QAAA,uBAAuB,GAAG,EAAE,CAAA;AACzC,4FAA4F;AAC5F,SAAgB,WAAW,CAAC,QAAyB,EAAE,KAAa;IAClE,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACjC,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,GACxD,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAA;IAC9C,IAAI,UAAkB,CAAA;IACtB,IAAI,WAAW,IAAI,gBAAgB,EAAE;QACnC,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,GAAG,+BAAuB,CAAC,CAAA;KAChE;SAAM;QACL,UAAU;YACR,CAAC,WAAW,GAAG,gBAAgB,CAAC,GAAG,aAAa,GAAG,eAAe,CAAA;KACrE;IACD,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AACzC,CAAC;AAZD,kCAYC;AAEM,KAAK,UAAU,eAAe,CAAC,QAAyB;IAC7D,MAAM,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AACpC,CAAC;AAFD,0CAEC;AAEM,KAAK,UAAU,eAAe,CACnC,QAAyB,EACzB,UAAkB;IAElB,MAAM,SAAS,GAAG,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,UAAU,CAAA;IAC7D,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AAClC,CAAC;AAND,0CAMC;AAEM,KAAK,UAAU,YAAY,CAAC,QAAyB;IAC1D,OAAO,MAAM,CAAC,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAA;AACtE,CAAC;AAFD,oCAEC;AAEM,KAAK,UAAU,cAAc,CAAC,QAAyB;IAC5D,MAAM,WAAW,GAAG,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAA;IACxE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AACtD,CAAC;AAHD,wCAGC"}
@@ -0,0 +1,11 @@
1
+ import { ExtendedProvider, Wallet } from '@marinade.finance/web3js-common';
2
+ import { Keypair, PublicKey, Signer, Transaction, TransactionInstruction, TransactionInstructionCtorFields } from '@solana/web3.js';
3
+ import { BankrunProvider } from 'anchor-bankrun';
4
+ import { BanksTransactionMeta } from 'solana-bankrun';
5
+ export declare class BankrunExtendedProvider extends BankrunProvider implements ExtendedProvider {
6
+ sendIx(signers: (Wallet | Signer | Keypair)[], ...ixes: (Transaction | TransactionInstruction | TransactionInstructionCtorFields)[]): Promise<void>;
7
+ get walletPubkey(): PublicKey;
8
+ }
9
+ export declare function bankrunTransaction(provider: BankrunProvider): Promise<Transaction>;
10
+ export declare function bankrunExecuteIx(provider: BankrunProvider, signers: (Wallet | Signer | Keypair)[], ...ixes: (Transaction | TransactionInstruction | TransactionInstructionCtorFields)[]): Promise<BanksTransactionMeta>;
11
+ export declare function bankrunExecute(provider: BankrunProvider, signers: (Wallet | Signer | Keypair)[], tx: Transaction): Promise<BanksTransactionMeta>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.bankrunExecute = exports.bankrunExecuteIx = exports.bankrunTransaction = exports.BankrunExtendedProvider = void 0;
4
+ const web3js_common_1 = require("@marinade.finance/web3js-common");
5
+ const web3_js_1 = require("@solana/web3.js");
6
+ const anchor_bankrun_1 = require("anchor-bankrun");
7
+ class BankrunExtendedProvider extends anchor_bankrun_1.BankrunProvider {
8
+ async sendIx(signers, ...ixes) {
9
+ const tx = await bankrunTransaction(this);
10
+ tx.add(...ixes);
11
+ await bankrunExecute(this, [this.wallet, ...signers], tx);
12
+ }
13
+ get walletPubkey() {
14
+ return this.wallet.publicKey;
15
+ }
16
+ }
17
+ exports.BankrunExtendedProvider = BankrunExtendedProvider;
18
+ async function bankrunTransaction(provider) {
19
+ const bh = await provider.context.banksClient.getLatestBlockhash();
20
+ const lastValidBlockHeight = (bh === null ? Number.MAX_VALUE : bh[1]);
21
+ return new web3_js_1.Transaction({
22
+ feePayer: provider.wallet.publicKey,
23
+ blockhash: provider.context.lastBlockhash,
24
+ lastValidBlockHeight,
25
+ });
26
+ }
27
+ exports.bankrunTransaction = bankrunTransaction;
28
+ async function bankrunExecuteIx(provider, signers, ...ixes) {
29
+ const tx = await bankrunTransaction(provider);
30
+ tx.add(...ixes);
31
+ return await bankrunExecute(provider, signers, tx);
32
+ }
33
+ exports.bankrunExecuteIx = bankrunExecuteIx;
34
+ async function bankrunExecute(provider, signers, tx) {
35
+ for (const signer of signers) {
36
+ if ((0, web3js_common_1.instanceOfWallet)(signer)) {
37
+ await signer.signTransaction(tx);
38
+ }
39
+ else if (signer instanceof web3_js_1.Keypair || 'secretKey' in signer) {
40
+ tx.partialSign(signer);
41
+ }
42
+ else {
43
+ throw new Error('bankrunExecute: provided signer parameter is not a signer: ' + signer);
44
+ }
45
+ }
46
+ return await provider.context.banksClient.processTransaction(tx);
47
+ }
48
+ exports.bankrunExecute = bankrunExecute;
49
+ //# sourceMappingURL=extendedProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extendedProvider.js","sourceRoot":"","sources":["../../../../../packages/lib/bankrun-utils/src/extendedProvider.ts"],"names":[],"mappings":";;;AAAA,mEAIwC;AACxC,6CAOwB;AACxB,mDAAgD;AAGhD,MAAa,uBACX,SAAQ,gCAAe;IAGvB,KAAK,CAAC,MAAM,CACV,OAAsC,EACtC,GAAG,IAIA;QAEH,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACzC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;QACf,MAAM,cAAc,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3D,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAA;IAC9B,CAAC;CACF;AApBD,0DAoBC;AAEM,KAAK,UAAU,kBAAkB,CACtC,QAAyB;IAEzB,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,CAAA;IAClE,MAAM,oBAAoB,GAAG,CAC3B,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC7B,CAAA;IACX,OAAO,IAAI,qBAAW,CAAC;QACrB,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;QACnC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa;QACzC,oBAAoB;KACrB,CAAC,CAAA;AACJ,CAAC;AAZD,gDAYC;AAEM,KAAK,UAAU,gBAAgB,CACpC,QAAyB,EACzB,OAAsC,EACtC,GAAG,IAIA;IAEH,MAAM,EAAE,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAA;IAC7C,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACf,OAAO,MAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;AACpD,CAAC;AAZD,4CAYC;AAEM,KAAK,UAAU,cAAc,CAClC,QAAyB,EACzB,OAAsC,EACtC,EAAe;IAEf,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,IAAI,IAAA,gCAAgB,EAAC,MAAM,CAAC,EAAE;YAC5B,MAAM,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;SACjC;aAAM,IAAI,MAAM,YAAY,iBAAO,IAAI,WAAW,IAAI,MAAM,EAAE;YAC7D,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;SACvB;aAAM;YACL,MAAM,IAAI,KAAK,CACb,6DAA6D,GAAG,MAAM,CACvE,CAAA;SACF;KACF;IACD,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;AAClE,CAAC;AAjBD,wCAiBC"}
package/src/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './extendedProvider';
2
+ export * from './testInit';
3
+ export * from './bankrun';
package/src/index.js ADDED
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./extendedProvider"), exports);
18
+ __exportStar(require("./testInit"), exports);
19
+ __exportStar(require("./bankrun"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/lib/bankrun-utils/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAkC;AAClC,6CAA0B;AAC1B,4CAAyB"}
@@ -0,0 +1,18 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ import { AccountInfoBytes, AddedAccount } from 'solana-bankrun';
3
+ import 'reflect-metadata';
4
+ import { BankrunExtendedProvider } from './extendedProvider';
5
+ export declare class JsonAccountData {
6
+ lamports: number;
7
+ data: string[];
8
+ owner: PublicKey;
9
+ executable: boolean;
10
+ rentEpoch: number;
11
+ }
12
+ export declare class JsonAccount {
13
+ pubkey: PublicKey;
14
+ account: JsonAccountData;
15
+ }
16
+ export declare function toAccountInfoBytes(jsonAccount: JsonAccount): AccountInfoBytes;
17
+ export declare function loadAccountsFromJson(directory: string): AddedAccount[];
18
+ export declare function testInit(accountDirs?: string[]): Promise<BankrunExtendedProvider>;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.testInit = exports.loadAccountsFromJson = exports.toAccountInfoBytes = exports.JsonAccount = exports.JsonAccountData = void 0;
13
+ const web3_js_1 = require("@solana/web3.js");
14
+ const solana_bankrun_1 = require("solana-bankrun");
15
+ require("reflect-metadata");
16
+ const class_transformer_1 = require("class-transformer");
17
+ const fs_1 = require("fs");
18
+ const path_1 = __importDefault(require("path"));
19
+ const extendedProvider_1 = require("./extendedProvider");
20
+ // note: VsCode error:
21
+ // https://github.com/microsoft/TypeScript/issues/52396#issuecomment-1409152884
22
+ // https://bobbyhadz.com/blog/typescript-experimental-support-for-decorators-warning#solve-the-error-in-visual-studio-code
23
+ class JsonAccountData {
24
+ }
25
+ exports.JsonAccountData = JsonAccountData;
26
+ __decorate([
27
+ (0, class_transformer_1.Expose)(),
28
+ (0, class_transformer_1.Transform)(({ value }) => Number(value))
29
+ ], JsonAccountData.prototype, "lamports", void 0);
30
+ __decorate([
31
+ (0, class_transformer_1.Expose)()
32
+ ], JsonAccountData.prototype, "data", void 0);
33
+ __decorate([
34
+ (0, class_transformer_1.Expose)(),
35
+ (0, class_transformer_1.Transform)(({ value }) => new web3_js_1.PublicKey(value))
36
+ ], JsonAccountData.prototype, "owner", void 0);
37
+ __decorate([
38
+ (0, class_transformer_1.Expose)(),
39
+ (0, class_transformer_1.Transform)(({ value }) => Boolean(value))
40
+ ], JsonAccountData.prototype, "executable", void 0);
41
+ __decorate([
42
+ (0, class_transformer_1.Expose)(),
43
+ (0, class_transformer_1.Transform)(({ value }) => Number(value))
44
+ ], JsonAccountData.prototype, "rentEpoch", void 0);
45
+ class JsonAccount {
46
+ }
47
+ exports.JsonAccount = JsonAccount;
48
+ __decorate([
49
+ (0, class_transformer_1.Expose)(),
50
+ (0, class_transformer_1.Transform)(({ value }) => new web3_js_1.PublicKey(value))
51
+ ], JsonAccount.prototype, "pubkey", void 0);
52
+ __decorate([
53
+ (0, class_transformer_1.Expose)(),
54
+ (0, class_transformer_1.Type)(() => JsonAccountData)
55
+ ], JsonAccount.prototype, "account", void 0);
56
+ function toAccountInfoBytes(jsonAccount) {
57
+ const dataField = jsonAccount.account.data;
58
+ return {
59
+ executable: jsonAccount.account.executable,
60
+ owner: jsonAccount.account.owner,
61
+ lamports: jsonAccount.account.lamports,
62
+ data: Buffer.from(dataField[0], dataField[1]),
63
+ rentEpoch: jsonAccount.account.rentEpoch,
64
+ };
65
+ }
66
+ exports.toAccountInfoBytes = toAccountInfoBytes;
67
+ function loadAccountsFromJson(directory) {
68
+ const accounts = [];
69
+ for (const jsonFile of (0, fs_1.readdirSync)(directory).filter(f => f.endsWith('.json'))) {
70
+ const jsonPath = path_1.default.join(directory, jsonFile);
71
+ const fileBuffer = (0, fs_1.readFileSync)(jsonPath);
72
+ const parsedData = JSON.parse(fileBuffer.toString());
73
+ const jsonAccount = (0, class_transformer_1.plainToInstance)(JsonAccount, parsedData);
74
+ accounts.push(jsonAccount);
75
+ }
76
+ return accounts.map(jsonAccount => {
77
+ return {
78
+ address: jsonAccount.pubkey,
79
+ info: toAccountInfoBytes(jsonAccount),
80
+ };
81
+ });
82
+ }
83
+ exports.loadAccountsFromJson = loadAccountsFromJson;
84
+ // consider using as accountDirs: ./fixtures/accounts/
85
+ async function testInit(accountDirs) {
86
+ let additionalAccounts = [];
87
+ if (accountDirs !== undefined) {
88
+ additionalAccounts = accountDirs.flatMap(dir => loadAccountsFromJson(dir));
89
+ }
90
+ const context = await (0, solana_bankrun_1.startAnchor)('./', [], additionalAccounts);
91
+ return new extendedProvider_1.BankrunExtendedProvider(context);
92
+ }
93
+ exports.testInit = testInit;
94
+ //# sourceMappingURL=testInit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testInit.js","sourceRoot":"","sources":["../../../../../packages/lib/bankrun-utils/src/testInit.ts"],"names":[],"mappings":"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"}