@chainlink/external-adapter-framework 0.33.1 → 0.33.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # EA Framework v3
2
2
 
3
3
  [![NPM version](https://img.shields.io/npm/v/@chainlink/external-adapter-framework.svg?style=flat)](https://www.npmjs.com/package/@chainlink/external-adapter-framework)
4
- ![Coverage](https://img.shields.io/badge/coverage-99.18%25-green)
4
+ ![Coverage](https://img.shields.io/badge/coverage-99.16%25-green)
5
5
 
6
6
  > **Warning**
7
7
  > This framework is in a Beta state, and under active development. While many of the features from version 2 are present, they have not been tested extensively enough to mark this as production ready. You can find v2 in the [External Adapters Monorepo](https://github.com/smartcontractkit/external-adapters-js)
@@ -40,6 +40,8 @@ yarn # Install yarn dependencies
40
40
  - [HTTP](./docs/components/transport-types/http-transport.md)
41
41
  - [WebSocket](./docs/components/transport-types/websocket-transport.md)
42
42
  - [SSE](./docs/components/transport-types/sse-transport.md)
43
+ - [Subscription](./docs/components/transport-types/subscription-transport.md)
44
+ - [Streaming](./docs/components/transport-types/streaming-transport.md)
43
45
  - [Custom](./docs/components/transport-types/custom-transport.md)
44
46
  - Guides
45
47
  - [Porting a v2 EA to v3](./docs/guides/porting-a-v2-ea-to-v3.md)
@@ -60,7 +62,7 @@ yarn test
60
62
 
61
63
  ### Automatic
62
64
 
63
- The normal flow for publishing a release is through a series o GitHub actions that are triggered when a PR is closed by merging with the base branch. Full details about our workflows can be found in [./.github/WORKFLOW-README.MD]. A summary of our publish workflow follows:
65
+ The normal flow for publishing a release is through a series o GitHub actions that are triggered when a PR is closed by merging with the base branch. Full details about our workflows can be found in [docs](./docs/github_workflows.md). A summary of our publish workflow follows:
64
66
 
65
67
  1. Close a PR containing your changes
66
68
  2. If the PR was merged and if it contains a version label instruction (patch, minor, major, none), a new PR will be created that contains the result of running `npm version LABEL` on main with the original PR author assigned as a reviewer.
package/cache/index.d.ts CHANGED
@@ -51,6 +51,14 @@ export interface Cache<T = unknown> {
51
51
  * @returns an empty Promise that resolves when the entry has been deleted
52
52
  */
53
53
  delete: (key: string) => Promise<void>;
54
+ /**
55
+ * Updates the TTL value for an entry
56
+ *
57
+ * @param key - the key of the entry to be updated
58
+ * @param ttl - a new time in milliseconds until the entry expires
59
+ * @returns an empty Promise that resolves when the entry has been updated
60
+ */
61
+ setTTL: (key: string, ttl: number) => Promise<void>;
54
62
  /**
55
63
  * Sets a lock on the Cache.
56
64
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cache/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,oDAA2B;AAG3B,kCAAwE;AAGxE,4CAAyB;AACzB,0CAAuB;AACvB,0CAAuB;AAEvB,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,OAAO,CAAC,CAAA;AAsElC,gGAAgG;AACzF,MAAM,iBAAiB,GAAG,CAA6B,EAC5D,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,eAAe,EACf,aAAa,GAOd,EAAU,EAAE;IACX,MAAM,aAAa,GAAG,YAAY,CAAC;QACjC,IAAI;QACJ,eAAe;QACf,YAAY;QACZ,aAAa;KACd,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1F,MAAM,QAAQ,GAAG,GAAG,WAAW,GAAG,WAAW,IAAI,aAAa,EAAE,CAAA;IAEhE,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,QAAQ,GAAG,CAAC,CAAC,CAAA;IAChF,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAzBY,QAAA,iBAAiB,qBAyB7B;AAED,0DAA0D;AACnD,MAAM,uBAAuB,GAAG,CAA6B,EAClE,IAAI,EACJ,OAAO,EACP,aAAa,GAKd,EAAU,EAAE;IACX,MAAM,GAAG,GAAG,YAAY,CAAC;QACvB,IAAI;QACJ,aAAa;QACb,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,YAAY,EAAE,OAAO,CAAC,YAAY;KACnC,CAAC,CAAA;IACF,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,GAAG,GAAG,CAAC,CAAC,CAAA;IAC5E,OAAO,GAAG,CAAA;AACZ,CAAC,CAAA;AAjBY,QAAA,uBAAuB,2BAiBnC;AAED,MAAM,YAAY,GAAG,CAA6B,EAChD,IAAI,EACJ,YAAY,EACZ,aAAa,EACb,eAAe,GAMhB,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;QACxC,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAE,eAAe,CAAC,mBAAmB,CAAC;QAC/D,CAAC,CAAC,eAAe,CAAC,iBAAiB,CAAA;IACrC,OAAO,GAAG,YAAY,IAAI,aAAa,IAAI,SAAS,EAAE,CAAA;AACxD,CAAC,CAAA;AAEM,MAAM,eAAe,GAAG,CAC7B,EACE,eAAe,GAGhB,EACD,IAA6B,EACrB,EAAE;IACV,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACpD,OAAO,KAAK,CAAA;KACb;IACD,OAAO,kBAAkB,CAAC,IAAI,EAAE,eAAe,CAAC,mBAAmB,CAAC,CAAA;AACtE,CAAC,CAAA;AAbY,QAAA,eAAe,mBAa3B;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,kBAAkB,GAAG,CAAC,IAAa,EAAE,OAAe,EAAU,EAAE;IACpE,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACpC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;KACnE;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;QACjD,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YACtC,OAAO,KAAK,CAAC,WAAW,EAAE,CAAA;SAC3B;QACD,OAAO,KAAK,CAAA;IACd,CAAC,CAAC,CAAA;IAEF,IAAI,QAAQ,CAAC,MAAM,GAAG,OAAO,EAAE;QAC7B,MAAM,CAAC,KAAK,CACV,mGAAmG,CACpG,CAAA;QACD,MAAM,MAAM,GAAG,gBAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACxC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACvB,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;KAC/B;IAED,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA;AAED;;;;;;;;GAQG;AACI,MAAM,qBAAqB,GAAG,KAAK,EACxC,KAA6B,EAC7B,GAAW,EACX,OAGC,EACD,KAAK,GAAG,CAAC,EAC6B,EAAE;IACxC,IAAI,KAAK,GAAG,OAAO,CAAC,UAAU,EAAE;QAC9B,iFAAiF;QACjF,MAAM,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAA;QAClD,OAAO,SAAS,CAAA;KACjB;IAED,MAAM,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAA;IAC9C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrC,IAAI,QAAQ,EAAE;QACZ,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;QACvC,OAAO,QAAQ,CAAA;KAChB;IAED,IAAI,OAAO,CAAC,UAAU,KAAK,CAAC,EAAE;QAC5B,MAAM,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAA;QACpD,OAAO,SAAS,CAAA;KACjB;IAED,MAAM,CAAC,KAAK,CAAC,gCAAgC,OAAO,CAAC,KAAK,kBAAkB,CAAC,CAAA;IAC7E,MAAM,IAAA,YAAK,EAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAE1B,OAAO,IAAA,6BAAqB,EAAC,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;AAC9D,CAAC,CAAA;AA/BY,QAAA,qBAAqB,yBA+BjC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cache/index.ts"],"names":[],"mappings":"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"}
package/cache/local.d.ts CHANGED
@@ -26,6 +26,7 @@ export declare class LocalCache<T = unknown> implements Cache<T> {
26
26
  delete(key: string): Promise<void>;
27
27
  set(key: string, value: Readonly<T>, ttl: number): Promise<void>;
28
28
  setMany(entries: CacheEntry<Readonly<T>>[], ttl: number): Promise<void>;
29
+ setTTL(key: string, ttl: number): Promise<void>;
29
30
  private evictIfNeeded;
30
31
  private moveToTail;
31
32
  }
package/cache/local.js CHANGED
@@ -86,6 +86,22 @@ class LocalCache {
86
86
  this.set(key, value, ttl);
87
87
  }
88
88
  }
89
+ async setTTL(key, ttl) {
90
+ (0, util_1.censorLogs)(() => logger.trace(`Updating key ${key} with a new ttl ${ttl}`));
91
+ if (this.cache.has(key)) {
92
+ const node = this.cache.get(key);
93
+ const isCacheExpired = node.data.expirationTimestamp <= Date.now();
94
+ if (isCacheExpired) {
95
+ return this.delete(key);
96
+ }
97
+ node.data = {
98
+ ...node.data,
99
+ expirationTimestamp: Date.now() + ttl,
100
+ };
101
+ // When ttl is updated, we move the node to the end of the list as we keep recently updated entries there
102
+ this.moveToTail(node);
103
+ }
104
+ }
89
105
  evictIfNeeded() {
90
106
  if (this.list.size >= this.capacity) {
91
107
  logger.warn(`Cache list reached maximum capacity, evicting least recently updated entry`);
@@ -1 +1 @@
1
- {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/cache/local.ts"],"names":[],"mappings":";;;AAAA,wCAAoC;AACpC,kCAAmG;AAEnG,uCAAsC;AAEtC,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,YAAY,CAAC,CAAA;AAYvC;;;;;GAKG;AACH,MAAa,UAAU;IAOrB,YAAY,QAAgB;QAN5B,SAAI,GAAG,oBAAU,CAAC,KAAK,CAAA;QAOrB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAA;QACtB,IAAI,CAAC,IAAI,GAAG,IAAI,uBAAgB,EAAE,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC,CAAA;QACpD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAuC,CAAA;YACtE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;YAC3D,IAAI,OAAO,EAAE;gBACX,MAAM,CAAC,KAAK,CAAC,gEAAgE,CAAC,CAAA;gBAC9E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAChB,OAAO,SAAS,CAAA;aACjB;iBAAM;gBACL,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAA;gBACjE,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAA;aACvB;SACF;aAAM;YACL,IAAA,iBAAU,EAAC,GAAG,EAAE,CACd,MAAM,CAAC,KAAK,CAAC,oCAAoC,GAAG,wBAAwB,CAAC,CAC9E,CAAA;YACD,OAAO,SAAS,CAAA;SACjB;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC,CAAA;QACrD,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACvB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAuC,CAAA;YACtE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACtB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;SACvB;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAkB,EAAE,GAAW;QACpD,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,GAAG,aAAa,GAAG,EAAE,CAAC,CAAC,CAAA;QACpE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;YACvB,IAAA,iBAAU,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,sBAAsB,GAAG,qBAAqB,CAAC,CAAC,CAAA;YAC9E,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAuC,CAAA;YACtE,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;YAClE,0MAA0M;YAC1M,IACE,cAAc,IAAK,KAAoC;gBACvD,CAAC,cAAc;gBACf,CAAC,CAAC,cAAc,IAAK,IAAI,CAAC,IAAI,CAAC,KAAyB,CAAC,EACzD;gBACA,IAAA,iBAAU,EAAC,GAAG,EAAE,CACd,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,2CAA2C,CAAC,CAClF,CAAA;aACF;iBAAM;gBACL,IAAI,CAAC,IAAI,GAAG;oBACV,KAAK;oBACL,mBAAmB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG;iBACtC,CAAA;gBACD,2GAA2G;gBAC3G,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;aACtB;SACF;aAAM;YACL,kHAAkH;YAClH,IAAI,CAAC,aAAa,EAAE,CAAA;YACpB,MAAM,IAAI,GAAG;gBACX,KAAK;gBACL,mBAAmB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG;aACtC,CAAA;YACD,MAAM,IAAI,GAAG,IAAI,qBAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;YAC1C,sDAAsD;YACtD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;YAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;SAC1B;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAkC,EAAE,GAAW;QAC3D,MAAM,CAAC,KAAK,CAAC,oCAAoC,GAAG,EAAE,CAAC,CAAA;QACvD,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,OAAO,EAAE;YACpC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAA;SAC1B;IACH,CAAC;IAEO,aAAa;QACnB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YACnC,MAAM,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAA;YACzF,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA;YACnC,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC3B,iBAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,GAAG,EAAE,CAAA;aACxC;SACF;IACH,CAAC;IAEO,UAAU,CAAC,IAAoB;QACrC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACtB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;CACF;AAtGD,gCAsGC"}
1
+ {"version":3,"file":"local.js","sourceRoot":"","sources":["../../../src/cache/local.ts"],"names":[],"mappings":"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"}
package/cache/redis.d.ts CHANGED
@@ -24,5 +24,6 @@ export declare class RedisCache<T = unknown> implements Cache<T> {
24
24
  delete(key: string): Promise<void>;
25
25
  set(key: string, value: Readonly<T>, ttl: number): Promise<void>;
26
26
  setMany(entries: CacheEntry<Readonly<T>>[], ttl: number): Promise<void>;
27
+ setTTL(key: string, ttl: number): Promise<void>;
27
28
  lock(key: string, cacheLockDuration: number, retryCount: number, shutdownNotifier: EventEmitter): Promise<void>;
28
29
  }
package/cache/redis.js CHANGED
@@ -102,6 +102,13 @@ class RedisCache {
102
102
  // Record exec command sent to Redis
103
103
  (0, metrics_1.recordRedisCommandMetric)(metrics_1.CMD_SENT_STATUS.SUCCESS, 'exec');
104
104
  }
105
+ async setTTL(key, ttl) {
106
+ (0, util_1.censorLogs)(() => logger.trace(`Updating key ${key} with a new ttl ${ttl}`));
107
+ await this.client.pexpire(key, ttl);
108
+ this.localCache.setTTL(key, ttl);
109
+ // Record set command sent to Redis
110
+ (0, metrics_1.recordRedisCommandMetric)(metrics_1.CMD_SENT_STATUS.SUCCESS, 'setTTL');
111
+ }
105
112
  async lock(key, cacheLockDuration, retryCount, shutdownNotifier) {
106
113
  const start = Date.now();
107
114
  const log = (msg) => `[${(Date.now() - start) / 1000}]: ${msg}`;
@@ -1 +1 @@
1
- {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/cache/redis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis.js","sourceRoot":"","sources":["../../../src/cache/redis.ts"],"names":[],"mappings":"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"}
@@ -77,8 +77,7 @@ module.exports = class extends Generator {
77
77
  });
78
78
  // copy main index.ts file
79
79
  this.fs.copyTpl(this.templatePath(`src/index.ts.ejs`), this.destinationPath(`${this.options.rootPath}/${this.props.adapterName}/src/index.ts`), this.props);
80
- // Copy config
81
- this.fs.copy(this.templatePath('src/config/index.ts'), this.destinationPath(`${this.options.rootPath}/${this.props.adapterName}/src/config/index.ts`));
80
+ // Copy overrides
82
81
  this.fs.copyTpl(this.templatePath('src/config/overrides.json'), this.destinationPath(`${this.options.rootPath}/${this.props.adapterName}/src/config/overrides.json`), this.props);
83
82
  // Create endpoint and transport files
84
83
  Object.values(this.props.endpoints).forEach(({ inputEndpointName, inputTransports, endpointAliases }) => {
@@ -109,18 +108,21 @@ module.exports = class extends Generator {
109
108
  });
110
109
  // Create endpoint barrel file
111
110
  this.fs.copyTpl(this.templatePath(`src/endpoint/index.ts.ejs`), this.destinationPath(`${this.options.rootPath}/${this.props.adapterName}/src/endpoint/index.ts`), { endpoints: Object.values(this.props.endpoints) });
112
- // Create test files
113
111
  const httpEndpoints = Object.values(this.props.endpoints).filter((e) => e.inputTransports.some(t => t.type === 'http'));
114
112
  const wsEndpoints = Object.values(this.props.endpoints).filter((e) => e.inputTransports.some(t => t.type === 'ws'));
115
- const customEndpoints = Object.values(this.props.endpoints).filter((e) => e.inputTransports.some(t => t.type === 'custom'));
113
+ const customFgEndpoints = Object.values(this.props.endpoints).filter((e) => e.inputTransports.some(t => t.type === 'customfg'));
114
+ const customBgEndpoints = Object.values(this.props.endpoints).filter((e) => e.inputTransports.some(t => t.type === 'custombg'));
115
+ // Copy config
116
+ this.fs.copyTpl(this.templatePath('src/config/index.ts.ejs'), this.destinationPath(`${this.options.rootPath}/${this.props.adapterName}/src/config/index.ts`), { setBgExecuteMsEnv: customBgEndpoints.length });
117
+ // Create test files
116
118
  // Create adapter.test.ts if there is at least one endpoint with httpTransport
117
119
  if (httpEndpoints.length) {
118
- this.fs.copyTpl(this.templatePath(`test/adapter.test.ts.ejs`), this.destinationPath(`${this.options.rootPath}/${this.props.adapterName}/test/integration/adapter.test.ts`), { endpoints: httpEndpoints, transportName: 'rest' });
120
+ this.fs.copyTpl(this.templatePath(`test/adapter.test.ts.ejs`), this.destinationPath(`${this.options.rootPath}/${this.props.adapterName}/test/integration/adapter.test.ts`), { endpoints: httpEndpoints, transportName: 'rest', setBgExecuteMsEnv: false });
119
121
  }
120
122
  // Create adapter.test.ts or adapter-ws.test.ts if there is at least one endpoint with wsTransport
121
123
  if (wsEndpoints.length) {
122
124
  let fileName = 'adapter.test.ts';
123
- if (httpEndpoints.length || customEndpoints.length) {
125
+ if (httpEndpoints.length || customFgEndpoints.length || customBgEndpoints.length) {
124
126
  fileName = 'adapter-ws.test.ts';
125
127
  }
126
128
  this.fs.copyTpl(this.templatePath(`test/adapter-ws.test.ts.ejs`), this.destinationPath(`${this.options.rootPath}/${this.props.adapterName}/test/integration/${fileName}`), { endpoints: wsEndpoints });
@@ -129,17 +131,24 @@ module.exports = class extends Generator {
129
131
  // Custom transport integration tests use the same template as http, but in separate file. This is not ideal
130
132
  // since the setup is the same (usually) and we could have just another test describe block, but at least this is
131
133
  // consistent behavior as each transport-specific test is in its own file.
132
- if (customEndpoints.length) {
134
+ if (customFgEndpoints.length) {
133
135
  let fileName = 'adapter.test.ts';
134
136
  if (httpEndpoints.length || wsEndpoints.length) {
135
- fileName = 'adapter-custom.test.ts';
137
+ fileName = 'adapter-custom-fg.test.ts';
136
138
  }
137
- this.fs.copyTpl(this.templatePath(`test/adapter.test.ts.ejs`), this.destinationPath(`${this.options.rootPath}/${this.props.adapterName}/test/integration/${fileName}`), { endpoints: customEndpoints, transportName: 'custom' });
139
+ this.fs.copyTpl(this.templatePath(`test/adapter.test.ts.ejs`), this.destinationPath(`${this.options.rootPath}/${this.props.adapterName}/test/integration/${fileName}`), { endpoints: customFgEndpoints, transportName: 'customfg', setBgExecuteMsEnv: false });
140
+ }
141
+ if (customBgEndpoints.length) {
142
+ let fileName = 'adapter.test.ts';
143
+ if (httpEndpoints.length || wsEndpoints.length || customFgEndpoints.length) {
144
+ fileName = 'adapter-custom-bg.test.ts';
145
+ }
146
+ this.fs.copyTpl(this.templatePath(`test/adapter.test.ts.ejs`), this.destinationPath(`${this.options.rootPath}/${this.props.adapterName}/test/integration/${fileName}`), { endpoints: customBgEndpoints, transportName: 'custombg', setBgExecuteMsEnv: true });
138
147
  }
139
148
  // Copy test fixtures
140
149
  this.fs.copyTpl(this.templatePath(`test/fixtures.ts.ejs`), this.destinationPath(`${this.options.rootPath}/${this.props.adapterName}/test/integration/fixtures.ts`), {
141
150
  includeWsFixtures: wsEndpoints.length > 0,
142
- includeHttpFixtures: httpEndpoints.length > 0 || customEndpoints.length > 0,
151
+ includeHttpFixtures: httpEndpoints.length > 0 || customBgEndpoints.length > 0 || customFgEndpoints.length > 0,
143
152
  });
144
153
  // Add dependencies to existing package.json
145
154
  const pkgJson = {
@@ -260,7 +269,10 @@ module.exports = class extends Generator {
260
269
  async _promptTransports(inputEndpointName) {
261
270
  if (this.promptDisabled) {
262
271
  return [
263
- { type: 'http', name: 'httpTransport' }, { type: 'ws', name: 'wsTransport' }, { type: 'custom', name: 'customTransport', }
272
+ { type: 'http', name: 'httpTransport' },
273
+ { type: 'ws', name: 'wsTransport' },
274
+ { type: 'customfg', name: 'customTransport' },
275
+ { type: 'custombg', name: 'customSubscriptionTransport' }
264
276
  ];
265
277
  }
266
278
  const { inputTransports } = await this.prompt({
@@ -284,9 +296,16 @@ module.exports = class extends Generator {
284
296
  },
285
297
  },
286
298
  {
287
- name: 'Custom',
299
+ name: 'Custom (subscription based)',
300
+ value: {
301
+ type: 'custombg',
302
+ name: 'customSubscriptionTransport',
303
+ },
304
+ },
305
+ {
306
+ name: 'Custom (simple)',
288
307
  value: {
289
- type: 'custom',
308
+ type: 'customfg',
290
309
  name: 'customTransport',
291
310
  },
292
311
  },
@@ -21,5 +21,12 @@ export const config = new AdapterConfig(
21
21
  type: 'string',
22
22
  default: 'ws://localhost:9090',
23
23
  },
24
+ <% if (setBgExecuteMsEnv) { %>
25
+ BACKGROUND_EXECUTE_MS: {
26
+ description:
27
+ 'The amount of time the background execute should sleep before performing the next request',
28
+ type: 'number',
29
+ default: 10_000,
30
+ },<% } %>
24
31
  },
25
32
  )
@@ -9,7 +9,7 @@ export const adapter = new Adapter({
9
9
  <% } -%><%= ' ' %> defaultEndpoint: <%= defaultEndpoint.normalizedEndpointName %>.name,
10
10
  <% if (includeComments) { -%>
11
11
  // Adapter name
12
- <% } -%><%= ' ' %> name: '<%= adapterName.toUpperCase() %>',
12
+ <% } -%><%= ' ' %> name: '<%= adapterName.toUpperCase().replace('-', '_') %>',
13
13
  <% if (includeComments) { -%>
14
14
  // Adapter configuration (environment variables)
15
15
  <% } -%><%= ' ' %> config,
@@ -0,0 +1,106 @@
1
+ import { TransportDependencies } from '@chainlink/external-adapter-framework/transports'
2
+ import { ResponseCache } from '@chainlink/external-adapter-framework/cache/response'
3
+ import { Requester } from '@chainlink/external-adapter-framework/util/requester'
4
+ import {
5
+ AdapterResponse, sleep
6
+ } from '@chainlink/external-adapter-framework/util'
7
+ import { SubscriptionTransport } from '@chainlink/external-adapter-framework/transports/abstract/subscription'
8
+ import { EndpointContext } from '@chainlink/external-adapter-framework/adapter'
9
+ import { BaseEndpointTypes, inputParameters } from '../endpoint/<%= inputEndpointName %>'
10
+
11
+ type RequestParams = typeof inputParameters.validated
12
+
13
+ <% if (includeComments) { -%>
14
+ // CustomTransport extends base types from endpoint and adds additional, Provider-specific types (if needed).
15
+ <% } -%>
16
+ export type CustomTransportTypes = BaseEndpointTypes & {
17
+ Provider: {
18
+ RequestBody: never
19
+ ResponseBody: any
20
+ }
21
+ }
22
+ <% if (includeComments) { -%>
23
+ // CustomTransport is used to perform custom data fetching and processing from a Provider. The framework provides built-in transports to
24
+ // fetch data from a Provider using several protocols, including `http`, `websocket`, and `sse`. Use CustomTransport when the Provider uses
25
+ // different protocol, or you need custom functionality that built-in transports don't support. For example, custom, multistep authentication
26
+ // for requests, paginated requests, on-chain data retrieval using third party libraries, and so on.
27
+ <% } -%>
28
+ export class CustomTransport extends SubscriptionTransport<CustomTransportTypes> {
29
+ <% if (includeComments) { -%>
30
+ // name of the transport, used for logging
31
+ <% } -%>
32
+ name!: string
33
+ <% if (includeComments) { -%>
34
+ // cache instance for caching responses from provider
35
+ <% } -%>
36
+ responseCache!: ResponseCache<CustomTransportTypes>
37
+ <% if (includeComments) { -%>
38
+ // instance of Requester to be used for data fetching. Use this instance to perform http calls
39
+ <% } -%>
40
+ requester!: Requester
41
+
42
+ <% if (includeComments) { -%>
43
+ // REQUIRED. Transport will be automatically initialized by the framework using this method. It will be called with transport
44
+ // dependencies, adapter settings, endpoint name, and transport name as arguments. Use this method to initialize transport state
45
+ <% } -%>
46
+ async initialize(dependencies: TransportDependencies<CustomTransportTypes>, adapterSettings: CustomTransportTypes['Settings'], endpointName: string, transportName: string): Promise<void> {
47
+ await super.initialize(dependencies, adapterSettings, endpointName, transportName)
48
+ this.requester = dependencies.requester
49
+ }
50
+ <% if (includeComments) { -%>
51
+ // 'backgroundHandler' is called on each background execution iteration. It receives endpoint context as first argument
52
+ // and an array of all the entries in the subscription set as second argument. Use this method to handle the incoming
53
+ // request, process it and save it in the cache.
54
+ <% } -%>
55
+ async backgroundHandler(context: EndpointContext<CustomTransportTypes>, entries: RequestParams[]) {
56
+ await Promise.all(entries.map(async (param) => this.handleRequest(param)))
57
+ await sleep(context.adapterSettings.BACKGROUND_EXECUTE_MS)
58
+ }
59
+
60
+ async handleRequest(param: RequestParams) {
61
+ let response: AdapterResponse<CustomTransportTypes['Response']>
62
+ try {
63
+ response = await this._handleRequest(param)
64
+ } catch (e) {
65
+ const errorMessage = e instanceof Error ? e.message : 'Unknown error occurred'
66
+ response = {
67
+ statusCode: 502,
68
+ errorMessage,
69
+ timestamps: {
70
+ providerDataRequestedUnixMs: 0,
71
+ providerDataReceivedUnixMs: 0,
72
+ providerIndicatedTimeUnixMs: undefined,
73
+ },
74
+ }
75
+ }
76
+ await this.responseCache.write(this.name, [{ params: param, response }])
77
+ }
78
+
79
+ async _handleRequest(
80
+ _: RequestParams,
81
+ ): Promise<AdapterResponse<CustomTransportTypes['Response']>> {
82
+
83
+ const providerDataRequestedUnixMs = Date.now()
84
+
85
+ // custom transport logic
86
+
87
+ return {
88
+ data: {
89
+ result: 2000,
90
+ },
91
+ statusCode: 200,
92
+ result: 2000,
93
+ timestamps: {
94
+ providerDataRequestedUnixMs,
95
+ providerDataReceivedUnixMs: Date.now(),
96
+ providerIndicatedTimeUnixMs: undefined,
97
+ },
98
+ }
99
+ }
100
+
101
+ getSubscriptionTtlFromConfig(adapterSettings: CustomTransportTypes['Settings']): number {
102
+ return adapterSettings.WARMUP_SUBSCRIPTION_TTL
103
+ }
104
+ }
105
+
106
+ export const customSubscriptionTransport = new CustomTransport()
@@ -5,8 +5,7 @@ import {
5
5
  AdapterRequest,
6
6
  AdapterResponse,
7
7
  } from '@chainlink/external-adapter-framework/util'
8
- import { TypeFromDefinition } from '@chainlink/external-adapter-framework/validation/input-params'
9
- import { BaseEndpointTypes } from '../endpoint/<%= inputEndpointName %>'
8
+ import { BaseEndpointTypes, inputParameters } from '../endpoint/<%= inputEndpointName %>'
10
9
 
11
10
  <% if (includeComments) { -%>
12
11
  // CustomTransport extends base types from endpoint and adds additional, Provider-specific types (if needed).
@@ -23,7 +22,7 @@ export type CustomTransportTypes = BaseEndpointTypes & {
23
22
  // different protocol, or you need custom functionality that built-in transports don't support. For example, custom, multistep authentication
24
23
  // for requests, paginated requests, on-chain data retrieval using third party libraries, and so on.
25
24
  <% } -%>
26
- export class CustomTransport<T extends CustomTransportTypes> implements Transport<T> {
25
+ export class CustomTransport implements Transport<CustomTransportTypes> {
27
26
  <% if (includeComments) { -%>
28
27
  // name of the transport, used for logging
29
28
  <% } -%>
@@ -31,7 +30,7 @@ export class CustomTransport<T extends CustomTransportTypes> implements Transpor
31
30
  <% if (includeComments) { -%>
32
31
  // cache instance for caching responses from provider
33
32
  <% } -%>
34
- responseCache!: ResponseCache<T>
33
+ responseCache!: ResponseCache<CustomTransportTypes>
35
34
  <% if (includeComments) { -%>
36
35
  // instance of Requester to be used for data fetching. Use this instance to perform http calls
37
36
  <% } -%>
@@ -41,7 +40,7 @@ export class CustomTransport<T extends CustomTransportTypes> implements Transpor
41
40
  // REQUIRED. Transport will be automatically initialized by the framework using this method. It will be called with transport
42
41
  // dependencies, adapter settings, endpoint name, and transport name as arguments. Use this method to initialize transport state
43
42
  <% } -%>
44
- async initialize(dependencies: TransportDependencies<T>, _adapterSettings: CustomTransportTypes['Settings'], _endpointName: string, transportName: string): Promise<void> {
43
+ async initialize(dependencies: TransportDependencies<CustomTransportTypes>, _adapterSettings: CustomTransportTypes['Settings'], _endpointName: string, transportName: string): Promise<void> {
45
44
  this.responseCache = dependencies.responseCache
46
45
  this.requester = dependencies.requester
47
46
  this.name = transportName
@@ -52,7 +51,7 @@ export class CustomTransport<T extends CustomTransportTypes> implements Transpor
52
51
  // request, process it,save it in the cache and return to user.
53
52
  <% } -%>
54
53
  async foregroundExecute(
55
- req: AdapterRequest<TypeFromDefinition<T['Parameters']>>,
54
+ req: AdapterRequest<typeof inputParameters.validated>
56
55
  ): Promise<AdapterResponse<CustomTransportTypes['Response']>> {
57
56
 
58
57
  // Custom transport logic
@@ -13,6 +13,7 @@ describe('execute', () => {
13
13
  beforeAll(async () => {
14
14
  oldEnv = JSON.parse(JSON.stringify(process.env))
15
15
  process.env.API_KEY = process.env.API_KEY ?? 'fake-api-key'
16
+ <% if (setBgExecuteMsEnv) { %>process.env.BACKGROUND_EXECUTE_MS = process.env.BACKGROUND_EXECUTE_MS ?? '0'<% } %>
16
17
  const mockDate = new Date('2001-01-01T11:11:11.111Z')
17
18
  spy = jest.spyOn(Date, 'now').mockReturnValue(mockDate.getTime())
18
19
 
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@chainlink/external-adapter-framework",
3
- "version": "0.33.1",
3
+ "version": "0.33.4",
4
4
  "main": "dist/index.js",
5
5
  "license": "MIT",
6
6
  "dependencies": {
7
7
  "ajv": "8.11.0",
8
- "axios": "1.3.4",
8
+ "axios": "1.6.0",
9
9
  "eventsource": "2.0.2",
10
10
  "fastify": "4.13.0",
11
11
  "ioredis": "5.2.3",
@@ -53,6 +53,7 @@ export declare class RedisMock {
53
53
  }): void;
54
54
  setExternalAdapterResponse(key: string, value: string, ttl: number): Promise<void>;
55
55
  evalsha(...args: [string, number, [string, string, number]]): 0 | 1;
56
+ pexpire(): void;
56
57
  quit(): void;
57
58
  }
58
59
  declare class CommandChainMock {
@@ -127,6 +127,9 @@ class RedisMock {
127
127
  return 0;
128
128
  }
129
129
  }
130
+ pexpire() {
131
+ return;
132
+ }
130
133
  // For cache lock tests - naive implementation as the necessary error will
131
134
  // already have been thrown and the test will end the process
132
135
  quit() {
@@ -1 +1 @@
1
- {"version":3,"file":"testing-utils.js","sourceRoot":"","sources":["../../../src/util/testing-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing-utils.js","sourceRoot":"","sources":["../../../src/util/testing-utils.ts"],"names":[],"mappings":"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"}