@notabene/javascript-sdk 2.9.0-next.2 → 2.9.0-next.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/dist/cjs/notabene.cjs +1 -1
- package/dist/cjs/notabene.d.ts +32 -2
- package/dist/cjs/package.json +1 -1
- package/dist/esm/notabene.d.ts +32 -2
- package/dist/esm/notabene.js +86 -79
- package/dist/esm/package.json +1 -1
- package/dist/notabene.d.ts +32 -2
- package/dist/notabene.js +86 -79
- package/docs/README.md +12 -3
- package/docs/_media/TransactionOptions.md +16 -6
- package/docs/ivms/types/enumerations/PayloadVersionCode.md +2 -2
- package/docs/ivms/types/interfaces/PayloadMetadata.md +2 -2
- package/docs/ivms/types/type-aliases/Address.md +1 -1
- package/docs/ivms/types/type-aliases/AddressTypeCode.md +1 -1
- package/docs/ivms/types/type-aliases/Beneficiary.md +1 -1
- package/docs/ivms/types/type-aliases/BeneficiaryVASP.md +1 -1
- package/docs/ivms/types/type-aliases/DateAndPlaceOfBirth.md +1 -1
- package/docs/ivms/types/type-aliases/ISOCountryCode.md +1 -1
- package/docs/ivms/types/type-aliases/ISODate.md +1 -1
- package/docs/ivms/types/type-aliases/IVMS101.md +1 -1
- package/docs/ivms/types/type-aliases/IntermediaryVASP.md +1 -1
- package/docs/ivms/types/type-aliases/LegalPerson.md +1 -1
- package/docs/ivms/types/type-aliases/LegalPersonName.md +1 -1
- package/docs/ivms/types/type-aliases/LegalPersonNameID.md +1 -1
- package/docs/ivms/types/type-aliases/LegalPersonNameTypeCode.md +1 -1
- package/docs/ivms/types/type-aliases/LocalLegalPersonNameID.md +1 -1
- package/docs/ivms/types/type-aliases/LocalNaturalPersonNameID.md +1 -1
- package/docs/ivms/types/type-aliases/NationalIdentification.md +1 -1
- package/docs/ivms/types/type-aliases/NationalIdentifierTypeCode.md +1 -1
- package/docs/ivms/types/type-aliases/NaturalPerson.md +1 -1
- package/docs/ivms/types/type-aliases/NaturalPersonName.md +1 -1
- package/docs/ivms/types/type-aliases/NaturalPersonNameID.md +1 -1
- package/docs/ivms/types/type-aliases/NaturalPersonNameTypeCode.md +1 -1
- package/docs/ivms/types/type-aliases/OriginatingVASP.md +1 -1
- package/docs/ivms/types/type-aliases/Originator.md +1 -1
- package/docs/ivms/types/type-aliases/Person.md +1 -1
- package/docs/ivms/types/type-aliases/TransferPath.md +1 -1
- package/docs/ivms/types/type-aliases/TransliterationMethodCode.md +1 -1
- package/docs/notabene/README.md +15 -0
- package/docs/notabene/classes/ConnectionManager.md +14 -6
- package/docs/notabene/classes/EmbeddedComponent.md +17 -17
- package/docs/notabene/classes/default.md +7 -7
- package/docs/notabene/functions/decodeFragmentToObject.md +1 -1
- package/docs/notabene/functions/getRefreshResult.md +27 -0
- package/docs/notabene/interfaces/ConnectionData.md +13 -3
- package/docs/notabene/interfaces/ConnectionMetadata.md +3 -3
- package/docs/notabene/interfaces/ConnectionResponse.md +15 -5
- package/docs/notabene/interfaces/ConnectionResult.md +61 -0
- package/docs/notabene/interfaces/NotabeneConfig.md +5 -5
- package/docs/notabene/type-aliases/ConnectionStatus.md +13 -0
- package/docs/notabene/type-aliases/MessageCallback.md +1 -1
- package/docs/notabene/type-aliases/TransactionType.md +1 -1
- package/docs/types/README.md +1 -0
- package/docs/types/enumerations/AgentType.md +2 -2
- package/docs/types/enumerations/CMType.md +7 -7
- package/docs/types/enumerations/ErrorIdentifierCode.md +4 -4
- package/docs/types/enumerations/HMType.md +2 -2
- package/docs/types/enumerations/PersonType.md +3 -3
- package/docs/types/enumerations/ProofStatus.md +4 -4
- package/docs/types/enumerations/ProofTypes.md +17 -17
- package/docs/types/enumerations/Status.md +5 -5
- package/docs/types/enumerations/VASPSearchControl.md +2 -2
- package/docs/types/enumerations/ValidationSections.md +4 -4
- package/docs/types/interfaces/Agent.md +6 -6
- package/docs/types/interfaces/CallbackOptions.md +2 -2
- package/docs/types/interfaces/ComponentRequest.md +2 -2
- package/docs/types/interfaces/ComponentResponse.md +4 -4
- package/docs/types/interfaces/ConnectionRecord.md +7 -7
- package/docs/types/interfaces/ConnectionRequest.md +3 -3
- package/docs/types/interfaces/Counterparty.md +10 -10
- package/docs/types/interfaces/DeclarationProof.md +6 -6
- package/docs/types/interfaces/Deposit.md +11 -11
- package/docs/types/interfaces/DepositRequest.md +7 -7
- package/docs/types/interfaces/DepositRequestOptions.md +1 -1
- package/docs/types/interfaces/DepositTransaction.md +9 -9
- package/docs/types/interfaces/LegalPerson.md +13 -13
- package/docs/types/interfaces/MicroTransferProof.md +9 -9
- package/docs/types/interfaces/NaturalPerson.md +13 -13
- package/docs/types/interfaces/OwnershipProof.md +4 -4
- package/docs/types/interfaces/RefreshSource.md +2 -2
- package/docs/types/interfaces/Refreshable.md +1 -1
- package/docs/types/interfaces/ScreenshotProof.md +5 -5
- package/docs/types/interfaces/SignatureProof.md +9 -9
- package/docs/types/interfaces/ThresholdOptions.md +3 -3
- package/docs/types/interfaces/Transaction.md +8 -8
- package/docs/types/interfaces/TransactionOptions.md +16 -6
- package/docs/types/interfaces/TransactionResponse.md +9 -9
- package/docs/types/interfaces/VASP.md +9 -9
- package/docs/types/interfaces/Wallet.md +8 -8
- package/docs/types/interfaces/Withdrawal.md +10 -10
- package/docs/types/type-aliases/BlockchainAddress.md +1 -1
- package/docs/types/type-aliases/CAIP10.md +1 -1
- package/docs/types/type-aliases/CAIP19.md +1 -1
- package/docs/types/type-aliases/CAIP2.md +1 -1
- package/docs/types/type-aliases/CAIP220.md +1 -1
- package/docs/types/type-aliases/Cancel.md +1 -1
- package/docs/types/type-aliases/Completed.md +1 -1
- package/docs/types/type-aliases/ComponentMessage.md +1 -1
- package/docs/types/type-aliases/ConnectionOptions.md +1 -1
- package/docs/types/type-aliases/CounterpartyAssistConfig.md +19 -0
- package/docs/types/type-aliases/CryptoCredential.md +1 -1
- package/docs/types/type-aliases/DID.md +1 -1
- package/docs/types/type-aliases/DTI.md +1 -1
- package/docs/types/type-aliases/Destination.md +1 -1
- package/docs/types/type-aliases/Error.md +1 -1
- package/docs/types/type-aliases/FieldOptions.md +1 -1
- package/docs/types/type-aliases/FieldTypes.md +1 -1
- package/docs/types/type-aliases/HostMessage.md +1 -1
- package/docs/types/type-aliases/ISOCurrency.md +1 -1
- package/docs/types/type-aliases/InvalidValue.md +1 -1
- package/docs/types/type-aliases/LEI.md +1 -1
- package/docs/types/type-aliases/LegalPersonFieldName.md +1 -1
- package/docs/types/type-aliases/LegalPersonFields.md +1 -1
- package/docs/types/type-aliases/NationalIdentifierTypeFieldOptions.md +1 -1
- package/docs/types/type-aliases/NaturalPersonFieldName.md +1 -1
- package/docs/types/type-aliases/NaturalPersonFields.md +1 -1
- package/docs/types/type-aliases/NotabeneAsset.md +1 -1
- package/docs/types/type-aliases/Ready.md +1 -1
- package/docs/types/type-aliases/ResizeRequest.md +1 -1
- package/docs/types/type-aliases/Source.md +1 -1
- package/docs/types/type-aliases/Theme.md +1 -1
- package/docs/types/type-aliases/TransactionAsset.md +1 -1
- package/docs/types/type-aliases/TravelAddress.md +1 -1
- package/docs/types/type-aliases/URI.md +1 -1
- package/docs/types/type-aliases/UUID.md +1 -1
- package/docs/types/type-aliases/UpdateValue.md +1 -1
- package/docs/types/type-aliases/V1Asset.md +1 -1
- package/docs/types/type-aliases/V1Transaction.md +1 -1
- package/docs/types/type-aliases/VASPOptions.md +1 -1
- package/docs/types/type-aliases/ValidationError.md +1 -1
- package/package.json +1 -1
- package/src/notabene.ts +4 -0
- package/src/types.ts +33 -1
- package/src/utils/__tests__/connections.test.ts +160 -24
- package/src/utils/connections.ts +21 -7
package/dist/notabene.d.ts
CHANGED
|
@@ -1,3 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A blockchain account
|
|
3
|
+
* @public
|
|
4
|
+
*/
|
|
5
|
+
export declare interface Account {
|
|
6
|
+
did?: DID;
|
|
7
|
+
blockchainAddress?: BlockchainAddress;
|
|
8
|
+
chain?: CAIP2;
|
|
9
|
+
caip10?: CAIP10;
|
|
10
|
+
identifier?: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
1
13
|
/**
|
|
2
14
|
* Address
|
|
3
15
|
* Represents a physical address
|
|
@@ -365,7 +377,7 @@ export declare interface ConnectionResult<T extends ComponentRequest> {
|
|
|
365
377
|
id: UUID;
|
|
366
378
|
metadata: ConnectionMetadata;
|
|
367
379
|
status: ConnectionStatus;
|
|
368
|
-
tx
|
|
380
|
+
tx?: T;
|
|
369
381
|
result?: TransactionResponse<T>;
|
|
370
382
|
}
|
|
371
383
|
|
|
@@ -410,6 +422,22 @@ export declare interface Counterparty {
|
|
|
410
422
|
email?: string;
|
|
411
423
|
}
|
|
412
424
|
|
|
425
|
+
/**
|
|
426
|
+
* Counterparty Assist Configuration options for recipient selection
|
|
427
|
+
*
|
|
428
|
+
* @remarks
|
|
429
|
+
* Controls for each person type, whether to show the share feature or not.
|
|
430
|
+
*
|
|
431
|
+
* @public
|
|
432
|
+
*/
|
|
433
|
+
export declare type CounterpartyAssistConfig = {
|
|
434
|
+
enabled?: boolean;
|
|
435
|
+
} | {
|
|
436
|
+
[key in PersonType]: {
|
|
437
|
+
enabled?: boolean;
|
|
438
|
+
};
|
|
439
|
+
};
|
|
440
|
+
|
|
413
441
|
/**
|
|
414
442
|
* A crypto credential
|
|
415
443
|
* @public
|
|
@@ -467,7 +495,7 @@ export declare interface DepositRequest extends DepositRequestFields, ComponentR
|
|
|
467
495
|
declare type DepositRequestFields = {
|
|
468
496
|
destination: BlockchainAddress | CAIP10;
|
|
469
497
|
asset: TransactionAsset;
|
|
470
|
-
amountDecimal
|
|
498
|
+
amountDecimal: number;
|
|
471
499
|
travelAddress?: TravelAddress;
|
|
472
500
|
cryptoCredential?: CryptoCredential;
|
|
473
501
|
};
|
|
@@ -1499,6 +1527,7 @@ export declare interface Transaction extends ComponentRequest {
|
|
|
1499
1527
|
price: number;
|
|
1500
1528
|
currency: ISOCurrency;
|
|
1501
1529
|
};
|
|
1530
|
+
account?: Account;
|
|
1502
1531
|
}
|
|
1503
1532
|
|
|
1504
1533
|
/**
|
|
@@ -1527,6 +1556,7 @@ export declare interface TransactionOptions {
|
|
|
1527
1556
|
fields?: FieldTypes;
|
|
1528
1557
|
vasps?: VASPOptions;
|
|
1529
1558
|
hide?: ValidationSections[];
|
|
1559
|
+
counterpartyAssistConfig?: CounterpartyAssistConfig;
|
|
1530
1560
|
}
|
|
1531
1561
|
|
|
1532
1562
|
/**
|
package/dist/notabene.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var v = Object.defineProperty;
|
|
2
2
|
var g = (t, e, n) => e in t ? v(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
|
|
3
3
|
var a = (t, e, n) => g(t, typeof e != "symbol" ? e + "" : e, n);
|
|
4
|
-
var A = /* @__PURE__ */ ((t) => (t.PRIVATE = "WALLET", t.VASP = "VASP", t))(A || {}), y = /* @__PURE__ */ ((t) => (t.NATURAL = "natural", t.LEGAL = "legal", t.SELF = "self", t))(y || {}), I = /* @__PURE__ */ ((t) => (t.EMPTY = "empty", t.VERIFY = "verify", t.PENDING = "pending", t.VERIFIED = "verified", t.BANNED = "banned", t))(I || {}), L = /* @__PURE__ */ ((t) => (t.ALLOWED = "allowed", t.PENDING = "pending", t))(L || {}),
|
|
4
|
+
var A = /* @__PURE__ */ ((t) => (t.PRIVATE = "WALLET", t.VASP = "VASP", t))(A || {}), y = /* @__PURE__ */ ((t) => (t.NATURAL = "natural", t.LEGAL = "legal", t.SELF = "self", t))(y || {}), I = /* @__PURE__ */ ((t) => (t.EMPTY = "empty", t.VERIFY = "verify", t.PENDING = "pending", t.VERIFIED = "verified", t.BANNED = "banned", t))(I || {}), L = /* @__PURE__ */ ((t) => (t.ALLOWED = "allowed", t.PENDING = "pending", t))(L || {}), b = /* @__PURE__ */ ((t) => (t.ASSET = "asset", t.DESTINATION = "destination", t.COUNTERPARTY = "counterparty", t.AGENT = "agent", t))(b || {}), l = /* @__PURE__ */ ((t) => (t.COMPLETE = "complete", t.RESIZE = "resize", t.RESULT = "result", t.READY = "ready", t.INVALID = "invalid", t.ERROR = "error", t.CANCEL = "cancel", t))(l || {}), C = /* @__PURE__ */ ((t) => (t.SERVICE_UNAVAILABLE = "SERVICE_UNAVAILABLE", t.WALLET_CONNECTION_FAILED = "WALLET_CONNECTION_FAILED", t.WALLET_NOT_SUPPORTED = "WALLET_NOT_SUPPORTED", t.TOKEN_INVALID = "TOKEN_INVALID", t))(C || {}), E = /* @__PURE__ */ ((t) => (t.UPDATE = "update", t.REQUEST_RESPONSE = "requestResponse", t))(E || {}), N = /* @__PURE__ */ ((t) => (t.PENDING = "pending", t.FAILED = "rejected", t.FLAGGED = "flagged", t.VERIFIED = "verified", t))(N || {}), U = /* @__PURE__ */ ((t) => (t.SelfDeclaration = "self-declaration", t.SIWE = "siwe", t.SIWX = "siwx", t.EIP191 = "eip-191", t.EIP712 = "eip-712", t.EIP1271 = "eip-1271", t.BIP137 = "bip-137", t.BIP322 = "bip-322", t.BIP137_XPUB = "xpub", t.TIP191 = "tip-191", t.ED25519 = "ed25519", t.XRP_ED25519 = "xrp-ed25519", t.XLM_ED25519 = "xlm-ed25519", t.CIP8 = "cip-8", t.MicroTransfer = "microtransfer", t.Screenshot = "screenshot", t.Connect = "connect", t))(U || {});
|
|
5
5
|
class _ {
|
|
6
6
|
constructor() {
|
|
7
7
|
a(this, "listeners", /* @__PURE__ */ new Map());
|
|
@@ -42,8 +42,8 @@ class _ {
|
|
|
42
42
|
* @param callback - The callback function to remove
|
|
43
43
|
*/
|
|
44
44
|
off(e, n) {
|
|
45
|
-
const
|
|
46
|
-
|
|
45
|
+
const s = this.listeners.get(e);
|
|
46
|
+
s && (s.delete(n), s.size === 0 && this.listeners.delete(e));
|
|
47
47
|
}
|
|
48
48
|
/**
|
|
49
49
|
* Internal message handler for processing received messages.
|
|
@@ -56,8 +56,8 @@ class _ {
|
|
|
56
56
|
handleMessage(e) {
|
|
57
57
|
const n = e.data;
|
|
58
58
|
if (typeof n == "object" && n !== null && "type" in n) {
|
|
59
|
-
const
|
|
60
|
-
|
|
59
|
+
const s = n.type, r = this.listeners.get(s);
|
|
60
|
+
r && r.forEach((i) => i(n));
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
/**
|
|
@@ -74,7 +74,7 @@ class x {
|
|
|
74
74
|
* @param url - The URL of the embedded component
|
|
75
75
|
* @param value - The initial transaction value
|
|
76
76
|
*/
|
|
77
|
-
constructor(e, n,
|
|
77
|
+
constructor(e, n, s) {
|
|
78
78
|
a(this, "_url");
|
|
79
79
|
a(this, "_value");
|
|
80
80
|
a(this, "_options");
|
|
@@ -82,10 +82,10 @@ class x {
|
|
|
82
82
|
a(this, "iframe");
|
|
83
83
|
a(this, "eventManager");
|
|
84
84
|
a(this, "modal");
|
|
85
|
-
this._url = e, this._value = n, this._options =
|
|
86
|
-
|
|
87
|
-
}), this.on(l.RESIZE, (
|
|
88
|
-
|
|
85
|
+
this._url = e, this._value = n, this._options = s, this.eventManager = new _(), this.on(l.INVALID, (r) => {
|
|
86
|
+
r.type === l.INVALID && (this._errors = r.errors, this._value = r.value);
|
|
87
|
+
}), this.on(l.RESIZE, (r) => {
|
|
88
|
+
r.type === l.RESIZE && this.iframe && (this.iframe.style.height = `${r.height}px`);
|
|
89
89
|
});
|
|
90
90
|
}
|
|
91
91
|
/**
|
|
@@ -129,11 +129,11 @@ class x {
|
|
|
129
129
|
* @param parent - The parent element to embed the component into
|
|
130
130
|
*/
|
|
131
131
|
embed(e, n = !1) {
|
|
132
|
-
var
|
|
132
|
+
var s, r;
|
|
133
133
|
this.removeEmbed(), this.iframe = document.createElement("iframe"), this.iframe.src = this.url + (n ? "" : "&embedded=true"), this.iframe.allow = "web-share; clipboard-write; hid; bluetooth;", this.iframe.style.width = "100%", this.iframe.style.height = "0px", this.iframe.style.border = "none", this.iframe.style.overflow = "hidden", this.iframe.scrolling = "no", e.appendChild(this.iframe), window.addEventListener("message", (i) => {
|
|
134
134
|
var o, c;
|
|
135
135
|
i.source === ((o = this.iframe) == null ? void 0 : o.contentWindow) && ((c = this.eventManager) == null || c.setPort(i.ports[0]));
|
|
136
|
-
}), (
|
|
136
|
+
}), (r = (s = this.iframe) == null ? void 0 : s.contentWindow) == null || r.focus();
|
|
137
137
|
}
|
|
138
138
|
removeEmbed() {
|
|
139
139
|
this.iframe && this.iframe.remove();
|
|
@@ -174,13 +174,13 @@ class x {
|
|
|
174
174
|
*/
|
|
175
175
|
completion() {
|
|
176
176
|
return new Promise((e, n) => {
|
|
177
|
-
let
|
|
177
|
+
let s, r, i;
|
|
178
178
|
function o() {
|
|
179
|
-
|
|
179
|
+
s && s(), r && r(), i && i();
|
|
180
180
|
}
|
|
181
|
-
|
|
181
|
+
s = this.on(l.COMPLETE, (c) => {
|
|
182
182
|
e(c.response), o();
|
|
183
|
-
}),
|
|
183
|
+
}), r = this.on(l.CANCEL, () => {
|
|
184
184
|
n(new Error("User cancelled")), o();
|
|
185
185
|
}), i = this.on("error", (c) => {
|
|
186
186
|
n(new Error(c.message)), o();
|
|
@@ -223,63 +223,63 @@ class x {
|
|
|
223
223
|
"_blank",
|
|
224
224
|
"popup=true,width=600,height=600"
|
|
225
225
|
);
|
|
226
|
-
window.addEventListener("message", (
|
|
226
|
+
window.addEventListener("message", (r) => {
|
|
227
227
|
var i;
|
|
228
|
-
|
|
228
|
+
r.source === e && (console.log("received message from popup", r.data), (i = this.eventManager) == null || i.setPort(r.ports[0]));
|
|
229
229
|
});
|
|
230
230
|
const n = this.on(l.CANCEL, () => {
|
|
231
231
|
e == null || e.close();
|
|
232
|
-
}),
|
|
232
|
+
}), s = this.on(l.COMPLETE, () => {
|
|
233
233
|
e == null || e.close();
|
|
234
234
|
});
|
|
235
235
|
return this.completion().finally(() => {
|
|
236
|
-
n(),
|
|
236
|
+
n(), s();
|
|
237
237
|
});
|
|
238
238
|
}
|
|
239
239
|
}
|
|
240
|
-
function
|
|
240
|
+
function D(t) {
|
|
241
241
|
return Object.entries(t).map(([e, n]) => {
|
|
242
242
|
if (n == null) return;
|
|
243
|
-
const
|
|
243
|
+
const s = encodeURIComponent(e), r = encodeURIComponent(
|
|
244
244
|
typeof n == "object" ? JSON.stringify(n) : String(n)
|
|
245
245
|
// Use String() to handle all primitive types
|
|
246
246
|
);
|
|
247
|
-
return `${
|
|
247
|
+
return `${s}=${r}`;
|
|
248
248
|
}).filter((e) => e !== void 0).join("&");
|
|
249
249
|
}
|
|
250
250
|
function O(t) {
|
|
251
251
|
const e = t.slice(1);
|
|
252
252
|
return e ? e.split("&").filter(Boolean).reduce(
|
|
253
|
-
(
|
|
254
|
-
const [i, o] =
|
|
255
|
-
return i && (
|
|
253
|
+
(s, r) => {
|
|
254
|
+
const [i, o] = r.split("=");
|
|
255
|
+
return i && (s[decodeURIComponent(i)] = o ? decodeURIComponent(o) : ""), s;
|
|
256
256
|
},
|
|
257
257
|
{}
|
|
258
258
|
) : {};
|
|
259
259
|
}
|
|
260
260
|
async function p(t, e) {
|
|
261
|
-
const n = JSON.stringify(t),
|
|
261
|
+
const n = JSON.stringify(t), s = new TextEncoder(), r = e ? m(e) : crypto.getRandomValues(new Uint8Array(32)), i = await crypto.subtle.importKey(
|
|
262
262
|
"raw",
|
|
263
|
-
|
|
263
|
+
r,
|
|
264
264
|
{ name: "AES-GCM" },
|
|
265
265
|
!1,
|
|
266
266
|
["encrypt"]
|
|
267
267
|
), o = crypto.getRandomValues(new Uint8Array(12)), c = await crypto.subtle.encrypt(
|
|
268
268
|
{ name: "AES-GCM", iv: o },
|
|
269
269
|
i,
|
|
270
|
-
|
|
270
|
+
s.encode(n)
|
|
271
271
|
);
|
|
272
272
|
return {
|
|
273
273
|
ciphertext: `${u(o)}-${u(c)}`,
|
|
274
|
-
key: u(
|
|
274
|
+
key: u(r)
|
|
275
275
|
};
|
|
276
276
|
}
|
|
277
277
|
async function f({ ciphertext: t, key: e }) {
|
|
278
|
-
const [n,
|
|
278
|
+
const [n, s] = t.split("-"), r = new Uint8Array(
|
|
279
279
|
atob(e).split("").map((w) => w.charCodeAt(0))
|
|
280
|
-
), i = m(n), o = m(
|
|
280
|
+
), i = m(n), o = m(s), c = await crypto.subtle.importKey(
|
|
281
281
|
"raw",
|
|
282
|
-
|
|
282
|
+
r,
|
|
283
283
|
{ name: "AES-GCM" },
|
|
284
284
|
!1,
|
|
285
285
|
["decrypt"]
|
|
@@ -293,14 +293,14 @@ async function f({ ciphertext: t, key: e }) {
|
|
|
293
293
|
function u(t) {
|
|
294
294
|
const e = new Uint8Array(t);
|
|
295
295
|
let n = "";
|
|
296
|
-
for (let
|
|
297
|
-
n += String.fromCharCode(e[
|
|
296
|
+
for (let s = 0; s < e.length; s++)
|
|
297
|
+
n += String.fromCharCode(e[s]);
|
|
298
298
|
return btoa(n);
|
|
299
299
|
}
|
|
300
300
|
function m(t) {
|
|
301
301
|
const e = atob(t), n = new Uint8Array(e.length);
|
|
302
|
-
for (let
|
|
303
|
-
n[
|
|
302
|
+
for (let s = 0; s < e.length; s++)
|
|
303
|
+
n[s] = e.charCodeAt(s);
|
|
304
304
|
return n;
|
|
305
305
|
}
|
|
306
306
|
async function M(t) {
|
|
@@ -310,18 +310,25 @@ async function M(t) {
|
|
|
310
310
|
if (!e.ok)
|
|
311
311
|
throw new Error(`Failed to get connection: ${await e.text()}`);
|
|
312
312
|
const n = await e.json();
|
|
313
|
-
if (!n.sealed)
|
|
314
|
-
throw new Error("
|
|
315
|
-
const
|
|
313
|
+
if (!n.id || !n.metadata || !n.status || !n.sealed)
|
|
314
|
+
throw new Error("Data missing from server response");
|
|
315
|
+
const s = {
|
|
316
|
+
id: n.id,
|
|
317
|
+
metadata: n.metadata,
|
|
318
|
+
status: n.status
|
|
319
|
+
};
|
|
320
|
+
if (n.status === "closed")
|
|
321
|
+
return s;
|
|
322
|
+
const r = n.sealed[n.sealed.length - 1], i = await f({
|
|
316
323
|
ciphertext: r,
|
|
317
324
|
key: t.key
|
|
318
325
|
});
|
|
319
|
-
return {
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
326
|
+
return n.status === "completed" ? {
|
|
327
|
+
...s,
|
|
328
|
+
result: i.result
|
|
329
|
+
} : {
|
|
330
|
+
...s,
|
|
331
|
+
tx: i.tx
|
|
325
332
|
};
|
|
326
333
|
}
|
|
327
334
|
class S {
|
|
@@ -336,15 +343,15 @@ class S {
|
|
|
336
343
|
* @returns Promise resolving to connection details including ID, version, and encryption key
|
|
337
344
|
*/
|
|
338
345
|
async create(e, n) {
|
|
339
|
-
const
|
|
346
|
+
const s = await p(e), r = {
|
|
340
347
|
metadata: n,
|
|
341
|
-
sealed:
|
|
348
|
+
sealed: s.ciphertext
|
|
342
349
|
}, i = await fetch(this.endpoint, {
|
|
343
350
|
method: "POST",
|
|
344
351
|
headers: {
|
|
345
352
|
"Content-Type": "application/json"
|
|
346
353
|
},
|
|
347
|
-
body: JSON.stringify(
|
|
354
|
+
body: JSON.stringify(r)
|
|
348
355
|
});
|
|
349
356
|
if (!i.ok)
|
|
350
357
|
throw new Error(`Failed to create connection: ${await i.text()}`);
|
|
@@ -355,7 +362,7 @@ class S {
|
|
|
355
362
|
status: o.status,
|
|
356
363
|
metadata: n,
|
|
357
364
|
data: e,
|
|
358
|
-
key:
|
|
365
|
+
key: s.key
|
|
359
366
|
};
|
|
360
367
|
}
|
|
361
368
|
/**
|
|
@@ -365,11 +372,11 @@ class S {
|
|
|
365
372
|
* @param version Current version number
|
|
366
373
|
* @returns Promise resolving to updated connection details including new encryption key
|
|
367
374
|
*/
|
|
368
|
-
async update(e, n,
|
|
375
|
+
async update(e, n, s, r, i) {
|
|
369
376
|
const o = await p(n, i), c = {
|
|
370
377
|
sealed: o.ciphertext,
|
|
371
|
-
version:
|
|
372
|
-
status:
|
|
378
|
+
version: s,
|
|
379
|
+
status: r
|
|
373
380
|
}, h = await fetch(`${this.endpoint}/${e}`, {
|
|
374
381
|
method: "PATCH",
|
|
375
382
|
headers: {
|
|
@@ -396,20 +403,20 @@ class S {
|
|
|
396
403
|
* @returns Promise resolving to connection details including decrypted data
|
|
397
404
|
*/
|
|
398
405
|
async get(e, n) {
|
|
399
|
-
const
|
|
406
|
+
const s = await fetch(`${this.endpoint}/${e}`, {
|
|
400
407
|
method: "GET"
|
|
401
408
|
});
|
|
402
|
-
if (!
|
|
403
|
-
throw new Error(`Failed to get connection: ${await
|
|
404
|
-
const
|
|
409
|
+
if (!s.ok)
|
|
410
|
+
throw new Error(`Failed to get connection: ${await s.text()}`);
|
|
411
|
+
const r = await s.json(), i = r.sealed[r.sealed.length - 1], o = await f({
|
|
405
412
|
ciphertext: i,
|
|
406
413
|
key: n
|
|
407
414
|
});
|
|
408
415
|
return {
|
|
409
|
-
id:
|
|
410
|
-
status:
|
|
411
|
-
version:
|
|
412
|
-
metadata:
|
|
416
|
+
id: r.id,
|
|
417
|
+
status: r.status,
|
|
418
|
+
version: r.version,
|
|
419
|
+
metadata: r.metadata,
|
|
413
420
|
data: o,
|
|
414
421
|
key: n
|
|
415
422
|
};
|
|
@@ -450,15 +457,15 @@ class k {
|
|
|
450
457
|
* @returns component URL
|
|
451
458
|
* @internal
|
|
452
459
|
*/
|
|
453
|
-
componentUrl(e, n,
|
|
460
|
+
componentUrl(e, n, s, r) {
|
|
454
461
|
const i = new URL(this.uxUrl);
|
|
455
462
|
i.pathname = e;
|
|
456
|
-
const o =
|
|
463
|
+
const o = D({
|
|
457
464
|
authToken: this.authToken,
|
|
458
465
|
value: n,
|
|
459
|
-
configuration:
|
|
466
|
+
configuration: s
|
|
460
467
|
});
|
|
461
|
-
return i.hash = o, this.nodeUrl && i.searchParams.set("nodeUrl", this.nodeUrl), this.theme && i.searchParams.set("theme", JSON.stringify(this.theme)), this.locale && i.searchParams.set("locale", this.locale),
|
|
468
|
+
return i.hash = o, this.nodeUrl && i.searchParams.set("nodeUrl", this.nodeUrl), this.theme && i.searchParams.set("theme", JSON.stringify(this.theme)), this.locale && i.searchParams.set("locale", this.locale), r && (r.callback && i.searchParams.set("callback_url", r.callback), r.redirectUri && i.searchParams.set("redirect_uri", r.redirectUri)), i.toString();
|
|
462
469
|
}
|
|
463
470
|
/**
|
|
464
471
|
* Creates a new embedded component
|
|
@@ -470,11 +477,11 @@ class k {
|
|
|
470
477
|
* @returns A new EmbeddedComponent instance
|
|
471
478
|
* @internal
|
|
472
479
|
*/
|
|
473
|
-
createComponent(e, n,
|
|
480
|
+
createComponent(e, n, s, r) {
|
|
474
481
|
return new x(
|
|
475
|
-
this.componentUrl(e, n,
|
|
482
|
+
this.componentUrl(e, n, s, r),
|
|
476
483
|
n,
|
|
477
|
-
|
|
484
|
+
s
|
|
478
485
|
);
|
|
479
486
|
}
|
|
480
487
|
/**
|
|
@@ -485,12 +492,12 @@ class k {
|
|
|
485
492
|
* @param callbacks - Optional callback configuration
|
|
486
493
|
* @returns A new EmbeddedComponent instance for withdrawal assistance
|
|
487
494
|
*/
|
|
488
|
-
createWithdrawalAssist(e, n,
|
|
495
|
+
createWithdrawalAssist(e, n, s) {
|
|
489
496
|
return this.createComponent(
|
|
490
497
|
"withdrawal-assist",
|
|
491
498
|
e,
|
|
492
499
|
n,
|
|
493
|
-
|
|
500
|
+
s
|
|
494
501
|
);
|
|
495
502
|
}
|
|
496
503
|
/**
|
|
@@ -502,12 +509,12 @@ class k {
|
|
|
502
509
|
* @returns A new EmbeddedComponent instance for connection
|
|
503
510
|
* @alpha
|
|
504
511
|
*/
|
|
505
|
-
createConnectWallet(e, n,
|
|
512
|
+
createConnectWallet(e, n, s) {
|
|
506
513
|
return this.createComponent(
|
|
507
514
|
"connect",
|
|
508
515
|
e,
|
|
509
516
|
n,
|
|
510
|
-
|
|
517
|
+
s
|
|
511
518
|
);
|
|
512
519
|
}
|
|
513
520
|
/**
|
|
@@ -519,12 +526,12 @@ class k {
|
|
|
519
526
|
* @returns A new EmbeddedComponent instance for deposit requests
|
|
520
527
|
* @public
|
|
521
528
|
*/
|
|
522
|
-
createDepositRequest(e, n,
|
|
529
|
+
createDepositRequest(e, n, s) {
|
|
523
530
|
return this.createComponent(
|
|
524
531
|
"deposit-request",
|
|
525
532
|
e,
|
|
526
533
|
n,
|
|
527
|
-
|
|
534
|
+
s
|
|
528
535
|
);
|
|
529
536
|
}
|
|
530
537
|
/**
|
|
@@ -536,12 +543,12 @@ class k {
|
|
|
536
543
|
* @returns A new EmbeddedComponent instance for deposit assistance
|
|
537
544
|
* @public
|
|
538
545
|
*/
|
|
539
|
-
createDepositAssist(e, n,
|
|
546
|
+
createDepositAssist(e, n, s) {
|
|
540
547
|
return this.createComponent(
|
|
541
548
|
"deposit-assist",
|
|
542
549
|
e,
|
|
543
550
|
n,
|
|
544
|
-
|
|
551
|
+
s
|
|
545
552
|
);
|
|
546
553
|
}
|
|
547
554
|
}
|
|
@@ -550,14 +557,14 @@ export {
|
|
|
550
557
|
l as CMType,
|
|
551
558
|
S as ConnectionManager,
|
|
552
559
|
x as EmbeddedComponent,
|
|
553
|
-
|
|
560
|
+
C as ErrorIdentifierCode,
|
|
554
561
|
E as HMType,
|
|
555
562
|
y as PersonType,
|
|
556
|
-
|
|
563
|
+
N as ProofStatus,
|
|
557
564
|
U as ProofTypes,
|
|
558
565
|
I as Status,
|
|
559
566
|
L as VASPSearchControl,
|
|
560
|
-
|
|
567
|
+
b as ValidationSections,
|
|
561
568
|
O as decodeFragmentToObject,
|
|
562
569
|
k as default,
|
|
563
570
|
M as getRefreshResult
|
package/docs/README.md
CHANGED
|
@@ -398,7 +398,7 @@ const withdrawal = notabene.createDepositRequest({
|
|
|
398
398
|
|
|
399
399
|
- `asset`: The cryptocurrency or token being transferred. See [Asset Specification](#asset-specification)
|
|
400
400
|
- `destination`: The destination or blockchain address for the withdrawal. See [Destination](#destination)
|
|
401
|
-
- `amountDecimal`:
|
|
401
|
+
- `amountDecimal`: The amount to deposit in decimal format. See [Transaction Amount](#transaction-amount)
|
|
402
402
|
- `customer`: Optional Customer object containing their name
|
|
403
403
|
|
|
404
404
|
If any of the required parameters are missing the component will just show the Notabene badge.
|
|
@@ -412,7 +412,7 @@ const deposit = notabene.createDepositAssist(
|
|
|
412
412
|
{
|
|
413
413
|
asset: 'ETH',
|
|
414
414
|
amountDecimal: 1.23,
|
|
415
|
-
|
|
415
|
+
source: '0x...',
|
|
416
416
|
destination: '0x...',
|
|
417
417
|
transactionId: "UUID"
|
|
418
418
|
},
|
|
@@ -425,7 +425,7 @@ const deposit = notabene.createDepositAssist(
|
|
|
425
425
|
### Parameters
|
|
426
426
|
|
|
427
427
|
- `asset`: The cryptocurrency or token being transferred. See [Asset Specification](#asset-specification)
|
|
428
|
-
- `
|
|
428
|
+
- `source`: The source or blockchain address for the deposit. See [Source](#source)
|
|
429
429
|
- `destination`: The destination or blockchain address for the deposit. See [Destination](#destination)
|
|
430
430
|
- `amountDecimal`: Optional amount to deposit in decimal format. See [Transaction Amount](#transaction-amount)
|
|
431
431
|
- `transactionId`: Optional transactionId of a Notabene transaction. Will be returned with the payload to assist updating the Transaction
|
|
@@ -510,6 +510,15 @@ Specify the originator address as `origin` using one of the following formats:
|
|
|
510
510
|
- [BIP-21](https://en.bitcoin.it/wiki/BIP_0021) Bitcoin URI
|
|
511
511
|
- Native blockchain address
|
|
512
512
|
|
|
513
|
+
### Source
|
|
514
|
+
|
|
515
|
+
Specify the source address as `source` using one of the following formats:
|
|
516
|
+
|
|
517
|
+
- [CAIP-10](https://github.com/ChainAgnostic/CAIPs/blob/main/CAIPs/caip-10.md_) is a chain agnostic format allows you to specify the specific blockchain and address
|
|
518
|
+
- [EIP-3770](https://eips.ethereum.org/EIPS/eip-3770) EVM URI
|
|
519
|
+
- [BIP-21](https://en.bitcoin.it/wiki/BIP_0021) Bitcoin URI
|
|
520
|
+
- Native blockchain address
|
|
521
|
+
|
|
513
522
|
### Asset Price
|
|
514
523
|
|
|
515
524
|
The price of the asset is used to determine certain rules based on thresholds. We recommond you pass in your price like this:
|
|
@@ -16,7 +16,7 @@ Configuration options for Transaction components
|
|
|
16
16
|
|
|
17
17
|
#### Defined in
|
|
18
18
|
|
|
19
|
-
[types.ts:
|
|
19
|
+
[types.ts:844](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/types.ts#L844)
|
|
20
20
|
|
|
21
21
|
***
|
|
22
22
|
|
|
@@ -26,7 +26,17 @@ Configuration options for Transaction components
|
|
|
26
26
|
|
|
27
27
|
#### Defined in
|
|
28
28
|
|
|
29
|
-
[types.ts:
|
|
29
|
+
[types.ts:845](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/types.ts#L845)
|
|
30
|
+
|
|
31
|
+
***
|
|
32
|
+
|
|
33
|
+
### counterpartyAssistConfig?
|
|
34
|
+
|
|
35
|
+
> `optional` **counterpartyAssistConfig**: [`CounterpartyAssistConfig`](../type-aliases/CounterpartyAssistConfig.md)
|
|
36
|
+
|
|
37
|
+
#### Defined in
|
|
38
|
+
|
|
39
|
+
[types.ts:849](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/types.ts#L849)
|
|
30
40
|
|
|
31
41
|
***
|
|
32
42
|
|
|
@@ -36,7 +46,7 @@ Configuration options for Transaction components
|
|
|
36
46
|
|
|
37
47
|
#### Defined in
|
|
38
48
|
|
|
39
|
-
[types.ts:
|
|
49
|
+
[types.ts:846](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/types.ts#L846)
|
|
40
50
|
|
|
41
51
|
***
|
|
42
52
|
|
|
@@ -46,7 +56,7 @@ Configuration options for Transaction components
|
|
|
46
56
|
|
|
47
57
|
#### Defined in
|
|
48
58
|
|
|
49
|
-
[types.ts:
|
|
59
|
+
[types.ts:848](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/types.ts#L848)
|
|
50
60
|
|
|
51
61
|
***
|
|
52
62
|
|
|
@@ -84,7 +94,7 @@ Configuration options for Transaction components
|
|
|
84
94
|
|
|
85
95
|
#### Defined in
|
|
86
96
|
|
|
87
|
-
[types.ts:
|
|
97
|
+
[types.ts:834](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/types.ts#L834)
|
|
88
98
|
|
|
89
99
|
***
|
|
90
100
|
|
|
@@ -94,4 +104,4 @@ Configuration options for Transaction components
|
|
|
94
104
|
|
|
95
105
|
#### Defined in
|
|
96
106
|
|
|
97
|
-
[types.ts:
|
|
107
|
+
[types.ts:847](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/types.ts#L847)
|
|
@@ -18,7 +18,7 @@ Published May 2020
|
|
|
18
18
|
|
|
19
19
|
#### Defined in
|
|
20
20
|
|
|
21
|
-
[ivms/types.ts:365](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/
|
|
21
|
+
[ivms/types.ts:365](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/ivms/types.ts#L365)
|
|
22
22
|
|
|
23
23
|
***
|
|
24
24
|
|
|
@@ -30,4 +30,4 @@ Published August 2023
|
|
|
30
30
|
|
|
31
31
|
#### Defined in
|
|
32
32
|
|
|
33
|
-
[ivms/types.ts:367](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/
|
|
33
|
+
[ivms/types.ts:367](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/ivms/types.ts#L367)
|
|
@@ -19,7 +19,7 @@ The version of IVMS 101 to which the payload complies.
|
|
|
19
19
|
|
|
20
20
|
#### Defined in
|
|
21
21
|
|
|
22
|
-
[ivms/types.ts:358](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/
|
|
22
|
+
[ivms/types.ts:358](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/ivms/types.ts#L358)
|
|
23
23
|
|
|
24
24
|
***
|
|
25
25
|
|
|
@@ -31,4 +31,4 @@ The method used to map from a national system of writing to Latin script.
|
|
|
31
31
|
|
|
32
32
|
#### Defined in
|
|
33
33
|
|
|
34
|
-
[ivms/types.ts:356](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/
|
|
34
|
+
[ivms/types.ts:356](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/ivms/types.ts#L356)
|
|
@@ -111,4 +111,4 @@ Name of a built-up area, with defined boundaries, and a local government.
|
|
|
111
111
|
|
|
112
112
|
## Defined in
|
|
113
113
|
|
|
114
|
-
[ivms/types.ts:119](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/
|
|
114
|
+
[ivms/types.ts:119](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/ivms/types.ts#L119)
|
|
@@ -13,4 +13,4 @@ Specifies the type of address
|
|
|
13
13
|
|
|
14
14
|
## Defined in
|
|
15
15
|
|
|
16
|
-
[ivms/types.ts:44](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/
|
|
16
|
+
[ivms/types.ts:44](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/ivms/types.ts#L44)
|
|
@@ -27,4 +27,4 @@ Array of persons associated with the beneficiary
|
|
|
27
27
|
|
|
28
28
|
## Defined in
|
|
29
29
|
|
|
30
|
-
[ivms/types.ts:313](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/
|
|
30
|
+
[ivms/types.ts:313](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/ivms/types.ts#L313)
|
|
@@ -21,4 +21,4 @@ The beneficiary VASP information
|
|
|
21
21
|
|
|
22
22
|
## Defined in
|
|
23
23
|
|
|
24
|
-
[ivms/types.ts:335](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/
|
|
24
|
+
[ivms/types.ts:335](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/ivms/types.ts#L335)
|
|
@@ -27,4 +27,4 @@ Place of birth (max 70 characters)
|
|
|
27
27
|
|
|
28
28
|
## Defined in
|
|
29
29
|
|
|
30
|
-
[ivms/types.ts:107](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/
|
|
30
|
+
[ivms/types.ts:107](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/ivms/types.ts#L107)
|
|
@@ -19,4 +19,4 @@ ISO-3166 Alpha-2 country code
|
|
|
19
19
|
|
|
20
20
|
## Defined in
|
|
21
21
|
|
|
22
|
-
[ivms/types.ts:6](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/
|
|
22
|
+
[ivms/types.ts:6](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/ivms/types.ts#L6)
|
|
@@ -20,4 +20,4 @@ Format: YYYY-MM-DD
|
|
|
20
20
|
|
|
21
21
|
## Defined in
|
|
22
22
|
|
|
23
|
-
[ivms/types.ts:14](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/
|
|
23
|
+
[ivms/types.ts:14](https://gitlab.com/notabene/open-source/javascript-sdk/-/blob/f6a0825d098b61a3bc31d6c197072643eb78a452/src/ivms/types.ts#L14)
|