@marinade.finance/bankrun-utils 2.4.9 → 2.4.10

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@marinade.finance/bankrun-utils",
3
- "version": "2.4.9",
3
+ "version": "2.4.10",
4
4
  "description": "Bankrun library utilities",
5
5
  "repository": {
6
6
  "type": "git",
@@ -22,15 +22,15 @@
22
22
  "src"
23
23
  ],
24
24
  "devDependencies": {
25
- "@solana/web3.js": "^1.93.0",
26
- "@marinade.finance/web3js-common": "2.4.9",
25
+ "@solana/web3.js": "^1.98.0",
26
+ "@marinade.finance/web3js-common": "2.4.10",
27
27
  "solana-bankrun": "^0.2.0",
28
28
  "anchor-bankrun": "^0.2.0",
29
29
  "class-transformer": "^0.5.1"
30
30
  },
31
31
  "peerDependencies": {
32
- "@solana/web3.js": "^1.93.0",
33
- "@marinade.finance/web3js-common": "2.4.9",
32
+ "@solana/web3.js": "^1.98.0",
33
+ "@marinade.finance/web3js-common": "2.4.10",
34
34
  "solana-bankrun": "^0.2.0",
35
35
  "anchor-bankrun": "^0.2.0",
36
36
  "class-transformer": "^0.5.1"
package/src/bankrun.js CHANGED
@@ -1,21 +1,67 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ exports.__esModule = true;
3
39
  exports.warpToNextSlot = exports.warpOffsetSlot = exports.currentSlot = exports.warpToNextEpoch = exports.warpOffsetEpoch = exports.currentEpoch = 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();
40
+ function assertNotExist(provider, account) {
41
+ return __awaiter(this, void 0, void 0, function () {
42
+ var accountInfo;
43
+ return __generator(this, function (_a) {
44
+ switch (_a.label) {
45
+ case 0: return [4 /*yield*/, provider.context.banksClient.getAccount(account)];
46
+ case 1:
47
+ accountInfo = _a.sent();
48
+ expect(accountInfo).toBeNull();
49
+ return [2 /*return*/];
50
+ }
51
+ });
52
+ });
7
53
  }
8
54
  exports.assertNotExist = assertNotExist;
9
55
  // https://github.com/solana-labs/solana/blob/v1.17.7/sdk/program/src/epoch_schedule.rs#L29C1-L29C45
10
56
  exports.MINIMUM_SLOTS_PER_EPOCH = BigInt(32);
11
57
  // https://github.com/solana-labs/solana/blob/v1.17.7/sdk/program/src/epoch_schedule.rs#L167
12
58
  function warpToEpoch(provider, epoch) {
13
- const epochBigInt = BigInt(epoch);
14
- const { slotsPerEpoch, firstNormalEpoch, firstNormalSlot } = provider.context.genesisConfig.epochSchedule;
15
- let warpToSlot;
59
+ var epochBigInt = BigInt(epoch);
60
+ var _a = provider.context.genesisConfig.epochSchedule, slotsPerEpoch = _a.slotsPerEpoch, firstNormalEpoch = _a.firstNormalEpoch, firstNormalSlot = _a.firstNormalSlot;
61
+ var warpToSlot;
16
62
  if (epochBigInt <= firstNormalEpoch) {
17
63
  warpToSlot =
18
- (BigInt(2) ** epochBigInt - BigInt(1)) * exports.MINIMUM_SLOTS_PER_EPOCH;
64
+ (Math.pow(BigInt(2), epochBigInt) - BigInt(1)) * exports.MINIMUM_SLOTS_PER_EPOCH;
19
65
  }
20
66
  else {
21
67
  warpToSlot =
@@ -24,31 +70,82 @@ function warpToEpoch(provider, epoch) {
24
70
  provider.context.warpToSlot(warpToSlot);
25
71
  }
26
72
  exports.warpToEpoch = warpToEpoch;
27
- async function currentEpoch(provider) {
28
- return (await provider.context.banksClient.getClock()).epoch;
73
+ function currentEpoch(provider) {
74
+ return __awaiter(this, void 0, void 0, function () {
75
+ return __generator(this, function (_a) {
76
+ switch (_a.label) {
77
+ case 0: return [4 /*yield*/, provider.context.banksClient.getClock()];
78
+ case 1: return [2 /*return*/, (_a.sent()).epoch];
79
+ }
80
+ });
81
+ });
29
82
  }
30
83
  exports.currentEpoch = currentEpoch;
31
- async function warpOffsetEpoch(provider, plusEpochs) {
32
- const nextEpoch = (await currentEpoch(provider)) + BigInt(plusEpochs);
33
- warpToEpoch(provider, nextEpoch);
84
+ function warpOffsetEpoch(provider, plusEpochs) {
85
+ return __awaiter(this, void 0, void 0, function () {
86
+ var nextEpoch;
87
+ return __generator(this, function (_a) {
88
+ switch (_a.label) {
89
+ case 0: return [4 /*yield*/, currentEpoch(provider)];
90
+ case 1:
91
+ nextEpoch = (_a.sent()) + BigInt(plusEpochs);
92
+ warpToEpoch(provider, nextEpoch);
93
+ return [2 /*return*/];
94
+ }
95
+ });
96
+ });
34
97
  }
35
98
  exports.warpOffsetEpoch = warpOffsetEpoch;
36
- async function warpToNextEpoch(provider) {
37
- await warpOffsetEpoch(provider, 1);
99
+ function warpToNextEpoch(provider) {
100
+ return __awaiter(this, void 0, void 0, function () {
101
+ return __generator(this, function (_a) {
102
+ switch (_a.label) {
103
+ case 0: return [4 /*yield*/, warpOffsetEpoch(provider, 1)];
104
+ case 1:
105
+ _a.sent();
106
+ return [2 /*return*/];
107
+ }
108
+ });
109
+ });
38
110
  }
39
111
  exports.warpToNextEpoch = warpToNextEpoch;
40
- async function currentSlot(provider) {
41
- return (await provider.context.banksClient.getClock()).slot;
112
+ function currentSlot(provider) {
113
+ return __awaiter(this, void 0, void 0, function () {
114
+ return __generator(this, function (_a) {
115
+ switch (_a.label) {
116
+ case 0: return [4 /*yield*/, provider.context.banksClient.getClock()];
117
+ case 1: return [2 /*return*/, (_a.sent()).slot];
118
+ }
119
+ });
120
+ });
42
121
  }
43
122
  exports.currentSlot = currentSlot;
44
- async function warpOffsetSlot(provider, plusSlots) {
45
- const nextSlot = (await currentSlot(provider)) + BigInt(plusSlots);
46
- warpOffsetSlot(provider, nextSlot);
47
- provider.context.warpToSlot(nextSlot);
123
+ function warpOffsetSlot(provider, plusSlots) {
124
+ return __awaiter(this, void 0, void 0, function () {
125
+ var nextSlot;
126
+ return __generator(this, function (_a) {
127
+ switch (_a.label) {
128
+ case 0: return [4 /*yield*/, currentSlot(provider)];
129
+ case 1:
130
+ nextSlot = (_a.sent()) + BigInt(plusSlots);
131
+ provider.context.warpToSlot(nextSlot);
132
+ return [2 /*return*/];
133
+ }
134
+ });
135
+ });
48
136
  }
49
137
  exports.warpOffsetSlot = warpOffsetSlot;
50
- async function warpToNextSlot(provider) {
51
- await warpOffsetSlot(provider, 1);
138
+ function warpToNextSlot(provider) {
139
+ return __awaiter(this, void 0, void 0, function () {
140
+ return __generator(this, function (_a) {
141
+ switch (_a.label) {
142
+ case 0: return [4 /*yield*/, warpOffsetSlot(provider, 1)];
143
+ case 1:
144
+ _a.sent();
145
+ return [2 /*return*/];
146
+ }
147
+ });
148
+ });
52
149
  }
53
150
  exports.warpToNextSlot = warpToNextSlot;
54
151
  //# sourceMappingURL=bankrun.js.map
@@ -1 +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,MAAM,CAAC,EAAE,CAAC,CAAA;AACjD,4FAA4F;AAC5F,SAAgB,WAAW,CAAC,QAAyB,EAAE,KAAsB;IAC3E,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,CAAC;QACpC,UAAU;YACR,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,+BAAuB,CAAA;IACpE,CAAC;SAAM,CAAC;QACN,UAAU;YACR,CAAC,WAAW,GAAG,gBAAgB,CAAC,GAAG,aAAa,GAAG,eAAe,CAAA;IACtE,CAAC;IACD,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;AACzC,CAAC;AAbD,kCAaC;AAEM,KAAK,UAAU,YAAY,CAAC,QAAyB;IAC1D,OAAO,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAA;AAC9D,CAAC;AAFD,oCAEC;AAEM,KAAK,UAAU,eAAe,CACnC,QAAyB,EACzB,UAA2B;IAE3B,MAAM,SAAS,GAAG,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;IACrE,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AAClC,CAAC;AAND,0CAMC;AAEM,KAAK,UAAU,eAAe,CAAC,QAAyB;IAC7D,MAAM,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AACpC,CAAC;AAFD,0CAEC;AAEM,KAAK,UAAU,WAAW,CAAC,QAAyB;IACzD,OAAO,CAAC,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAA;AAC7D,CAAC;AAFD,kCAEC;AAEM,KAAK,UAAU,cAAc,CAClC,QAAyB,EACzB,SAA0B;IAE1B,MAAM,QAAQ,GAAG,CAAC,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;IAClE,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAClC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AACvC,CAAC;AAPD,wCAOC;AAEM,KAAK,UAAU,cAAc,CAAC,QAAyB;IAC5D,MAAM,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AACnC,CAAC;AAFD,wCAEC"}
1
+ {"version":3,"file":"bankrun.js","sourceRoot":"","sources":["../../../../../packages/lib/bankrun-utils/src/bankrun.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,SAAsB,cAAc,CAClC,QAAyB,EACzB,OAAkB;;;;;wBAEE,qBAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,EAAA;;oBAApE,WAAW,GAAG,SAAsD;oBAC1E,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,CAAA;;;;;CAC/B;AAND,wCAMC;AAED,oGAAoG;AACvF,QAAA,uBAAuB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAA;AACjD,4FAA4F;AAC5F,SAAgB,WAAW,CAAC,QAAyB,EAAE,KAAsB;IAC3E,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IAC3B,IAAA,KACJ,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,EADtC,aAAa,mBAAA,EAAE,gBAAgB,sBAAA,EAAE,eAAe,qBACV,CAAA;IAC9C,IAAI,UAAkB,CAAA;IACtB,IAAI,WAAW,IAAI,gBAAgB,EAAE;QACnC,UAAU;YACR,CAAC,SAAA,MAAM,CAAC,CAAC,CAAC,EAAI,WAAW,CAAA,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,+BAAuB,CAAA;KACnE;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;AAbD,kCAaC;AAED,SAAsB,YAAY,CAAC,QAAyB;;;;wBAClD,qBAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAA;wBAArD,sBAAO,CAAC,SAA6C,CAAC,CAAC,KAAK,EAAA;;;;CAC7D;AAFD,oCAEC;AAED,SAAsB,eAAe,CACnC,QAAyB,EACzB,UAA2B;;;;;wBAER,qBAAM,YAAY,CAAC,QAAQ,CAAC,EAAA;;oBAAzC,SAAS,GAAG,CAAC,SAA4B,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC;oBACrE,WAAW,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;;;;;CACjC;AAND,0CAMC;AAED,SAAsB,eAAe,CAAC,QAAyB;;;;wBAC7D,qBAAM,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAA;;oBAAlC,SAAkC,CAAA;;;;;CACnC;AAFD,0CAEC;AAED,SAAsB,WAAW,CAAC,QAAyB;;;;wBACjD,qBAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAA;wBAArD,sBAAO,CAAC,SAA6C,CAAC,CAAC,IAAI,EAAA;;;;CAC5D;AAFD,kCAEC;AAED,SAAsB,cAAc,CAClC,QAAyB,EACzB,SAA0B;;;;;wBAER,qBAAM,WAAW,CAAC,QAAQ,CAAC,EAAA;;oBAAvC,QAAQ,GAAG,CAAC,SAA2B,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC;oBAClE,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;;;;;CACtC;AAND,wCAMC;AAED,SAAsB,cAAc,CAAC,QAAyB;;;;wBAC5D,qBAAM,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAA;;oBAAjC,SAAiC,CAAA;;;;;CAClC;AAFD,wCAEC"}
@@ -1,49 +1,176 @@
1
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);
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (_) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
12
51
  }
13
- get walletPubkey() {
14
- return this.wallet.publicKey;
52
+ };
53
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
54
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
55
+ if (ar || !(i in from)) {
56
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
57
+ ar[i] = from[i];
58
+ }
15
59
  }
16
- }
60
+ return to.concat(ar || Array.prototype.slice.call(from));
61
+ };
62
+ exports.__esModule = true;
63
+ exports.bankrunExecute = exports.bankrunExecuteIx = exports.bankrunTransaction = exports.BankrunExtendedProvider = void 0;
64
+ var web3js_common_1 = require("@marinade.finance/web3js-common");
65
+ var web3_js_1 = require("@solana/web3.js");
66
+ var anchor_bankrun_1 = require("anchor-bankrun");
67
+ var BankrunExtendedProvider = /** @class */ (function (_super) {
68
+ __extends(BankrunExtendedProvider, _super);
69
+ function BankrunExtendedProvider() {
70
+ return _super !== null && _super.apply(this, arguments) || this;
71
+ }
72
+ BankrunExtendedProvider.prototype.sendIx = function (signers) {
73
+ var ixes = [];
74
+ for (var _i = 1; _i < arguments.length; _i++) {
75
+ ixes[_i - 1] = arguments[_i];
76
+ }
77
+ return __awaiter(this, void 0, void 0, function () {
78
+ var tx;
79
+ return __generator(this, function (_a) {
80
+ switch (_a.label) {
81
+ case 0: return [4 /*yield*/, bankrunTransaction(this)];
82
+ case 1:
83
+ tx = _a.sent();
84
+ tx.add.apply(tx, ixes);
85
+ return [4 /*yield*/, bankrunExecute(this, __spreadArray([this.wallet], signers, true), tx)];
86
+ case 2:
87
+ _a.sent();
88
+ return [2 /*return*/];
89
+ }
90
+ });
91
+ });
92
+ };
93
+ Object.defineProperty(BankrunExtendedProvider.prototype, "walletPubkey", {
94
+ get: function () {
95
+ return this.wallet.publicKey;
96
+ },
97
+ enumerable: false,
98
+ configurable: true
99
+ });
100
+ return BankrunExtendedProvider;
101
+ }(anchor_bankrun_1.BankrunProvider));
17
102
  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,
103
+ function bankrunTransaction(provider) {
104
+ return __awaiter(this, void 0, void 0, function () {
105
+ var bh, lastValidBlockHeight;
106
+ return __generator(this, function (_a) {
107
+ switch (_a.label) {
108
+ case 0: return [4 /*yield*/, provider.context.banksClient.getLatestBlockhash()];
109
+ case 1:
110
+ bh = _a.sent();
111
+ lastValidBlockHeight = (bh === null ? Number.MAX_VALUE : bh[1]);
112
+ return [2 /*return*/, new web3_js_1.Transaction({
113
+ feePayer: provider.wallet.publicKey,
114
+ blockhash: provider.context.lastBlockhash,
115
+ lastValidBlockHeight: lastValidBlockHeight
116
+ })];
117
+ }
118
+ });
25
119
  });
26
120
  }
27
121
  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);
122
+ function bankrunExecuteIx(provider, signers) {
123
+ var ixes = [];
124
+ for (var _i = 2; _i < arguments.length; _i++) {
125
+ ixes[_i - 2] = arguments[_i];
126
+ }
127
+ return __awaiter(this, void 0, void 0, function () {
128
+ var tx;
129
+ return __generator(this, function (_a) {
130
+ switch (_a.label) {
131
+ case 0: return [4 /*yield*/, bankrunTransaction(provider)];
132
+ case 1:
133
+ tx = _a.sent();
134
+ tx.add.apply(tx, ixes);
135
+ return [4 /*yield*/, bankrunExecute(provider, signers, tx)];
136
+ case 2: return [2 /*return*/, _a.sent()];
137
+ }
138
+ });
139
+ });
32
140
  }
33
141
  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);
142
+ function bankrunExecute(provider, signers, tx) {
143
+ return __awaiter(this, void 0, void 0, function () {
144
+ var _i, signers_1, signer;
145
+ return __generator(this, function (_a) {
146
+ switch (_a.label) {
147
+ case 0:
148
+ _i = 0, signers_1 = signers;
149
+ _a.label = 1;
150
+ case 1:
151
+ if (!(_i < signers_1.length)) return [3 /*break*/, 5];
152
+ signer = signers_1[_i];
153
+ if (!(0, web3js_common_1.instanceOfWallet)(signer)) return [3 /*break*/, 3];
154
+ return [4 /*yield*/, signer.signTransaction(tx)];
155
+ case 2:
156
+ _a.sent();
157
+ return [3 /*break*/, 4];
158
+ case 3:
159
+ if (signer instanceof web3_js_1.Keypair || 'secretKey' in signer) {
160
+ tx.partialSign(signer);
161
+ }
162
+ else {
163
+ throw new Error('bankrunExecute: provided signer parameter is not a signer: ' + signer);
164
+ }
165
+ _a.label = 4;
166
+ case 4:
167
+ _i++;
168
+ return [3 /*break*/, 1];
169
+ case 5: return [4 /*yield*/, provider.context.banksClient.processTransaction(tx)];
170
+ case 6: return [2 /*return*/, _a.sent()];
171
+ }
172
+ });
173
+ });
47
174
  }
48
175
  exports.bankrunExecute = bankrunExecute;
49
176
  //# sourceMappingURL=extendedProvider.js.map
@@ -1 +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,CAAC;QAC7B,IAAI,IAAA,gCAAgB,EAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,MAAM,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;QAClC,CAAC;aAAM,IAAI,MAAM,YAAY,iBAAO,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;YAC9D,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QACxB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,6DAA6D,GAAG,MAAM,CACvE,CAAA;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAA;AAClE,CAAC;AAjBD,wCAiBC"}
1
+ {"version":3,"file":"extendedProvider.js","sourceRoot":"","sources":["../../../../../packages/lib/bankrun-utils/src/extendedProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iEAIwC;AACxC,2CAOwB;AACxB,iDAAgD;AAGhD;IACU,2CAAe;IADzB;;IAoBA,CAAC;IAhBO,wCAAM,GAAZ,UACE,OAAsC;QACtC,cAIG;aAJH,UAIG,EAJH,qBAIG,EAJH,IAIG;YAJH,6BAIG;;;;;;4BAEQ,qBAAM,kBAAkB,CAAC,IAAI,CAAC,EAAA;;wBAAnC,EAAE,GAAG,SAA8B;wBACzC,EAAE,CAAC,GAAG,OAAN,EAAE,EAAQ,IAAI,EAAC;wBACf,qBAAM,cAAc,CAAC,IAAI,iBAAG,IAAI,CAAC,MAAM,GAAK,OAAO,SAAG,EAAE,CAAC,EAAA;;wBAAzD,SAAyD,CAAA;;;;;KAC1D;IAED,sBAAI,iDAAY;aAAhB;YACE,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAA;QAC9B,CAAC;;;OAAA;IACH,8BAAC;AAAD,CAAC,AApBD,CACU,gCAAe,GAmBxB;AApBY,0DAAuB;AAsBpC,SAAsB,kBAAkB,CACtC,QAAyB;;;;;wBAEd,qBAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,EAAE,EAAA;;oBAA5D,EAAE,GAAG,SAAuD;oBAC5D,oBAAoB,GAAG,CAC3B,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC7B,CAAA;oBACX,sBAAO,IAAI,qBAAW,CAAC;4BACrB,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;4BACnC,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,aAAa;4BACzC,oBAAoB,sBAAA;yBACrB,CAAC,EAAA;;;;CACH;AAZD,gDAYC;AAED,SAAsB,gBAAgB,CACpC,QAAyB,EACzB,OAAsC;IACtC,cAIG;SAJH,UAIG,EAJH,qBAIG,EAJH,IAIG;QAJH,6BAIG;;;;;;wBAEQ,qBAAM,kBAAkB,CAAC,QAAQ,CAAC,EAAA;;oBAAvC,EAAE,GAAG,SAAkC;oBAC7C,EAAE,CAAC,GAAG,OAAN,EAAE,EAAQ,IAAI,EAAC;oBACR,qBAAM,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,EAAA;wBAAlD,sBAAO,SAA2C,EAAA;;;;CACnD;AAZD,4CAYC;AAED,SAAsB,cAAc,CAClC,QAAyB,EACzB,OAAsC,EACtC,EAAe;;;;;;0BAEa,EAAP,mBAAO;;;yBAAP,CAAA,qBAAO,CAAA;oBAAjB,MAAM;yBACX,IAAA,gCAAgB,EAAC,MAAM,CAAC,EAAxB,wBAAwB;oBAC1B,qBAAM,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,EAAA;;oBAAhC,SAAgC,CAAA;;;oBAC3B,IAAI,MAAM,YAAY,iBAAO,IAAI,WAAW,IAAI,MAAM,EAAE;wBAC7D,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;qBACvB;yBAAM;wBACL,MAAM,IAAI,KAAK,CACb,6DAA6D,GAAG,MAAM,CACvE,CAAA;qBACF;;;oBATkB,IAAO,CAAA;;wBAWrB,qBAAM,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC,EAAA;wBAAhE,sBAAO,SAAyD,EAAA;;;;CACjE;AAjBD,wCAiBC"}
package/src/index.js CHANGED
@@ -13,7 +13,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
13
13
  var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
- Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.__esModule = true;
17
17
  __exportStar(require("./extendedProvider"), exports);
18
18
  __exportStar(require("./testInit"), exports);
19
19
  __exportStar(require("./bankrun"), exports);
package/src/testInit.js CHANGED
@@ -5,115 +5,174 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
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
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- Object.defineProperty(exports, "__esModule", { value: true });
8
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
9
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
10
+ return new (P || (P = Promise))(function (resolve, reject) {
11
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
12
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
13
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
14
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
15
+ });
16
+ };
17
+ var __generator = (this && this.__generator) || function (thisArg, body) {
18
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
19
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
20
+ function verb(n) { return function (v) { return step([n, v]); }; }
21
+ function step(op) {
22
+ if (f) throw new TypeError("Generator is already executing.");
23
+ while (_) try {
24
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
25
+ if (y = 0, t) op = [op[0] & 2, t.value];
26
+ switch (op[0]) {
27
+ case 0: case 1: t = op; break;
28
+ case 4: _.label++; return { value: op[1], done: false };
29
+ case 5: _.label++; y = op[1]; op = [0]; continue;
30
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
31
+ default:
32
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
33
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
34
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
35
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
36
+ if (t[2]) _.ops.pop();
37
+ _.trys.pop(); continue;
38
+ }
39
+ op = body.call(thisArg, _);
40
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
41
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
42
+ }
43
+ };
44
+ exports.__esModule = true;
9
45
  exports.testInit = exports.calculateRentExemption = exports.loadPrograms = exports.loadAccountFromJson = exports.loadAccountsFromDirectory = exports.toAccountInfoBytes = exports.JsonAccount = exports.JsonAccountData = void 0;
10
- const web3_js_1 = require("@solana/web3.js");
11
- const solana_bankrun_1 = require("solana-bankrun");
46
+ var web3_js_1 = require("@solana/web3.js");
47
+ var solana_bankrun_1 = require("solana-bankrun");
12
48
  require("reflect-metadata");
13
- const class_transformer_1 = require("class-transformer");
14
- const fs_1 = require("fs");
15
- const path_1 = require("path");
16
- const extendedProvider_1 = require("./extendedProvider");
49
+ var class_transformer_1 = require("class-transformer");
50
+ var fs_1 = require("fs");
51
+ var path_1 = require("path");
52
+ var extendedProvider_1 = require("./extendedProvider");
17
53
  // note: VsCode error:
18
54
  // https://github.com/microsoft/TypeScript/issues/52396#issuecomment-1409152884
19
55
  // https://bobbyhadz.com/blog/typescript-experimental-support-for-decorators-warning#solve-the-error-in-visual-studio-code
20
- class JsonAccountData {
21
- }
56
+ var JsonAccountData = /** @class */ (function () {
57
+ function JsonAccountData() {
58
+ }
59
+ __decorate([
60
+ (0, class_transformer_1.Expose)(),
61
+ (0, class_transformer_1.Transform)(function (_a) {
62
+ var value = _a.value;
63
+ return Number(value);
64
+ })
65
+ ], JsonAccountData.prototype, "lamports");
66
+ __decorate([
67
+ (0, class_transformer_1.Expose)()
68
+ ], JsonAccountData.prototype, "data");
69
+ __decorate([
70
+ (0, class_transformer_1.Expose)(),
71
+ (0, class_transformer_1.Transform)(function (_a) {
72
+ var value = _a.value;
73
+ return new web3_js_1.PublicKey(value);
74
+ })
75
+ ], JsonAccountData.prototype, "owner");
76
+ __decorate([
77
+ (0, class_transformer_1.Expose)(),
78
+ (0, class_transformer_1.Transform)(function (_a) {
79
+ var value = _a.value;
80
+ return Boolean(value);
81
+ })
82
+ ], JsonAccountData.prototype, "executable");
83
+ __decorate([
84
+ (0, class_transformer_1.Expose)(),
85
+ (0, class_transformer_1.Transform)(function (_a) {
86
+ var value = _a.value;
87
+ return Number(value);
88
+ })
89
+ ], JsonAccountData.prototype, "rentEpoch");
90
+ return JsonAccountData;
91
+ }());
22
92
  exports.JsonAccountData = JsonAccountData;
23
- __decorate([
24
- (0, class_transformer_1.Expose)(),
25
- (0, class_transformer_1.Transform)(({ value }) => Number(value))
26
- ], JsonAccountData.prototype, "lamports", void 0);
27
- __decorate([
28
- (0, class_transformer_1.Expose)()
29
- ], JsonAccountData.prototype, "data", void 0);
30
- __decorate([
31
- (0, class_transformer_1.Expose)(),
32
- (0, class_transformer_1.Transform)(({ value }) => new web3_js_1.PublicKey(value))
33
- ], JsonAccountData.prototype, "owner", void 0);
34
- __decorate([
35
- (0, class_transformer_1.Expose)(),
36
- (0, class_transformer_1.Transform)(({ value }) => Boolean(value))
37
- ], JsonAccountData.prototype, "executable", void 0);
38
- __decorate([
39
- (0, class_transformer_1.Expose)(),
40
- (0, class_transformer_1.Transform)(({ value }) => Number(value))
41
- ], JsonAccountData.prototype, "rentEpoch", void 0);
42
- class JsonAccount {
43
- }
93
+ var JsonAccount = /** @class */ (function () {
94
+ function JsonAccount() {
95
+ }
96
+ __decorate([
97
+ (0, class_transformer_1.Expose)(),
98
+ (0, class_transformer_1.Transform)(function (_a) {
99
+ var value = _a.value;
100
+ return new web3_js_1.PublicKey(value);
101
+ })
102
+ ], JsonAccount.prototype, "pubkey");
103
+ __decorate([
104
+ (0, class_transformer_1.Expose)(),
105
+ (0, class_transformer_1.Type)(function () { return JsonAccountData; })
106
+ ], JsonAccount.prototype, "account");
107
+ return JsonAccount;
108
+ }());
44
109
  exports.JsonAccount = JsonAccount;
45
- __decorate([
46
- (0, class_transformer_1.Expose)(),
47
- (0, class_transformer_1.Transform)(({ value }) => new web3_js_1.PublicKey(value))
48
- ], JsonAccount.prototype, "pubkey", void 0);
49
- __decorate([
50
- (0, class_transformer_1.Expose)(),
51
- (0, class_transformer_1.Type)(() => JsonAccountData)
52
- ], JsonAccount.prototype, "account", void 0);
53
110
  function toAccountInfoBytes(jsonAccount) {
54
- const dataField = jsonAccount.account.data;
111
+ var dataField = jsonAccount.account.data;
55
112
  return {
56
113
  executable: jsonAccount.account.executable,
57
114
  owner: jsonAccount.account.owner,
58
115
  lamports: jsonAccount.account.lamports,
59
116
  data: Buffer.from(dataField[0], dataField[1]),
60
- rentEpoch: jsonAccount.account.rentEpoch,
117
+ rentEpoch: jsonAccount.account.rentEpoch
61
118
  };
62
119
  }
63
120
  exports.toAccountInfoBytes = toAccountInfoBytes;
64
121
  function loadAccountsFromDirectory(directory) {
65
- const accounts = [];
66
- for (const jsonFile of (0, fs_1.readdirSync)(directory, {
122
+ var accounts = [];
123
+ for (var _i = 0, _a = (0, fs_1.readdirSync)(directory, {
67
124
  recursive: true,
68
- encoding: null,
69
- }).filter(f => f.endsWith('.json'))) {
70
- const jsonPath = (0, path_1.join)(directory, jsonFile);
71
- const loadedAccount = loadAccountFromJson(jsonPath);
125
+ encoding: null
126
+ }).filter(function (f) { return f.endsWith('.json'); }); _i < _a.length; _i++) {
127
+ var jsonFile = _a[_i];
128
+ var jsonPath = (0, path_1.join)(directory, jsonFile);
129
+ var loadedAccount = loadAccountFromJson(jsonPath);
72
130
  accounts.push(loadedAccount);
73
131
  }
74
132
  return accounts;
75
133
  }
76
134
  exports.loadAccountsFromDirectory = loadAccountsFromDirectory;
77
135
  function loadAccountFromJson(jsonPath) {
78
- const fileBuffer = (0, fs_1.readFileSync)(jsonPath);
79
- const parsedData = JSON.parse(fileBuffer.toString());
80
- const jsonAccount = (0, class_transformer_1.plainToInstance)(JsonAccount, parsedData);
136
+ var fileBuffer = (0, fs_1.readFileSync)(jsonPath);
137
+ var parsedData = JSON.parse(fileBuffer.toString());
138
+ var jsonAccount = (0, class_transformer_1.plainToInstance)(JsonAccount, parsedData);
81
139
  return {
82
140
  address: jsonAccount.pubkey,
83
- info: toAccountInfoBytes(jsonAccount),
141
+ info: toAccountInfoBytes(jsonAccount)
84
142
  };
85
143
  }
86
144
  exports.loadAccountFromJson = loadAccountFromJson;
87
145
  function loadPrograms(programs) {
88
- const addedPrograms = [];
89
- let hookDeleteDir = false;
90
- const hookDeleteProgramNames = [];
146
+ var addedPrograms = [];
147
+ var hookDeleteDir = false;
148
+ var hookDeleteProgramNames = [];
91
149
  // programs that should be loaded just by name based on the rules of the solana-test-program
92
150
  programs
93
- .filter(p => p.path === undefined)
94
- .forEach(p => {
151
+ .filter(function (p) { return p.path === undefined; })
152
+ .forEach(function (p) {
95
153
  addedPrograms.push({
96
154
  name: p.name,
97
- programId: p.pubkey,
155
+ programId: p.pubkey
98
156
  });
99
157
  });
100
158
  // programs that provided the path would be copied to the fixtures directory where
101
159
  // the solana-test-program looks for the program data
102
160
  // see: https://github.com/solana-labs/solana/blob/v1.18.14/program-test/src/lib.rs#L428
103
- const fixturesPath = (0, path_1.join)(process.cwd(), 'tests', 'fixtures');
161
+ var fixturesPath = (0, path_1.join)(process.cwd(), 'tests', 'fixtures');
104
162
  if (!(0, fs_1.existsSync)(fixturesPath)) {
105
163
  (0, fs_1.mkdirSync)(fixturesPath, { recursive: true });
106
164
  hookDeleteDir = true;
107
165
  }
108
- for (const { pubkey, path, name } of programs.filter(p => p.path !== undefined)) {
109
- const programPath = path;
166
+ for (var _i = 0, _a = programs.filter(function (p) { return p.path !== undefined; }); _i < _a.length; _i++) {
167
+ var _b = _a[_i], pubkey = _b.pubkey, path = _b.path, name_1 = _b.name;
168
+ var programPath = path;
110
169
  if (!(0, fs_1.existsSync)(programPath)) {
111
- console.error(`bankrun startup: program ${pubkey.toBase58()} at path ${programPath} does not exist cannot be loaded`);
170
+ console.error("bankrun startup: program ".concat(pubkey.toBase58(), " at path ").concat(programPath, " does not exist cannot be loaded"));
112
171
  continue;
113
172
  }
114
- const fixturesProgramSoPath = (0, path_1.join)(fixturesPath, `${name}.so`);
173
+ var fixturesProgramSoPath = (0, path_1.join)(fixturesPath, "".concat(name_1, ".so"));
115
174
  if ((0, fs_1.existsSync)(fixturesProgramSoPath)) {
116
- console.log(`bankrun startup: skipping to upload the program ${pubkey.toBase58()} from path ${path} to ${fixturesProgramSoPath} as it already exists`);
175
+ console.log("bankrun startup: skipping to upload the program ".concat(pubkey.toBase58(), " from path ").concat(path, " to ").concat(fixturesProgramSoPath, " as it already exists"));
117
176
  }
118
177
  else {
119
178
  console.debug('bankrun startup: copying program', fixturesProgramSoPath, 'to', fixturesProgramSoPath);
@@ -121,13 +180,13 @@ function loadPrograms(programs) {
121
180
  hookDeleteProgramNames.push(fixturesProgramSoPath);
122
181
  }
123
182
  addedPrograms.push({
124
- name,
125
- programId: pubkey,
183
+ name: name_1,
184
+ programId: pubkey
126
185
  });
127
186
  }
128
187
  // TODO: exit hooks somehow does not work in jest
129
- registerCleanup(() => {
130
- hookDeleteProgramNames.forEach(p => {
188
+ registerCleanup(function () {
189
+ hookDeleteProgramNames.forEach(function (p) {
131
190
  console.log('Deleting program file', p);
132
191
  (0, fs_1.rmSync)(p);
133
192
  });
@@ -168,8 +227,8 @@ exitHandler) {
168
227
  * > Rent-exempt minimum: 0.00089784 SOL
169
228
  */
170
229
  function calculateRentExemption(dataSize) {
171
- const basePaymentLamports = 890880;
172
- const perByteLamports = 6960;
230
+ var basePaymentLamports = 890880;
231
+ var perByteLamports = 6960;
173
232
  return basePaymentLamports + perByteLamports * dataSize;
174
233
  }
175
234
  exports.calculateRentExemption = calculateRentExemption;
@@ -187,27 +246,38 @@ exports.calculateRentExemption = calculateRentExemption;
187
246
  * The 'path' is optional and when provided the file is copied to place where the solana-test-program looks for the program data.
188
247
  * see: https://github.com/solana-labs/solana/blob/v1.18.14/program-test/src/lib.rs#L428
189
248
  */
190
- async function testInit({ accountDirs, accounts, programs, }) {
191
- let additionalAccounts = [];
192
- let additionalPrograms = [];
193
- if (accountDirs !== undefined) {
194
- additionalAccounts = accountDirs.flatMap(loadAccountsFromDirectory);
195
- }
196
- if (accounts !== undefined) {
197
- additionalAccounts.push(...accounts.flatMap(acc => {
198
- const accountData = loadAccountFromJson(acc.path);
199
- if (acc.pubkey !== undefined) {
200
- // rewriting the address when passed in
201
- accountData.address = acc.pubkey;
249
+ function testInit(_a) {
250
+ var accountDirs = _a.accountDirs, accounts = _a.accounts, programs = _a.programs;
251
+ return __awaiter(this, void 0, void 0, function () {
252
+ var additionalAccounts, additionalPrograms, context;
253
+ return __generator(this, function (_b) {
254
+ switch (_b.label) {
255
+ case 0:
256
+ additionalAccounts = [];
257
+ additionalPrograms = [];
258
+ if (accountDirs !== undefined) {
259
+ additionalAccounts = accountDirs.flatMap(loadAccountsFromDirectory);
260
+ }
261
+ if (accounts !== undefined) {
262
+ additionalAccounts.push.apply(additionalAccounts, accounts.flatMap(function (acc) {
263
+ var accountData = loadAccountFromJson(acc.path);
264
+ if (acc.pubkey !== undefined) {
265
+ // rewriting the address when passed in
266
+ accountData.address = acc.pubkey;
267
+ }
268
+ return accountData;
269
+ }));
270
+ }
271
+ if (programs !== undefined) {
272
+ additionalPrograms = loadPrograms(programs);
273
+ }
274
+ return [4 /*yield*/, (0, solana_bankrun_1.startAnchor)('./', additionalPrograms, additionalAccounts)];
275
+ case 1:
276
+ context = _b.sent();
277
+ return [2 /*return*/, new extendedProvider_1.BankrunExtendedProvider(context)];
202
278
  }
203
- return accountData;
204
- }));
205
- }
206
- if (programs !== undefined) {
207
- additionalPrograms = loadPrograms(programs);
208
- }
209
- const context = await (0, solana_bankrun_1.startAnchor)('./', additionalPrograms, additionalAccounts);
210
- return new extendedProvider_1.BankrunExtendedProvider(context);
279
+ });
280
+ });
211
281
  }
212
282
  exports.testInit = testInit;
213
283
  //# sourceMappingURL=testInit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"testInit.js","sourceRoot":"","sources":["../../../../../packages/lib/bankrun-utils/src/testInit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testInit.js","sourceRoot":"","sources":["../../../../../packages/lib/bankrun-utils/src/testInit.ts"],"names":[],"mappings":"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"}