@sentio/sdk 2.39.0-rc.1 → 2.39.0-rc.3

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 (57) hide show
  1. package/lib/core/base-context.d.ts +1 -1
  2. package/lib/core/base-context.d.ts.map +1 -1
  3. package/lib/core/base-context.js.map +1 -1
  4. package/lib/core/event-logger.js +3 -2
  5. package/lib/core/event-logger.js.map +1 -1
  6. package/lib/cosmos/context.d.ts +15 -0
  7. package/lib/cosmos/context.d.ts.map +1 -0
  8. package/lib/cosmos/context.js +33 -0
  9. package/lib/cosmos/context.js.map +1 -0
  10. package/lib/cosmos/cosmos-plugin.d.ts +17 -0
  11. package/lib/cosmos/cosmos-plugin.d.ts.map +1 -0
  12. package/lib/cosmos/cosmos-plugin.js +71 -0
  13. package/lib/cosmos/cosmos-plugin.js.map +1 -0
  14. package/lib/cosmos/cosmos-processor.d.ts +12 -0
  15. package/lib/cosmos/cosmos-processor.d.ts.map +1 -0
  16. package/lib/cosmos/cosmos-processor.js +36 -0
  17. package/lib/cosmos/cosmos-processor.js.map +1 -0
  18. package/lib/cosmos/index.d.ts +5 -0
  19. package/lib/cosmos/index.d.ts.map +1 -0
  20. package/lib/cosmos/index.js +5 -0
  21. package/lib/cosmos/index.js.map +1 -0
  22. package/lib/cosmos/network.d.ts +8 -0
  23. package/lib/cosmos/network.d.ts.map +1 -0
  24. package/lib/cosmos/network.js +14 -0
  25. package/lib/cosmos/network.js.map +1 -0
  26. package/lib/cosmos/transaction.d.ts +48 -0
  27. package/lib/cosmos/transaction.d.ts.map +1 -0
  28. package/lib/cosmos/transaction.js +2 -0
  29. package/lib/cosmos/transaction.js.map +1 -0
  30. package/lib/cosmos/types.d.ts +21 -0
  31. package/lib/cosmos/types.d.ts.map +1 -0
  32. package/lib/cosmos/types.js +5 -0
  33. package/lib/cosmos/types.js.map +1 -0
  34. package/lib/fuel/network.d.ts.map +1 -1
  35. package/lib/fuel/network.js +0 -1
  36. package/lib/fuel/network.js.map +1 -1
  37. package/lib/testing/cosmos-facet.d.ts +9 -0
  38. package/lib/testing/cosmos-facet.d.ts.map +1 -0
  39. package/lib/testing/cosmos-facet.js +46 -0
  40. package/lib/testing/cosmos-facet.js.map +1 -0
  41. package/lib/testing/test-processor-server.d.ts +2 -0
  42. package/lib/testing/test-processor-server.d.ts.map +1 -1
  43. package/lib/testing/test-processor-server.js +3 -0
  44. package/lib/testing/test-processor-server.js.map +1 -1
  45. package/package.json +5 -4
  46. package/src/core/base-context.ts +1 -1
  47. package/src/core/event-logger.ts +3 -2
  48. package/src/cosmos/context.ts +38 -0
  49. package/src/cosmos/cosmos-plugin.ts +100 -0
  50. package/src/cosmos/cosmos-processor.ts +43 -0
  51. package/src/cosmos/index.ts +4 -0
  52. package/src/cosmos/network.ts +16 -0
  53. package/src/cosmos/transaction.ts +46 -0
  54. package/src/cosmos/types.ts +23 -0
  55. package/src/fuel/network.ts +0 -2
  56. package/src/testing/cosmos-facet.ts +54 -0
  57. package/src/testing/test-processor-server.ts +3 -0
