@muritavo/testing-toolkit 0.2.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/client/blockchain.d.ts +2 -0
  2. package/dist/client/blockchain.js +112 -0
  3. package/dist/client/blockchain.js.map +1 -0
  4. package/dist/native/blockchain.d.ts +7 -3
  5. package/dist/native/blockchain.js +16 -7
  6. package/dist/native/blockchain.js.map +1 -1
  7. package/dist/src/client/blockchain.d.ts +6 -0
  8. package/dist/src/client/blockchain.js +122 -0
  9. package/dist/src/client/blockchain.js.map +1 -0
  10. package/dist/src/client/emulator.d.ts +65 -0
  11. package/dist/src/client/emulator.js +251 -0
  12. package/dist/src/client/emulator.js.map +1 -0
  13. package/dist/src/client/utility.d.ts +7 -0
  14. package/dist/src/client/utility.js +39 -0
  15. package/dist/src/client/utility.js.map +1 -0
  16. package/dist/src/native/blockchain.d.ts +20 -0
  17. package/dist/src/native/blockchain.js +284 -0
  18. package/dist/src/native/blockchain.js.map +1 -0
  19. package/dist/src/native/consts.d.ts +5 -0
  20. package/dist/src/native/consts.js +9 -0
  21. package/dist/src/native/consts.js.map +1 -0
  22. package/dist/src/native/emulator.d.ts +36 -0
  23. package/dist/src/native/emulator.js +241 -0
  24. package/dist/src/native/emulator.js.map +1 -0
  25. package/dist/src/types/contract.d.ts +79 -0
  26. package/dist/src/types/contract.js +31 -0
  27. package/dist/src/types/contract.js.map +1 -0
  28. package/dist/test/blockchain.test.d.ts +1 -0
  29. package/dist/test/blockchain.test.js +97 -0
  30. package/dist/test/blockchain.test.js.map +1 -0
  31. package/dist/test/fixtures/zero_x_abi.d.ts +31 -0
  32. package/dist/test/fixtures/zero_x_abi.js +44 -0
  33. package/dist/test/fixtures/zero_x_abi.js.map +1 -0
  34. package/package.json +3 -2
