@xrpl-wallet-kit/adapter-crossmark 0.1.5 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -89,6 +89,7 @@ export declare class CrossmarkAdapter extends BaseWalletAdapter {
89
89
  private resolvePassiveNetwork;
90
90
  private randomHex;
91
91
  private pickString;
92
+ private withAbort;
92
93
  }
93
94
  export declare function createCrossmarkAdapter(options?: CrossmarkAdapterOptions): CrossmarkAdapter;
94
95
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA6D,MAAM,uBAAuB,CAAC;AACrH,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEzJ,eAAO,MAAM,cAAc,+gWAA+gW,CAAC;AAE3iW,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE;QACL,WAAW,IAAI,OAAO,GAAG,SAAS,CAAC;QACnC,WAAW,CAAC,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC;QACxC,UAAU,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;QACtC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;KAC5B,CAAC;IACF,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,QAAQ,CAAC,EAAE;gBAAE,IAAI,CAAC,EAAE,OAAO,CAAA;aAAE,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC,CAAC;QAC3F,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAC1D,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAKD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAIzC,OAAO,CAAC,OAAO;IAH3B,QAAQ,EAAE,cAAc,CAAwG;IAChI,YAAY,EAAE,kBAAkB,CAA8F;gBAE1G,OAAO,GAAE,uBAA4B;IAEzD,WAAW,IAAI,OAAO;IAKhB,OAAO,CAAC,OAAO,EAAE,cAAc;;;;;;;;uBAvBoB;gBAAE,IAAI,CAAC,EAAE,OAAO,CAAA;aAAE,GAAG,IAAI;;;IAgC5E,cAAc,CAAC,OAAO,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYrC,WAAW,CAAC,OAAO,EAAE,kBAAkB;;;;;;uBA5CY;gBAAE,IAAI,CAAC,EAAE,OAAO,CAAA;aAAE,GAAG,IAAI;;;IA8E5E,aAAa,CAAC,OAAO,EAAE,oBAAoB;IAKjD,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,UAAU;CAInB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,uBAAuB,oBAA2C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAA6D,MAAM,uBAAuB,CAAC;AACrH,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEzJ,eAAO,MAAM,cAAc,+gWAA+gW,CAAC;AAE3iW,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE;QACL,WAAW,IAAI,OAAO,GAAG,SAAS,CAAC;QACnC,WAAW,CAAC,EAAE,MAAM,OAAO,GAAG,SAAS,CAAC;QACxC,UAAU,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;QACtC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;KAC5B,CAAC;IACF,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;YAAE,QAAQ,CAAC,EAAE;gBAAE,IAAI,CAAC,EAAE,OAAO,CAAA;aAAE,GAAG,IAAI,CAAA;SAAE,GAAG,IAAI,CAAC,CAAC;QAC3F,oBAAoB,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KAC1D,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC9B;AAKD,qBAAa,gBAAiB,SAAQ,iBAAiB;IAIzC,OAAO,CAAC,OAAO;IAH3B,QAAQ,EAAE,cAAc,CAAwG;IAChI,YAAY,EAAE,kBAAkB,CAA8F;gBAE1G,OAAO,GAAE,uBAA4B;IAEzD,WAAW,IAAI,OAAO;IAKhB,OAAO,CAAC,OAAO,EAAE,cAAc;;;;;;;;uBAvBoB;gBAAE,IAAI,CAAC,EAAE,OAAO,CAAA;aAAE,GAAG,IAAI;;;IAgC5E,cAAc,CAAC,OAAO,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYrC,WAAW,CAAC,OAAO,EAAE,kBAAkB;;;;;;uBA5CY;gBAAE,IAAI,CAAC,EAAE,OAAO,CAAA;aAAE,GAAG,IAAI;;;IA8E5E,aAAa,CAAC,OAAO,EAAE,oBAAoB;IAKjD,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,SAAS;CA6BlB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,uBAAuB,oBAA2C"}
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ export class CrossmarkAdapter extends BaseWalletAdapter {
14
14
  }
15
15
  async connect(options) {
16
16
  const signInAndWait = this.requireMethod("signInAndWait");
17
- const result = await signInAndWait(this.randomHex());
17
+ const result = await this.withAbort(signInAndWait(this.randomHex()), options.signal);
18
18
  const address = this.pickString(result, ["response.data.address", "response.address", "address"]);
19
19
  if (!address)
20
20
  throw new Error("Crossmark did not return an XRPL address");
@@ -122,5 +122,36 @@ export class CrossmarkAdapter extends BaseWalletAdapter {
122
122
  const value = pickPath(source, paths);
123
123
  return typeof value === "string" && value.trim() ? value : undefined;
124
124
  }
125
+ withAbort(promise, signal) {
126
+ if (!signal)
127
+ return promise;
128
+ if (signal.aborted)
129
+ return Promise.reject(createWalletError.connectionRejected(this.metadata.name, new Error("Connection was cancelled")));
130
+ return new Promise((resolve, reject) => {
131
+ let settled = false;
132
+ const cleanup = () => signal.removeEventListener("abort", abort);
133
+ const abort = () => {
134
+ if (settled)
135
+ return;
136
+ settled = true;
137
+ cleanup();
138
+ reject(createWalletError.connectionRejected(this.metadata.name, new Error("Connection was cancelled")));
139
+ };
140
+ signal.addEventListener("abort", abort, { once: true });
141
+ promise.then((value) => {
142
+ if (settled)
143
+ return;
144
+ settled = true;
145
+ cleanup();
146
+ resolve(value);
147
+ }, (error) => {
148
+ if (settled)
149
+ return;
150
+ settled = true;
151
+ cleanup();
152
+ reject(error);
153
+ });
154
+ });
155
+ }
125
156
  }
126
157
  export function createCrossmarkAdapter(options) { return new CrossmarkAdapter(options); }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xrpl-wallet-kit/adapter-crossmark",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "Crossmark adapter for XRPL Wallet Kit.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@crossmarkio/sdk": "^0.4.0",
24
- "@xrpl-wallet-kit/core": "0.1.5"
24
+ "@xrpl-wallet-kit/core": "0.1.7"
25
25
  },
26
26
  "publishConfig": {
27
27
  "access": "public"