@@ -7,7 +7,7 @@ export declare abstract class BaseContext {
7
7
  meter: Meter;
8
8
  eventLogger: EventLoggerBinding;
9
9
  private _store;
10
- protected baseLabels: Labels;
10
+ baseLabels: Labels;
11
11
  private active;
12
12
  private _res;
13
13
  update(res: Partial<ProcessResult>): void;
@@ -1 +1 @@
1
- {"version":3,"file":"base-context.d.ts","sourceRoot":"","sources":["../../src/core/base-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,8BAAsB,WAAW;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,kBAAkB,CAAA;IAC/B,OAAO,CAAC,MAAM,CAAO;IACrB,SAAS,CAAC,UAAU,EAAE,MAAM,CAAA;IAC5B,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,IAAI,CAQX;IAEM,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC;IAQzC,SAAS,aAAa,UAAU,EAAE,MAAM,GAAG,SAAS;IAQpD,gBAAgB,IAAI,aAAa;IASjC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IAOzD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IAEpF,QAAQ,CAAC,UAAU,IAAI,OAAO;IAE9B,IAAI,KAAK,UAKR;IAGD,SAAS;CAMV"}
1
+ {"version":3,"file":"base-context.d.ts","sourceRoot":"","sources":["../../src/core/base-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAIvC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,8BAAsB,WAAW;IAC/B,KAAK,EAAE,KAAK,CAAA;IACZ,WAAW,EAAE,kBAAkB,CAAA;IAC/B,OAAO,CAAC,MAAM,CAAO;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,MAAM,CAAS;IAEvB,OAAO,CAAC,IAAI,CAQX;IAEM,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,CAAC;IAQzC,SAAS,aAAa,UAAU,EAAE,MAAM,GAAG,SAAS;IAQpD,gBAAgB,IAAI,aAAa;IASjC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IAOzD,SAAS,CAAC,QAAQ,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;IAEpF,QAAQ,CAAC,UAAU,IAAI,OAAO;IAE9B,IAAI,KAAK,UAKR;IAGD,SAAS;CAMV"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-context.js","sourceRoot":"","sources":["../../src/core/base-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAU,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,MAAM,OAAgB,WAAW;IAC/B,KAAK,CAAO;IACZ,WAAW,CAAoB;IACvB,MAAM,CAAO;IACX,UAAU,CAAQ;IACpB,MAAM,CAAS;IAEf,IAAI,GAAsC;QAChD,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,MAAM,EAAE;YACN,aAAa,EAAE,KAAK;SACrB;KACF,CAAA;IAEM,MAAM,CAAC,GAA2B;QACvC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC9E,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,kEAAkE,CAAC,CAAA;QAC5G,CAAC;IACH,CAAC;IAED,YAAsB,UAA8B;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,SAAS,EAAE,CAAA;IAClB,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;YACnB,OAAO,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,0CAA0C,CAAC,CAAA;QACpF,CAAC;IACH,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,GAAG,IAAI,CAAC,UAAU;YAClB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC;SAC1C,CAAA;IACH,CAAC;IAMD,IAAI,KAAK;QACP,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAA;QACpG,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,oEAAoE;IACpE,SAAS;QACP,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAA;QACzE,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"base-context.js","sourceRoot":"","sources":["../../src/core/base-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAU,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAEzC,MAAM,OAAgB,WAAW;IAC/B,KAAK,CAAO;IACZ,WAAW,CAAoB;IACvB,MAAM,CAAO;IACrB,UAAU,CAAQ;IACV,MAAM,CAAS;IAEf,IAAI,GAAsC;QAChD,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,MAAM,EAAE,EAAE;QACV,MAAM,EAAE;YACN,aAAa,EAAE,KAAK;SACrB;KACF,CAAA;IAEM,MAAM,CAAC,GAA2B;QACvC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC9E,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,kEAAkE,CAAC,CAAA;QAC5G,CAAC;IACH,CAAC;IAED,YAAsB,UAA8B;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,EAAE,CAAA;QAClC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,SAAS,EAAE,CAAA;IAClB,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;YACnB,OAAO,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,0CAA0C,CAAC,CAAA;QACpF,CAAC;IACH,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,MAAc;QACtC,OAAO;YACL,GAAG,IAAI,CAAC,UAAU;YAClB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC;SAC1C,CAAA;IACH,CAAC;IAMD,IAAI,KAAK;QACP,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,oFAAoF,CAAC,CAAA;QACpG,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,oEAAoE;IACpE,SAAS;QACP,MAAM,SAAS,GAAG,aAAa,CAAC,QAAQ,CAAC,qBAAqB,CAAC,QAAQ,EAAE,CAAA;QACzE,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { EventLogConfig, EventLogConfig_BasicFieldType, EventLogConfig_StructFieldType, LogLevel } from '@sentio/protos';
2
- import { normalizeAttribute } from './normalization.js';
2
+ import { normalizeAttribute, normalizeLabels } from './normalization.js';
3
3
  import { MapStateStorage } from '@sentio/runtime';
4
4
  import { DatabaseSchema } from './database-schema.js';
5
5
  export class EventLoggerState extends MapStateStorage {
@@ -76,7 +76,8 @@ function emit(ctx, eventName, event) {
76
76
  distinctEntityId: distinctId || '',
77
77
  attributes: normalizeAttribute(payload),
78
78
  runtimeInfo: undefined,
79
- noMetric: true
79
+ noMetric: true,
80
+ ...normalizeLabels(ctx.baseLabels) // TODO avoid dup label in metadata
80
81
  };
81
82
  ctx.update({ events: [res] });
82
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"event-logger.js","sourceRoot":"","sources":["../../src/core/event-logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-logger.js","sourceRoot":"","sources":["../../src/core/event-logger.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,cAAc,EACd,6BAA6B,EAE7B,8BAA8B,EAE9B,QAAQ,EACT,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAGjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAkBrD,MAAM,OAAO,gBAAiB,SAAQ,eAA4B;IAChE,MAAM,CAAC,QAAQ,GAAG,IAAI,gBAAgB,EAAE,CAAA;;AAG1C,MAAM,OAAO,kBAAkB;IACZ,GAAG,CAAa;IAEjC,YAAY,GAAgB;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,IAAI,CAAI,SAAiB,EAAE,KAAe;QACxC,cAAc,CAAC,SAAS,CAAC,CAAA;QACzB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;IAClC,CAAC;CACF;AAGD,MAAM,CAAC,MAAM,cAAc,GAAG,6BAA6B,CAAA;AAU3D,MAAM,UAAU,cAAc,CAAC,MAAc;IAC3C,MAAM,WAAW,GAA2B,EAAE,CAAA;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,SAAqC,CAAA;QACzC,IAAI,QAA4B,CAAA;QAChC,IAAI,UAAsD,CAAA;QAE1D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,SAAS,GAAG,KAAK,CAAA;QACnB,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBAClC,QAAQ,GAAG,KAAK,CAAA;YAClB,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,8BAA8B,CAAC,MAAM,CAAC;oBACjD,MAAM,EAAE,cAAc,CAAC,KAAe,CAAC;iBACxC,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QACD,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,GAAG;YACT,SAAS;YACT,QAAQ;YACR,UAAU;SACX,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,MAAM,OAAO,WAAW;IACL,SAAS,CAAQ;IAClC,MAAM,CAAgB;IAEtB,YAAoB,SAAiB,EAAE,MAAsB;QAC3D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,SAAiB,EAAE,OAAyB;QAC1D,cAAc,CAAC,SAAS,CAAC,CAAA;QACzB,IAAI,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,CAAA;QAEpC,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;YACpB,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;gBAC7B,IAAI,EAAE,SAAS;gBACf,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;aACvC,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QACjD,OAAO,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IACnE,CAAC;IAED,IAAI,CAAI,GAAgB,EAAE,KAAe;QACvC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAA;IAClC,CAAC;CACF;AAED,SAAS,IAAI,CAAI,GAAgB,EAAE,SAAiB,EAAE,KAAe;IACnE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAA;IAE3D,MAAM,GAAG,GAAwB;QAC/B,QAAQ,EAAE,GAAG,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC;QACxC,QAAQ,EAAE,QAAQ,IAAI,QAAQ,CAAC,IAAI;QACnC,OAAO,EAAE,OAAO,IAAI,EAAE;QACtB,gBAAgB,EAAE,UAAU,IAAI,EAAE;QAClC,UAAU,EAAE,kBAAkB,CAAC,OAAO,CAAC;QACvC,WAAW,EAAE,SAAS;QACtB,QAAQ,EAAE,IAAI;QACd,GAAG,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,mCAAmC;KACvE,CAAA;IACD,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB;IACvC,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;IACnD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,cAAc,SAAS,yCAAyC,CAAC,CAAA;IACnF,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { BaseContext, Labels } from '../core/index.js';
2
+ import { ChainId, CosmosChainId } from '@sentio/chain';
3
+ import { RecordMetaData } from '@sentio/protos';
4
+ import { CosmosTransaction } from './transaction.js';
5
+ export declare class CosmosContext extends BaseContext {
6
+ readonly chainId: CosmosChainId;
7
+ readonly contractAddress: string;
8
+ readonly transaction: CosmosTransaction;
9
+ private logIndex;
10
+ constructor(chainId: CosmosChainId, contractAddress: string, transaction: CosmosTransaction);
11
+ getChainId(): ChainId;
12
+ setLogIndex(logIndex: number): void;
13
+ protected getMetaDataInternal(name: string, labels: Labels): RecordMetaData;
14
+ }
15
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/cosmos/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAmB,MAAM,kBAAkB,CAAA;AACvE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,qBAAa,aAAc,SAAQ,WAAW;IAI1C,QAAQ,CAAC,OAAO,EAAE,aAAa;IAC/B,QAAQ,CAAC,eAAe,EAAE,MAAM;IAChC,QAAQ,CAAC,WAAW,EAAE,iBAAiB;IALzC,OAAO,CAAC,QAAQ,CAAa;gBAGlB,OAAO,EAAE,aAAa,EACtB,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,iBAAiB;IAKzC,UAAU,IAAI,OAAO;IAIrB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAInC,SAAS,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,cAAc;CAa5E"}
@@ -0,0 +1,33 @@
1
+ import { BaseContext, normalizeLabels } from '../core/index.js';
2
+ export class CosmosContext extends BaseContext {
3
+ chainId;
4
+ contractAddress;
5
+ transaction;
6
+ logIndex = -1;
7
+ constructor(chainId, contractAddress, transaction) {
8
+ super({});
9
+ this.chainId = chainId;
10
+ this.contractAddress = contractAddress;
11
+ this.transaction = transaction;
12
+ }
13
+ getChainId() {
14
+ return this.chainId;
15
+ }
16
+ setLogIndex(logIndex) {
17
+ this.logIndex = logIndex;
18
+ }
19
+ getMetaDataInternal(name, labels) {
20
+ return {
21
+ address: this.contractAddress,
22
+ contractName: labels['name'] || '',
23
+ blockNumber: BigInt(this.transaction?.height || 0),
24
+ transactionIndex: 0,
25
+ transactionHash: this.transaction?.txhash || '',
26
+ chainId: this.getChainId(),
27
+ name: name,
28
+ logIndex: this.logIndex,
29
+ labels: normalizeLabels(labels)
30
+ };
31
+ }
32
+ }
33
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/cosmos/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAU,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAKvE,MAAM,OAAO,aAAc,SAAQ,WAAW;IAIjC;IACA;IACA;IALH,QAAQ,GAAW,CAAC,CAAC,CAAA;IAE7B,YACW,OAAsB,EACtB,eAAuB,EACvB,WAA8B;QAEvC,KAAK,CAAC,EAAE,CAAC,CAAA;QAJA,YAAO,GAAP,OAAO,CAAe;QACtB,oBAAe,GAAf,eAAe,CAAQ;QACvB,gBAAW,GAAX,WAAW,CAAmB;IAGzC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;IAED,WAAW,CAAC,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;IAES,mBAAmB,CAAC,IAAY,EAAE,MAAc;QACxD,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;YAClC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,CAAC;YAClD,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,IAAI,EAAE;YAC/C,OAAO,EAAE,IAAI,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC;SAChC,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ import { Plugin } from '@sentio/runtime';
2
+ import { Data_CosmosCall, DataBinding, HandlerType, ProcessConfigResponse, ProcessResult, StartRequest } from '@sentio/protos';
3
+ interface Handlers {
4
+ callHandlers: ((trace: Data_CosmosCall) => Promise<ProcessResult>)[];
5
+ }
6
+ export declare class CosmosPlugin extends Plugin {
7
+ name: string;
8
+ handlers: Handlers;
9
+ configure(config: ProcessConfigResponse): Promise<void>;
10
+ supportedHandlers: HandlerType[];
11
+ processBinding(request: DataBinding): Promise<ProcessResult>;
12
+ start(request: StartRequest): Promise<void>;
13
+ stateDiff(config: ProcessConfigResponse): boolean;
14
+ processTransaction(binding: DataBinding): Promise<ProcessResult>;
15
+ }
16
+ export {};
17
+ //# sourceMappingURL=cosmos-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmos-plugin.d.ts","sourceRoot":"","sources":["../../src/cosmos/cosmos-plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,MAAM,EAAiC,MAAM,iBAAiB,CAAA;AACxH,OAAO,EAEL,eAAe,EACf,WAAW,EACX,WAAW,EACX,qBAAqB,EACrB,aAAa,EACb,YAAY,EACb,MAAM,gBAAgB,CAAA;AAKvB,UAAU,QAAQ;IAChB,YAAY,EAAE,CAAC,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC,EAAE,CAAA;CACrE;AAED,qBAAa,YAAa,SAAQ,MAAM;IACtC,IAAI,EAAE,MAAM,CAAiB;IAC7B,QAAQ,EAAE,QAAQ,CAEjB;IAEK,SAAS,CAAC,MAAM,EAAE,qBAAqB;IAkC7C,iBAAiB,gBAA4B;IAE7C,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;IAStD,KAAK,CAAC,OAAO,EAAE,YAAY;IAEjC,SAAS,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO;IAI3C,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC;CAsBvE"}
@@ -0,0 +1,71 @@
1
+ import { errorString, GLOBAL_CONFIG, mergeProcessResults, Plugin, PluginManager, USER_PROCESSOR } from '@sentio/runtime';
2
+ import { ContractConfig, HandlerType } from '@sentio/protos';
3
+ import { ServerError, Status } from 'nice-grpc';
4
+ import { TemplateInstanceState } from '../core/template.js';
5
+ import { CosmosProcessorState } from './types.js';
6
+ export class CosmosPlugin extends Plugin {
7
+ name = 'CosmosPlugin';
8
+ handlers = {
9
+ callHandlers: []
10
+ };
11
+ async configure(config) {
12
+ const handlers = {
13
+ callHandlers: []
14
+ };
15
+ for (const processor of CosmosProcessorState.INSTANCE.getValues()) {
16
+ const contractConfig = ContractConfig.fromPartial({
17
+ processorType: USER_PROCESSOR,
18
+ contract: {
19
+ name: processor.config.name,
20
+ chainId: processor.config.chainId.toString(),
21
+ address: processor.config.address || '*',
22
+ abi: ''
23
+ },
24
+ startBlock: processor.config.startBlock,
25
+ endBlock: processor.config.endBlock
26
+ });
27
+ for (const callHandler of processor.callHandlers) {
28
+ const handlerId = handlers.callHandlers.push(callHandler.handler) - 1;
29
+ contractConfig.cosmosLogConfigs.push({
30
+ handlerId,
31
+ logFilters: callHandler.logConfig?.logFilters || []
32
+ });
33
+ }
34
+ // Finish up a contract
35
+ config.contractConfigs.push(contractConfig);
36
+ }
37
+ this.handlers = handlers;
38
+ }
39
+ supportedHandlers = [HandlerType.COSMOS_CALL];
40
+ processBinding(request) {
41
+ switch (request.handlerType) {
42
+ case HandlerType.COSMOS_CALL:
43
+ return this.processTransaction(request);
44
+ default:
45
+ throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType);
46
+ }
47
+ }
48
+ async start(request) { }
49
+ stateDiff(config) {
50
+ return TemplateInstanceState.INSTANCE.getValues().length !== config.templateInstances.length;
51
+ }
52
+ async processTransaction(binding) {
53
+ if (!binding.data?.cosmosCall?.transaction) {
54
+ throw new ServerError(Status.INVALID_ARGUMENT, "transaction can't be null");
55
+ }
56
+ const call = binding.data.cosmosCall;
57
+ const promises = [];
58
+ for (const handlerId of binding.handlerIds) {
59
+ const promise = this.handlers.callHandlers[handlerId](call).catch((e) => {
60
+ throw new ServerError(Status.INTERNAL, 'error processing transaction: ' + JSON.stringify(call.transaction) + '\n' + errorString(e));
61
+ });
62
+ if (GLOBAL_CONFIG.execution.sequential) {
63
+ await promise;
64
+ }
65
+ promises.push(promise);
66
+ }
67
+ return mergeProcessResults(await Promise.all(promises));
68
+ }
69
+ }
70
+ PluginManager.INSTANCE.register(new CosmosPlugin());
71
+ //# sourceMappingURL=cosmos-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmos-plugin.js","sourceRoot":"","sources":["../../src/cosmos/cosmos-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { CallHandler, CosmosProcessorConfig } from './types.js';
2
+ import { Data_CosmosCall } from '@sentio/protos';
3
+ import { CosmosContext } from './context.js';
4
+ import { CosmosEvent, CosmosTxLog } from './transaction.js';
5
+ export declare class CosmosProcessor {
6
+ readonly config: CosmosProcessorConfig;
7
+ callHandlers: CallHandler<Data_CosmosCall>[];
8
+ constructor(config: CosmosProcessorConfig);
9
+ static bind(config: CosmosProcessorConfig): CosmosProcessor;
10
+ onLogEvent(logFilters: string[] | string, handler: (log: CosmosTxLog, event: CosmosEvent, context: CosmosContext) => void | Promise<void>): this;
11
+ }
12
+ //# sourceMappingURL=cosmos-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmos-processor.d.ts","sourceRoot":"","sources":["../../src/cosmos/cosmos-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAwB,MAAM,YAAY,CAAA;AACrF,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAqB,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9E,qBAAa,eAAe;IAGd,QAAQ,CAAC,MAAM,EAAE,qBAAqB;IAFlD,YAAY,EAAE,WAAW,CAAC,eAAe,CAAC,EAAE,CAAK;gBAE5B,MAAM,EAAE,qBAAqB;IAElD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe;IAMpD,UAAU,CACf,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,EAC7B,OAAO,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAwBlG"}
@@ -0,0 +1,36 @@
1
+ import { CosmosProcessorState } from './types.js';
2
+ import { CosmosContext } from './context.js';
3
+ export class CosmosProcessor {
4
+ config;
5
+ callHandlers = [];
6
+ constructor(config) {
7
+ this.config = config;
8
+ }
9
+ static bind(config) {
10
+ const processor = new CosmosProcessor(config);
11
+ CosmosProcessorState.INSTANCE.addValue(processor);
12
+ return processor;
13
+ }
14
+ onLogEvent(logFilters, handler) {
15
+ const filter = Array.isArray(logFilters) ? logFilters : [logFilters];
16
+ const callHandler = {
17
+ handler: async (call) => {
18
+ const transaction = call.transaction;
19
+ const ctx = new CosmosContext(this.config.chainId, this.config.address, transaction);
20
+ for (const log of transaction.logs) {
21
+ const event = log.events.filter((e) => filter.includes(e.type));
22
+ for (const e of event) {
23
+ await handler(log, e, ctx);
24
+ }
25
+ }
26
+ return ctx.stopAndGetResult();
27
+ },
28
+ logConfig: {
29
+ logFilters: filter
30
+ }
31
+ };
32
+ this.callHandlers.push(callHandler);
33
+ return this;
34
+ }
35
+ }
36
+ //# sourceMappingURL=cosmos-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmos-processor.js","sourceRoot":"","sources":["../../src/cosmos/cosmos-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAErF,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAG5C,MAAM,OAAO,eAAe;IAGL;IAFrB,YAAY,GAAmC,EAAE,CAAA;IAEjD,YAAqB,MAA6B;QAA7B,WAAM,GAAN,MAAM,CAAuB;IAAG,CAAC;IAEtD,MAAM,CAAC,IAAI,CAAC,MAA6B;QACvC,MAAM,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,CAAA;QAC7C,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QACjD,OAAO,SAAS,CAAA;IAClB,CAAC;IAEM,UAAU,CACf,UAA6B,EAC7B,OAA+F;QAE/F,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;QACpE,MAAM,WAAW,GAAG;YAClB,OAAO,EAAE,KAAK,EAAE,IAAqB,EAAE,EAAE;gBACvC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAgC,CAAA;gBAEzD,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;gBAEpF,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;oBACnC,MAAM,KAAK,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;oBAC/D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;wBACtB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;oBAC5B,CAAC;gBACH,CAAC;gBACD,OAAO,GAAG,CAAC,gBAAgB,EAAE,CAAA;YAC/B,CAAC;YACD,SAAS,EAAE;gBACT,UAAU,EAAE,MAAM;aACnB;SACF,CAAA;QACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QACnC,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ export { CosmosPlugin } from './cosmos-plugin.js';
2
+ export * from './cosmos-processor.js';
3
+ export * from './types.js';
4
+ export * from './transaction.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cosmos/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,cAAc,uBAAuB,CAAA;AACrC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,5 @@
1
+ export { CosmosPlugin } from './cosmos-plugin.js';
2
+ export * from './cosmos-processor.js';
3
+ export * from './types.js';
4
+ export * from './transaction.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cosmos/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,cAAc,uBAAuB,CAAA;AACrC,cAAc,YAAY,CAAA;AAC1B,cAAc,kBAAkB,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { CosmosChainId } from '@sentio/chain';
2
+ export type CosmosNetwork = CosmosChainId;
3
+ export declare const CosmosNetwork: {
4
+ readonly INJECTIVE_MAINNET: CosmosChainId.INJECTIVE_MAINNET;
5
+ readonly INJECTIVE_TESTNET: CosmosChainId.INJECTIVE_TESTNET;
6
+ };
7
+ export declare function getRpcEndpoint(network: CosmosNetwork): string;
8
+ //# sourceMappingURL=network.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/cosmos/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAE7C,MAAM,MAAM,aAAa,GAAG,aAAa,CAAA;AACzC,eAAO,MAAM,aAAa;;;CAGzB,CAAA;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAO7D"}
@@ -0,0 +1,14 @@
1
+ import { CosmosChainId } from '@sentio/chain';
2
+ export const CosmosNetwork = {
3
+ INJECTIVE_MAINNET: CosmosChainId.INJECTIVE_MAINNET,
4
+ INJECTIVE_TESTNET: CosmosChainId.INJECTIVE_TESTNET
5
+ };
6
+ export function getRpcEndpoint(network) {
7
+ switch (network) {
8
+ case CosmosNetwork.INJECTIVE_MAINNET:
9
+ return 'https://sentry.lcd.injective.network:443';
10
+ case CosmosNetwork.INJECTIVE_TESTNET:
11
+ return 'https://testnet.sentry.lcd.injective.network:443';
12
+ }
13
+ }
14
+ //# sourceMappingURL=network.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/cosmos/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAG7C,MAAM,CAAC,MAAM,aAAa,GAAU;IAClC,iBAAiB,EAAE,aAAa,CAAC,iBAAiB;IAClD,iBAAiB,EAAE,aAAa,CAAC,iBAAiB;CACnD,CAAA;AAED,MAAM,UAAU,cAAc,CAAC,OAAsB;IACnD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,aAAa,CAAC,iBAAiB;YAClC,OAAO,0CAA0C,CAAA;QACnD,KAAK,aAAa,CAAC,iBAAiB;YAClC,OAAO,kDAAkD,CAAA;IAC7D,CAAC;AACH,CAAC"}
@@ -0,0 +1,48 @@
1
+ export interface CosmosTransaction {
2
+ height: string;
3
+ txhash: string;
4
+ codespace: string;
5
+ code: number;
6
+ data: string;
7
+ raw_log: string;
8
+ logs: CosmosTxLog[];
9
+ info: string;
10
+ gas_wanted: string;
11
+ gas_used: string;
12
+ tx: RestTx;
13
+ timestamp: string;
14
+ events: CosmosEvent[];
15
+ }
16
+ interface RestTxBody {
17
+ messages: any[];
18
+ memo: string;
19
+ timeout_height: string;
20
+ }
21
+ interface RestTx {
22
+ body: RestTxBody;
23
+ auth_info: RestAuthInfo;
24
+ signatures: string[];
25
+ }
26
+ interface RestSignerInfo {
27
+ public_key: any;
28
+ mode_info: any;
29
+ sequence: string;
30
+ }
31
+ interface RestAuthInfo {
32
+ signer_infos: RestSignerInfo[];
33
+ fee: any;
34
+ }
35
+ export type CosmosEvent = {
36
+ type: string;
37
+ attributes: {
38
+ key: string;
39
+ value: string;
40
+ }[];
41
+ };
42
+ export interface CosmosTxLog {
43
+ msg_index: number;
44
+ log: string;
45
+ events: CosmosEvent[];
46
+ }
47
+ export {};
48
+ //# sourceMappingURL=transaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/cosmos/transaction.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,WAAW,EAAE,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,WAAW,EAAE,CAAA;CACtB;AAED,UAAU,UAAU;IAClB,QAAQ,EAAE,GAAG,EAAE,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,UAAU,MAAM;IACd,IAAI,EAAE,UAAU,CAAA;IAChB,SAAS,EAAE,YAAY,CAAA;IACvB,UAAU,EAAE,MAAM,EAAE,CAAA;CACrB;AAED,UAAU,cAAc;IACtB,UAAU,EAAE,GAAG,CAAA;IACf,SAAS,EAAE,GAAG,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,UAAU,YAAY;IACpB,YAAY,EAAE,cAAc,EAAE,CAAA;IAC9B,GAAG,EAAE,GAAG,CAAA;CACT;AAED,MAAM,MAAM,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,CAAA;AAExF,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,WAAW,EAAE,CAAA;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../src/cosmos/transaction.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import { ListStateStorage } from '@sentio/runtime';
2
+ import { CosmosProcessor } from './cosmos-processor.js';
3
+ import { ProcessResult } from '@sentio/protos';
4
+ import { CosmosNetwork } from './network.js';
5
+ export declare class CosmosProcessorState extends ListStateStorage<CosmosProcessor> {
6
+ static INSTANCE: CosmosProcessorState;
7
+ }
8
+ export type CallHandler<T> = {
9
+ handler: (call: T) => Promise<ProcessResult>;
10
+ logConfig?: {
11
+ logFilters: string[];
12
+ };
13
+ };
14
+ export type CosmosProcessorConfig = {
15
+ address: string;
16
+ name?: string;
17
+ chainId: CosmosNetwork;
18
+ startBlock?: bigint;
19
+ endBlock?: bigint;
20
+ };
21
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cosmos/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,qBAAa,oBAAqB,SAAQ,gBAAgB,CAAC,eAAe,CAAC;IACzE,MAAM,CAAC,QAAQ,uBAA6B;CAC7C;AAED,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC3B,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IAC5C,SAAS,CAAC,EAAE;QACV,UAAU,EAAE,MAAM,EAAE,CAAA;KACrB,CAAA;CACF,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,aAAa,CAAA;IACtB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA"}
@@ -0,0 +1,5 @@
1
+ import { ListStateStorage } from '@sentio/runtime';
2
+ export class CosmosProcessorState extends ListStateStorage {
3
+ static INSTANCE = new CosmosProcessorState();
4
+ }
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cosmos/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAKlD,MAAM,OAAO,oBAAqB,SAAQ,gBAAiC;IACzE,MAAM,CAAC,QAAQ,GAAG,IAAI,oBAAoB,EAAE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/fuel/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAK3C,MAAM,MAAM,WAAW,GAAG,WAAW,CAAA;AACrC,eAAO,MAAM,WAAW;;;CAGvB,CAAA;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAM3D"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/fuel/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAG3C,MAAM,MAAM,WAAW,GAAG,WAAW,CAAA;AACrC,eAAO,MAAM,WAAW;;;CAGvB,CAAA;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAM3D"}
@@ -1,6 +1,5 @@
1
1
  import { FuelChainId } from '@sentio/chain';
2
2
  import { FUEL_NETWORK_URL } from 'fuels';
3
- const SENTIO_FUEL_TESTNET = 'http://sentio-0.sentio.xyz:8080/sentio-internal-api/fuel-testnet/';
4
3
  export const FuelNetwork = {
5
4
  MAIN_NET: FuelChainId.FUEL_MAINNET,
6
5
  TEST_NET: FuelChainId.FUEL_TESTNET
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/fuel/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAExC,MAAM,mBAAmB,GAAG,mEAAmE,CAAA;AAG/F,MAAM,CAAC,MAAM,WAAW,GAAU;IAChC,QAAQ,EAAE,WAAW,CAAC,YAAY;IAClC,QAAQ,EAAE,WAAW,CAAC,YAAY;CACnC,CAAA;AAED,MAAM,UAAU,cAAc,CAAC,OAAoB;IACjD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,WAAW,CAAC,QAAQ;YACvB,OAAO,yCAAyC,CAAA;IACpD,CAAC;IACD,OAAO,gBAAgB,CAAA;AACzB,CAAC"}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../src/fuel/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAA;AAGxC,MAAM,CAAC,MAAM,WAAW,GAAU;IAChC,QAAQ,EAAE,WAAW,CAAC,YAAY;IAClC,QAAQ,EAAE,WAAW,CAAC,YAAY;CACnC,CAAA;AAED,MAAM,UAAU,cAAc,CAAC,OAAoB;IACjD,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,WAAW,CAAC,QAAQ;YACvB,OAAO,yCAAyC,CAAA;IACpD,CAAC;IACD,OAAO,gBAAgB,CAAA;AACzB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { TestProcessorServer } from './test-processor-server.js';
2
+ import { CosmosNetwork } from '../cosmos/network.js';
3
+ export declare class CosmosFacet {
4
+ server: TestProcessorServer;
5
+ constructor(server: TestProcessorServer);
6
+ testOnTransaction(transaction: any, network?: CosmosNetwork): Promise<import("@sentio/protos").ProcessBindingResponse>;
7
+ private buildBinding;
8
+ }
9
+ //# sourceMappingURL=cosmos-facet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmos-facet.d.ts","sourceRoot":"","sources":["../../src/testing/cosmos-facet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAEhE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,qBAAa,WAAW;IACtB,MAAM,EAAE,mBAAmB,CAAA;gBAEf,MAAM,EAAE,mBAAmB;IAIvC,iBAAiB,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,GAAE,aAA+C;IAW5F,OAAO,CAAC,YAAY;CA+BrB"}
@@ -0,0 +1,46 @@
1
+ import { HandlerType } from '@sentio/protos';
2
+ import { CosmosNetwork } from '../cosmos/network.js';
3
+ export class CosmosFacet {
4
+ server;
5
+ constructor(server) {
6
+ this.server = server;
7
+ }
8
+ testOnTransaction(transaction, network = CosmosNetwork.INJECTIVE_TESTNET) {
9
+ const bindings = this.buildBinding(transaction, network);
10
+ if (!bindings) {
11
+ throw Error('Invalid test transaction: ' + JSON.stringify(transaction));
12
+ }
13
+ return this.server.processBindings({
14
+ bindings
15
+ });
16
+ }
17
+ buildBinding(transaction, network) {
18
+ const res = [];
19
+ for (const config of this.server.contractConfigs) {
20
+ if (config.contract?.chainId !== network) {
21
+ continue;
22
+ }
23
+ for (const logConfig of config.cosmosLogConfigs) {
24
+ const binding = {
25
+ data: {
26
+ cosmosCall: {
27
+ transaction,
28
+ timestamp: new Date()
29
+ }
30
+ },
31
+ handlerIds: [logConfig.handlerId],
32
+ handlerType: HandlerType.COSMOS_CALL
33
+ };
34
+ const logFilters = logConfig.logFilters;
35
+ for (const log of transaction.logs || []) {
36
+ if (log.events.find((e) => logFilters.includes(e.type))) {
37
+ res.push(binding);
38
+ break;
39
+ }
40
+ }
41
+ }
42
+ }
43
+ return res;
44
+ }
45
+ }
46
+ //# sourceMappingURL=cosmos-facet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cosmos-facet.js","sourceRoot":"","sources":["../../src/testing/cosmos-facet.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,MAAM,OAAO,WAAW;IACtB,MAAM,CAAqB;IAE3B,YAAY,MAA2B;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,iBAAiB,CAAC,WAAgB,EAAE,UAAyB,aAAa,CAAC,iBAAiB;QAC1F,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;QACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,KAAK,CAAC,4BAA4B,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;QACzE,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YACjC,QAAQ;SACT,CAAC,CAAA;IACJ,CAAC;IAEO,YAAY,CAAC,WAAgB,EAAE,OAAsB;QAC3D,MAAM,GAAG,GAAkB,EAAE,CAAA;QAC7B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACjD,IAAI,MAAM,CAAC,QAAQ,EAAE,OAAO,KAAK,OAAO,EAAE,CAAC;gBACzC,SAAQ;YACV,CAAC;YAED,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBAChD,MAAM,OAAO,GAAG;oBACd,IAAI,EAAE;wBACJ,UAAU,EAAE;4BACV,WAAW;4BACX,SAAS,EAAE,IAAI,IAAI,EAAE;yBACtB;qBACF;oBACD,UAAU,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC;oBACjC,WAAW,EAAE,WAAW,CAAC,WAAW;iBACrC,CAAA;gBAED,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAA;gBACvC,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;oBACzC,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;wBAC7D,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;wBACjB,MAAK;oBACP,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
@@ -6,6 +6,7 @@ import { SolanaFacet } from './solana-facet.js';
6
6
  import { EthFacet } from './eth-facet.js';
7
7
  import { SuiFacet } from './sui-facet.js';
8
8
  import { FuelFacet } from './fuel-facet.js';
9
+ import { CosmosFacet } from './cosmos-facet.js';
9
10
  export declare const TEST_CONTEXT: CallContext;
10
11
  export declare function cleanTest(): void;
11
12
  export declare class TestProcessorServer implements ProcessorServiceImplementation {
@@ -17,6 +18,7 @@ export declare class TestProcessorServer implements ProcessorServiceImplementati
17
18
  solana: SolanaFacet;
18
19
  sui: SuiFacet;
19
20
  fuel: FuelFacet;
21
+ cosmos: CosmosFacet;
20
22
  constructor(loader: () => Promise<any>, httpEndpoints?: Record<string, string>);
21
23
  start(request?: StartRequest, context?: CallContext): Promise<Empty>;
22
24
  stop(request: Empty, context?: CallContext): Promise<Empty>;
@@ -1 +1 @@
1
- {"version":3,"file":"test-processor-server.d.ts","sourceRoot":"","sources":["../../src/testing/test-processor-server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EACX,KAAK,EACL,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,8BAA8B,EAC9B,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,YAAY,EACb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAa,oBAAoB,EAAS,MAAM,iBAAiB,CAAA;AAGxE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,eAAO,MAAM,YAAY,EAAE,WAA6B,CAAA;AAExD,wBAAgB,SAAS,SAExB;AAED,qBAAa,mBAAoB,YAAW,8BAA8B;IACxE,OAAO,EAAE,oBAAoB,CAAA;IAC7B,eAAe,EAAE,cAAc,EAAE,CAAA;IACjC,cAAc,EAAE,aAAa,EAAE,CAAA;IAE/B,KAAK,EAAE,UAAU,CAAA;IACjB,GAAG,EAAE,QAAQ,CAAA;IACb,MAAM,EAAE,WAAW,CAAA;IACnB,GAAG,EAAE,QAAQ,CAAA;IACb,IAAI,EAAE,SAAS,CAAA;gBAEH,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAgB5E,KAAK,CAAC,OAAO,GAAE,YAAwC,EAAE,OAAO,cAAe,GAAG,OAAO,CAAC,KAAK,CAAC;IAQtG,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,cAAe,GAAG,OAAO,CAAC,KAAK,CAAC;IAI5D,SAAS,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,cAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIhG,eAAe,CACb,OAAO,EAAE,sBAAsB,EAC/B,OAAO,GAAE,WAA0B,GAClC,OAAO,CAAC,sBAAsB,CAAC;IAIlC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,WAA0B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI1G,qBAAqB,CACnB,QAAQ,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC7C,OAAO,EAAE,WAAW,GACnB,2BAA2B,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;CAOnE"}
1
+ {"version":3,"file":"test-processor-server.d.ts","sourceRoot":"","sources":["../../src/testing/test-processor-server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,cAAc,EACd,WAAW,EACX,WAAW,EACX,KAAK,EACL,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACrB,8BAA8B,EAC9B,oBAAoB,EACpB,qBAAqB,EACrB,2BAA2B,EAC3B,YAAY,EACb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAa,oBAAoB,EAAS,MAAM,iBAAiB,CAAA;AAGxE,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,eAAO,MAAM,YAAY,EAAE,WAA6B,CAAA;AAExD,wBAAgB,SAAS,SAExB;AAED,qBAAa,mBAAoB,YAAW,8BAA8B;IACxE,OAAO,EAAE,oBAAoB,CAAA;IAC7B,eAAe,EAAE,cAAc,EAAE,CAAA;IACjC,cAAc,EAAE,aAAa,EAAE,CAAA;IAE/B,KAAK,EAAE,UAAU,CAAA;IACjB,GAAG,EAAE,QAAQ,CAAA;IACb,MAAM,EAAE,WAAW,CAAA;IACnB,GAAG,EAAE,QAAQ,CAAA;IACb,IAAI,EAAE,SAAS,CAAA;IACf,MAAM,EAAE,WAAW,CAAA;gBAEP,MAAM,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EAAE,aAAa,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;IAiB5E,KAAK,CAAC,OAAO,GAAE,YAAwC,EAAE,OAAO,cAAe,GAAG,OAAO,CAAC,KAAK,CAAC;IAQtG,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,cAAe,GAAG,OAAO,CAAC,KAAK,CAAC;IAI5D,SAAS,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,cAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIhG,eAAe,CACb,OAAO,EAAE,sBAAsB,EAC/B,OAAO,GAAE,WAA0B,GAClC,OAAO,CAAC,sBAAsB,CAAC;IAIlC,cAAc,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,WAA0B,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAI1G,qBAAqB,CACnB,QAAQ,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAC7C,OAAO,EAAE,WAAW,GACnB,2BAA2B,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;CAOnE"}
@@ -5,6 +5,7 @@ import { SolanaFacet } from './solana-facet.js';
5
5
  import { EthFacet } from './eth-facet.js';
6
6
  import { SuiFacet } from './sui-facet.js';
7
7
  import { FuelFacet } from './fuel-facet.js';
8
+ import { CosmosFacet } from './cosmos-facet.js';
8
9
  export const TEST_CONTEXT = {};
9
10
  export function cleanTest() {
10
11
  State.reset();
@@ -18,6 +19,7 @@ export class TestProcessorServer {
18
19
  solana;
19
20
  sui;
20
21
  fuel;
22
+ cosmos;
21
23
  constructor(loader, httpEndpoints = {}) {
22
24
  cleanTest();
23
25
  this.service = new ProcessorServiceImpl(loader);
@@ -26,6 +28,7 @@ export class TestProcessorServer {
26
28
  this.eth = new EthFacet(this);
27
29
  this.sui = new SuiFacet(this);
28
30
  this.fuel = new FuelFacet(this);
31
+ this.cosmos = new CosmosFacet(this);
29
32
  for (const k in CHAIN_MAP) {
30
33
  const http = httpEndpoints[k] || '';
31
34
  Endpoints.INSTANCE.chainServer.set(k, http);
@@ -1 +1 @@
1
- {"version":3,"file":"test-processor-server.js","sourceRoot":"","sources":["../../src/testing/test-processor-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"test-processor-server.js","sourceRoot":"","sources":["../../src/testing/test-processor-server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentio/sdk",
3
- "version": "2.39.0-rc.1",
3
+ "version": "2.39.0-rc.3",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "exports": {
@@ -36,6 +36,7 @@
36
36
  "./sui/builtin/0x3": "./lib/sui/builtin/0x3.js",
37
37
  "./fuel": "./lib/fuel/index.js",
38
38
  "./fuel/codegen": "./lib/fuel/codegen/index.js",
39
+ "./cosmos": "./lib/cosmos/index.js",
39
40
  "./store": "./lib/store/index.js",
40
41
  "./store/codegen": "./lib/store/codegen.js"
41
42
  },
@@ -54,7 +55,7 @@
54
55
  "@mysten/sui.js": "~0.54.1",
55
56
  "@project-serum/anchor": "^0.26.0",
56
57
  "@sentio/bigdecimal": "9.1.1-patch.3",
57
- "@sentio/chain": "^1.1.2",
58
+ "@sentio/chain": "^1.1.3",
58
59
  "@sentio/ethers-v6": "^1.0.29",
59
60
  "@solana/web3.js": "1.91.8",
60
61
  "@typemove/aptos": "~1.6.1",
@@ -82,8 +83,8 @@
82
83
  "typedoc": "^0.25.7",
83
84
  "utility-types": "^3.11.0",
84
85
  "yaml": "^2.3.4",
85
- "@sentio/runtime": "^2.39.0-rc.1",
86
- "@sentio/protos": "2.39.0-rc.1"
86
+ "@sentio/runtime": "^2.39.0-rc.3",
87
+ "@sentio/protos": "2.39.0-rc.3"
87
88
  },
88
89
  "peerDependencies": {
89
90
  "tsup": "npm:@sentio/tsup@^6.7.2"
@@ -11,7 +11,7 @@ export abstract class BaseContext {
11
11
  meter: Meter
12
12
  eventLogger: EventLoggerBinding
13
13
  private _store: Store
14
- protected baseLabels: Labels
14
+ baseLabels: Labels
15
15
  private active: boolean
16
16
 
17
17
  private _res: Required<ProcessResult, 'states'> = {
@@ -8,7 +8,7 @@ import {
8
8
  EventTrackingResult,
9
9
  LogLevel
10
10
  } from '@sentio/protos'
11
- import { normalizeAttribute } from './normalization.js'
11
+ import { normalizeAttribute, normalizeLabels } from './normalization.js'
12
12
  import { MapStateStorage } from '@sentio/runtime'
13
13
  import { BN } from 'fuels'
14
14
  import { BigDecimal } from '@sentio/bigdecimal'
@@ -125,7 +125,8 @@ function emit<T>(ctx: BaseContext, eventName: string, event: Event<T>) {
125
125
  distinctEntityId: distinctId || '',
126
126
  attributes: normalizeAttribute(payload),
127
127
  runtimeInfo: undefined,
128
- noMetric: true
128
+ noMetric: true,
129
+ ...normalizeLabels(ctx.baseLabels) // TODO avoid dup label in metadata
129
130
  }
130
131
  ctx.update({ events: [res] })
131
132
  }
@@ -0,0 +1,38 @@
1
+ import { BaseContext, Labels, normalizeLabels } from '../core/index.js'
2
+ import { ChainId, CosmosChainId } from '@sentio/chain'
3
+ import { RecordMetaData } from '@sentio/protos'
4
+ import { CosmosTransaction } from './transaction.js'
5
+
6
+ export class CosmosContext extends BaseContext {
7
+ private logIndex: number = -1
8
+
9
+ constructor(
10
+ readonly chainId: CosmosChainId,
11
+ readonly contractAddress: string,
12
+ readonly transaction: CosmosTransaction
13
+ ) {
14
+ super({})
15
+ }
16
+
17
+ getChainId(): ChainId {
18
+ return this.chainId
19
+ }
20
+
21
+ setLogIndex(logIndex: number): void {
22
+ this.logIndex = logIndex
23
+ }
24
+
25
+ protected getMetaDataInternal(name: string, labels: Labels): RecordMetaData {
26
+ return {
27
+ address: this.contractAddress,
28
+ contractName: labels['name'] || '',
29
+ blockNumber: BigInt(this.transaction?.height || 0),
30
+ transactionIndex: 0,
31
+ transactionHash: this.transaction?.txhash || '',
32
+ chainId: this.getChainId(),
33
+ name: name,
34
+ logIndex: this.logIndex,
35
+ labels: normalizeLabels(labels)
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,100 @@
1
+ import { errorString, GLOBAL_CONFIG, mergeProcessResults, Plugin, PluginManager, USER_PROCESSOR } from '@sentio/runtime'
2
+ import {
3
+ ContractConfig,
4
+ Data_CosmosCall,
5
+ DataBinding,
6
+ HandlerType,
7
+ ProcessConfigResponse,
8
+ ProcessResult,
9
+ StartRequest
10
+ } from '@sentio/protos'
11
+ import { ServerError, Status } from 'nice-grpc'
12
+ import { TemplateInstanceState } from '../core/template.js'
13
+ import { CosmosProcessorState } from './types.js'
14
+
15
+ interface Handlers {
16
+ callHandlers: ((trace: Data_CosmosCall) => Promise<ProcessResult>)[]
17
+ }
18
+
19
+ export class CosmosPlugin extends Plugin {
20
+ name: string = 'CosmosPlugin'
21
+ handlers: Handlers = {
22
+ callHandlers: []
23
+ }
24
+
25
+ async configure(config: ProcessConfigResponse) {
26
+ const handlers: Handlers = {
27
+ callHandlers: []
28
+ }
29
+
30
+ for (const processor of CosmosProcessorState.INSTANCE.getValues()) {
31
+ const contractConfig = ContractConfig.fromPartial({
32
+ processorType: USER_PROCESSOR,
33
+ contract: {
34
+ name: processor.config.name,
35
+ chainId: processor.config.chainId.toString(),
36
+ address: processor.config.address || '*',
37
+ abi: ''
38
+ },
39
+ startBlock: processor.config.startBlock,
40
+ endBlock: processor.config.endBlock
41
+ })
42
+
43
+ for (const callHandler of processor.callHandlers) {
44
+ const handlerId = handlers.callHandlers.push(callHandler.handler) - 1
45
+
46
+ contractConfig.cosmosLogConfigs.push({
47
+ handlerId,
48
+ logFilters: callHandler.logConfig?.logFilters || []
49
+ })
50
+ }
51
+
52
+ // Finish up a contract
53
+ config.contractConfigs.push(contractConfig)
54
+ }
55
+
56
+ this.handlers = handlers
57
+ }
58
+
59
+ supportedHandlers = [HandlerType.COSMOS_CALL]
60
+
61
+ processBinding(request: DataBinding): Promise<ProcessResult> {
62
+ switch (request.handlerType) {
63
+ case HandlerType.COSMOS_CALL:
64
+ return this.processTransaction(request)
65
+ default:
66
+ throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType)
67
+ }
68
+ }
69
+
70
+ async start(request: StartRequest) {}
71
+
72
+ stateDiff(config: ProcessConfigResponse): boolean {
73
+ return TemplateInstanceState.INSTANCE.getValues().length !== config.templateInstances.length
74
+ }
75
+
76
+ async processTransaction(binding: DataBinding): Promise<ProcessResult> {
77
+ if (!binding.data?.cosmosCall?.transaction) {
78
+ throw new ServerError(Status.INVALID_ARGUMENT, "transaction can't be null")
79
+ }
80
+ const call = binding.data.cosmosCall
81
+
82
+ const promises: Promise<ProcessResult>[] = []
83
+
84
+ for (const handlerId of binding.handlerIds) {
85
+ const promise = this.handlers.callHandlers[handlerId](call).catch((e) => {
86
+ throw new ServerError(
87
+ Status.INTERNAL,
88
+ 'error processing transaction: ' + JSON.stringify(call.transaction) + '\n' + errorString(e)
89
+ )
90
+ })
91
+ if (GLOBAL_CONFIG.execution.sequential) {
92
+ await promise
93
+ }
94
+ promises.push(promise)
95
+ }
96
+ return mergeProcessResults(await Promise.all(promises))
97
+ }
98
+ }
99
+
100
+ PluginManager.INSTANCE.register(new CosmosPlugin())
@@ -0,0 +1,43 @@
1
+ import { CallHandler, CosmosProcessorConfig, CosmosProcessorState } from './types.js'
2
+ import { Data_CosmosCall } from '@sentio/protos'
3
+ import { CosmosContext } from './context.js'
4
+ import { CosmosEvent, CosmosTransaction, CosmosTxLog } from './transaction.js'
5
+
6
+ export class CosmosProcessor {
7
+ callHandlers: CallHandler<Data_CosmosCall>[] = []
8
+
9
+ constructor(readonly config: CosmosProcessorConfig) {}
10
+
11
+ static bind(config: CosmosProcessorConfig): CosmosProcessor {
12
+ const processor = new CosmosProcessor(config)
13
+ CosmosProcessorState.INSTANCE.addValue(processor)
14
+ return processor
15
+ }
16
+
17
+ public onLogEvent(
18
+ logFilters: string[] | string,
19
+ handler: (log: CosmosTxLog, event: CosmosEvent, context: CosmosContext) => void | Promise<void>
20
+ ) {
21
+ const filter = Array.isArray(logFilters) ? logFilters : [logFilters]
22
+ const callHandler = {
23
+ handler: async (call: Data_CosmosCall) => {
24
+ const transaction = call.transaction as CosmosTransaction
25
+
26
+ const ctx = new CosmosContext(this.config.chainId, this.config.address, transaction)
27
+
28
+ for (const log of transaction.logs) {
29
+ const event = log.events.filter((e) => filter.includes(e.type))
30
+ for (const e of event) {
31
+ await handler(log, e, ctx)
32
+ }
33
+ }
34
+ return ctx.stopAndGetResult()
35
+ },
36
+ logConfig: {
37
+ logFilters: filter
38
+ }
39
+ }
40
+ this.callHandlers.push(callHandler)
41
+ return this
42
+ }
43
+ }
@@ -0,0 +1,4 @@
1
+ export { CosmosPlugin } from './cosmos-plugin.js'
2
+ export * from './cosmos-processor.js'
3
+ export * from './types.js'
4
+ export * from './transaction.js'
@@ -0,0 +1,16 @@
1
+ import { CosmosChainId } from '@sentio/chain'
2
+
3
+ export type CosmosNetwork = CosmosChainId
4
+ export const CosmosNetwork = <const>{
5
+ INJECTIVE_MAINNET: CosmosChainId.INJECTIVE_MAINNET,
6
+ INJECTIVE_TESTNET: CosmosChainId.INJECTIVE_TESTNET
7
+ }
8
+
9
+ export function getRpcEndpoint(network: CosmosNetwork): string {
10
+ switch (network) {
11
+ case CosmosNetwork.INJECTIVE_MAINNET:
12
+ return 'https://sentry.lcd.injective.network:443'
13
+ case CosmosNetwork.INJECTIVE_TESTNET:
14
+ return 'https://testnet.sentry.lcd.injective.network:443'
15
+ }
16
+ }
@@ -0,0 +1,46 @@
1
+ export interface CosmosTransaction {
2
+ height: string
3
+ txhash: string
4
+ codespace: string
5
+ code: number
6
+ data: string
7
+ raw_log: string
8
+ logs: CosmosTxLog[]
9
+ info: string
10
+ gas_wanted: string
11
+ gas_used: string
12
+ tx: RestTx
13
+ timestamp: string
14
+ events: CosmosEvent[]
15
+ }
16
+
17
+ interface RestTxBody {
18
+ messages: any[]
19
+ memo: string
20
+ timeout_height: string
21
+ }
22
+
23
+ interface RestTx {
24
+ body: RestTxBody
25
+ auth_info: RestAuthInfo
26
+ signatures: string[]
27
+ }
28
+
29
+ interface RestSignerInfo {
30
+ public_key: any
31
+ mode_info: any
32
+ sequence: string
33
+ }
34
+
35
+ interface RestAuthInfo {
36
+ signer_infos: RestSignerInfo[]
37
+ fee: any
38
+ }
39
+
40
+ export type CosmosEvent = { type: string; attributes: { key: string; value: string }[] }
41
+
42
+ export interface CosmosTxLog {
43
+ msg_index: number
44
+ log: string
45
+ events: CosmosEvent[]
46
+ }
@@ -0,0 +1,23 @@
1
+ import { ListStateStorage } from '@sentio/runtime'
2
+ import { CosmosProcessor } from './cosmos-processor.js'
3
+ import { ProcessResult } from '@sentio/protos'
4
+ import { CosmosNetwork } from './network.js'
5
+
6
+ export class CosmosProcessorState extends ListStateStorage<CosmosProcessor> {
7
+ static INSTANCE = new CosmosProcessorState()
8
+ }
9
+
10
+ export type CallHandler<T> = {
11
+ handler: (call: T) => Promise<ProcessResult>
12
+ logConfig?: {
13
+ logFilters: string[]
14
+ }
15
+ }
16
+
17
+ export type CosmosProcessorConfig = {
18
+ address: string
19
+ name?: string
20
+ chainId: CosmosNetwork
21
+ startBlock?: bigint
22
+ endBlock?: bigint
23
+ }
@@ -1,8 +1,6 @@
1
1
  import { FuelChainId } from '@sentio/chain'
2
2
  import { FUEL_NETWORK_URL } from 'fuels'
3
3
 
4
- const SENTIO_FUEL_TESTNET = 'http://sentio-0.sentio.xyz:8080/sentio-internal-api/fuel-testnet/'
5
-
6
4
  export type FuelNetwork = FuelChainId
7
5
  export const FuelNetwork = <const>{
8
6
  MAIN_NET: FuelChainId.FUEL_MAINNET,
@@ -0,0 +1,54 @@
1
+ import { TestProcessorServer } from './test-processor-server.js'
2
+ import { DataBinding, HandlerType } from '@sentio/protos'
3
+ import { CosmosNetwork } from '../cosmos/network.js'
4
+
5
+ export class CosmosFacet {
6
+ server: TestProcessorServer
7
+
8
+ constructor(server: TestProcessorServer) {
9
+ this.server = server
10
+ }
11
+
12
+ testOnTransaction(transaction: any, network: CosmosNetwork = CosmosNetwork.INJECTIVE_TESTNET) {
13
+ const bindings = this.buildBinding(transaction, network)
14
+ if (!bindings) {
15
+ throw Error('Invalid test transaction: ' + JSON.stringify(transaction))
16
+ }
17
+
18
+ return this.server.processBindings({
19
+ bindings
20
+ })
21
+ }
22
+
23
+ private buildBinding(transaction: any, network: CosmosNetwork): DataBinding[] {
24
+ const res: DataBinding[] = []
25
+ for (const config of this.server.contractConfigs) {
26
+ if (config.contract?.chainId !== network) {
27
+ continue
28
+ }
29
+
30
+ for (const logConfig of config.cosmosLogConfigs) {
31
+ const binding = {
32
+ data: {
33
+ cosmosCall: {
34
+ transaction,
35
+ timestamp: new Date()
36
+ }
37
+ },
38
+ handlerIds: [logConfig.handlerId],
39
+ handlerType: HandlerType.COSMOS_CALL
40
+ }
41
+
42
+ const logFilters = logConfig.logFilters
43
+ for (const log of transaction.logs || []) {
44
+ if (log.events.find((e: any) => logFilters.includes(e.type))) {
45
+ res.push(binding)
46
+ break
47
+ }
48
+ }
49
+ }
50
+ }
51
+
52
+ return res
53
+ }
54
+ }
@@ -23,6 +23,7 @@ import { SolanaFacet } from './solana-facet.js'
23
23
  import { EthFacet } from './eth-facet.js'
24
24
  import { SuiFacet } from './sui-facet.js'
25
25
  import { FuelFacet } from './fuel-facet.js'
26
+ import { CosmosFacet } from './cosmos-facet.js'
26
27
 
27
28
  export const TEST_CONTEXT: CallContext = <CallContext>{}
28
29
 
@@ -40,6 +41,7 @@ export class TestProcessorServer implements ProcessorServiceImplementation {
40
41
  solana: SolanaFacet
41
42
  sui: SuiFacet
42
43
  fuel: FuelFacet
44
+ cosmos: CosmosFacet
43
45
 
44
46
  constructor(loader: () => Promise<any>, httpEndpoints: Record<string, string> = {}) {
45
47
  cleanTest()
@@ -50,6 +52,7 @@ export class TestProcessorServer implements ProcessorServiceImplementation {
50
52
  this.eth = new EthFacet(this)
51
53
  this.sui = new SuiFacet(this)
52
54
  this.fuel = new FuelFacet(this)
55
+ this.cosmos = new CosmosFacet(this)
53
56
 
54
57
  for (const k in CHAIN_MAP) {
55
58
  const http = httpEndpoints[k] || ''