@@ -0,0 +1,251 @@
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 (g && (g = 0, op[0] && (_ = 0)), _) 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
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
39
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
40
+ if (ar || !(i in from)) {
41
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
42
+ ar[i] = from[i];
43
+ }
44
+ }
45
+ return to.concat(ar || Array.prototype.slice.call(from));
46
+ };
47
+ var __importDefault = (this && this.__importDefault) || function (mod) {
48
+ return (mod && mod.__esModule) ? mod : { "default": mod };
49
+ };
50
+ Object.defineProperty(exports, "__esModule", { value: true });
51
+ exports.clearFirestore = exports.setEmulatorConfig = exports.clearAuth = exports.addAuthUser = exports.setupEmulator = exports.deleteCollection = void 0;
52
+ var node_fetch_1 = __importDefault(require("node-fetch"));
53
+ var rules_unit_testing_1 = require("@firebase/rules-unit-testing");
54
+ var consts_1 = require("../native/consts");
55
+ var emulatorConfig;
56
+ /**
57
+ * Deletes a collection from firebase
58
+ * @param projectId The current project id of the emulator instance
59
+ * @param collectionPath The collection path **starting with "/"**
60
+ */
61
+ var deleteCollection = function (projectId, collectionPath) { return __awaiter(void 0, void 0, void 0, function () {
62
+ return __generator(this, function (_a) {
63
+ switch (_a.label) {
64
+ case 0: return [4 /*yield*/, (0, node_fetch_1.default)("http://".concat(consts_1.LOCALHOST_DOMAIN, ":").concat(_getPort("firestore"), "/emulator/v1/projects/").concat(projectId, "/databases/(default)/documents").concat(collectionPath), {
65
+ method: "delete",
66
+ })];
67
+ case 1:
68
+ _a.sent();
69
+ return [2 /*return*/];
70
+ }
71
+ });
72
+ }); };
73
+ exports.deleteCollection = deleteCollection;
74
+ /**
75
+ * Gives the developer the possibility to interact with an admin firestore emulator instance
76
+ * @param projectId The current project id of the emulator instance
77
+ * @param cb The callback to be executed
78
+ */
79
+ var setupEmulator = function (projectId, cb, storageBucket) { return __awaiter(void 0, void 0, void 0, function () {
80
+ var testEnv;
81
+ return __generator(this, function (_a) {
82
+ switch (_a.label) {
83
+ case 0: return [4 /*yield*/, (0, rules_unit_testing_1.initializeTestEnvironment)({
84
+ projectId: projectId,
85
+ firestore: {
86
+ host: consts_1.LOCALHOST_DOMAIN,
87
+ port: _getPort("firestore"),
88
+ },
89
+ storage: {
90
+ host: consts_1.LOCALHOST_DOMAIN,
91
+ port: _getPort("storage"),
92
+ },
93
+ })];
94
+ case 1:
95
+ testEnv = _a.sent();
96
+ return [4 /*yield*/, testEnv.withSecurityRulesDisabled(function (ctx) { return __awaiter(void 0, void 0, void 0, function () {
97
+ return __generator(this, function (_a) {
98
+ switch (_a.label) {
99
+ case 0: return [4 /*yield*/, cb(ctx.firestore({
100
+ experimentalForceLongPolling: true,
101
+ merge: true,
102
+ }), ctx.storage(storageBucket))];
103
+ case 1:
104
+ _a.sent();
105
+ return [2 /*return*/];
106
+ }
107
+ });
108
+ }); })];
109
+ case 2:
110
+ _a.sent();
111
+ return [2 /*return*/];
112
+ }
113
+ });
114
+ }); };
115
+ exports.setupEmulator = setupEmulator;
116
+ /**
117
+ * Creates a user on the auth emulator allowing him to authenticate to the emulator
118
+ * @param projectId The current project id of the emulator instance
119
+ * @param email The email to authenticate the user with
120
+ * @param password The password to authenticate the user with
121
+ * @param localId A deterministic Id to be used for this user
122
+ */
123
+ var addAuthUser = function (projectId_1, email_1, password_1) {
124
+ var args_1 = [];
125
+ for (var _i = 3; _i < arguments.length; _i++) {
126
+ args_1[_i - 3] = arguments[_i];
127
+ }
128
+ return __awaiter(void 0, __spreadArray([projectId_1, email_1, password_1], args_1, true), void 0, function (projectId, email, password, localId) {
129
+ var result;
130
+ if (localId === void 0) { localId = ""; }
131
+ return __generator(this, function (_a) {
132
+ switch (_a.label) {
133
+ case 0: return [4 /*yield*/, (0, node_fetch_1.default)("http://".concat(consts_1.LOCALHOST_DOMAIN, ":").concat(_getPort("auth"), "/identitytoolkit.googleapis.com/v1/projects/").concat(projectId, "/accounts"), {
134
+ body: JSON.stringify({
135
+ email: email,
136
+ password: password,
137
+ localId: localId,
138
+ }),
139
+ headers: {
140
+ "content-type": "application/json",
141
+ authorization: "Bearer owner",
142
+ },
143
+ method: "post",
144
+ })];
145
+ case 1:
146
+ result = _a.sent();
147
+ if (result.status > 300)
148
+ throw new Error("Creating account returned ".concat(result.status));
149
+ return [2 /*return*/];
150
+ }
151
+ });
152
+ });
153
+ };
154
+ exports.addAuthUser = addAuthUser;
155
+ /**
156
+ * Clears all accounts from the auth emulator
157
+ *
158
+ * @param projectId The current project id of the emulator instance
159
+ */
160
+ var clearAuth = function (projectId) { return __awaiter(void 0, void 0, void 0, function () {
161
+ var result;
162
+ return __generator(this, function (_a) {
163
+ switch (_a.label) {
164
+ case 0: return [4 /*yield*/, (0, node_fetch_1.default)("http://".concat(consts_1.LOCALHOST_DOMAIN, ":").concat(_getPort("auth"), "/emulator/v1/projects/").concat(projectId, "/accounts"), {
165
+ method: "delete",
166
+ })];
167
+ case 1:
168
+ result = _a.sent();
169
+ if (result.status > 300)
170
+ throw new Error("Cleaning accounts returned ".concat(result.status));
171
+ return [2 /*return*/];
172
+ }
173
+ });
174
+ }); };
175
+ exports.clearAuth = clearAuth;
176
+ /**
177
+ * Sets the emulator ports config
178
+ * @param config Emulator ports config
179
+ */
180
+ function setEmulatorConfig(config) {
181
+ emulatorConfig = config;
182
+ }
183
+ exports.setEmulatorConfig = setEmulatorConfig;
184
+ /**
185
+ * Clears all firestore documents from local emulator
186
+ * @param projectId The current project id of the emulator instance
187
+ */
188
+ var clearFirestore = function (projectId) { return __awaiter(void 0, void 0, void 0, function () {
189
+ var testEnv;
190
+ return __generator(this, function (_a) {
191
+ switch (_a.label) {
192
+ case 0: return [4 /*yield*/, (0, rules_unit_testing_1.initializeTestEnvironment)({
193
+ projectId: projectId,
194
+ firestore: {
195
+ host: consts_1.LOCALHOST_DOMAIN,
196
+ port: _getPort("firestore"),
197
+ },
198
+ })];
199
+ case 1:
200
+ testEnv = _a.sent();
201
+ return [4 /*yield*/, testEnv.clearFirestore()];
202
+ case 2:
203
+ _a.sent();
204
+ testEnv.cleanup();
205
+ return [2 /*return*/];
206
+ }
207
+ });
208
+ }); };
209
+ exports.clearFirestore = clearFirestore;
210
+ var FirebaseConfigEmulatorsShapeExample = {
211
+ emulators: {
212
+ auth: {
213
+ port: 9099,
214
+ },
215
+ functions: {
216
+ port: 5001,
217
+ },
218
+ firestore: {
219
+ port: 8080,
220
+ },
221
+ hosting: {
222
+ port: 5000,
223
+ },
224
+ storage: {
225
+ port: 9199,
226
+ },
227
+ pubsub: {
228
+ port: 8055,
229
+ },
230
+ ui: {
231
+ enabled: true,
232
+ port: 4000,
233
+ },
234
+ },
235
+ };
236
+ /**
237
+ * Guarantees a firebase config has been provided before using the ports
238
+ * @param emulator The emulator type to get the port from
239
+ * @returns The port
240
+ */
241
+ function _getPort(emulator) {
242
+ if (!emulatorConfig) {
243
+ throw new Error("You didn't set the emulator config. Provide it by using the following at your cypress support file:\n\nimport { setEmulatorConfig } from '@muritavo/cypress-toolkit/dist/support/emulator'\n...\n...\n...\nbefore() {\n setEmulatorConfig(require(\"THE_PATH_TO_YOUR_FIREBASE_JSON\"))\n}\n");
244
+ }
245
+ var emulatorConfigSet = emulatorConfig.emulators[emulator];
246
+ if (!emulatorConfigSet || !emulatorConfigSet.port) {
247
+ throw new Error("Emulator config not found");
248
+ }
249
+ return emulatorConfigSet.port;
250
+ }
251
+ //# sourceMappingURL=emulator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emulator.js","sourceRoot":"","sources":["../../../src/client/emulator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Generates an random colored image with specified width, height and quality
3
+ * @param width width of the image
4
+ * @param height height of the image
5
+ * @param quality quality of the image
6
+ */
7
+ export declare const generateImage: (cols: number, rows: number, strRandom: string, orientation?: "vertical" | "horizontal") => any;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateImage = void 0;
4
+ var text2png = require("text2png");
5
+ var firstEmoji = 0x1f604;
6
+ var emojisCount = 0x1f64f - firstEmoji;
7
+ /**
8
+ * Generates an random colored image with specified width, height and quality
9
+ * @param width width of the image
10
+ * @param height height of the image
11
+ * @param quality quality of the image
12
+ */
13
+ var generateImage = function (cols, rows, strRandom, orientation) {
14
+ if (orientation === void 0) { orientation = "vertical"; }
15
+ strRandom =
16
+ orientation === "vertical" ? strRandom : "".concat(strRandom).concat(orientation);
17
+ var numFromStr = strRandom
18
+ .split("")
19
+ .reduce(function (r, char) { return r + char.charCodeAt(0); }, 0);
20
+ var rest = numFromStr % emojisCount;
21
+ var e = function (i) { return String.fromCodePoint(firstEmoji + rest + i); };
22
+ var template = "";
23
+ for (var i = 0; i < rows; i++) {
24
+ for (var c = 0; c < cols; c++) {
25
+ template += e(cols * i + c);
26
+ }
27
+ template += "\n";
28
+ }
29
+ var instance = text2png(template, {
30
+ output: "dataURL",
31
+ padding: 10,
32
+ font: "50px monospace",
33
+ color: "rgb(".concat(256 - (rest % 256), ", ").concat(256 - (numFromStr % 256), ", ").concat(256 - (Math.abs(numFromStr - rest) % 256), ")"),
34
+ backgroundColor: "rgb(".concat(rest % 256, ", ").concat(numFromStr % 256, ", ").concat(Math.abs(numFromStr - rest) % 256, ")"),
35
+ });
36
+ return instance;
37
+ };
38
+ exports.generateImage = generateImage;
39
+ //# sourceMappingURL=utility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utility.js","sourceRoot":"","sources":["../../../src/client/utility.ts"],"names":[],"mappings":";;;AAAA,IAAI,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEnC,IAAM,UAAU,GAAG,OAAO,CAAC;AAC3B,IAAM,WAAW,GAAG,OAAO,GAAG,UAAU,CAAC;AAEzC;;;;;GAKG;AACI,IAAM,aAAa,GAAG,UAC3B,IAAY,EACZ,IAAY,EACZ,SAAiB,EACjB,WAAmD;IAAnD,4BAAA,EAAA,wBAAmD;IAEnD,SAAS;QACP,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAG,SAAS,SAAG,WAAW,CAAE,CAAC;IACxE,IAAM,UAAU,GAAG,SAAS;SACzB,KAAK,CAAC,EAAE,CAAC;SACT,MAAM,CAAC,UAAC,CAAC,EAAE,IAAI,IAAK,OAAA,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAtB,CAAsB,EAAE,CAAC,CAAC,CAAC;IAClD,IAAM,IAAI,GAAG,UAAU,GAAG,WAAW,CAAC;IACtC,IAAM,CAAC,GAAG,UAAC,CAAS,IAAK,OAAA,MAAM,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,EAA3C,CAA2C,CAAC;IAErE,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;QAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9B,QAAQ,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,QAAQ,IAAI,IAAI,CAAC;IACnB,CAAC;IAED,IAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,EAAE;QAClC,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,EAAE;QACX,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,cAAO,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,eAAK,GAAG,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,eAC3D,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,MACxC;QACH,eAAe,EAAE,cAAO,IAAI,GAAG,GAAG,eAAK,UAAU,GAAG,GAAG,eACrD,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,GAAG,MAChC;KACJ,CAAC,CAAC;IACH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAlCW,QAAA,aAAa,iBAkCxB"}
@@ -0,0 +1,20 @@
1
+ import GenericContract from "../types/contract";
2
+ export declare function startBlockchain({ projectRootFolder: projectFolder, port, }: {
3
+ /** The NFT projects root folder so the contracts can be deployed from */
4
+ projectRootFolder: string;
5
+ /**
6
+ * This indicates the port the ganache server will run at
7
+ * @default 8545
8
+ * */
9
+ port?: number;
10
+ }): Promise<any>;
11
+ export declare function deployContract<ABI extends any[] = []>({ contractName, args, }: {
12
+ contractName: string;
13
+ args: any[];
14
+ }): Promise<{
15
+ address: string;
16
+ owner: string;
17
+ contract: GenericContract<ABI, "allEvents" | (ABI[number] extends infer T ? T extends ABI[number] ? T extends {
18
+ type: "event";
19
+ } ? T["name"] : never : never : never)>;
20
+ }>;
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
+ return new (P || (P = Promise))(function (resolve, reject) {
39
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
43
+ });
44
+ };
45
+ var __generator = (this && this.__generator) || function (thisArg, body) {
46
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
+ function verb(n) { return function (v) { return step([n, v]); }; }
49
+ function step(op) {
50
+ if (f) throw new TypeError("Generator is already executing.");
51
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
52
+ 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;
53
+ if (y = 0, t) op = [op[0] & 2, t.value];
54
+ switch (op[0]) {
55
+ case 0: case 1: t = op; break;
56
+ case 4: _.label++; return { value: op[1], done: false };
57
+ case 5: _.label++; y = op[1]; op = [0]; continue;
58
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
+ default:
60
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
+ if (t[2]) _.ops.pop();
65
+ _.trys.pop(); continue;
66
+ }
67
+ op = body.call(thisArg, _);
68
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
+ }
71
+ };
72
+ var __importDefault = (this && this.__importDefault) || function (mod) {
73
+ return (mod && mod.__esModule) ? mod : { "default": mod };
74
+ };
75
+ Object.defineProperty(exports, "__esModule", { value: true });
76
+ exports.deployContract = exports.startBlockchain = void 0;
77
+ var debug_1 = __importDefault(require("debug"));
78
+ var task_names_1 = require("hardhat/builtin-tasks/task-names");
79
+ var abi_1 = require("@ethersproject/abi");
80
+ var logger = (0, debug_1.default)("@muritavo/testing-toolkit/blockchain");
81
+ var instance;
82
+ function startBlockchain(_a) {
83
+ return __awaiter(this, arguments, void 0, function (_b) {
84
+ var prevFork, serverInstance, accounts;
85
+ var _this = this;
86
+ var projectFolder = _b.projectRootFolder, _c = _b.port, port = _c === void 0 ? 8545 : _c;
87
+ return __generator(this, function (_d) {
88
+ switch (_d.label) {
89
+ case 0:
90
+ if (!instance) return [3 /*break*/, 3];
91
+ prevFork = instance.process.config.networks.hardhat.forking;
92
+ if (!prevFork) return [3 /*break*/, 2];
93
+ return [4 /*yield*/, instance.process.network.provider.request({
94
+ method: "hardhat_reset",
95
+ params: [
96
+ {
97
+ forking: {
98
+ jsonRpcUrl: prevFork.url,
99
+ blockNumber: prevFork.blockNumber,
100
+ },
101
+ },
102
+ ],
103
+ })];
104
+ case 1:
105
+ _d.sent();
106
+ _d.label = 2;
107
+ case 2: return [2 /*return*/, instance.addresses];
108
+ case 3:
109
+ if (projectFolder)
110
+ logger("Starting blockchain server at \"".concat(projectFolder, "\""));
111
+ return [4 /*yield*/, initHardhat(projectFolder)];
112
+ case 4:
113
+ serverInstance = _d.sent();
114
+ return [4 /*yield*/, new Promise(function (r, rej) {
115
+ var timeoutId = setTimeout(function () {
116
+ rej(new Error("Something went wrong while starting hardhat node"));
117
+ }, 30000);
118
+ serverInstance.tasks[task_names_1.TASK_NODE_SERVER_READY].setAction(function () { return __awaiter(_this, void 0, void 0, function () {
119
+ return __generator(this, function (_a) {
120
+ clearTimeout(timeoutId);
121
+ r();
122
+ return [2 /*return*/];
123
+ });
124
+ }); });
125
+ serverInstance.run("node", {
126
+ port: port,
127
+ });
128
+ })];
129
+ case 5:
130
+ _d.sent();
131
+ accounts = new Array(serverInstance.config.networks.hardhat.accounts.count)
132
+ .fill(undefined)
133
+ .reduce(function (res, _, idx) {
134
+ var _a;
135
+ var account = deployer(idx, serverInstance);
136
+ return __assign(__assign({}, res), (_a = {}, _a[account.address] = {
137
+ secretKey: account.key,
138
+ }, _a));
139
+ }, {});
140
+ instance = {
141
+ process: serverInstance,
142
+ rootFolder: projectFolder,
143
+ contracts: {},
144
+ addresses: accounts,
145
+ port: port,
146
+ };
147
+ return [2 /*return*/, accounts];
148
+ }
149
+ });
150
+ });
151
+ }
152
+ exports.startBlockchain = startBlockchain;
153
+ function deployer(index, hardhat) {
154
+ if (index === void 0) { index = 0; }
155
+ var ethers = hardhat.ethers;
156
+ var accounts = hardhat.config.networks.hardhat.accounts;
157
+ var wallet = ethers.Wallet.fromMnemonic(accounts.mnemonic, accounts.path + "/".concat(index));
158
+ return {
159
+ key: wallet.privateKey,
160
+ address: wallet.address,
161
+ };
162
+ }
163
+ function initHardhat(dir) {
164
+ return __awaiter(this, void 0, void 0, function () {
165
+ var startingDir, hardhat, e_1;
166
+ var _this = this;
167
+ return __generator(this, function (_a) {
168
+ switch (_a.label) {
169
+ case 0:
170
+ startingDir = process.cwd();
171
+ process.chdir(dir);
172
+ _a.label = 1;
173
+ case 1:
174
+ _a.trys.push([1, 3, , 4]);
175
+ return [4 /*yield*/, (function () { return __awaiter(_this, void 0, void 0, function () {
176
+ var e_2;
177
+ return __generator(this, function (_a) {
178
+ switch (_a.label) {
179
+ case 0:
180
+ _a.trys.push([0, 1, , 3]);
181
+ return [2 /*return*/, require("hardhat")];
182
+ case 1:
183
+ e_2 = _a.sent();
184
+ console.log("Requiring hardhat failed... Trying using import... Check the error below\n", e_2);
185
+ return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("hardhat")); })];
186
+ case 2: return [2 /*return*/, (_a.sent()).default];
187
+ case 3: return [2 /*return*/];
188
+ }
189
+ });
190
+ }); })()];
191
+ case 2:
192
+ hardhat = (_a.sent());
193
+ process.chdir(startingDir);
194
+ return [2 /*return*/, hardhat];
195
+ case 3:
196
+ e_1 = _a.sent();
197
+ process.chdir(startingDir);
198
+ throw e_1;
199
+ case 4: return [2 /*return*/];
200
+ }
201
+ });
202
+ });
203
+ }
204
+ function deployContract(_a) {
205
+ return __awaiter(this, arguments, void 0, function (_b) {
206
+ var getContract, ethers, owner, Factory, lock_1, connection, initializationKey, e_3;
207
+ var _c, _d;
208
+ var _this = this;
209
+ var contractName = _b.contractName, args = _b.args;
210
+ return __generator(this, function (_e) {
211
+ switch (_e.label) {
212
+ case 0:
213
+ logger("Deploying contract ".concat(contractName, " with ").concat(args.length, " parameters ").concat(args
214
+ .map(function (a) { return "".concat(a, " (").concat(Array.isArray(a) ? "array" : typeof a, ")"); })
215
+ .join(", ")));
216
+ _e.label = 1;
217
+ case 1:
218
+ _e.trys.push([1, 13, , 14]);
219
+ if (!(instance === null || instance === void 0 ? void 0 : instance.rootFolder))
220
+ throw new Error("You are trying to deploy a contract without defining the Blockchain Project folder. Please define it at startBlockchain command.");
221
+ getContract = function () { return __awaiter(_this, void 0, void 0, function () {
222
+ var Web3, web3;
223
+ return __generator(this, function (_a) {
224
+ switch (_a.label) {
225
+ case 0: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("web3")); })];
226
+ case 1:
227
+ Web3 = (_a.sent()).default;
228
+ web3 = new Web3("ws://127.0.0.1:".concat(instance.port));
229
+ return [2 /*return*/, new web3.eth.Contract(lock_1.interface.format(abi_1.FormatTypes.json), lock_1.address)];
230
+ }
231
+ });
232
+ }); };
233
+ return [4 /*yield*/, initHardhat(instance.rootFolder)];
234
+ case 2:
235
+ ethers = (_e.sent()).ethers;
236
+ return [4 /*yield*/, ethers.getSigners()];
237
+ case 3:
238
+ owner = (_e.sent())[0];
239
+ return [4 /*yield*/, ethers.getContractFactory(contractName)];
240
+ case 4:
241
+ Factory = _e.sent();
242
+ return [4 /*yield*/, Factory.deploy()];
243
+ case 5:
244
+ lock_1 = _e.sent();
245
+ return [4 /*yield*/, lock_1.deployed()];
246
+ case 6:
247
+ _e.sent();
248
+ if (!(args.length > 0)) return [3 /*break*/, 10];
249
+ logger("Initializing contract with owner ".concat(owner, " and args ").concat(args));
250
+ connection = lock_1.connect(owner);
251
+ initializationKey = Object.keys(connection.functions).find(function (a) { return a.split(",", args.length) && a.startsWith("initialize("); }) || "initialize";
252
+ if (!connection[initializationKey]) return [3 /*break*/, 8];
253
+ return [4 /*yield*/, connection[initializationKey].apply(connection, args)];
254
+ case 7:
255
+ _e.sent();
256
+ _e.label = 8;
257
+ case 8:
258
+ _c = {
259
+ address: lock_1.address,
260
+ owner: owner.address
261
+ };
262
+ return [4 /*yield*/, getContract()];
263
+ case 9: return [2 /*return*/, (_c.contract = _e.sent(),
264
+ _c)];
265
+ case 10:
266
+ _d = {
267
+ address: lock_1.address,
268
+ owner: owner.address
269
+ };
270
+ return [4 /*yield*/, getContract()];
271
+ case 11: return [2 /*return*/, (_d.contract = _e.sent(),
272
+ _d)];
273
+ case 12: return [3 /*break*/, 14];
274
+ case 13:
275
+ e_3 = _e.sent();
276
+ logger("Something has gone wrong", e_3);
277
+ throw e_3;
278
+ case 14: return [2 /*return*/];
279
+ }
280
+ });
281
+ });
282
+ }
283
+ exports.deployContract = deployContract;
284
+ //# sourceMappingURL=blockchain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockchain.js","sourceRoot":"","sources":["../../../src/native/blockchain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * For some reason, on node 18 "node-fetch" fails when connecting to "localhost" domain
3
+ * So I needed to change to 127.0.0.1
4
+ */
5
+ export declare const LOCALHOST_DOMAIN = "127.0.0.1";
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LOCALHOST_DOMAIN = void 0;
4
+ /**
5
+ * For some reason, on node 18 "node-fetch" fails when connecting to "localhost" domain
6
+ * So I needed to change to 127.0.0.1
7
+ */
8
+ exports.LOCALHOST_DOMAIN = "127.0.0.1";
9
+ //# sourceMappingURL=consts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../../src/native/consts.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,gBAAgB,GAAG,WAAW,CAAA"}