@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,2 @@
1
+ import GenericContract from "../types/contract";
2
+ export declare function invokeContract<C extends GenericContract<any[]>, M extends keyof C["methods"]>(wallet: string, contract: C, contractMethodName: M, ...params: Parameters<C["methods"][M]>): Promise<any>;
@@ -0,0 +1,112 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.invokeContract = void 0;
43
+ var web3_1 = __importDefault(require("web3"));
44
+ function invokeContract(wallet, contract, contractMethodName) {
45
+ var params = [];
46
+ for (var _i = 3; _i < arguments.length; _i++) {
47
+ params[_i - 3] = arguments[_i];
48
+ }
49
+ return __awaiter(this, void 0, void 0, function () {
50
+ var abiDefinition, state, call, web3;
51
+ var _a;
52
+ var _this = this;
53
+ return __generator(this, function (_b) {
54
+ abiDefinition = contract._jsonInterface.find(function (a) { return a.name === contractMethodName; });
55
+ state = abiDefinition.stateMutability;
56
+ if (state === "view")
57
+ return [2 /*return*/, new Promise(function (r, rej) {
58
+ var _a;
59
+ (_a = contract.methods)[contractMethodName].apply(_a, params).call()
60
+ .then(function (result) { return r(result); })
61
+ .catch(function (e) { return rej(e); });
62
+ })];
63
+ call = (_a = contract.methods)[contractMethodName].apply(_a, params).send({
64
+ from: wallet,
65
+ gas: 90000000,
66
+ gasPrice: "90000000000",
67
+ });
68
+ web3 = new web3_1.default("ws://".concat("127.0.0.1", ":").concat(8545));
69
+ return [2 /*return*/, new Promise(function (r, rej) { return __awaiter(_this, void 0, void 0, function () {
70
+ var txHash, transaction, isMined;
71
+ return __generator(this, function (_a) {
72
+ switch (_a.label) {
73
+ case 0: return [4 /*yield*/, new Promise(function (r, rej) {
74
+ call.on("transactionHash", function (tX) {
75
+ r(tX);
76
+ });
77
+ call.catch(rej);
78
+ })];
79
+ case 1:
80
+ txHash = _a.sent();
81
+ _a.label = 2;
82
+ case 2:
83
+ if (!true) return [3 /*break*/, 7];
84
+ return [4 /*yield*/, web3.eth.getTransactionReceipt(txHash)];
85
+ case 3:
86
+ transaction = _a.sent();
87
+ isMined = !transaction ||
88
+ !transaction.blockHash ||
89
+ transaction.status === undefined
90
+ ? undefined // I still don't know if it's loaded
91
+ : !!transaction.status === true;
92
+ if (!(isMined === undefined)) return [3 /*break*/, 5];
93
+ return [4 /*yield*/, new Promise(function (r) { return setTimeout(function () { return r(); }, 1000); })];
94
+ case 4:
95
+ _a.sent();
96
+ return [3 /*break*/, 6];
97
+ case 5:
98
+ if (isMined)
99
+ r();
100
+ else
101
+ rej(new Error("Transaction failed, check the logs"));
102
+ return [3 /*break*/, 7];
103
+ case 6: return [3 /*break*/, 2];
104
+ case 7: return [2 /*return*/];
105
+ }
106
+ });
107
+ }); })];
108
+ });
109
+ });
110
+ }
111
+ exports.invokeContract = invokeContract;
112
+ //# sourceMappingURL=blockchain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockchain.js","sourceRoot":"","sources":["../../src/client/blockchain.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,8CAAwB;AAExB,SAAsB,cAAc,CAIlC,MAAc,EACd,QAAW,EACX,kBAAqB;IACrB,gBAAsC;SAAtC,UAAsC,EAAtC,qBAAsC,EAAtC,IAAsC;QAAtC,+BAAsC;;;;;;;YAEhC,aAAa,GAAI,QAAgB,CAAC,cAAc,CAAC,IAAI,CACzD,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAA7B,CAA6B,CAC1C,CAAC;YACI,KAAK,GAAG,aAAa,CAAC,eAAe,CAAC;YAE5C,IAAI,KAAK,KAAK,MAAM;gBAClB,sBAAO,IAAI,OAAO,CAAC,UAAC,CAAC,EAAE,GAAG;;wBACvB,CAAA,KAAA,QAAQ,CAAC,OAAO,CAAA,CAAC,kBAA4B,CAAC,WAAY,MAAM,EAC9D,IAAI,EAAE;6BACN,IAAI,CAAC,UAAC,MAAW,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,EAAT,CAAS,CAAC;6BAChC,KAAK,CAAC,UAAC,CAAC,IAAK,OAAA,GAAG,CAAC,CAAC,CAAC,EAAN,CAAM,CAAC,CAAC;oBAC1B,CAAC,CAAC,EAAC;YAEC,IAAI,GAAS,CAAA,KAAA,QAAQ,CAAC,OAAO,CAAA,CAAC,kBAA4B,CAAC,WAE3D,MAAc,EAClB,IAAI,CAAC;gBACL,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,QAAQ;gBACb,QAAQ,EAAE,aAAa;aACxB,CAAC,CAAC;YACG,IAAI,GAAG,IAAI,cAAI,CAAC,eAAQ,WAAW,cAAI,IAAI,CAAE,CAAC,CAAC;YACrD,sBAAO,IAAI,OAAO,CAAO,UAAO,CAAC,EAAE,GAAG;;;;oCACrB,qBAAM,IAAI,OAAO,CAAS,UAAC,CAAC,EAAE,GAAG;oCAC9C,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,UAAC,EAAU;wCACpC,CAAC,CAAC,EAAE,CAAC,CAAC;oCACR,CAAC,CAAC,CAAC;oCACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gCAClB,CAAC,CAAC,EAAA;;gCALI,MAAM,GAAG,SAKb;;;qCACK,IAAI;gCACW,qBAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAA;;gCAA1D,WAAW,GAAG,SAA4C;gCAE1D,OAAO,GACX,CAAC,WAAW;oCACZ,CAAC,WAAW,CAAC,SAAS;oCACtB,WAAW,CAAC,MAAM,KAAK,SAAS;oCAC9B,CAAC,CAAC,SAAS,CAAC,oCAAoC;oCAChD,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC;qCAChC,CAAA,OAAO,KAAK,SAAS,CAAA,EAArB,wBAAqB;gCACvB,qBAAM,IAAI,OAAO,CAAO,UAAC,CAAC,IAAK,OAAA,UAAU,CAAC,cAAM,OAAA,CAAC,EAAE,EAAH,CAAG,EAAE,IAAI,CAAC,EAA3B,CAA2B,CAAC,EAAA;;gCAA3D,SAA2D,CAAC;;;gCAE5D,IAAI,OAAO;oCAAE,CAAC,EAAE,CAAC;;oCACZ,GAAG,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;gCAC1D,wBAAM;;;;;qBAGX,CAAQ,EAAC;;;CACX;AAxDD,wCAwDC"}
@@ -1,3 +1,4 @@
1
+ import GenericContract from "../types/contract";
1
2
  export declare function startBlockchain({ projectRootFolder: projectFolder, port, }: {
2
3
  /** The NFT projects root folder so the contracts can be deployed from */
3
4
  projectRootFolder: string;
@@ -7,10 +8,13 @@ export declare function startBlockchain({ projectRootFolder: projectFolder, port
7
8
  * */
8
9
  port?: number;
9
10
  }): Promise<any>;
10
- export declare function deployContract({ contractName, args, }: {
11
+ export declare function deployContract<ABI extends any[] = []>({ contractName, args, }: {
11
12
  contractName: string;
12
13
  args: any[];
13
14
  }): Promise<{
14
- address: any;
15
- owner: any;
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)>;
16
20
  }>;
@@ -76,6 +76,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
76
76
  exports.deployContract = exports.startBlockchain = void 0;
77
77
  var debug_1 = __importDefault(require("debug"));
78
78
  var task_names_1 = require("hardhat/builtin-tasks/task-names");
79
+ var abi_1 = require("@ethersproject/abi");
79
80
  var logger = (0, debug_1.default)("@muritavo/testing-toolkit/blockchain");
80
81
  var instance;
81
82
  function startBlockchain(_a) {
@@ -109,7 +110,7 @@ function startBlockchain(_a) {
109
110
  logger("Starting blockchain server at \"".concat(projectFolder, "\""));
110
111
  return [4 /*yield*/, initHardhat(projectFolder)];
111
112
  case 4:
112
- serverInstance = (_d.sent());
113
+ serverInstance = _d.sent();
113
114
  return [4 /*yield*/, new Promise(function (r, rej) {
114
115
  var timeoutId = setTimeout(function () {
115
116
  rej(new Error("Something went wrong while starting hardhat node"));
@@ -141,6 +142,7 @@ function startBlockchain(_a) {
141
142
  rootFolder: projectFolder,
142
143
  contracts: {},
143
144
  addresses: accounts,
145
+ port: port,
144
146
  };
145
147
  return [2 /*return*/, accounts];
146
148
  }
@@ -201,7 +203,7 @@ function initHardhat(dir) {
201
203
  }
202
204
  function deployContract(_a) {
203
205
  return __awaiter(this, arguments, void 0, function (_b) {
204
- var ethers, owner, Factory, lock, connection, initializationKey, e_3;
206
+ var getContract, ethers, owner, Factory, lock_1, connection, initializationKey, e_3;
205
207
  var contractName = _b.contractName, args = _b.args;
206
208
  return __generator(this, function (_c) {
207
209
  switch (_c.label) {
@@ -214,6 +216,11 @@ function deployContract(_a) {
214
216
  _c.trys.push([1, 11, , 12]);
215
217
  if (!(instance === null || instance === void 0 ? void 0 : instance.rootFolder))
216
218
  throw new Error("You are trying to deploy a contract without defining the Blockchain Project folder. Please define it at startBlockchain command.");
219
+ getContract = function () {
220
+ var Web3 = require("web3");
221
+ var web3 = new Web3("ws://127.0.0.1:".concat(instance.port));
222
+ return new web3.eth.Contract(lock_1.interface.format(abi_1.FormatTypes.json), lock_1.address);
223
+ };
217
224
  return [4 /*yield*/, initHardhat(instance.rootFolder)];
218
225
  case 2:
219
226
  ethers = (_c.sent()).ethers;
@@ -225,13 +232,13 @@ function deployContract(_a) {
225
232
  Factory = _c.sent();
226
233
  return [4 /*yield*/, Factory.deploy()];
227
234
  case 5:
228
- lock = _c.sent();
229
- return [4 /*yield*/, lock.deployed()];
235
+ lock_1 = _c.sent();
236
+ return [4 /*yield*/, lock_1.deployed()];
230
237
  case 6:
231
238
  _c.sent();
232
239
  if (!(args.length > 0)) return [3 /*break*/, 9];
233
240
  logger("Initializing contract with owner ".concat(owner, " and args ").concat(args));
234
- connection = lock.connect(owner);
241
+ connection = lock_1.connect(owner);
235
242
  initializationKey = Object.keys(connection.functions).find(function (a) { return a.split(",", args.length) && a.startsWith("initialize("); }) || "initialize";
236
243
  if (!connection[initializationKey]) return [3 /*break*/, 8];
237
244
  return [4 /*yield*/, connection[initializationKey].apply(connection, args)];
@@ -239,12 +246,14 @@ function deployContract(_a) {
239
246
  _c.sent();
240
247
  _c.label = 8;
241
248
  case 8: return [2 /*return*/, {
242
- address: lock.address,
249
+ address: lock_1.address,
243
250
  owner: owner.address,
251
+ contract: getContract(),
244
252
  }];
245
253
  case 9: return [2 /*return*/, {
246
- address: lock.address,
254
+ address: lock_1.address,
247
255
  owner: owner.address,
256
+ contract: getContract(),
248
257
  }];
249
258
  case 10: return [3 /*break*/, 12];
250
259
  case 11:
@@ -1 +1 @@
1
- {"version":3,"file":"blockchain.js","sourceRoot":"","sources":["../../src/native/blockchain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blockchain.js","sourceRoot":"","sources":["../../src/native/blockchain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import GenericContract, { MapTypeToJS } from "../types/contract";
2
+ export declare function invokeContract<C, M extends keyof C["methods"]>(wallet: string, _contract: C, contractMethodName: M, ...params: Parameters<C["methods"][M]>): Promise<C extends GenericContract<infer ABI> ? (ABI[number] & {
3
+ name: M;
4
+ })["stateMutability"] extends "view" ? MapTypeToJS<(ABI[number] & {
5
+ name: M;
6
+ })["outputs"][0]["type"], []> : never : never>;
@@ -0,0 +1,122 @@
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 __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.invokeContract = void 0;
43
+ var web3_1 = __importDefault(require("web3"));
44
+ /// @ts-expect-error
45
+ function invokeContract(wallet, _contract, contractMethodName) {
46
+ /// @ts-expect-error
47
+ var params = [];
48
+ for (
49
+ /// @ts-expect-error
50
+ var _i = 3;
51
+ /// @ts-expect-error
52
+ _i < arguments.length;
53
+ /// @ts-expect-error
54
+ _i++) {
55
+ /// @ts-expect-error
56
+ params[_i - 3] = arguments[_i];
57
+ }
58
+ return __awaiter(this, void 0, void 0, function () {
59
+ var contract, abiDefinition, state, call, web3;
60
+ var _a;
61
+ var _this = this;
62
+ return __generator(this, function (_b) {
63
+ contract = _contract;
64
+ abiDefinition = contract._jsonInterface.find(function (a) { return a.name === contractMethodName; });
65
+ state = abiDefinition.stateMutability;
66
+ if (state === "view")
67
+ return [2 /*return*/, new Promise(function (r, rej) {
68
+ var _a;
69
+ (_a = contract.methods)[contractMethodName].apply(_a, params).call()
70
+ .then(function (result) { return r(result); })
71
+ .catch(function (e) { return rej(e); });
72
+ })];
73
+ call = (_a = contract.methods)[contractMethodName].apply(_a, params).send({
74
+ from: wallet,
75
+ gas: 90000000,
76
+ gasPrice: "90000000000",
77
+ });
78
+ web3 = new web3_1.default("ws://".concat("127.0.0.1", ":").concat(8545));
79
+ return [2 /*return*/, new Promise(function (r, rej) { return __awaiter(_this, void 0, void 0, function () {
80
+ var txHash, transaction, isMined;
81
+ return __generator(this, function (_a) {
82
+ switch (_a.label) {
83
+ case 0: return [4 /*yield*/, new Promise(function (r, rej) {
84
+ call.on("transactionHash", function (tX) {
85
+ r(tX);
86
+ });
87
+ call.catch(rej);
88
+ })];
89
+ case 1:
90
+ txHash = _a.sent();
91
+ _a.label = 2;
92
+ case 2:
93
+ if (!true) return [3 /*break*/, 7];
94
+ return [4 /*yield*/, web3.eth.getTransactionReceipt(txHash)];
95
+ case 3:
96
+ transaction = _a.sent();
97
+ isMined = !transaction ||
98
+ !transaction.blockHash ||
99
+ transaction.status === undefined
100
+ ? undefined // I still don't know if it's loaded
101
+ : !!transaction.status === true;
102
+ if (!(isMined === undefined)) return [3 /*break*/, 5];
103
+ return [4 /*yield*/, new Promise(function (r) { return setTimeout(function () { return r(); }, 1000); })];
104
+ case 4:
105
+ _a.sent();
106
+ return [3 /*break*/, 6];
107
+ case 5:
108
+ if (isMined)
109
+ r();
110
+ else
111
+ rej(new Error("Transaction failed, check the logs"));
112
+ return [3 /*break*/, 7];
113
+ case 6: return [3 /*break*/, 2];
114
+ case 7: return [2 /*return*/];
115
+ }
116
+ });
117
+ }); })];
118
+ });
119
+ });
120
+ }
121
+ exports.invokeContract = invokeContract;
122
+ //# sourceMappingURL=blockchain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockchain.js","sourceRoot":"","sources":["../../../src/client/blockchain.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,8CAAwB;AAcxB,oBAAoB;AACpB,SAAsB,cAAc,CAClC,MAAc,EACd,SAAY,EACZ,kBAAqB;IACrB,oBAAoB;IACpB,gBAAsC;;IADtC,oBAAoB;IACpB,UAAsC;IADtC,oBAAoB;IACpB,qBAAsC;IADtC,oBAAoB;IACpB,IAAsC;QADtC,oBAAoB;QACpB,+BAAsC;;;;;;;YAYhC,QAAQ,GAAG,SAAmC,CAAC;YAC/C,aAAa,GAAI,QAAgB,CAAC,cAAc,CAAC,IAAI,CACzD,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,kBAAkB,EAA7B,CAA6B,CAC1C,CAAC;YACI,KAAK,GAAG,aAAa,CAAC,eAAe,CAAC;YAE5C,IAAI,KAAK,KAAK,MAAM;gBAClB,sBAAO,IAAI,OAAO,CAAC,UAAC,CAAC,EAAE,GAAG;;wBACvB,CAAA,KAAA,QAAQ,CAAC,OAAO,CAAA,CAAC,kBAA4B,CAAC,WAAY,MAAM,EAC9D,IAAI,EAAE;6BACN,IAAI,CAAC,UAAC,MAAW,IAAK,OAAA,CAAC,CAAC,MAAM,CAAC,EAAT,CAAS,CAAC;6BAChC,KAAK,CAAC,UAAC,CAAC,IAAK,OAAA,GAAG,CAAC,CAAC,CAAC,EAAN,CAAM,CAAC,CAAC;oBAC1B,CAAC,CAAC,EAAC;YAEC,IAAI,GAAS,CAAA,KAAA,QAAQ,CAAC,OAAO,CAAA,CAAC,kBAA4B,CAAC,WAE3D,MAAc,EAClB,IAAI,CAAC;gBACL,IAAI,EAAE,MAAM;gBACZ,GAAG,EAAE,QAAQ;gBACb,QAAQ,EAAE,aAAa;aACxB,CAAC,CAAC;YACG,IAAI,GAAG,IAAI,cAAI,CAAC,eAAQ,WAAW,cAAI,IAAI,CAAE,CAAC,CAAC;YACrD,sBAAO,IAAI,OAAO,CAAO,UAAO,CAAC,EAAE,GAAG;;;;oCACrB,qBAAM,IAAI,OAAO,CAAS,UAAC,CAAC,EAAE,GAAG;oCAC9C,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,UAAC,EAAU;wCACpC,CAAC,CAAC,EAAE,CAAC,CAAC;oCACR,CAAC,CAAC,CAAC;oCACH,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gCAClB,CAAC,CAAC,EAAA;;gCALI,MAAM,GAAG,SAKb;;;qCACK,IAAI;gCACW,qBAAM,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAA;;gCAA1D,WAAW,GAAG,SAA4C;gCAE1D,OAAO,GACX,CAAC,WAAW;oCACZ,CAAC,WAAW,CAAC,SAAS;oCACtB,WAAW,CAAC,MAAM,KAAK,SAAS;oCAC9B,CAAC,CAAC,SAAS,CAAC,oCAAoC;oCAChD,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,IAAI,CAAC;qCAChC,CAAA,OAAO,KAAK,SAAS,CAAA,EAArB,wBAAqB;gCACvB,qBAAM,IAAI,OAAO,CAAO,UAAC,CAAC,IAAK,OAAA,UAAU,CAAC,cAAM,OAAA,CAAC,EAAE,EAAH,CAAG,EAAE,IAAI,CAAC,EAA3B,CAA2B,CAAC,EAAA;;gCAA3D,SAA2D,CAAC;;;gCAE5D,IAAI,OAAO;oCAAE,CAAC,EAAE,CAAC;;oCACZ,GAAG,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;gCAC1D,wBAAM;;;;;qBAGX,CAAQ,EAAC;;;CACX;AAjED,wCAiEC"}
@@ -0,0 +1,65 @@
1
+ import firebase from "firebase/compat";
2
+ /**
3
+ * Deletes a collection from firebase
4
+ * @param projectId The current project id of the emulator instance
5
+ * @param collectionPath The collection path **starting with "/"**
6
+ */
7
+ export declare const deleteCollection: (projectId: string, collectionPath: string) => Promise<void>;
8
+ /**
9
+ * Gives the developer the possibility to interact with an admin firestore emulator instance
10
+ * @param projectId The current project id of the emulator instance
11
+ * @param cb The callback to be executed
12
+ */
13
+ export declare const setupEmulator: (projectId: string, cb: (firestore: firebase.firestore.Firestore, storage: firebase.storage.Storage) => Promise<void>, storageBucket?: string) => Promise<void>;
14
+ /**
15
+ * Creates a user on the auth emulator allowing him to authenticate to the emulator
16
+ * @param projectId The current project id of the emulator instance
17
+ * @param email The email to authenticate the user with
18
+ * @param password The password to authenticate the user with
19
+ * @param localId A deterministic Id to be used for this user
20
+ */
21
+ export declare const addAuthUser: (projectId: string, email: string, password: string, localId?: string) => Promise<void>;
22
+ /**
23
+ * Clears all accounts from the auth emulator
24
+ *
25
+ * @param projectId The current project id of the emulator instance
26
+ */
27
+ export declare const clearAuth: (projectId: string) => Promise<void>;
28
+ /**
29
+ * Sets the emulator ports config
30
+ * @param config Emulator ports config
31
+ */
32
+ export declare function setEmulatorConfig(config: FirebaseConfigShape): void;
33
+ /**
34
+ * Clears all firestore documents from local emulator
35
+ * @param projectId The current project id of the emulator instance
36
+ */
37
+ export declare const clearFirestore: (projectId: string) => Promise<void>;
38
+ declare const FirebaseConfigEmulatorsShapeExample: {
39
+ readonly emulators: {
40
+ readonly auth: {
41
+ readonly port: number;
42
+ };
43
+ readonly functions: {
44
+ readonly port: number;
45
+ };
46
+ readonly firestore: {
47
+ readonly port: number;
48
+ };
49
+ readonly hosting: {
50
+ readonly port: number;
51
+ };
52
+ readonly storage: {
53
+ readonly port: number;
54
+ };
55
+ readonly pubsub: {
56
+ readonly port: number;
57
+ };
58
+ readonly ui: {
59
+ readonly enabled: boolean;
60
+ readonly port: number;
61
+ };
62
+ };
63
+ };
64
+ export type FirebaseConfigShape = typeof FirebaseConfigEmulatorsShapeExample;
65
+ export {};