@muritavo/testing-toolkit 0.3.4 → 0.4.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.
- package/dist/client/blockchain.d.ts +6 -0
- package/dist/client/blockchain.js +34 -12
- package/dist/client/blockchain.js.map +1 -1
- package/dist/client/emulator.d.ts +1 -1
- package/dist/native/blockchain.d.ts +18 -2
- package/dist/native/blockchain.js +117 -26
- package/dist/native/blockchain.js.map +1 -1
- package/dist/utility/index.d.ts +1 -0
- package/dist/utility/index.js +12 -0
- package/dist/utility/index.js.map +1 -0
- package/package.json +14 -4
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
import GenericContract, { MapTypeToJS } from "../types/contract";
|
|
2
|
+
/**
|
|
3
|
+
* For future me: This is needed because when using
|
|
4
|
+
* on cypress-toolkit "startblockchain" and "invokecontract"
|
|
5
|
+
* are run in different contexts, so the port variable cannot be
|
|
6
|
+
* shared.
|
|
7
|
+
*/
|
|
2
8
|
export declare function setPort(_port: number): void;
|
|
3
9
|
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] & {
|
|
4
10
|
name: M;
|
|
@@ -41,11 +41,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
41
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
42
|
exports.invokeContract = exports.setPort = void 0;
|
|
43
43
|
var web3_1 = __importDefault(require("web3"));
|
|
44
|
-
var port
|
|
44
|
+
var port;
|
|
45
|
+
/**
|
|
46
|
+
* For future me: This is needed because when using
|
|
47
|
+
* on cypress-toolkit "startblockchain" and "invokecontract"
|
|
48
|
+
* are run in different contexts, so the port variable cannot be
|
|
49
|
+
* shared.
|
|
50
|
+
*/
|
|
45
51
|
function setPort(_port) {
|
|
46
52
|
port = _port;
|
|
47
53
|
}
|
|
48
54
|
exports.setPort = setPort;
|
|
55
|
+
function _getPort() {
|
|
56
|
+
if (!port)
|
|
57
|
+
throw new Error("Please, indicate the port that the blockchain node is running (by default it runs on 8545) \nusing the setPort from \"@muritavo/testing-toolkit/dist/client/blockchain\"");
|
|
58
|
+
return port;
|
|
59
|
+
}
|
|
49
60
|
/// @ts-expect-error
|
|
50
61
|
function invokeContract(wallet, _contract, contractMethodName) {
|
|
51
62
|
/// @ts-expect-error
|
|
@@ -80,17 +91,21 @@ function invokeContract(wallet, _contract, contractMethodName) {
|
|
|
80
91
|
gas: 90000000,
|
|
81
92
|
gasPrice: "90000000000",
|
|
82
93
|
});
|
|
83
|
-
web3 = new web3_1.default(new web3_1.default.providers.HttpProvider("http://".concat("127.0.0.1", ":").concat(
|
|
94
|
+
web3 = new web3_1.default(new web3_1.default.providers.HttpProvider("http://".concat("127.0.0.1", ":").concat(_getPort())));
|
|
84
95
|
return [2 /*return*/, new Promise(function (r, rej) { return __awaiter(_this, void 0, void 0, function () {
|
|
85
|
-
var txHash, transaction, isMined;
|
|
96
|
+
var txHash, transaction, isMined, e_1;
|
|
86
97
|
return __generator(this, function (_a) {
|
|
87
98
|
switch (_a.label) {
|
|
88
|
-
case 0:
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
99
|
+
case 0:
|
|
100
|
+
_a.trys.push([0, 8, , 9]);
|
|
101
|
+
return [4 /*yield*/, new Promise(function (r, rej) {
|
|
102
|
+
call.on("transactionHash", function (tX) {
|
|
103
|
+
r(tX);
|
|
104
|
+
});
|
|
105
|
+
call.catch(function (e) {
|
|
106
|
+
rej(e);
|
|
107
|
+
});
|
|
108
|
+
})];
|
|
94
109
|
case 1:
|
|
95
110
|
txHash = _a.sent();
|
|
96
111
|
_a.label = 2;
|
|
@@ -110,13 +125,20 @@ function invokeContract(wallet, _contract, contractMethodName) {
|
|
|
110
125
|
_a.sent();
|
|
111
126
|
return [3 /*break*/, 6];
|
|
112
127
|
case 5:
|
|
113
|
-
if (isMined)
|
|
128
|
+
if (isMined) {
|
|
114
129
|
r();
|
|
115
|
-
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
116
132
|
rej(new Error("Transaction failed, check the logs"));
|
|
133
|
+
}
|
|
117
134
|
return [3 /*break*/, 7];
|
|
118
135
|
case 6: return [3 /*break*/, 2];
|
|
119
|
-
case 7: return [
|
|
136
|
+
case 7: return [3 /*break*/, 9];
|
|
137
|
+
case 8:
|
|
138
|
+
e_1 = _a.sent();
|
|
139
|
+
rej(e_1);
|
|
140
|
+
return [3 /*break*/, 9];
|
|
141
|
+
case 9: return [2 /*return*/];
|
|
120
142
|
}
|
|
121
143
|
});
|
|
122
144
|
}); })];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockchain.js","sourceRoot":"","sources":["../../src/client/blockchain.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,8CAAwB;AAExB,IAAI,
|
|
1
|
+
{"version":3,"file":"blockchain.js","sourceRoot":"","sources":["../../src/client/blockchain.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,8CAAwB;AAExB,IAAI,IAAY,CAAC;AACjB;;;;;GAKG;AACH,SAAgB,OAAO,CAAC,KAAa;IACnC,IAAI,GAAG,KAAK,CAAC;AACf,CAAC;AAFD,0BAEC;AAED,SAAS,QAAQ;IACf,IAAI,CAAC,IAAI;QACP,MAAM,IAAI,KAAK,CACb,0KACoE,CACrE,CAAC;IACJ,OAAO,IAAI,CAAC;AACd,CAAC;AAED,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,CACnB,IAAI,cAAI,CAAC,SAAS,CAAC,YAAY,CAAC,iBAAU,WAAW,cAAI,QAAQ,EAAE,CAAE,CAAC,CACvE,CAAC;YACF,sBAAO,IAAI,OAAO,CAAO,UAAO,CAAC,EAAE,GAAG;;;;;;gCAEnB,qBAAM,IAAI,OAAO,CAAS,UAAC,CAAC,EAAE,GAAG;wCAC9C,IAAI,CAAC,EAAE,CAAC,iBAAiB,EAAE,UAAC,EAAU;4CACpC,CAAC,CAAC,EAAE,CAAC,CAAC;wCACR,CAAC,CAAC,CAAC;wCACH,IAAI,CAAC,KAAK,CAAC,UAAC,CAAC;4CACX,GAAG,CAAC,CAAC,CAAC,CAAC;wCACT,CAAC,CAAC,CAAC;oCACL,CAAC,CAAC,EAAA;;gCAPI,MAAM,GAAG,SAOb;;;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,EAAE,CAAC;oCACZ,CAAC,EAAE,CAAC;gCACN,CAAC;qCAAM,CAAC;oCACN,GAAG,CAAC,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;gCACvD,CAAC;gCACD,wBAAM;;;;;gCAIV,GAAG,CAAC,GAAC,CAAC,CAAC;;;;;qBAEV,CAAQ,EAAC;;;CACX;AA5ED,wCA4EC"}
|
|
@@ -10,7 +10,7 @@ export declare const deleteCollection: (projectId: string, collectionPath: strin
|
|
|
10
10
|
* @param projectId The current project id of the emulator instance
|
|
11
11
|
* @param cb The callback to be executed
|
|
12
12
|
*/
|
|
13
|
-
export declare const setupEmulator: (projectId: string, cb: (firestore:
|
|
13
|
+
export declare const setupEmulator: (projectId: string, cb: (firestore: firebase.firestore.Firestore, storage: firebase.storage.Storage) => Promise<void>, storageBucket?: string) => Promise<void>;
|
|
14
14
|
/**
|
|
15
15
|
* Creates a user on the auth emulator allowing him to authenticate to the emulator
|
|
16
16
|
* @param projectId The current project id of the emulator instance
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
+
import debug from "debug";
|
|
1
2
|
import GenericContract from "../types/contract";
|
|
3
|
+
export declare const blockchainLogger: debug.Debugger;
|
|
2
4
|
type Addresses = {
|
|
3
5
|
[wallet: string]: {
|
|
4
6
|
secretKey: string;
|
|
5
7
|
};
|
|
6
8
|
};
|
|
7
|
-
export declare function startBlockchain({ projectRootFolder: projectFolder, port, }: {
|
|
9
|
+
export declare function startBlockchain({ projectRootFolder: projectFolder, port, graphqlProject, }: {
|
|
8
10
|
/** The NFT projects root folder so the contracts can be deployed from */
|
|
9
11
|
projectRootFolder: string;
|
|
10
12
|
/**
|
|
@@ -12,16 +14,30 @@ export declare function startBlockchain({ projectRootFolder: projectFolder, port
|
|
|
12
14
|
* @default 8545
|
|
13
15
|
* */
|
|
14
16
|
port?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Adds support for graphql for listening to blockchain events and indexing information.
|
|
19
|
+
*/
|
|
20
|
+
graphqlProject?: string;
|
|
15
21
|
}): Promise<Addresses>;
|
|
22
|
+
export declare function deriveWallet(index: number, hardhat: any): {
|
|
23
|
+
key: string;
|
|
24
|
+
address: string;
|
|
25
|
+
};
|
|
16
26
|
export declare function deployContract<const ABI extends any[] = []>({ contractAbi, contractName, args, }: {
|
|
17
27
|
contractAbi: ABI;
|
|
18
28
|
contractName: string;
|
|
19
29
|
args: any[];
|
|
20
30
|
}): Promise<{
|
|
21
|
-
address:
|
|
31
|
+
address: string;
|
|
22
32
|
owner: string;
|
|
23
33
|
contract: GenericContract<ABI, "allEvents" | (ABI[number] extends infer T ? T extends ABI[number] ? T extends {
|
|
24
34
|
type: "event";
|
|
25
35
|
} ? T["name"] : never : never : never)>;
|
|
26
36
|
}>;
|
|
37
|
+
/**
|
|
38
|
+
* Takes a graph and deploys it into the graph-node
|
|
39
|
+
*/
|
|
40
|
+
export declare function deployGraph(graphPath: string, contractAddresses: {
|
|
41
|
+
[deployedContractName: string]: string;
|
|
42
|
+
}): Promise<void>;
|
|
27
43
|
export {};
|
|
@@ -73,15 +73,20 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
73
73
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
74
74
|
};
|
|
75
75
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
76
|
-
exports.deployContract = exports.startBlockchain = void 0;
|
|
76
|
+
exports.deployGraph = exports.deployContract = exports.deriveWallet = exports.startBlockchain = exports.blockchainLogger = void 0;
|
|
77
77
|
var debug_1 = __importDefault(require("debug"));
|
|
78
|
-
var
|
|
78
|
+
var blockchain_1 = require("../client/blockchain");
|
|
79
|
+
var child_process_1 = require("child_process");
|
|
80
|
+
var utility_1 = require("../utility");
|
|
81
|
+
var fs_1 = require("fs");
|
|
82
|
+
var path_1 = require("path");
|
|
83
|
+
exports.blockchainLogger = (0, debug_1.default)("@muritavo/testing-toolkit/blockchain");
|
|
79
84
|
var instance;
|
|
80
85
|
function startBlockchain(_a) {
|
|
81
86
|
return __awaiter(this, arguments, void 0, function (_b) {
|
|
82
87
|
var prevFork, serverInstance, accounts;
|
|
83
88
|
var _this = this;
|
|
84
|
-
var projectFolder = _b.projectRootFolder, _c = _b.port, port = _c === void 0 ? 8545 : _c;
|
|
89
|
+
var projectFolder = _b.projectRootFolder, _c = _b.port, port = _c === void 0 ? 8545 : _c, graphqlProject = _b.graphqlProject;
|
|
85
90
|
return __generator(this, function (_d) {
|
|
86
91
|
switch (_d.label) {
|
|
87
92
|
case 0:
|
|
@@ -105,7 +110,12 @@ function startBlockchain(_a) {
|
|
|
105
110
|
case 2: return [2 /*return*/, instance.addresses];
|
|
106
111
|
case 3:
|
|
107
112
|
if (projectFolder)
|
|
108
|
-
|
|
113
|
+
(0, exports.blockchainLogger)("Starting blockchain server at \"".concat(projectFolder, "\""));
|
|
114
|
+
if (graphqlProject)
|
|
115
|
+
(0, child_process_1.execSync)("docker-compose up --detach", {
|
|
116
|
+
cwd: graphqlProject,
|
|
117
|
+
stdio: "ignore",
|
|
118
|
+
});
|
|
109
119
|
return [4 /*yield*/, initHardhat(projectFolder)];
|
|
110
120
|
case 4:
|
|
111
121
|
serverInstance = _d.sent();
|
|
@@ -130,7 +140,7 @@ function startBlockchain(_a) {
|
|
|
130
140
|
.fill(undefined)
|
|
131
141
|
.reduce(function (res, _, idx) {
|
|
132
142
|
var _a;
|
|
133
|
-
var account =
|
|
143
|
+
var account = deriveWallet(idx, serverInstance);
|
|
134
144
|
return __assign(__assign({}, res), (_a = {}, _a[account.address] = {
|
|
135
145
|
secretKey: account.key,
|
|
136
146
|
}, _a));
|
|
@@ -142,22 +152,24 @@ function startBlockchain(_a) {
|
|
|
142
152
|
addresses: accounts,
|
|
143
153
|
port: port,
|
|
144
154
|
};
|
|
155
|
+
(0, blockchain_1.setPort)(port);
|
|
145
156
|
return [2 /*return*/, accounts];
|
|
146
157
|
}
|
|
147
158
|
});
|
|
148
159
|
});
|
|
149
160
|
}
|
|
150
161
|
exports.startBlockchain = startBlockchain;
|
|
151
|
-
function
|
|
162
|
+
function deriveWallet(index, hardhat) {
|
|
152
163
|
if (index === void 0) { index = 0; }
|
|
153
164
|
var ethers = hardhat.ethers;
|
|
154
165
|
var accounts = hardhat.config.networks.hardhat.accounts;
|
|
155
|
-
var wallet = ethers.
|
|
166
|
+
var wallet = ethers.HDNodeWallet.fromMnemonic(ethers.Mnemonic.fromPhrase(accounts.mnemonic), accounts.path + "/".concat(index));
|
|
156
167
|
return {
|
|
157
168
|
key: wallet.privateKey,
|
|
158
169
|
address: wallet.address,
|
|
159
170
|
};
|
|
160
171
|
}
|
|
172
|
+
exports.deriveWallet = deriveWallet;
|
|
161
173
|
function initHardhat(dir) {
|
|
162
174
|
return __awaiter(this, void 0, void 0, function () {
|
|
163
175
|
var startingDir, hardhat, _a, e_1;
|
|
@@ -217,12 +229,12 @@ function deployContract(_a) {
|
|
|
217
229
|
return __generator(this, function (_e) {
|
|
218
230
|
switch (_e.label) {
|
|
219
231
|
case 0:
|
|
220
|
-
|
|
232
|
+
(0, exports.blockchainLogger)("Deploying contract ".concat(contractName, " with ").concat(args.length, " parameters ").concat(args
|
|
221
233
|
.map(function (a) { return "".concat(a, " (").concat(Array.isArray(a) ? "array" : typeof a, ")"); })
|
|
222
234
|
.join(", ")));
|
|
223
235
|
_e.label = 1;
|
|
224
236
|
case 1:
|
|
225
|
-
_e.trys.push([1,
|
|
237
|
+
_e.trys.push([1, 17, , 18]);
|
|
226
238
|
if (!(instance === null || instance === void 0 ? void 0 : instance.rootFolder))
|
|
227
239
|
throw new Error("You are trying to deploy a contract without defining the Blockchain Project folder. Please define it at startBlockchain command.");
|
|
228
240
|
getContract = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -255,8 +267,8 @@ function deployContract(_a) {
|
|
|
255
267
|
return [4 /*yield*/, lock_1.waitForDeployment()];
|
|
256
268
|
case 6:
|
|
257
269
|
_e.sent();
|
|
258
|
-
if (!(args.length > 0)) return [3 /*break*/,
|
|
259
|
-
|
|
270
|
+
if (!(args.length > 0)) return [3 /*break*/, 12];
|
|
271
|
+
(0, exports.blockchainLogger)("Initializing contract with owner ".concat(owner, " and args ").concat(args));
|
|
260
272
|
connection = lock_1.connect(owner);
|
|
261
273
|
initializationKey_1 = "initialize";
|
|
262
274
|
connection.interface.forEachFunction(function (func) {
|
|
@@ -271,30 +283,109 @@ function deployContract(_a) {
|
|
|
271
283
|
_e.sent();
|
|
272
284
|
_e.label = 8;
|
|
273
285
|
case 8:
|
|
274
|
-
_c = {
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
286
|
+
_c = {};
|
|
287
|
+
return [4 /*yield*/, lock_1.getAddress()];
|
|
288
|
+
case 9:
|
|
289
|
+
_c.address = _e.sent();
|
|
290
|
+
return [4 /*yield*/, owner.getAddress()];
|
|
291
|
+
case 10:
|
|
292
|
+
_c.owner = _e.sent();
|
|
278
293
|
return [4 /*yield*/, getContract()];
|
|
279
|
-
case
|
|
294
|
+
case 11: return [2 /*return*/, (_c.contract = _e.sent(),
|
|
280
295
|
_c)];
|
|
281
|
-
case
|
|
282
|
-
_d = {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
296
|
+
case 12:
|
|
297
|
+
_d = {};
|
|
298
|
+
return [4 /*yield*/, lock_1.getAddress()];
|
|
299
|
+
case 13:
|
|
300
|
+
_d.address = _e.sent();
|
|
301
|
+
return [4 /*yield*/, owner.getAddress()];
|
|
302
|
+
case 14:
|
|
303
|
+
_d.owner = _e.sent();
|
|
286
304
|
return [4 /*yield*/, getContract()];
|
|
287
|
-
case
|
|
305
|
+
case 15: return [2 /*return*/, (_d.contract = _e.sent(),
|
|
288
306
|
_d)];
|
|
289
|
-
case
|
|
290
|
-
case
|
|
307
|
+
case 16: return [3 /*break*/, 18];
|
|
308
|
+
case 17:
|
|
291
309
|
e_2 = _e.sent();
|
|
292
|
-
|
|
310
|
+
(0, exports.blockchainLogger)("Something has gone wrong", e_2);
|
|
293
311
|
throw e_2;
|
|
294
|
-
case
|
|
312
|
+
case 18: return [2 /*return*/];
|
|
295
313
|
}
|
|
296
314
|
});
|
|
297
315
|
});
|
|
298
316
|
}
|
|
299
317
|
exports.deployContract = deployContract;
|
|
318
|
+
/**
|
|
319
|
+
* Takes a graph and deploys it into the graph-node
|
|
320
|
+
*/
|
|
321
|
+
function deployGraph(graphPath, contractAddresses) {
|
|
322
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
323
|
+
function generateGraphManifest() {
|
|
324
|
+
var graphManifestCacheDir = cacheDir({ name: "graph-manifest" });
|
|
325
|
+
var subgraphYml = parse((0, fs_1.readFileSync)((0, path_1.resolve)(graphPath, "subgraph.yaml")).toString());
|
|
326
|
+
function relativeToAbsolutePath(relativePath) {
|
|
327
|
+
return (0, path_1.resolve)(graphPath, relativePath);
|
|
328
|
+
}
|
|
329
|
+
subgraphYml.schema.file = relativeToAbsolutePath(subgraphYml.schema.file);
|
|
330
|
+
for (var _i = 0, _a = subgraphYml.dataSources; _i < _a.length; _i++) {
|
|
331
|
+
var dataSource = _a[_i];
|
|
332
|
+
dataSource.network = "localhost";
|
|
333
|
+
if (!contractAddresses[dataSource.source.abi])
|
|
334
|
+
throw new Error("Please, provide the address for the contract \"".concat(dataSource.source.abi, "\" deployed on the local hardhat node"));
|
|
335
|
+
dataSource.source.address = contractAddresses[dataSource.source.abi];
|
|
336
|
+
dataSource.mapping.file = relativeToAbsolutePath(dataSource.mapping.file);
|
|
337
|
+
for (var _b = 0, _c = dataSource.mapping.abis; _b < _c.length; _b++) {
|
|
338
|
+
var abi = _c[_b];
|
|
339
|
+
abi.file = relativeToAbsolutePath(abi.file);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
var graphManifestPath = (0, path_1.resolve)(graphManifestCacheDir, "subgraph.yaml");
|
|
343
|
+
if (!(0, fs_1.existsSync)(graphManifestCacheDir))
|
|
344
|
+
(0, fs_1.mkdirSync)(graphManifestCacheDir, { recursive: true });
|
|
345
|
+
(0, fs_1.writeFileSync)(graphManifestPath, stringify(subgraphYml));
|
|
346
|
+
return graphManifestPath;
|
|
347
|
+
}
|
|
348
|
+
var _a, parse, stringify, cacheDir, stdioMode, error_1, localhostGraphManifest;
|
|
349
|
+
return __generator(this, function (_b) {
|
|
350
|
+
switch (_b.label) {
|
|
351
|
+
case 0: return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("yaml")); })];
|
|
352
|
+
case 1:
|
|
353
|
+
_a = _b.sent(), parse = _a.parse, stringify = _a.stringify;
|
|
354
|
+
return [4 /*yield*/, Promise.resolve().then(function () { return __importStar(require("find-cache-dir")); })];
|
|
355
|
+
case 2:
|
|
356
|
+
cacheDir = (_b.sent()).default;
|
|
357
|
+
stdioMode = exports.blockchainLogger.enabled ? undefined : "ignore";
|
|
358
|
+
_b.label = 3;
|
|
359
|
+
case 3:
|
|
360
|
+
if (!true) return [3 /*break*/, 8];
|
|
361
|
+
_b.label = 4;
|
|
362
|
+
case 4:
|
|
363
|
+
_b.trys.push([4, 5, , 7]);
|
|
364
|
+
(0, child_process_1.execSync)("yarn create-local", {
|
|
365
|
+
cwd: graphPath,
|
|
366
|
+
stdio: stdioMode,
|
|
367
|
+
});
|
|
368
|
+
return [3 /*break*/, 8];
|
|
369
|
+
case 5:
|
|
370
|
+
error_1 = _b.sent();
|
|
371
|
+
return [4 /*yield*/, (0, utility_1.wait)(1000)];
|
|
372
|
+
case 6:
|
|
373
|
+
_b.sent();
|
|
374
|
+
return [3 /*break*/, 7];
|
|
375
|
+
case 7: return [3 /*break*/, 3];
|
|
376
|
+
case 8:
|
|
377
|
+
localhostGraphManifest = generateGraphManifest();
|
|
378
|
+
(0, child_process_1.execSync)("yarn deploy-local ".concat(localhostGraphManifest, " -l v0.0.1"), {
|
|
379
|
+
cwd: graphPath,
|
|
380
|
+
stdio: stdioMode,
|
|
381
|
+
});
|
|
382
|
+
return [4 /*yield*/, (0, utility_1.wait)(1000)];
|
|
383
|
+
case 9:
|
|
384
|
+
_b.sent();
|
|
385
|
+
return [2 /*return*/];
|
|
386
|
+
}
|
|
387
|
+
});
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
exports.deployGraph = deployGraph;
|
|
300
391
|
//# sourceMappingURL=blockchain.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blockchain.js","sourceRoot":"","sources":["../../src/native/blockchain.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0B;AAE1B,
|
|
1
|
+
{"version":3,"file":"blockchain.js","sourceRoot":"","sources":["../../src/native/blockchain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function wait(timeMs: number): Promise<unknown>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.wait = void 0;
|
|
4
|
+
function wait(timeMs) {
|
|
5
|
+
return new Promise(function (r) {
|
|
6
|
+
setTimeout(function () {
|
|
7
|
+
r(null);
|
|
8
|
+
}, timeMs);
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
exports.wait = wait;
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utility/index.ts"],"names":[],"mappings":";;;AAAA,SAAgB,IAAI,CAAC,MAAc;IACjC,OAAO,IAAI,OAAO,CAAC,UAAC,CAAC;QACnB,UAAU,CAAC;YACT,CAAC,CAAC,IAAI,CAAC,CAAC;QACV,CAAC,EAAE,MAAM,CAAC,CAAC;IACb,CAAC,CAAC,CAAC;AACL,CAAC;AAND,oBAMC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@muritavo/testing-toolkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "A series of functions to help with testing",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"files": [
|
|
@@ -9,7 +9,10 @@
|
|
|
9
9
|
"scripts": {
|
|
10
10
|
"dev": "tsc --watch",
|
|
11
11
|
"prepack": "tsc",
|
|
12
|
-
"test": "jest --watchAll"
|
|
12
|
+
"test": "jest --watchAll",
|
|
13
|
+
"graph-codegen": "cd ./test/graphs/simple-graph && graph codegen",
|
|
14
|
+
"graph-build": "cd ./test/graphs/simple-graph && graph build",
|
|
15
|
+
"graph-local-clean": "docker-compose down -v && docker-compose rm -v && rm -rf data/ipfs data/postgres"
|
|
13
16
|
},
|
|
14
17
|
"repository": {
|
|
15
18
|
"type": "git",
|
|
@@ -22,24 +25,31 @@
|
|
|
22
25
|
},
|
|
23
26
|
"homepage": "https://github.com/Muritavo/testing-toolkit#readme",
|
|
24
27
|
"devDependencies": {
|
|
28
|
+
"@apollo/client": "^3.10.4",
|
|
29
|
+
"@graphprotocol/graph-ts": "^0.35.1",
|
|
25
30
|
"@nomicfoundation/hardhat-ethers": "^3.0.5",
|
|
31
|
+
"@types/debug": "^4.1.12",
|
|
26
32
|
"@types/jest": "^29.5.12",
|
|
27
33
|
"ethers": "^6.12.0",
|
|
34
|
+
"find-cache-dir": "^3.0.0",
|
|
28
35
|
"firebase": "^9.10.0",
|
|
29
36
|
"firebase-admin": "^11.5.0",
|
|
30
37
|
"ganache": "^7.8.0",
|
|
38
|
+
"graphql": "^16.8.1",
|
|
31
39
|
"hardhat": "^2.14.1",
|
|
32
40
|
"jest": "^29.7.0",
|
|
41
|
+
"react": "^18.3.1",
|
|
33
42
|
"text2png": "^2.3.0",
|
|
34
43
|
"ts-jest": "^29.1.2",
|
|
35
44
|
"web3": "^1",
|
|
36
|
-
"web3v4": "npm:web3@4.1.0"
|
|
45
|
+
"web3v4": "npm:web3@4.1.0",
|
|
46
|
+
"yaml": "^2.4.2"
|
|
37
47
|
},
|
|
38
48
|
"dependencies": {
|
|
39
49
|
"@firebase/rules-unit-testing": "^2.0.4",
|
|
40
50
|
"@types/kill-port": "^2.0.3",
|
|
41
51
|
"@types/node-fetch": "^2.6.2",
|
|
42
|
-
"kill-port": "^
|
|
52
|
+
"kill-port": "^1.6.0",
|
|
43
53
|
"node-fetch": "^1",
|
|
44
54
|
"typescript": "^5.4.2"
|
|
45
55
|
}
|