@marinade.finance/bankrun-utils 2.4.10 → 2.4.12

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.10",
3
+ "version": "2.4.12",
4
4
  "description": "Bankrun library utilities",
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,14 +23,14 @@
23
23
  ],
24
24
  "devDependencies": {
25
25
  "@solana/web3.js": "^1.98.0",
26
- "@marinade.finance/web3js-common": "2.4.10",
26
+ "@marinade.finance/web3js-common": "2.4.12",
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
32
  "@solana/web3.js": "^1.98.0",
33
- "@marinade.finance/web3js-common": "2.4.10",
33
+ "@marinade.finance/web3js-common": "2.4.12",
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,67 +1,21 @@
1
1
  "use strict";
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;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
39
3
  exports.warpToNextSlot = exports.warpOffsetSlot = exports.currentSlot = exports.warpToNextEpoch = exports.warpOffsetEpoch = exports.currentEpoch = exports.warpToEpoch = exports.MINIMUM_SLOTS_PER_EPOCH = exports.assertNotExist = void 0;
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
- });
4
+ async function assertNotExist(provider, account) {
5
+ const accountInfo = await provider.context.banksClient.getAccount(account);
6
+ expect(accountInfo).toBeNull();
53
7
  }
54
8
  exports.assertNotExist = assertNotExist;
55
9
  // https://github.com/solana-labs/solana/blob/v1.17.7/sdk/program/src/epoch_schedule.rs#L29C1-L29C45
56
10
  exports.MINIMUM_SLOTS_PER_EPOCH = BigInt(32);
57
11
  // https://github.com/solana-labs/solana/blob/v1.17.7/sdk/program/src/epoch_schedule.rs#L167
58
12
  function warpToEpoch(provider, epoch) {
59
- var epochBigInt = BigInt(epoch);
60
- var _a = provider.context.genesisConfig.epochSchedule, slotsPerEpoch = _a.slotsPerEpoch, firstNormalEpoch = _a.firstNormalEpoch, firstNormalSlot = _a.firstNormalSlot;
61
- var warpToSlot;
13
+ const epochBigInt = BigInt(epoch);
14
+ const { slotsPerEpoch, firstNormalEpoch, firstNormalSlot } = provider.context.genesisConfig.epochSchedule;
15
+ let warpToSlot;
62
16
  if (epochBigInt <= firstNormalEpoch) {
63
17
  warpToSlot =
64
- (Math.pow(BigInt(2), epochBigInt) - BigInt(1)) * exports.MINIMUM_SLOTS_PER_EPOCH;
18
+ (BigInt(2) ** epochBigInt - BigInt(1)) * exports.MINIMUM_SLOTS_PER_EPOCH;
65
19
  }
66
20
  else {
67
21
  warpToSlot =
@@ -70,82 +24,30 @@ function warpToEpoch(provider, epoch) {
70
24
  provider.context.warpToSlot(warpToSlot);
71
25
  }
72
26
  exports.warpToEpoch = warpToEpoch;
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
- });
27
+ async function currentEpoch(provider) {
28
+ return (await provider.context.banksClient.getClock()).epoch;
82
29
  }
83
30
  exports.currentEpoch = currentEpoch;
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
- });
31
+ async function warpOffsetEpoch(provider, plusEpochs) {
32
+ const nextEpoch = (await currentEpoch(provider)) + BigInt(plusEpochs);
33
+ warpToEpoch(provider, nextEpoch);
97
34
  }
98
35
  exports.warpOffsetEpoch = warpOffsetEpoch;
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
- });
36
+ async function warpToNextEpoch(provider) {
37
+ await warpOffsetEpoch(provider, 1);
110
38
  }
111
39
  exports.warpToNextEpoch = warpToNextEpoch;
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
- });
40
+ async function currentSlot(provider) {
41
+ return (await provider.context.banksClient.getClock()).slot;
121
42
  }
122
43
  exports.currentSlot = currentSlot;
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
- });
44
+ async function warpOffsetSlot(provider, plusSlots) {
45
+ const nextSlot = (await currentSlot(provider)) + BigInt(plusSlots);
46
+ provider.context.warpToSlot(nextSlot);
136
47
  }
