@subsquid/evm-typegen 3.3.0 → 4.0.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.
@@ -1 +1 @@
1
- {"version":3,"file":"typegen.js","sourceRoot":"","sources":["../src/typegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typegen.js","sourceRoot":"","sources":["../src/typegen.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,2DAA6C;AAC7C,+CAA6C;AAC7C,wCAAsC;AAItC,SAAS,YAAY,CAAC,KAA6B,EAAE,KAA6B;IAChF,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;QAC1G,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAChC,OAAO,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAA;IACjE,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAa,OAAO;IAGlB,YACE,IAAY,EACJ,GAAQ,EAChB,QAAgB,EACR,GAAW;QAFX,QAAG,GAAH,GAAG,CAAK;QAER,QAAG,GAAH,GAAG,CAAQ;QAEnB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAA;QACzD,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,uEAAuE,CACxE,CAAA;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,oGAAoG,CACrG,CAAA;QAED,IAAI,CAAC,cAAc,EAAE,CAAA;QACrB,IAAI,CAAC,iBAAiB,EAAE,CAAA;QACxB,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAA;QACzB,IAAI,CAAC,qBAAqB,EAAE,CAAA;QAE5B,MAAM,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;QACtB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAA;IACzC,CAAC;IAEO,cAAc;QACpB,IAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC7B,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC3C,KAAK,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;gBACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,OAAO,CACjE,CAAC,CAAC,MAAM,CACT,KAAK,CACP,CAAA;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,MAAM,CAAC,CAAW;QACxB,OAAO,KAAK,IAAA,mBAAS,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAA;IAC1D,CAAC;IAEO,OAAO,CAAC,MAA+B;QAC7C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,IAAA,eAAO,EAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACnE,CAAC;IAEO,iBAAiB;QACvB,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QACnC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAC9C,KAAK,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;gBACxB,IAAI,UAAU,GAAG,EAAE,CAAA;gBACnB,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC5B,UAAU,GAAG,IAAA,eAAO,EAAC,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;gBAC5D,CAAC;gBACD,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,UAAU,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAA;gBAC7C,CAAC;gBAED,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,gBAAgB,CACnD,CAAC,CACF,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,UAAU,IAAI,CACnD,CAAA;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,gBAAgB,CAAC,CAAc;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAC/B,OAAO,KAAK,IAAA,mBAAS,EAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAA;IAC9D,CAAC;IAEO,gBAAgB;QACtB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACf,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,EAAE;YAChE,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;YACnC,KAAK,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,CAAC,CAAC,eAAe,KAAK,MAAM,IAAI,CAAC,CAAC,eAAe,KAAK,MAAM,CAAC;oBAChE,CAAC,CAAC,OAAO,EAAE,MAAM,EACjB,CAAC;oBACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;oBACf,IAAI,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC,CAAA;oBAC5D,MAAM,GAAG,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;oBACrC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;oBAC1C,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM;yBAChB,GAAG,CACF,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CACT,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,QAAQ,KAAK,QAAQ,CAAC,GAAG,CAAC,IAAI,CACtD;yBACA,IAAI,CAAC,IAAI,CAAC,CAAA;oBACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE;wBACrD,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,iCAAiC,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAClE,CAAA;oBACH,CAAC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAEO,cAAc,CAAC,KAAmB;QACxC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC,IAAI,CAAA;QACnB,CAAC;QACD,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QACzC,OAAO,IAAK,KAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAmB,EAAE,EAAE,CAC/D,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAC3B,IAAI,aAAa,EAAE,CAAA;IACtB,CAAC;IAEO,OAAO,CAAC,IAA4B;QAC1C,OAAO,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM;aAC/B,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;aAC1C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAA;IACjB,CAAC;IAEO,WAAW,CAAC,IAA4B;QAC9C,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAA;QAClC,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,IAA4B;QACpD,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,OAAO,GAAG,GAAG,IAAI,CAAC,IAAI,CAAA;QACxB,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA;QACpC,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,IAA4B;QAC/C,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACzC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC5C,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,CAAS;QAC1B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC;IAEO,gBAAgB,CAAC,IAA4B;QACnD,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;QACzD,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAA;QACzD,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;IAC1D,CAAC;IAEO,WAAW,CAAC,CAAW;QAC7B,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAA;QAC9C,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;QACtC,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,EAAE,CAAA;IACvD,CAAC;IAEO,kBAAkB;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAA;QAC/B,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACvB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAChC,KAAK,IAAI,CAAC,IAAI,MAAM,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;YAC1C,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,eAAe,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,2BAA2B,QAAQ,GAAG,CACzE,CAAA;QACH,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,CAAc;QACpC,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACjF,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;QACtC,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,KAAK,EAAE,CAAC,CAAA;IACnG,CAAC;IAEO,qBAAqB;QAC3B,IAAI,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAA;QACnC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;QACnC,KAAK,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;YACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;YAC1C,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;YAC3C,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,eAAe,IAAI,wCAAwC,QAAQ,GAAG,CACvE,CAAA;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,CACX,eAAe,GAAG,qCAAqC,QAAQ,GAAG,CACnE,CAAA;YACD,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;QACjB,CAAC;IACH,CAAC;IAGO,iBAAiB;QACvB,IAAI,SAAS,GAA2B,EAAE,CAAA;QAC1C,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,CAAC;YACrC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAGO,cAAc;QACpB,IAAI,SAAS,GAA2B,EAAE,CAAA;QAC1C,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YAClC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACxD,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAGO,YAAY;QAClB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAkB,CAAA;IACvE,CAAC;IAGO,SAAS;QACf,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAe,CAAA;IACjE,CAAC;CACF;AAlPD,0BAkPC;AA1BS;IADP,mBAAG;;;;gDAOH;AAGO;IADP,mBAAG;;;;6CAOH;AAGO;IADP,mBAAG;;;;2CAGH;AAGO;IADP,mBAAG;;;;wCAGH"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/util/fetch.ts"],"names":[],"mappings":"AAUA,wBAAgB,GAAG,CAAC,CAAC,GAAC,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAElD"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/util/fetch.ts"],"names":[],"mappings":"AAQA,wBAAgB,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAEpD"}
package/lib/util/fetch.js CHANGED
@@ -5,7 +5,7 @@ const logger_1 = require("@subsquid/logger");
5
5
  const http_client_1 = require("@subsquid/http-client");
6
6
  const http = new http_client_1.HttpClient({
7
7
  log: (0, logger_1.createLogger)('sqd:evm-typegen:fetch'),
8
- retryAttempts: 3
8
+ retryAttempts: 3,
9
9
  });
10
10
  function GET(url) {
11
11
  return http.get(url);
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/util/fetch.ts"],"names":[],"mappings":";;;AAAA,6CAA6C;AAC7C,uDAAgD;AAGhD,MAAM,IAAI,GAAG,IAAI,wBAAU,CAAC;IACxB,GAAG,EAAE,IAAA,qBAAY,EAAC,uBAAuB,CAAC;IAC1C,aAAa,EAAE,CAAC;CACnB,CAAC,CAAA;AAGF,SAAgB,GAAG,CAAQ,GAAW;IAClC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAFD,kBAEC"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/util/fetch.ts"],"names":[],"mappings":";;;AAAA,6CAA+C;AAC/C,uDAAkD;AAElD,MAAM,IAAI,GAAG,IAAI,wBAAU,CAAC;IAC1B,GAAG,EAAE,IAAA,qBAAY,EAAC,uBAAuB,CAAC;IAC1C,aAAa,EAAE,CAAC;CACjB,CAAC,CAAA;AAEF,SAAgB,GAAG,CAAU,GAAW;IACtC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AACtB,CAAC;AAFD,kBAEC"}
@@ -1,7 +1,3 @@
1
- import type { ParamType } from 'ethers';
2
- export declare function getType(param: ParamType): string;
3
- export declare function getFullTupleType(params: ReadonlyArray<ParamType>): string;
4
- export declare function getTupleType(params: ReadonlyArray<ParamType>): string;
5
- export declare function getStructType(params: ReadonlyArray<ParamType>): string;
6
- export declare function getReturnType(outputs: ReadonlyArray<ParamType>): string;
1
+ import type { AbiEventParameter } from 'abitype';
2
+ export declare function getType(param: AbiEventParameter, index?: number): string;
7
3
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,QAAQ,CAAA;AAIrC,wBAAgB,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CA6BhD;AAGD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,MAAM,CAQzE;AAGD,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,MAAM,CAIrE;AAID,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,MAAM,CAUtE;AAGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,CAAC,SAAS,CAAC,UAE9D"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAkBhD,wBAAgB,OAAO,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAmCxE"}
package/lib/util/types.js CHANGED
@@ -1,68 +1,47 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getReturnType = exports.getStructType = exports.getTupleType = exports.getFullTupleType = exports.getType = void 0;
7
- const assert_1 = __importDefault(require("assert"));
8
- // taken from: https://github.com/ethers-io/ethers.js/blob/948f77050dae884fe88932fd88af75560aac9d78/packages/cli/src.ts/typescript.ts#L10
9
- function getType(param) {
10
- if (param.baseType === 'array') {
11
- (0, assert_1.default)(param.arrayChildren != null, 'Missing children for array type');
12
- return 'Array<' + getType(param.arrayChildren) + '>';
13
- }
14
- if (param.baseType === 'tuple') {
15
- (0, assert_1.default)(param.components != null, 'Missing components for tuple type');
16
- return getFullTupleType(param.components);
17
- }
18
- if (param.type === 'address' || param.type === 'string') {
19
- return 'string';
20
- }
21
- if (param.type === 'bool') {
22
- return 'boolean';
23
- }
24
- let match = param.type.match(/^(u?int)([0-9]+)$/);
25
- if (match) {
26
- return parseInt(match[2]) < 53 ? 'number' : 'bigint';
27
- }
28
- if (param.type.substring(0, 5) === 'bytes') {
29
- return 'string';
30
- }
31
- throw new Error('unknown type');
3
+ exports.getType = void 0;
4
+ function isStaticArray(param) {
5
+ return param.type.match(/\[\d+]$/);
32
6
  }
33
- exports.getType = getType;
34
- function getFullTupleType(params) {
35
- let tuple = getTupleType(params);
36
- let struct = getStructType(params);
37
- if (struct == '{}') {
38
- return tuple;
39
- }
40
- else {
41
- return `(${tuple} & ${struct})`;
42
- }
7
+ function isDynamicArray(param) {
8
+ return param.type.endsWith('[]');
43
9
  }
44
- exports.getFullTupleType = getFullTupleType;
45
- function getTupleType(params) {
46
- return '[' + params.map(p => {
47
- return p.name ? `${p.name}: ${getType(p)}` : `_: ${getType(p)}`;
48
- }).join(', ') + ']';
10
+ function elementsCount(param) {
11
+ return Number(param.type.match(/\[(\d+)]$/)?.[1] ?? 0);
49
12
  }
50
- exports.getTupleType = getTupleType;
51
- // https://github.com/ethers-io/ethers.js/blob/278f84174409b470fa7992e1f8b5693e6e5d2dac/src.ts/abi/coders/tuple.ts#L36
52
- function getStructType(params) {
53
- let array = [];
54
- let counts = {};
55
- for (let p of params) {
56
- if (p.name && array[p.name] == null) {
57
- counts[p.name] = (counts[p.name] || 0) + 1;
58
- }
59
- }
60
- let fields = params.filter(p => counts[p.name] == 1);
61
- return '{' + fields.map(f => `${f.name}: ${getType(f)}`).join(', ') + '}';
13
+ function arrayChildType(param) {
14
+ return param.type.replace(/\[\d*]$/, '');
62
15
  }
63
- exports.getStructType = getStructType;
64
- function getReturnType(outputs) {
65
- return outputs.length == 1 ? getType(outputs[0]) : getFullTupleType(outputs);
16
+ function getType(param, index) {
17
+ const { name, ...namelessParam } = param;
18
+ if (name) {
19
+ return `"${name}": ${getType(namelessParam)}`;
20
+ }
21
+ if (index !== undefined) {
22
+ return `"_${index}": ${getType(namelessParam)}`;
23
+ }
24
+ const { indexed, ...indexlessParam } = param;
25
+ if (indexed) {
26
+ return `indexed(${getType(indexlessParam)})`;
27
+ }
28
+ if (isStaticArray(param)) {
29
+ const elements = elementsCount(param);
30
+ return `p.fixedSizeArray(${getType({
31
+ ...param,
32
+ type: arrayChildType(param),
33
+ })}, ${elements})`;
34
+ }
35
+ if (isDynamicArray(param)) {
36
+ return `p.array(${getType({
37
+ ...param,
38
+ type: arrayChildType(param),
39
+ })})`;
40
+ }
41
+ if (param.type === 'tuple') {
42
+ return `p.struct({${param.components.map((type, idx) => getType(type, idx)).join(', ')}})`;
43
+ }
44
+ return `p.${param.type}`;
66
45
  }
67
- exports.getReturnType = getReturnType;
46
+ exports.getType = getType;
68
47
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/util/types.ts"],"names":[],"mappings":";;;AAEA,SAAS,aAAa,CAAC,KAAwB;IAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;AACpC,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB;IAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAClC,CAAC;AAED,SAAS,aAAa,CAAC,KAAwB;IAC7C,OAAO,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;AACxD,CAAC;AAED,SAAS,cAAc,CAAC,KAAwB;IAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;AAC1C,CAAC;AAED,SAAgB,OAAO,CAAC,KAAwB,EAAE,KAAc;IAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,EAAE,GAAG,KAAK,CAAA;IAExC,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAI,IAAI,MAAM,OAAO,CAAC,aAAoB,CAAC,EAAE,CAAA;IACtD,CAAC;IAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC,aAAa,CAAC,EAAE,CAAA;IACjD,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,KAAK,CAAA;IAC5C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,WAAW,OAAO,CAAC,cAAqB,CAAC,GAAG,CAAA;IACrD,CAAC;IACD,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;QACrC,OAAO,oBAAoB,OAAO,CAAC;YACjC,GAAG,KAAK;YACR,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;SAC5B,CAAC,KAAK,QAAQ,GAAG,CAAA;IACpB,CAAC;IAED,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,WAAW,OAAO,CAAC;YACxB,GAAG,KAAK;YACR,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;SAC5B,CAAC,GAAG,CAAA;IACP,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,aAAc,KAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAuB,EAAE,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAA;IAChI,CAAC;IAED,OAAO,KAAK,KAAK,CAAC,IAAI,EAAE,CAAA;AAC1B,CAAC;AAnCD,0BAmCC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@subsquid/evm-typegen",
3
- "version": "3.3.0",
3
+ "version": "4.0.1",
4
4
  "description": "CLI for generating typescript types and decode implementations for evm logs",
5
5
  "license": "GPL-3.0-or-later",
6
6
  "repository": "git@github.com:subsquid/squid.git",
@@ -16,17 +16,17 @@
16
16
  "squid-evm-typegen": "bin/run.js"
17
17
  },
18
18
  "dependencies": {
19
- "@subsquid/http-client": "^1.3.2",
20
- "@subsquid/logger": "^1.3.2",
21
- "@subsquid/util-internal": "^3.0.0",
19
+ "@subsquid/http-client": "^1.4.0",
20
+ "@subsquid/logger": "^1.3.3",
21
+ "@subsquid/util-internal": "^3.2.0",
22
22
  "@subsquid/util-internal-code-printer": "^1.2.2",
23
- "@subsquid/util-internal-commander": "^1.3.2",
23
+ "@subsquid/util-internal-commander": "^1.4.0",
24
+ "@subsquid/evm-codec": "^0.1.0",
25
+ "@subsquid/evm-abi": "^0.2.0",
24
26
  "commander": "^11.1.0"
25
27
  },
26
- "peerDependencies": {
27
- "ethers": "^6.9.0"
28
- },
29
28
  "devDependencies": {
29
+ "abitype": "^1.0.0",
30
30
  "@types/node": "^18.18.14",
31
31
  "typescript": "~5.3.2"
32
32
  },
package/src/main.ts CHANGED
@@ -1,40 +1,39 @@
1
1
  import * as fs from 'fs'
2
- import * as ethers from 'ethers'
3
2
  import path from 'path'
4
- import {InvalidArgumentError, program} from 'commander'
5
- import {createLogger} from '@subsquid/logger'
6
- import {runProgram, wait} from '@subsquid/util-internal'
7
- import {OutDir} from '@subsquid/util-internal-code-printer'
3
+ import { InvalidArgumentError, program } from 'commander'
4
+ import { createLogger } from '@subsquid/logger'
5
+ import { runProgram, wait } from '@subsquid/util-internal'
8
6
  import * as validator from '@subsquid/util-internal-commander'
9
- import {Typegen} from './typegen'
10
- import {GET} from './util/fetch'
11
-
7
+ import { Typegen } from './typegen'
8
+ import { GET } from './util/fetch'
9
+ import { OutDir } from '@subsquid/util-internal-code-printer'
12
10
 
13
11
  const LOG = createLogger('sqd:evm-typegen')
14
12
 
15
-
16
- runProgram(async function() {
13
+ runProgram(
14
+ async function () {
17
15
  program
18
- .description(`
16
+ .description(
17
+ `
19
18
  Generates TypeScript facades for EVM transactions, logs and eth_call queries.
20
19
 
21
20
  The generated facades are assumed to be used by "squids" indexing EVM data.
22
- `.trim())
23
- .name('squid-evm-typegen')
24
- .argument('<output-dir>', 'output directory for generated definitions')
25
- .argument('[abi...]', 'ABI file', specArgument)
26
- .option('--multicall', 'generate facade for MakerDAO multicall contract')
27
- .option(
28
- '--etherscan-api <url>',
29
- 'etherscan API to fetch contract ABI by a known address',
30
- validator.Url(['http:', 'https:'])
31
- )
32
- .option(
33
- '--etherscan-api-key <key>',
34
- 'etherscan API key'
35
- )
36
- .option('--clean', 'delete output directory before run')
37
- .addHelpText('afterAll', `
21
+ `.trim(),
22
+ )
23
+ .name('squid-evm-typegen')
24
+ .argument('<output-dir>', 'output directory for generated definitions')
25
+ .argument('[abi...]', 'ABI file', specArgument)
26
+ .option('--multicall', 'generate facade for MakerDAO multicall contract')
27
+ .option(
28
+ '--etherscan-api <url>',
29
+ 'etherscan API to fetch contract ABI by a known address',
30
+ validator.Url(['http:', 'https:']),
31
+ )
32
+ .option('--etherscan-api-key <key>', 'etherscan API key')
33
+ .option('--clean', 'delete output directory before run')
34
+ .addHelpText(
35
+ 'afterAll',
36
+ `
38
37
  ABI file can be specified in three ways:
39
38
 
40
39
  1. as a plain JSON file:
@@ -53,152 +52,166 @@ In all cases typegen will use ABI's basename as a basename of generated files.
53
52
  You can overwrite basename of generated files using fragment (#) suffix.
54
53
 
55
54
  squid-evm-typegen src/abi 0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413#contract
56
- `)
55
+ `,
56
+ )
57
57
 
58
58
  program.parse()
59
59
 
60
60
  let opts = program.opts() as {
61
- clean?: boolean,
62
- multicall?: boolean,
63
- etherscanApi?: string
64
- etherscanApiKey?: string
61
+ clean?: boolean
62
+ multicall?: boolean
63
+ etherscanApi?: string
64
+ etherscanApiKey?: string
65
65
  }
66
66
  let dest = new OutDir(program.processedArgs[0])
67
67
  let specs = program.processedArgs[1] as Spec[]
68
68
 
69
69
  if (opts.clean && dest.exists()) {
70
- LOG.info(`deleting ${dest.path()}`)
71
- dest.del()
70
+ LOG.info(`deleting ${dest.path()}`)
71
+ dest.del()
72
72
  }
73
73
 
74
74
  if (specs.length == 0 && !opts.multicall) {
75
- LOG.warn('no ABI files given, nothing to generate')
76
- return
75
+ LOG.warn('no ABI files given, nothing to generate')
76
+ return
77
77
  }
78
78
 
79
- dest.add('abi.support.ts', [__dirname, '../src/abi.support.ts'])
80
- LOG.info(`saved ${dest.path('abi.support.ts')}`)
81
-
82
79
  if (opts.multicall) {
83
- dest.add('multicall.ts', [__dirname, '../src/multicall.ts'])
84
- LOG.info(`saved ${dest.path('multicall.ts')}`)
80
+ dest.add('multicall.ts', [__dirname, '../src/multicall.ts'])
81
+ LOG.info(`saved ${dest.path('multicall.ts')}`)
85
82
  }
86
83
 
87
84
  for (let spec of specs) {
88
- LOG.info(`processing ${spec.src}`)
89
- let abi_json = await read(spec, opts)
90
- let abi = new ethers.Interface(abi_json)
91
- new Typegen(dest, abi, spec.name, LOG).generate()
92
- }
93
- }, err => LOG.fatal(err))
94
-
95
-
96
- async function read(spec: Spec, options?: {etherscanApi?: string, etherscanApiKey?: string}): Promise<any> {
97
- if (spec.kind == 'address') {
98
- return fetchFromEtherscan(spec.src, options?.etherscanApi, options?.etherscanApiKey)
99
- }
100
- let abi: any
101
- if (spec.kind == 'url') {
102
- abi = await GET(spec.src)
103
- } else {
104
- abi = JSON.parse(fs.readFileSync(spec.src, 'utf-8'))
105
- }
106
- if (Array.isArray(abi)) {
107
- return abi
108
- } else if (Array.isArray(abi?.abi)) {
109
- return abi.abi
110
- } else {
111
- throw new Error('Unrecognized ABI format')
85
+ LOG.info(`processing ${spec.src}`)
86
+ let abi_json = await read(spec, opts)
87
+ await new Typegen(dest, abi_json, spec.name, LOG).generate()
112
88
  }
89
+ },
90
+ (err) => LOG.fatal(err),
91
+ )
92
+
93
+ async function read(
94
+ spec: Spec,
95
+ options?: { etherscanApi?: string; etherscanApiKey?: string },
96
+ ): Promise<any> {
97
+ if (spec.kind == 'address') {
98
+ return fetchFromEtherscan(
99
+ spec.src,
100
+ options?.etherscanApi,
101
+ options?.etherscanApiKey,
102
+ )
103
+ }
104
+ let abi: any
105
+ if (spec.kind == 'url') {
106
+ abi = await GET(spec.src)
107
+ } else {
108
+ abi = JSON.parse(fs.readFileSync(spec.src, 'utf-8'))
109
+ }
110
+ if (Array.isArray(abi)) {
111
+ return abi
112
+ } else if (Array.isArray(abi?.abi)) {
113
+ return abi.abi
114
+ } else {
115
+ throw new Error('Unrecognized ABI format')
116
+ }
113
117
  }
114
118
 
115
-
116
- async function fetchFromEtherscan(address: string, api?: string, apiKey?: string): Promise<any> {
117
- api = api || 'https://api.etherscan.io/'
118
- let url = new URL('api?module=contract&action=getabi', api)
119
- url.searchParams.set('address', address)
120
- if (apiKey) {
121
- url.searchParams.set('apiKey', apiKey)
122
- }
123
- let response: {status: string, result: string}
124
- let attempts = 0
125
- while (true) {
126
- response = await GET(url.toString())
127
- if (response.status == '0' && response.result.includes('rate limit') && attempts < 4) {
128
- attempts += 1
129
- let timeout = attempts * 2
130
- LOG.warn(`faced rate limit error while trying to fetch contract ABI. Trying again in ${timeout} seconds.`)
131
- await wait(timeout * 1000)
132
- } else {
133
- break
134
- }
135
- }
136
- if (response.status == '1') {
137
- return JSON.parse(response.result)
119
+ async function fetchFromEtherscan(
120
+ address: string,
121
+ api?: string,
122
+ apiKey?: string,
123
+ ): Promise<any> {
124
+ api = api || 'https://api.etherscan.io/'
125
+ let url = new URL('api?module=contract&action=getabi', api)
126
+ url.searchParams.set('address', address)
127
+ if (apiKey) {
128
+ url.searchParams.set('apiKey', apiKey)
129
+ }
130
+ let response: { status: string; result: string }
131
+ let attempts = 0
132
+ while (true) {
133
+ response = await GET(url.toString())
134
+ if (
135
+ response.status == '0' &&
136
+ response.result.includes('rate limit') &&
137
+ attempts < 4
138
+ ) {
139
+ attempts += 1
140
+ let timeout = attempts * 2
141
+ LOG.warn(
142
+ `faced rate limit error while trying to fetch contract ABI. Trying again in ${timeout} seconds.`,
143
+ )
144
+ await wait(timeout * 1000)
138
145
  } else {
139
- throw new Error(`Failed to fetch contract ABI from ${api}: ${response.result}`)
146
+ break
140
147
  }
148
+ }
149
+ if (response.status == '1') {
150
+ return JSON.parse(response.result)
151
+ } else {
152
+ throw new Error(
153
+ `Failed to fetch contract ABI from ${api}: ${response.result}`,
154
+ )
155
+ }
141
156
  }
142
157
 
143
-
144
158
  interface Spec {
145
- kind: 'address' | 'url' | 'file'
146
- src: string
147
- name: string
159
+ kind: 'address' | 'url' | 'file'
160
+ src: string
161
+ name: string
148
162
  }
149
163
 
150
-
151
164
  function specArgument(value: string, prev?: Spec[]): Spec[] {
152
- let spec = parseSpec(value)
153
- prev = prev || []
154
- prev.push(spec)
155
- return prev
165
+ let spec = parseSpec(value)
166
+ prev = prev || []
167
+ prev.push(spec)
168
+ return prev
156
169
  }
157
170
 
171
+ function isAddress(spec: string): boolean {
172
+ return spec.match(/^0x[0-9a-fA-F]{40}$/) !== null
173
+ }
158
174
 
159
175
  function parseSpec(spec: string): Spec {
160
- let [src, fragment] = splitFragment(spec)
161
- if (src.startsWith('0x')) {
162
- if (!ethers.isAddress(src)) throw new InvalidArgumentError('Invalid contract address')
163
- return {
164
- kind: 'address',
165
- src,
166
- name: fragment || src
167
- }
168
- } else if (src.includes('://')) {
169
- let u = new URL(
170
- validator.Url(['http:', 'https:'])(src)
171
- )
172
- return {
173
- kind: 'url',
174
- src,
175
- name: fragment || basename(u.pathname)
176
- }
177
- } else {
178
- return {
179
- kind: 'file',
180
- src,
181
- name: fragment || basename(src)
182
- }
176
+ let [src, fragment] = splitFragment(spec)
177
+ if (src.startsWith('0x')) {
178
+ if (!isAddress(src))
179
+ throw new InvalidArgumentError('Invalid contract address')
180
+ return {
181
+ kind: 'address',
182
+ src,
183
+ name: fragment || src,
184
+ }
185
+ } else if (src.includes('://')) {
186
+ let u = new URL(validator.Url(['http:', 'https:'])(src))
187
+ return {
188
+ kind: 'url',
189
+ src,
190
+ name: fragment || basename(u.pathname),
183
191
  }
192
+ } else {
193
+ return {
194
+ kind: 'file',
195
+ src,
196
+ name: fragment || basename(src),
197
+ }
198
+ }
184
199
  }
185
200
 
186
-
187
201
  function splitFragment(spec: string): [string, string] {
188
- let parts = spec.split('#')
189
- if (parts.length > 1) {
190
- let fragment = parts.pop()!
191
- return [parts.join('#'), fragment]
192
- } else {
193
- return [spec, '']
194
- }
202
+ let parts = spec.split('#')
203
+ if (parts.length > 1) {
204
+ let fragment = parts.pop()!
205
+ return [parts.join('#'), fragment]
206
+ } else {
207
+ return [spec, '']
208
+ }
195
209
  }
196
210
 
197
-
198
211
  function basename(file: string): string {
199
- let name = path.parse(file).name
200
- if (name) return name
201
- throw new InvalidArgumentError(
202
- `Can't derive target basename for output files. Use url fragment to specify it, e.g. #erc20`
203
- )
212
+ let name = path.parse(file).name
213
+ if (name) return name
214
+ throw new InvalidArgumentError(
215
+ `Can't derive target basename for output files. Use url fragment to specify it, e.g. #erc20`,
216
+ )
204
217
  }
package/src/multicall.ts CHANGED
@@ -1,3 +1,5 @@
1
+ /**
2
+ * TODO migrate multicall
1
3
  import * as ethers from 'ethers'
2
4
  import {ContractBase, Func} from './abi.support'
3
5
 
@@ -210,3 +212,4 @@ function* splitIntoPages(size: number, page: number): Iterable<[from: number, to
210
212
  from = to
211
213
  }
212
214
  }
215
+ */