@sentio/sdk 0.0.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Contract } from 'typechain';
2
+ export declare function codeGenSentioFile(contract: Contract): string;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.codeGenSentioFile = void 0;
4
+ const typechain_1 = require("typechain");
5
+ function codeGenSentioFile(contract) {
6
+ const source = `
7
+ export type ${contract.name}Context = Context<${contract.name}>
8
+
9
+ class ${contract.name}Processor_ extends BaseProcessor<${contract.name}> {
10
+ bind(address: string) {
11
+ this.contract = ${contract.name}__factory.connect(address, SentioProvider)
12
+ return this
13
+ }
14
+
15
+ ${Object.values(contract.events)
16
+ .flatMap((v) => v.map((e) => generateOnEventFunction(e, contract.name)))
17
+ .join('\n')}
18
+ }
19
+
20
+ export const ${contract.name}Processor = new ${contract.name}Processor_("", "${contract.name}")
21
+
22
+ `;
23
+ const imports = (0, typechain_1.createImportsForUsedIdentifiers)({
24
+ '@sentio/sdk': ['Context', 'SentioProvider', 'BaseProcessor'],
25
+ './index': [`${contract.name}`, `${contract.name}__factory`],
26
+ [`./${contract.name}`]: [].concat(...Object.values(contract.events).flatMap((v) => v.map((e) => [`${e.name}Event`, `${e.name}EventFilter`]))),
27
+ }, source);
28
+ return imports + source;
29
+ }
30
+ exports.codeGenSentioFile = codeGenSentioFile;
31
+ function generateOnEventFunction(event, contractName) {
32
+ return `
33
+ on${event.name}(
34
+ handler: (event: ${event.name}Event, ctx: ${contractName}Context) => void,
35
+ filter?: ${event.name}EventFilter
36
+ ) {
37
+ // is there an easier way to do that?
38
+ if (!filter) {
39
+ // basically just pass this filter into parent class
40
+ filter = this.contract.filters.${event.name}(${event.inputs
41
+ .map(() => 'null')
42
+ .join(',')})
43
+ }
44
+ super.onEvent(handler, filter)
45
+ }
46
+ `;
47
+ }
48
+ //# sourceMappingURL=codegen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/target-ethers-sentio/codegen.ts"],"names":[],"mappings":";;;AAAA,yCAIkB;AAElB,SAAgB,iBAAiB,CAAC,QAAkB;IAClD,MAAM,MAAM,GAAG;gBACD,QAAQ,CAAC,IAAI,qBAAqB,QAAQ,CAAC,IAAI;;UAErD,QAAQ,CAAC,IAAI,oCAAoC,QAAQ,CAAC,IAAI;;wBAEhD,QAAQ,CAAC,IAAI;;;;MAI/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;SAC7B,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;SACvE,IAAI,CAAC,IAAI,CAAC;;;iBAGA,QAAQ,CAAC,IAAI,mBAC1B,QAAQ,CAAC,IACX,mBAAmB,QAAQ,CAAC,IAAI;;GAE/B,CAAA;IAED,MAAM,OAAO,GAAG,IAAA,2CAA+B,EAC7C;QACE,aAAa,EAAE,CAAC,SAAS,EAAE,gBAAgB,EAAE,eAAe,CAAC;QAC7D,SAAS,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,QAAQ,CAAC,IAAI,WAAW,CAAC;QAC5D,CAAC,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAa,EAAG,CAAC,MAAM,CAC3C,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,aAAa,CAAC,CAAC,CACzD,CACF;KACF,EACD,MAAM,CACP,CAAA;IAED,OAAO,OAAO,GAAG,MAAM,CAAA;AACzB,CAAC;AAnCD,8CAmCC;AAED,SAAS,uBAAuB,CAC9B,KAAuB,EACvB,YAAoB;IAEpB,OAAO;MACH,KAAK,CAAC,IAAI;uBACO,KAAK,CAAC,IAAI,eAAe,YAAY;eAC7C,KAAK,CAAC,IAAI;;;;;uCAKc,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM;SAC5D,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;SACjB,IAAI,CAAC,GAAG,CAAC;;;;GAIX,CAAA;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import Ethers from '@typechain/ethers-v5';
2
+ import { FileDescription } from 'typechain';
3
+ export default class EthersSentio extends Ethers {
4
+ transformAbiOrFullJsonFile(file: FileDescription): FileDescription[] | void;
5
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const ethers_v5_1 = __importDefault(require("@typechain/ethers-v5"));
7
+ const typechain_1 = require("typechain");
8
+ const path_1 = require("path");
9
+ const codegen_1 = require("./codegen");
10
+ class EthersSentio extends ethers_v5_1.default {
11
+ // TODO(pc): also have to override transformBinFile, transformFile
12
+ transformAbiOrFullJsonFile(file) {
13
+ const abi = (0, typechain_1.extractAbi)(file.contents);
14
+ if (abi.length === 0) {
15
+ return;
16
+ }
17
+ const documentation = (0, typechain_1.extractDocumentation)(file.contents);
18
+ const path = (0, path_1.relative)(this.cfg.inputDir, (0, typechain_1.shortenFullJsonFilePath)(file.path, this.cfg.allFiles));
19
+ const contract = (0, typechain_1.parse)(abi, path, documentation);
20
+ const files = super.transformAbiOrFullJsonFile(file);
21
+ if (files != null) {
22
+ return [
23
+ ...files,
24
+ {
25
+ path: (0, path_1.join)((0, path_1.dirname)(files[0].path), `${contract.name.toLowerCase()}_processor.ts`),
26
+ contents: (0, codegen_1.codeGenSentioFile)(contract),
27
+ },
28
+ ];
29
+ }
30
+ }
31
+ }
32
+ exports.default = EthersSentio;
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/target-ethers-sentio/index.ts"],"names":[],"mappings":";;;;;AAAA,qEAAyC;AACzC,yCAMkB;AAClB,+BAA8C;AAC9C,uCAA6C;AAE7C,MAAqB,YAAa,SAAQ,mBAAM;IAC9C,kEAAkE;IACzD,0BAA0B,CACjC,IAAqB;QAErB,MAAM,GAAG,GAAG,IAAA,sBAAU,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACrC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,OAAM;SACP;QAED,MAAM,aAAa,GAAG,IAAA,gCAAoB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAEzD,MAAM,IAAI,GAAG,IAAA,eAAQ,EACnB,IAAI,CAAC,GAAG,CAAC,QAAQ,EACjB,IAAA,mCAAuB,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CACtD,CAAA;QAED,MAAM,QAAQ,GAAG,IAAA,iBAAK,EAAC,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,CAAA;QAEhD,MAAM,KAAK,GAAG,KAAK,CAAC,0BAA0B,CAAC,IAAI,CAAC,CAAA;QAEpD,IAAI,KAAK,IAAI,IAAI,EAAE;YACjB,OAAO;gBACL,GAAG,KAAK;gBACR;oBACE,IAAI,EAAE,IAAA,WAAI,EACR,IAAA,cAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EACtB,GAAG,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAC9C;oBACD,QAAQ,EAAE,IAAA,2BAAiB,EAAC,QAAQ,CAAC;iBACtC;aACF,CAAA;SACF;IACH,CAAC;CACF;AAlCD,+BAkCC"}
package/package.json ADDED
@@ -0,0 +1,44 @@
1
+ {
2
+ "name": "@sentio/sdk",
3
+ "scripts": {
4
+ "build": "tsc --build tsconfig.json && tsc --build tsconfig.build.json",
5
+ "test": "ts-mocha ../example/src/service.test.ts",
6
+ "format": "prettier --write .",
7
+ "lint": "eslint ."
8
+ },
9
+ "version": "0.0.0",
10
+ "dependencies": {
11
+ "nice-grpc": "^1.2.0",
12
+ "@ethersproject/providers": "^5.6.7",
13
+ "ethers": "^5.6.7",
14
+ "google-protobuf": "^3.15.8",
15
+ "typechain": "^8.0.0"
16
+ },
17
+ "devDependencies": {
18
+ "ts-mocha": "^10.0.0",
19
+ "@bazel/typescript": "^5.4.2",
20
+ "@typechain/ethers-v5": "^10.0.0",
21
+ "@types/chai": "^4.3.1",
22
+ "@types/expect": "^24.3.0",
23
+ "@types/google-protobuf": "^3.15.6",
24
+ "@types/mkdirp": "^1.0.2",
25
+ "@types/mocha": "^9.1.1",
26
+ "@types/node": "^16.11.7",
27
+ "@typescript-eslint/eslint-plugin": "^5.26.0",
28
+ "@typescript-eslint/parser": "^5.26.0",
29
+ "chai": "^4.3.6",
30
+ "eslint": "^8.16.0",
31
+ "eslint-config-prettier": "^8.5.0",
32
+ "lint-staged": "^12.4.2",
33
+ "mocha": "^10.0.0",
34
+ "prettier": "^2.6.2",
35
+ "ts-node": "^10.8.0",
36
+ "typescript": "^4.7.2"
37
+ },
38
+ "files": [
39
+ "dist/**/*"
40
+ ],
41
+ "main": "./dist/index.js",
42
+ "types": "./dist/index.d.ts",
43
+ "module": "./dist/index.js"
44
+ }