137
48
  exports.warpOffsetSlot = warpOffsetSlot;
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
- });
49
+ async function warpToNextSlot(provider) {
50
+ await warpOffsetSlot(provider, 1);
149
51
  }
150
52
  exports.warpToNextSlot = warpToNextSlot;
151
53
  //# sourceMappingURL=bankrun.js.map
@@ -1 +1 @@
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
+ {"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,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AACvC,CAAC;AAND,wCAMC;AAEM,KAAK,UAAU,cAAc,CAAC,QAAyB;IAC5D,MAAM,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AACnC,CAAC;AAFD,wCAEC"}
@@ -1,176 +1,49 @@
1
1
  "use strict";
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 };
51
- }
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
- }
59
- }
60
- return to.concat(ar || Array.prototype.slice.call(from));
61
- };
62
- exports.__esModule = true;
2
+ Object.defineProperty(exports, "__esModule", { value: true });
63
3
  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;
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);
71
12
  }
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));
13
+ get walletPubkey() {
14
+ return this.wallet.publicKey;
15
+ }
16
+ }
102
17
  exports.BankrunExtendedProvider = BankrunExtendedProvider;
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
- });
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,
119
25
  });
120
26
  }
121
27
  exports.bankrunTransaction = bankrunTransaction;
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
- });
28
+ async function bankrunExecuteIx(provider, signers, ...ixes) {
29
+ const tx = await bankrunTransaction(provider);
30
+ tx.add(...ixes);
31
+ return await bankrunExecute(provider, signers, tx);
140
32
  }
141
33
  exports.bankrunExecuteIx = bankrunExecuteIx;
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
- });
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);
174
47
  }
175
48
  exports.bankrunExecute = bankrunExecute;
176
49
  //# sourceMappingURL=extendedProvider.js.map
@@ -1 +1 @@
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"}
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"}
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
- exports.__esModule = true;
16
+ Object.defineProperty(exports, "__esModule", { value: 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,174 +5,122 @@ 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
- 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;
8
+ Object.defineProperty(exports, "__esModule", { value: true });
45
9
  exports.testInit = exports.calculateRentExemption = exports.loadPrograms = exports.loadAccountFromJson = exports.loadAccountsFromDirectory = exports.toAccountInfoBytes = exports.JsonAccount = exports.JsonAccountData = void 0;
46
- var web3_js_1 = require("@solana/web3.js");
47
- var solana_bankrun_1 = require("solana-bankrun");
10
+ const web3_js_1 = require("@solana/web3.js");
11
+ const solana_bankrun_1 = require("solana-bankrun");
48
12
  require("reflect-metadata");
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");
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");
53
17
  // note: VsCode error:
54
18
  // https://github.com/microsoft/TypeScript/issues/52396#issuecomment-1409152884
55
19
  // https://bobbyhadz.com/blog/typescript-experimental-support-for-decorators-warning#solve-the-error-in-visual-studio-code
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
- }());
20
+ class JsonAccountData {
21
+ lamports;
22
+ data;
23
+ owner;
24
+ executable;
25
+ rentEpoch;
26
+ }
92
27
  exports.JsonAccountData = JsonAccountData;
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
- }());
28
+ __decorate([
29
+ (0, class_transformer_1.Expose)(),
30
+ (0, class_transformer_1.Transform)(({ value }) => Number(value))
31
+ ], JsonAccountData.prototype, "lamports", void 0);
32
+ __decorate([
33
+ (0, class_transformer_1.Expose)()
34
+ ], JsonAccountData.prototype, "data", void 0);
35
+ __decorate([
36
+ (0, class_transformer_1.Expose)(),
37
+ (0, class_transformer_1.Transform)(({ value }) => new web3_js_1.PublicKey(value))
38
+ ], JsonAccountData.prototype, "owner", void 0);
39
+ __decorate([
40
+ (0, class_transformer_1.Expose)(),
41
+ (0, class_transformer_1.Transform)(({ value }) => Boolean(value))
42
+ ], JsonAccountData.prototype, "executable", void 0);
43
+ __decorate([
44
+ (0, class_transformer_1.Expose)(),
45
+ (0, class_transformer_1.Transform)(({ value }) => Number(value))
46
+ ], JsonAccountData.prototype, "rentEpoch", void 0);
47
+ class JsonAccount {
48
+ pubkey;
49
+ account;
50
+ }
109
51
  exports.JsonAccount = JsonAccount;
52
+ __decorate([
53
+ (0, class_transformer_1.Expose)(),
54
+ (0, class_transformer_1.Transform)(({ value }) => new web3_js_1.PublicKey(value))
55
+ ], JsonAccount.prototype, "pubkey", void 0);
56
+ __decorate([
57
+ (0, class_transformer_1.Expose)(),
58
+ (0, class_transformer_1.Type)(() => JsonAccountData)
59
+ ], JsonAccount.prototype, "account", void 0);
110
60
  function toAccountInfoBytes(jsonAccount) {
111
- var dataField = jsonAccount.account.data;
61
+ const dataField = jsonAccount.account.data;
112
62
  return {
113
63
  executable: jsonAccount.account.executable,
114
64
  owner: jsonAccount.account.owner,
115
65
  lamports: jsonAccount.account.lamports,
116
66
  data: Buffer.from(dataField[0], dataField[1]),
117
- rentEpoch: jsonAccount.account.rentEpoch
67
+ rentEpoch: jsonAccount.account.rentEpoch,
118
68
  };
119
69
  }
120
70
  exports.toAccountInfoBytes = toAccountInfoBytes;
121
71
  function loadAccountsFromDirectory(directory) {
122
- var accounts = [];
123
- for (var _i = 0, _a = (0, fs_1.readdirSync)(directory, {
72
+ const accounts = [];
73
+ for (const jsonFile of (0, fs_1.readdirSync)(directory, {
124
74
  recursive: true,
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);
75
+ encoding: null,
76
+ }).filter(f => f.endsWith('.json'))) {
77
+ const jsonPath = (0, path_1.join)(directory, jsonFile);
78
+ const loadedAccount = loadAccountFromJson(jsonPath);
130
79
  accounts.push(loadedAccount);
131
80
  }
132
81
  return accounts;
133
82
  }
134
83
  exports.loadAccountsFromDirectory = loadAccountsFromDirectory;
135
84
  function loadAccountFromJson(jsonPath) {
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);
85
+ const fileBuffer = (0, fs_1.readFileSync)(jsonPath);
86
+ const parsedData = JSON.parse(fileBuffer.toString());
87
+ const jsonAccount = (0, class_transformer_1.plainToInstance)(JsonAccount, parsedData);
139
88
  return {
140
89
  address: jsonAccount.pubkey,
141
- info: toAccountInfoBytes(jsonAccount)
90
+ info: toAccountInfoBytes(jsonAccount),
142
91
  };
143
92
  }
144
93
  exports.loadAccountFromJson = loadAccountFromJson;
145
94
  function loadPrograms(programs) {
146
- var addedPrograms = [];
147
- var hookDeleteDir = false;
148
- var hookDeleteProgramNames = [];
95
+ const addedPrograms = [];
96
+ let hookDeleteDir = false;
97
+ const hookDeleteProgramNames = [];
149
98
  // programs that should be loaded just by name based on the rules of the solana-test-program
150
99
  programs
151
- .filter(function (p) { return p.path === undefined; })
152
- .forEach(function (p) {
100
+ .filter(p => p.path === undefined)
101
+ .forEach(p => {
153
102
  addedPrograms.push({
154
103
  name: p.name,
155
- programId: p.pubkey
104
+ programId: p.pubkey,
156
105
  });
157
106
  });
158
107
  // programs that provided the path would be copied to the fixtures directory where
159
108
  // the solana-test-program looks for the program data
160
109
  // see: https://github.com/solana-labs/solana/blob/v1.18.14/program-test/src/lib.rs#L428
161
- var fixturesPath = (0, path_1.join)(process.cwd(), 'tests', 'fixtures');
110
+ const fixturesPath = (0, path_1.join)(process.cwd(), 'tests', 'fixtures');
162
111
  if (!(0, fs_1.existsSync)(fixturesPath)) {
163
112
  (0, fs_1.mkdirSync)(fixturesPath, { recursive: true });
164
113
  hookDeleteDir = true;
165
114
  }
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;
115
+ for (const { pubkey, path, name } of programs.filter(p => p.path !== undefined)) {
116
+ const programPath = path;
169
117
  if (!(0, fs_1.existsSync)(programPath)) {
170
- console.error("bankrun startup: program ".concat(pubkey.toBase58(), " at path ").concat(programPath, " does not exist cannot be loaded"));
118
+ console.error(`bankrun startup: program ${pubkey.toBase58()} at path ${programPath} does not exist cannot be loaded`);
171
119
  continue;
172
120
  }
173
- var fixturesProgramSoPath = (0, path_1.join)(fixturesPath, "".concat(name_1, ".so"));
121
+ const fixturesProgramSoPath = (0, path_1.join)(fixturesPath, `${name}.so`);
174
122
  if ((0, fs_1.existsSync)(fixturesProgramSoPath)) {
175
- console.log("bankrun startup: skipping to upload the program ".concat(pubkey.toBase58(), " from path ").concat(path, " to ").concat(fixturesProgramSoPath, " as it already exists"));
123
+ console.log(`bankrun startup: skipping to upload the program ${pubkey.toBase58()} from path ${path} to ${fixturesProgramSoPath} as it already exists`);
176
124
  }
177
125
  else {
178
126
  console.debug('bankrun startup: copying program', fixturesProgramSoPath, 'to', fixturesProgramSoPath);
@@ -180,13 +128,13 @@ function loadPrograms(programs) {
180
128
  hookDeleteProgramNames.push(fixturesProgramSoPath);
181
129
  }
182
130
  addedPrograms.push({
183
- name: name_1,
184
- programId: pubkey
131
+ name,
132
+ programId: pubkey,
185
133
  });
186
134
  }
187
135
  // TODO: exit hooks somehow does not work in jest
188
- registerCleanup(function () {
189
- hookDeleteProgramNames.forEach(function (p) {
136
+ registerCleanup(() => {
137
+ hookDeleteProgramNames.forEach(p => {
190
138
  console.log('Deleting program file', p);
191
139
  (0, fs_1.rmSync)(p);
192
140
  });
@@ -227,8 +175,8 @@ exitHandler) {
227
175
  * > Rent-exempt minimum: 0.00089784 SOL
228
176
  */
229
177
  function calculateRentExemption(dataSize) {
230
- var basePaymentLamports = 890880;
231
- var perByteLamports = 6960;
178
+ const basePaymentLamports = 890880;
179
+ const perByteLamports = 6960;
232
180
  return basePaymentLamports + perByteLamports * dataSize;
233
181
  }
234
182
  exports.calculateRentExemption = calculateRentExemption;
@@ -246,38 +194,27 @@ exports.calculateRentExemption = calculateRentExemption;
246
194
  * The 'path' is optional and when provided the file is copied to place where the solana-test-program looks for the program data.
247
195
  * see: https://github.com/solana-labs/solana/blob/v1.18.14/program-test/src/lib.rs#L428
248
196
  */
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)];
197
+ async function testInit({ accountDirs, accounts, programs, }) {
198
+ let additionalAccounts = [];
199
+ let additionalPrograms = [];
200
+ if (accountDirs !== undefined) {
201
+ additionalAccounts = accountDirs.flatMap(loadAccountsFromDirectory);
202
+ }
203
+ if (accounts !== undefined) {
204
+ additionalAccounts.push(...accounts.flatMap(acc => {
205
+ const accountData = loadAccountFromJson(acc.path);
206
+ if (acc.pubkey !== undefined) {
207
+ // rewriting the address when passed in
208
+ accountData.address = acc.pubkey;
278
209
  }
279
- });
280
- });
210
+ return accountData;
211
+ }));
212
+ }
213
+ if (programs !== undefined) {
214
+ additionalPrograms = loadPrograms(programs);
215
+ }
216
+ const context = await (0, solana_bankrun_1.startAnchor)('./', additionalPrograms, additionalAccounts);
217
+ return new extendedProvider_1.BankrunExtendedProvider(context);
281
218
  }
282
219
  exports.testInit = testInit;
283
220
  //# 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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"}